From f607cac267ae21e9b6392dc510f389b43c9e63f4 Mon Sep 17 00:00:00 2001 From: "Dennis E. Hamilton" Date: Sat, 18 Nov 2023 11:01:02 -0800 Subject: [PATCH 001/790] Preparing for 5.1-dev (#3550) Adjusting raylib.h to reflect post-5.0 changes now. --- src/raylib.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 1c4c4a09f..6ea00300a 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1,6 +1,6 @@ /********************************************************************************************** * -* raylib v5.0 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* raylib v5.1-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) * * FEATURES: * - NO external dependencies, all required libraries included with raylib @@ -82,9 +82,9 @@ #include // Required for: va_list - Only used by TraceLogCallback #define RAYLIB_VERSION_MAJOR 5 -#define RAYLIB_VERSION_MINOR 0 +#define RAYLIB_VERSION_MINOR 1 #define RAYLIB_VERSION_PATCH 0 -#define RAYLIB_VERSION "5.0" +#define RAYLIB_VERSION "5.1-dev" // Function specifiers in case library is build/used as a shared library (Windows) // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll From 25c6c12150d6f0aeea83d55d1a0f16e12a3effd3 Mon Sep 17 00:00:00 2001 From: Jussi Viitala Date: Sat, 18 Nov 2023 21:02:33 +0200 Subject: [PATCH 002/790] Added glsl 100 and 120 shaders to lightmap example. (#3543) * Added glsl 100 and 120 shaders to lightmap example. * Fixed lightmap example resource loading on web. --- examples/Makefile.Web | 8 ++--- .../resources/shaders/glsl100/lightmap.fs | 22 +++++++++++++ .../resources/shaders/glsl100/lightmap.vs | 31 +++++++++++++++++++ .../resources/shaders/glsl120/lightmap.fs | 20 ++++++++++++ .../resources/shaders/glsl120/lightmap.vs | 31 +++++++++++++++++++ examples/shaders/shaders_lightmap.c | 1 - 6 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 examples/shaders/resources/shaders/glsl100/lightmap.fs create mode 100644 examples/shaders/resources/shaders/glsl100/lightmap.vs create mode 100644 examples/shaders/resources/shaders/glsl120/lightmap.fs create mode 100644 examples/shaders/resources/shaders/glsl120/lightmap.vs diff --git a/examples/Makefile.Web b/examples/Makefile.Web index e8a726613..aa42d722e 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -968,10 +968,10 @@ shaders/shaders_julia_set: shaders/shaders_julia_set.c shaders/shaders_lightmap: shaders/shaders_lightmap.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 \ - --preload-file shaders/resources/shaders/glsl330/lightmap.vs \ - --preload-file shaders/resources/shaders/glsl330/lightmap.fs \ - --preload-file shaders/resources/cubicmap_atlas.png \ - --preload-file shaders/resources/spark_flame.png + --preload-file shaders/resources/shaders/glsl100/lightmap.vs@resources/shaders/glsl100/lightmap.vs \ + --preload-file shaders/resources/shaders/glsl100/lightmap.fs@resources/shaders/glsl100/lightmap.fs \ + --preload-file shaders/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png \ + --preload-file shaders/resources/spark_flame.png@resources/spark_flame.png shaders/shaders_mesh_instancing: shaders/shaders_mesh_instancing.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ diff --git a/examples/shaders/resources/shaders/glsl100/lightmap.fs b/examples/shaders/resources/shaders/glsl100/lightmap.fs new file mode 100644 index 000000000..9f0bcd27b --- /dev/null +++ b/examples/shaders/resources/shaders/glsl100/lightmap.fs @@ -0,0 +1,22 @@ +#version 100 + +precision mediump float; + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec2 fragTexCoord2; +varying vec3 fragPosition; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform sampler2D texture1; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture2D(texture0, fragTexCoord); + vec4 texelColor2 = texture2D(texture1, fragTexCoord2); + + gl_FragColor = texelColor * texelColor2; +} diff --git a/examples/shaders/resources/shaders/glsl100/lightmap.vs b/examples/shaders/resources/shaders/glsl100/lightmap.vs new file mode 100644 index 000000000..f5d87b3e3 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl100/lightmap.vs @@ -0,0 +1,31 @@ +#version 100 + +// Input vertex attributes +attribute vec3 vertexPosition; +attribute vec2 vertexTexCoord; +attribute vec2 vertexTexCoord2; +attribute vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; + +// Output vertex attributes (to fragment shader) +varying vec3 fragPosition; +varying vec2 fragTexCoord; +varying vec2 fragTexCoord2; +varying vec4 fragColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); + fragTexCoord = vertexTexCoord; + fragTexCoord2 = vertexTexCoord2; + fragColor = vertexColor; + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/resources/shaders/glsl120/lightmap.fs b/examples/shaders/resources/shaders/glsl120/lightmap.fs new file mode 100644 index 000000000..93a0609e2 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl120/lightmap.fs @@ -0,0 +1,20 @@ +#version 120 + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec2 fragTexCoord2; +varying vec3 fragPosition; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform sampler2D texture1; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture2D(texture0, fragTexCoord); + vec4 texelColor2 = texture2D(texture1, fragTexCoord2); + + gl_FragColor = texelColor * texelColor2; +} diff --git a/examples/shaders/resources/shaders/glsl120/lightmap.vs b/examples/shaders/resources/shaders/glsl120/lightmap.vs new file mode 100644 index 000000000..9847b253d --- /dev/null +++ b/examples/shaders/resources/shaders/glsl120/lightmap.vs @@ -0,0 +1,31 @@ +#version 120 + +// Input vertex attributes +attribute vec3 vertexPosition; +attribute vec2 vertexTexCoord; +attribute vec2 vertexTexCoord2; +attribute vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; + +// Output vertex attributes (to fragment shader) +varying vec3 fragPosition; +varying vec2 fragTexCoord; +varying vec2 fragTexCoord2; +varying vec4 fragColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); + fragTexCoord = vertexTexCoord; + fragTexCoord2 = vertexTexCoord2; + fragColor = vertexColor; + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/shaders_lightmap.c b/examples/shaders/shaders_lightmap.c index c5ed6094c..445d81d24 100644 --- a/examples/shaders/shaders_lightmap.c +++ b/examples/shaders/shaders_lightmap.c @@ -170,4 +170,3 @@ int main(void) return 0; } - From e41a0c9721a38c81a1499ae499b746bd05f9de2e Mon Sep 17 00:00:00 2001 From: _Tradam Date: Sat, 18 Nov 2023 14:03:13 -0500 Subject: [PATCH 003/790] fix for running gles2 with sdl on desktop (#3542) --- src/platforms/rcore_desktop_sdl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 96e557024..7836828f8 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -49,7 +49,14 @@ **********************************************************************************************/ #include "SDL.h" // SDL base library (window/rendered, input, timming... functionality) +#ifdef GRAPHICS_API_OPENGL_ES2 +// I suspect that the gles2 version of the SDL header should be used +// but the compilation fails if we do. Not including anything appears +// to work fine. +//#include "SDL_opengles2.h" +#else #include "SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) +#endif //---------------------------------------------------------------------------------- // Types and Structures Definition From 21469e92b0a886de8b384b7ffadc5c1c73cff913 Mon Sep 17 00:00:00 2001 From: Karim <35817819+Kimo-s@users.noreply.github.com> Date: Sat, 18 Nov 2023 14:05:45 -0500 Subject: [PATCH 004/790] Image convolution function ImageKernelConvolution (#3528) * Added image convultion ImageKernelConvolution * comment changes * spelling changes and change to kernel size * removed kernel normalization inside function * fix to formating --- examples/Makefile | 1 + examples/textures/textures_image_kernel.c | 127 ++++++++++++++++ .../raylib_npp_parser/raylib_to_parse.h | 1 + src/raylib.h | 1 + src/rtextures.c | 142 ++++++++++++++++++ 5 files changed, 272 insertions(+) create mode 100644 examples/textures/textures_image_kernel.c diff --git a/examples/Makefile b/examples/Makefile index 5cd8e6bba..11669e3a3 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -490,6 +490,7 @@ TEXTURES = \ textures/textures_gif_player \ textures/textures_image_drawing \ textures/textures_image_generation \ + textures/textures_image_kernel \ textures/textures_image_loading \ textures/textures_image_processing \ textures/textures_image_rotate \ diff --git a/examples/textures/textures_image_kernel.c b/examples/textures/textures_image_kernel.c new file mode 100644 index 000000000..cbc75e18e --- /dev/null +++ b/examples/textures/textures_image_kernel.c @@ -0,0 +1,127 @@ +/******************************************************************************************* +* +* raylib [textures] example - Image loading and texture creation +* +* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) +* +* Example originally created with raylib 1.3, last time updated with raylib 1.3 +* +* Example 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) 2015-2023 Karim Salem (@kimo-s) +* +********************************************************************************************/ + +#include "raylib.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +void normalizeKernel(float *kernel, int size){ + float sum = 0.0f; + for(int i = 0; i < size; i++) + { + sum += kernel[i]; + } + + if(sum != 0.0f) + { + for(int i = 0; i < size; i++) + { + kernel[i] /= sum; + } + } +} + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + + Image image = LoadImage("resources/cat.png"); // Loaded in CPU memory (RAM) + + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - image convolution"); + + float gaussiankernel[] = {1.0, 2.0, 1.0, + 2.0, 4.0, 2.0, + 1.0, 2.0, 1.0}; + + float sobelkernel[] = {1.0, 0.0, -1.0, + 2.0, 0.0, -2.0, + 1.0, 0.0, -1.0}; + + float sharpenkernel[] = {0.0, -1.0, 0.0, + -1.0, 5.0, -1.0, + 0.0, -1.0, 0.0}; + + normalizeKernel(gaussiankernel, 9); + normalizeKernel(sharpenkernel, 9); + normalizeKernel(sobelkernel, 9); + + Image catSharpend = ImageCopy(image); + ImageKernelConvolution(&catSharpend, sharpenkernel, 9); + + Image catSobel = ImageCopy(image); + ImageKernelConvolution(&catSobel, sobelkernel, 9); + + Image catGaussian = ImageCopy(image); + for(int i = 0; i < 6; i++) + { + ImageKernelConvolution(&catGaussian, gaussiankernel, 9); + } + + ImageCrop(&image, (Rectangle){ 0, 0, (float)200, (float)450 }); + ImageCrop(&catGaussian, (Rectangle){ 0, 0, (float)200, (float)450 }); + ImageCrop(&catSobel, (Rectangle){ 0, 0, (float)200, (float)450 }); + ImageCrop(&catSharpend, (Rectangle){ 0, 0, (float)200, (float)450 }); + Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) + Texture2D catSharpendTexture = LoadTextureFromImage(catSharpend); + Texture2D catSobelTexture = LoadTextureFromImage(catSobel); + Texture2D catGaussianTexture = LoadTextureFromImage(catGaussian); + UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM + UnloadImage(catGaussian); + UnloadImage(catSobel); + UnloadImage(catSharpend); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawTexture(catSharpendTexture, 0, 0, WHITE); + DrawTexture(catSobelTexture, 200, 0, WHITE); + DrawTexture(catGaussianTexture, 400, 0, WHITE); + DrawTexture(texture, 600, 0, WHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Texture unloading + UnloadTexture(catGaussianTexture); + UnloadTexture(catSobelTexture); + UnloadTexture(catSharpendTexture); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h b/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h index 2c033c912..8776d4349 100644 --- a/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h +++ b/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h @@ -375,6 +375,7 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, float* kernel, int kernelSize); // Apply Custom Square image convolution kernel RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color diff --git a/src/raylib.h b/src/raylib.h index 6ea00300a..28f052c7f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1329,6 +1329,7 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, float* kernel, int kernelSize); // Apply Custom Square image convolution kernel RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color diff --git a/src/rtextures.c b/src/rtextures.c index 98586db73..8742b0c9c 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2082,6 +2082,148 @@ void ImageBlurGaussian(Image *image, int blurSize) { ImageFormat(image, format); } +// The kernel matrix is assumed to be square. Only supply the width of the kernel. +void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ + + if ((image->data == NULL) || (image->width == 0) || (image->height == 0) || kernel == NULL) return; + + int kernelWidth = (int)sqrtf((float)kernelSize); + if (kernelWidth*kernelWidth != kernelSize) + { + TRACELOG(LOG_WARNING, "IMAGE: Convolution kernel must be square to be applied"); + return; + } + + Color *pixels = LoadImageColors(*image); + + Vector4 *imageCopy2 = RL_MALLOC((image->height)*(image->width)*sizeof(Vector4)); + Vector4 *temp = RL_MALLOC(kernelSize*sizeof(Vector4)); + + + for(int i = 0; i < kernelSize; i++){ + temp[i].x = 0.0f; + temp[i].y = 0.0f; + temp[i].z = 0.0f; + temp[i].w = 0.0f; + } + + float rRes = 0.0f; + float gRes = 0.0f; + float bRes = 0.0f; + float aRes = 0.0f; + + + int startRange, endRange; + if(kernelWidth % 2 == 0) + { + startRange = -kernelWidth/2; + endRange = kernelWidth/2; + } else + { + startRange = -kernelWidth/2; + endRange = kernelWidth/2+1; + } + for(int x = 0; x < image->height; x++) + { + for(int y = 0; y < image->width; y++) + { + + for(int xk = startRange; xk < endRange; xk++) + { + for(int yk = startRange; yk < endRange; yk++) + { + int xkabs = xk + kernelWidth/2; + int ykabs = yk + kernelWidth/2; + size_t imgindex = image->width * (x+xk) + (y+yk); + if(imgindex < 0 || imgindex >= image->width * image->height){ + temp[kernelWidth * xkabs + ykabs].x = 0.0f; + temp[kernelWidth * xkabs + ykabs].y = 0.0f; + temp[kernelWidth * xkabs + ykabs].z = 0.0f; + temp[kernelWidth * xkabs + ykabs].w = 0.0f; + } else { + temp[kernelWidth * xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f * kernel[kernelWidth * xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].y = ((float)pixels[imgindex].g)/255.0f * kernel[kernelWidth * xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].z = ((float)pixels[imgindex].b)/255.0f * kernel[kernelWidth * xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].w = ((float)pixels[imgindex].a)/255.0f * kernel[kernelWidth * xkabs + ykabs]; + } + } + } + + for(int i = 0; i < kernelSize; i++) + { + rRes += temp[i].x; + gRes += temp[i].y; + bRes += temp[i].z; + aRes += temp[i].w; + } + + if(rRes < 0.0f) + { + rRes = 0.0f; + } + if(gRes < 0.0f) + { + gRes = 0.0f; + } + if(bRes < 0.0f) + { + bRes = 0.0f; + } + + if(rRes > 1.0f) + { + rRes = 1.0f; + } + if(gRes > 1.0f) + { + gRes = 1.0f; + } + if(bRes > 1.0f) + { + bRes = 1.0f; + } + + imageCopy2[image->width * (x) + (y)].x = rRes; + imageCopy2[image->width * (x) + (y)].y = gRes; + imageCopy2[image->width * (x) + (y)].z = bRes; + imageCopy2[image->width * (x) + (y)].w = aRes; + + rRes = 0.0f; + gRes = 0.0f; + bRes = 0.0f; + aRes = 0.0f; + + for(int i = 0; i < kernelSize; i++) + { + temp[i].x = 0.0f; + temp[i].y = 0.0f; + temp[i].z = 0.0f; + temp[i].w = 0.0f; + } + } + } + + for (int i = 0; i < (image->width) * (image->height); i++) + { + float alpha = (float)imageCopy2[i].w; + pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f); + pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f); + pixels[i].b = (unsigned char)((imageCopy2[i].z)*255.0f); + pixels[i].a = (unsigned char)((alpha)*255.0f); + // printf("pixels[%d] = %d", i, pixels[i].r); + } + + + int format = image->format; + RL_FREE(image->data); + RL_FREE(imageCopy2); + RL_FREE(temp); + + image->data = pixels; + image->format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; + ImageFormat(image, format); +} + // Generate all mipmap levels for a provided image // NOTE 1: Supports POT and NPOT images // NOTE 2: image.data is scaled to include mipmap levels From f6de0358e137625e12f60b26c794cc05f09999e4 Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Sat, 18 Nov 2023 16:06:19 -0300 Subject: [PATCH 005/790] Disable unused miniaudio features (#3544) * Disable unused miniaudio features * Fix mistakes --- src/raudio.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/raudio.c b/src/raudio.c index e38e51e6c..c321aa501 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -167,6 +167,10 @@ typedef struct tagBITMAPINFOHEADER { #define MA_NO_WAV #define MA_NO_FLAC #define MA_NO_MP3 +#define MA_NO_RESOURCE_MANAGER +#define MA_NO_NODE_GRAPH +#define MA_NO_ENGINE +#define MA_NO_GENERATION // Threading model: Default: [0] COINIT_MULTITHREADED: COM calls objects on any thread (free threading) #define MA_COINIT_VALUE 2 // [2] COINIT_APARTMENTTHREADED: Each object has its own thread (apartment model) From 0137efde7a20903ce50fbd8a796dc92c77cb2c39 Mon Sep 17 00:00:00 2001 From: MrScautHD <65916181+MrScautHD@users.noreply.github.com> Date: Sat, 18 Nov 2023 20:07:30 +0100 Subject: [PATCH 006/790] Expanding Possibilities: Integrating Additional glTF / GLB Data Formats for Enhanced 3D Experiences (#3546) * Add more gltf data formats * Fix forgot to save bone ids * Fix misstake * Fix code format * Removed useless formats --- src/rmodels.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 229d373fc..c191f0ac7 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5155,16 +5155,29 @@ static Model LoadGLTF(const char *fileName) if ((attribute->component_type == cgltf_component_type_r_8u) && (attribute->type == cgltf_type_vec4)) { - // Init raylib mesh bone ids to copy glTF attribute data + // Handle 8-bit unsigned byte, vec4 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); - - // Load 4 components of unsigned char data type into mesh.boneIds - // for cgltf_attribute_type_joints we have: - // - data.meshes[0] (256 vertices) - // - 256 values, provided as cgltf_type_vec4 of bytes (4 byte per joint, stride 4) LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].boneIds) } - else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported, use vec4 u8", fileName); + else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec2)) + { + // Handle 16-bit unsigned short, vec2 format + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 2, unsigned short, model.meshes[meshIndex].boneIds) + } + else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) + { + // Handle 32-bit unsigned int, vec4 format + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned int)); + LOAD_ATTRIBUTE(attribute, 4, unsigned int, model.meshes[meshIndex].boneIds) + } + else if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec2)) + { + // Handle 32-bit float, vec2 format + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(float)); + LOAD_ATTRIBUTE(attribute, 2, float, model.meshes[meshIndex].boneIds) + } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_weights) // WEIGHTS_n (vec4 / u8, u16, f32) { From 67035815aa7dfa7dab350db13b1983a5b970742f Mon Sep 17 00:00:00 2001 From: Gunko Vadim Date: Sun, 19 Nov 2023 00:08:08 +0500 Subject: [PATCH 007/790] Update pascal binding.md (#3548) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index ab1bf6faa..6ae569bcc 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -53,7 +53,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings | | raylib-ocaml | **4.5** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | | TurboRaylib | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | -| Ray4Laz | **4.5** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz | +| Ray4Laz | **5.0** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz | | Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal | | pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib | | raylib-python-cffi | 4.2 | [Python](https://www.python.org/) | EPL-2.0 | https://github.com/electronstudio/raylib-python-cffi | From eccfaa5fcfca544f19e5b3b7c87da45cedeb5061 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sat, 18 Nov 2023 13:08:45 -0600 Subject: [PATCH 008/790] BINDINGS: Update raylib-cpp support to raylib 5.0 (#3551) [raylib-cpp](https://github.com/RobLoach/raylib-cpp) supports raylib 5.0. --- BINDINGS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 6ae569bcc..8b0ef96e7 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -6,7 +6,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | name | raylib version | language | license | repo | |:------------------:|:---------------:|:---------:|:----------:|-----------------------------------------------------------| -| raylib | **4.5** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | +| raylib | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | | raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo | | Raylib-cs | **4.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | | Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo | @@ -88,7 +88,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. | name | raylib version | language | license | repo | |:------------------:|:-------------: | :--------:|:-------:|:-------------------------------------------------------------| -| raylib-cpp | **4.5** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | https://github.com/robloach/raylib-cpp | +| raylib-cpp | **5.0** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | https://github.com/robloach/raylib-cpp | | claylib | **4.5** | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | ### Older or Unmaintained Language Bindings From a91ebb75170780e28351226e11d34d347819fbc6 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 18 Nov 2023 20:12:08 +0100 Subject: [PATCH 009/790] Update BINDINGS.md --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 8b0ef96e7..50fc90ddc 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -29,7 +29,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib for Pascal | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib | | raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | | raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile | -| gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | MIT | https://github.com/ArnautDaniel/gforth-raylib | +| gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | **???** | https://github.com/ArnautDaniel/gforth-raylib | | h-raylib | **4.6-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | | raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx | | hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib | From ee9b44245fe6c36fc6d657fc4a5e5e6a92258755 Mon Sep 17 00:00:00 2001 From: Auz Date: Sun, 19 Nov 2023 03:01:10 -0700 Subject: [PATCH 010/790] Update BINDINGS.md for Raylib.nelua (#3552) Bumped version number and updated the link for Raylib.nelua --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 50fc90ddc..d0dbf6fdf 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -43,7 +43,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylua | 4.0 | [Lua](http://www.lua.org/) | MIT | https://github.com/Rabios/raylua | | raylib-matte | 4.6-dev | [Matte](https://github.com/jcorks/matte/) | MIT | https://github.com/jcorks/raylib-matte | | nelua-raylib | 4.0 | [nelua](https://nelua.io/) | MIT | https://github.com/AKDev21/nelua-raylib | -| Raylib.nelua | **4.5** | [nelua](https://nelua.io/) | Zlib | https://github.com/Its-Kenta/Raylib-Nelua | +| Raylib.nelua | **5.0** | [nelua](https://nelua.io/) | Zlib | https://github.com/AuzFox/Raylib.nelua | | NimraylibNow! | 4.2 | [Nim](https://nim-lang.org/) | MIT | https://github.com/greenfork/nimraylib_now | | raylib-bindings | **4.5** | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings | | raylib-Forever | auto | [Nim](https://nim-lang.org/) | ? | https://github.com/Guevara-chan/Raylib-Forever | From 7e60227720515143712e1df9e78e7a6ecfc46169 Mon Sep 17 00:00:00 2001 From: Dmitry Matveyev Date: Sun, 19 Nov 2023 14:11:51 +0400 Subject: [PATCH 011/790] Update BINDINGS.md for Janet (#3553) This PR updates the bindings https://github.com/janet-lang/jaylib/pull/54 --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index d0dbf6fdf..5abe9c164 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -33,7 +33,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | h-raylib | **4.6-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | | raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx | | hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib | -| jaylib | 4.5 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib | +| jaylib | 5.0 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib | | jaylib | **4.5** | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | https://github.com/electronstudio/jaylib/ | | raylib-j | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | https://github.com/CreedVI/Raylib-J | | raylib.jl | 4.2 | [Julia](https://julialang.org/) | Zlib | https://github.com/irishgreencitrus/raylib.jl | From ce26e26177eb886c4fec16a51581f4611b8a069f Mon Sep 17 00:00:00 2001 From: Sergey Zapunidi Date: Mon, 20 Nov 2023 22:49:58 +0300 Subject: [PATCH 012/790] Added missing textures_image_kernel example in web makefile (#3555) * Added missing textures_image_kernel example in web makefile * Added missing --preload-file for textures_image_kernel --------- Co-authored-by: zap --- examples/Makefile.Web | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/Makefile.Web b/examples/Makefile.Web index aa42d722e..a3c2bb729 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -396,6 +396,7 @@ TEXTURES = \ textures/textures_gif_player \ textures/textures_image_drawing \ textures/textures_image_generation \ + textures/textures_image_kernel \ textures/textures_image_loading \ textures/textures_image_processing \ textures/textures_image_rotate \ @@ -702,6 +703,10 @@ textures/textures_image_drawing: textures/textures_image_drawing.c textures/textures_image_generation: textures/textures_image_generation.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 + +textures/textures_image_kernel: textures/textures_image_kernel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cat.png@resources/cat.png textures/textures_image_loading: textures/textures_image_loading.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ From 994c4f4bdf1f47f706447724b813c9304a66fb16 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 20 Nov 2023 23:21:04 +0100 Subject: [PATCH 013/790] Update rcore_desktop_sdl.c --- src/platforms/rcore_desktop_sdl.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 7836828f8..0d3b091fe 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -48,14 +48,13 @@ * **********************************************************************************************/ -#include "SDL.h" // SDL base library (window/rendered, input, timming... functionality) -#ifdef GRAPHICS_API_OPENGL_ES2 -// I suspect that the gles2 version of the SDL header should be used -// but the compilation fails if we do. Not including anything appears -// to work fine. -//#include "SDL_opengles2.h" +#include "SDL.h" // SDL base library (window/rendered, input, timming... functionality) + +#if defined(GRAPHICS_API_OPENGL_ES2) + // It seems it does not need to be included to work + //#include "SDL_opengles2.h" #else -#include "SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) + #include "SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) #endif //---------------------------------------------------------------------------------- From 299cd9b8305a2043c1d4934b1b1c574a204608d0 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 Nov 2023 00:14:42 +0100 Subject: [PATCH 014/790] Update rcore.c --- src/rcore.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index 45398891b..a85b0971f 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2623,8 +2623,9 @@ void PlayAutomationEvent(AutomationEvent event) { CORE.Input.Gamepad.axisState[event.params[0]][event.params[1]] = ((float)event.params[2]/32768.0f); } break; + #if defined(SUPPORT_GESTURES_SYSTEM) case INPUT_GESTURE: GESTURES.current = event.params[0]; break; // param[0]: gesture (enum Gesture) -> rgestures.h: GESTURES.current - + #endif // Window event case WINDOW_CLOSE: CORE.Window.shouldClose = true; break; case WINDOW_MAXIMIZE: MaximizeWindow(); break; @@ -2632,11 +2633,13 @@ void PlayAutomationEvent(AutomationEvent event) case WINDOW_RESIZE: SetWindowSize(event.params[0], event.params[1]); break; // Custom event + #if defined(SUPPORT_SCREEN_CAPTURE) case ACTION_TAKE_SCREENSHOT: { TakeScreenshot(TextFormat("screenshot%03i.png", screenshotCounter)); screenshotCounter++; } break; + #endif case ACTION_SETTARGETFPS: SetTargetFPS(event.params[0]); break; default: break; } @@ -3507,6 +3510,7 @@ static void RecordAutomationEvent(void) } //------------------------------------------------------------------------------------- +#if defined(SUPPORT_GESTURES_SYSTEM) // Gestures input currentEventList->events recording //------------------------------------------------------------------------------------- if (GESTURES.current != GESTURE_NONE) @@ -3524,6 +3528,7 @@ static void RecordAutomationEvent(void) if (currentEventList->count == currentEventList->capacity) return; // Security check } //------------------------------------------------------------------------------------- +#endif // Window events recording //------------------------------------------------------------------------------------- From d409df0b61dc43fca273e2c75de353d2079664ac Mon Sep 17 00:00:00 2001 From: Steven Schveighoffer Date: Tue, 21 Nov 2023 10:58:08 -0500 Subject: [PATCH 015/790] Update raylib-d binding (#3561) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 5abe9c164..183550a22 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -20,7 +20,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | | bindbc-raylib3 | **4.5** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | | dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | -| raylib-d | **4.5** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | +| raylib-d | **5.0** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | | dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib | | rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex | | raylib-factor | **4.5** | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | From b13f97575bc3e9d1f2fae5878624030f8eb6248d Mon Sep 17 00:00:00 2001 From: "Jorge A. Gomes" Date: Tue, 21 Nov 2023 13:02:09 -0300 Subject: [PATCH 016/790] Updated BINDINGS -> Python raylib-py v5.0.0beta1 (#3557) Co-authored-by: Jorge A. Gomes --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 183550a22..d197fcf56 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -58,7 +58,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib | | raylib-python-cffi | 4.2 | [Python](https://www.python.org/) | EPL-2.0 | https://github.com/electronstudio/raylib-python-cffi | | raylibpyctbg | **4.5** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylibpyctbg | -| raylib-py | **4.5** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylib-py | +| raylib-py | **5.0b1** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylib-py | | raylib-python-ctypes | 4.6-dev | [Python](https://www.python.org/) | MIT | https://github.com/sDos280/raylib-python-ctypes | | raylib-pkpy-bindings | 4.6-dev | [pocketpy](https://pocketpy.dev/) | MIT | https://github.com/blueloveTH/pkpy-bindings | | raylib-php | **4.5** | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/joseph-montanez/raylib-php | From 664d22967c00a118941d1826884e5d93c979def4 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Wed, 22 Nov 2023 07:29:09 +1030 Subject: [PATCH 017/790] Update bindings for SmallBASIC (#3562) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index d197fcf56..eacfe78ad 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -70,7 +70,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | racket-raylib | 4.0 | [Racket](https://racket-lang.org/) | MIT/Apache-2.0 | https://github.com/eutro/racket-raylib | | raylib-swift | 4.0 | [Swift](https://swift.org/) | MIT | https://github.com/STREGAsGate/Raylib | | raylib-scopes | auto | [Scopes](http://scopes.rocks) | MIT | https://github.com/salotz/raylib-scopes | -| raylib-smallBasic | 4.1-dev | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib | +| raylib-SmallBASIC | 5.0 | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib | | raylib-umka | **4.5** | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka | | raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | | raylib-vapi | 4.2 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | From b122270aa37f61a5e2adb8c2eab3ca572ce0176e Mon Sep 17 00:00:00 2001 From: Steven Schveighoffer Date: Tue, 21 Nov 2023 16:47:52 -0500 Subject: [PATCH 018/790] Fix version info in rlgl.h (#3558) --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index 6cf9c7e99..2c5c3e3f3 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1,6 +1,6 @@ /********************************************************************************************** * -* rlgl v4.5 - A multi-OpenGL abstraction layer with an immediate-mode style API +* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API * * DESCRIPTION: * An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) From a3a73b9332d0ca0d7ec81044edce31dd13d7c916 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 Nov 2023 22:55:47 +0100 Subject: [PATCH 019/790] REVIEWED: `textures_image_kernel` #3556 Added screenshot --- examples/textures/textures_image_kernel.c | 61 ++++++++++---------- examples/textures/textures_image_kernel.png | Bin 0 -> 1053394 bytes 2 files changed, 32 insertions(+), 29 deletions(-) create mode 100644 examples/textures/textures_image_kernel.png diff --git a/examples/textures/textures_image_kernel.c b/examples/textures/textures_image_kernel.c index cbc75e18e..9944ac791 100644 --- a/examples/textures/textures_image_kernel.c +++ b/examples/textures/textures_image_kernel.c @@ -18,19 +18,14 @@ //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ -void normalizeKernel(float *kernel, int size){ +void NormalizeKernel(float *kernel, int size) +{ float sum = 0.0f; - for(int i = 0; i < size; i++) - { - sum += kernel[i]; - } + for (int i = 0; i < size; i++) sum += kernel[i]; - if(sum != 0.0f) + if (sum != 0.0f) { - for(int i = 0; i < size; i++) - { - kernel[i] /= sum; - } + for (int i = 0; i < size; i++) kernel[i] /= sum; } } @@ -38,29 +33,31 @@ int main(void) { // Initialization //-------------------------------------------------------------------------------------- - - Image image = LoadImage("resources/cat.png"); // Loaded in CPU memory (RAM) - const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - image convolution"); + + Image image = LoadImage("resources/cat.png"); // Loaded in CPU memory (RAM) - float gaussiankernel[] = {1.0, 2.0, 1.0, - 2.0, 4.0, 2.0, - 1.0, 2.0, 1.0}; + float gaussiankernel[] = { + 1.0f, 2.0f, 1.0f, + 2.0f, 4.0f, 2.0f, + 1.0f, 2.0f, 1.0f }; - float sobelkernel[] = {1.0, 0.0, -1.0, - 2.0, 0.0, -2.0, - 1.0, 0.0, -1.0}; + float sobelkernel[] = { + 1.0f, 0.0f, -1.0f, + 2.0f, 0.0f, -2.0f, + 1.0f, 0.0f, -1.0f }; - float sharpenkernel[] = {0.0, -1.0, 0.0, - -1.0, 5.0, -1.0, - 0.0, -1.0, 0.0}; + float sharpenkernel[] = { + 0.0f, -1.0f, 0.0f, + -1.0f, 5.0f, -1.0f, + 0.0f, -1.0f, 0.0f }; - normalizeKernel(gaussiankernel, 9); - normalizeKernel(sharpenkernel, 9); - normalizeKernel(sobelkernel, 9); + NormalizeKernel(gaussiankernel, 9); + NormalizeKernel(sharpenkernel, 9); + NormalizeKernel(sobelkernel, 9); Image catSharpend = ImageCopy(image); ImageKernelConvolution(&catSharpend, sharpenkernel, 9); @@ -69,7 +66,8 @@ int main(void) ImageKernelConvolution(&catSobel, sobelkernel, 9); Image catGaussian = ImageCopy(image); - for(int i = 0; i < 6; i++) + + for (int i = 0; i < 6; i++) { ImageKernelConvolution(&catGaussian, gaussiankernel, 9); } @@ -78,11 +76,16 @@ int main(void) ImageCrop(&catGaussian, (Rectangle){ 0, 0, (float)200, (float)450 }); ImageCrop(&catSobel, (Rectangle){ 0, 0, (float)200, (float)450 }); ImageCrop(&catSharpend, (Rectangle){ 0, 0, (float)200, (float)450 }); - Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) + + // Images converted to texture, GPU memory (VRAM) + Texture2D texture = LoadTextureFromImage(image); Texture2D catSharpendTexture = LoadTextureFromImage(catSharpend); Texture2D catSobelTexture = LoadTextureFromImage(catSobel); Texture2D catGaussianTexture = LoadTextureFromImage(catGaussian); - UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM + + // Once images have been converted to texture and uploaded to VRAM, + // they can be unloaded from RAM + UnloadImage(image); UnloadImage(catGaussian); UnloadImage(catSobel); UnloadImage(catSharpend); @@ -115,7 +118,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading + UnloadTexture(texture); UnloadTexture(catGaussianTexture); UnloadTexture(catSobelTexture); UnloadTexture(catSharpendTexture); diff --git a/examples/textures/textures_image_kernel.png b/examples/textures/textures_image_kernel.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb36d128fe9c34a410cd61fcc8dfaafd1a19054 GIT binary patch literal 1053394 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

3`TNf&Y8`?#|0Dk zn!-!%>`K!_PE`oW=$Pu3l}*q8TIG9Ot5Dd5CJ+TUfI^F6|6cwC`msmX3Gnh(YZ- zE@@BILLQsaz1Go%y%ze4qgzd-D?_1NXDYZ92Z^u#TfKbs595g$A%^!YI@p2}OB~Gh zBZiFUm=aAhrA@>{GBAxRQVmQ$!5+}Jn@3;g<%C7AmyQ;Z;BO8mfWQre#hF{+OSj)4 zySl3(&&_e@s~FBJf2sbFG^8;mWp4I3UgJ7-G+U$G9V|D^3sVtIX)3Nq9`x2B-}XVx zglr#2FG^@$ql#DPY6EL4ATBD2f>XLHNUlfl@wpbq|5#{sj5-)Va@so!#Rrk%*OBaK zJ;brAY}Q8{9{h1v4dwAQcIS?Xsc*J*vzNwM_(CGCB4ze$&o?(bB4WkGr5t1;O+dYv ze*+XyDY71hSM8Xyz>?5m-Ag`sTGat~TM1>OvlN3D#NA#{=u?Kl(`d?95A1;fW@*T) zQ!)jkb1QkZA}D0*Q?l1Ne`0yNA1CJ$vT}6}7jRE&v;w<433`>Yjf%;}UF1!ek#r&SsuQHOX_ex6CoOzn(sh2LhRF~r^Xm{6^BaM6R=rp5#0DBjhF$B zqrl2qB=`1SX#9^?MY5VmbH+X>5VzO6YL;2Pc=r4v!t7j?@3Ggi?(Fe^^atPV(wU76 z$0*ybdUbWM!A2>B}`sK2K0SGmno;v1Y|8R9nJYY48+qDw11(9ykc z04N@=Ci+sSy{$Wr0HED8;Qi;dU2*q8GV5|6K(xz4RVO7y0Fn?1F<@()(JDd-y zzpscdz|+sG;P^VQ(6tr_y)#8NkSEdSecyzheC%Gg3yUK?j#hSR_spp^bhkD$kHz!Qwe$aq+)wty z25UXB(=E9P@wkxYM6Xs~_(b!sBJT3kq8h+`*L+LM76mEqO;~>7bG%D>yz^%69hNsp zOWr}|Vrx5dEaKkY4vms8ei>aZoH44i$6l^A!v0E+Ko2w;a~jt`|6i%?2nUR>(r?`| zNUmc=!Q;!8&Ws`9?@!Ir<3ApxFVHweU!PbksZ_Abb^YeKo7It8B5SL0qBIPj{|);! zhMSepn+lkIS1mTLLVz8gxSpDs@@pHV4W<=gu)IlScsbCTigR&HOO0h3DRRF3VE^`} zIqFd^c3AaUh+pr~3Ffn<4vva{^yDS>!ei(- z!nP3l)At1x9|1e^Q-vX%EJuOadFppZKfnHahVtzOGEbX1u4|q%{MbU;rQ0kKmFFJlE?2zdjjStDKMx0nX?cCOt-p178|T6V&a&B}=lGf7Do-a-wfN_l{e zbrS3HrI`yReW}^rF-H#OvrNsNE&7v zQq-Q!ni^X4 z+o<(-T=h}1a&iwLfwqwA#97-+7Dtzr>Zy)1Q_Ph${`)zmDm%+1&nSVht_}+`)5)1G1qs$W3sN)ollTvTUmdcCMDVo-B1r#ociSR3>^oc)umjL9+aEImc~| z(h3l8y(P5dfv!v4Q^HR#*!5W{q4{u7>~T`}sR(j$S{U~Jo#~;kx+VLFIv)q6&8o;E zkh5s@9JrZ@kQW5Qe->B=un|Zhb(m$+J^cjl2;Y}Wo?r68TBlc|V`h9GRsN$6Cbkx5 zF**N`O19xGBJWUdF(KsRj9T{#4bX^KPcT?cv8^H4ULzLxk-ozYD0v|q+DkN)LboVI zOAkL6j5pY(zejIsd4uC=)?n^b>R2_LdjoWy&<)zgF7H^!JOm;xM*5{BXF66#vf*d01 zD6pq88V=da3`uBXdcB#qp(S-5s4IBa>c(5i^;^eqpFdvI(`qL7h+yC^Ug|nAtnao& zbb)=fcY+-cW{;89Jf#wH?UIRyC!SskL@ffH&@;Q>hr5-Zqt(fU4u3R6Nml&dy@vcc z3t0`rV~whCxk3NPj!p8j7W_VF14htnO2BrXGe8gA@`3enKUne3Ss=i)5*mBSsq|vR zJEkX~7OPNF0``PZ1!m}w5N9u3_4+OnW4BZzm-bgxq=5O4ut=bwynZS>7gkm2Fy zilI3-a!i$y{-DqZ-C~3pnxOwixnh;%5cK|7W@a@jKBNj7)bWZIk-Aq+4dA?N!$k!A zv2u@g>y{z-Op9@4#p~&@}-&m*?hyH^Jpg4Kw@224pf z;GG92RL;Z#+c~pL99|ZqHwSv&^%2k4`zSlau(R_efa^&G@F5~9>1B%o4{Ze^vWEM zES+!>uo?U_@7%BfeKA~Y&5c>iSz)aS@h8uxW@^bICR-Il&bM28OokmKZg*x0h88M= z9WxZWZR?2*1$2j5Cy04~H%axF9kj%+RF}fxlo`+lBEnaee!llO$0AmYG!m4Y0yo0_ zn|TOinu#8$Hiip&o}l{GVT94y@lP#i^s$%pmuR%e2TmId#P+R{|0-7(!!58&0Qa^M z2zL_vy9IAYvK$qJZ7NJ|^n7R`5A4(S#*(>7=tw|bwxQ_sVtvKESMBs+c?{PaHdKdp zZQ~hD)(SL4#Gy(`F3YHhVkchK_4gI&)g}`aFBNdZKnnQyXLH6wG_nkNy91<9QvgrQ z9!cb1Mf`hQT<)_wTsl~|;+p7X%eWic=Paw2=@8;mXWLZs*(pyII_|t$vcZN)z^mrF zu0Zaq5xjP(7#dKReEK}1nA(y)^z;O~5OmA*_7LXx)JQhd{WdkwKj&AoPa0RZD5#>H zg=P6#f{#ZExPJkxwvZ#8pppu1zx8_cIc_^K!N}Wy(Wo%a@kz zXae3Bf$#9k>$e*EBQddJbE?Kd@{V6-7m%IyozV)io3O*!qZD`|hHyM%xbM)D3FhMp zO_rsS%i2Ie^cUh6IHm8{Uk+TopR45+D)AM|D#3$pnpe40qgYB-wKBf0f>gVnJd!3)(Q7d#-rp!s!!rs5GS=*{obQvroL*JMN{~PeiBEq{ zljDzY5;B1T$Xf-t7e?7PpKU$F8PMpEW(>aLEqj)M;{;A_?*w#87~y0i8=^;}ZpF-m zvGCsx<5jy=zDG&Udm^Yf^Ep$2}F{ z-)v8u(_@7VdFEZsb(@X?XeIe0_e@DgI$W;HQ(s>5B9glNn)n|aAH8Z5j_q3#` zw_>?Pp_0WZ{%e-l)&-BH!X8})Xw6O|T(c3+OMY5U*xEwk zUDTkV2wEhq<~IMFBTzOOLvD|0(0EZ2xzL;3MIjY}lVd%03ejflth!+Nj~dAn`d0Lk zR19Vh5VCT9flt0NhkS?uvx}U%Qw~eG8~K)^*+rgdk{z{-_TE0Josy)_TKa` zG#RSq6f1y4md})FJ;$ z41HWzt5EOEn`oXngJ`;+Ze)5f#(zAygzhLTMz6$fLDWp~oB3Lqbinf9WqW$!_^s%P z-+iDYJ>MGYC*oI5m7y?<@1p4tR1PP&;ktoOpUH(RsNyW#({QetF0JLNcV0O|JXkn4 zlS_)PpF+{uZ)SDVo5xuqxOAyhZG*k>$5`GhB|j^?Cw!v)IjK9pz6E$3)Yo&S5q;6% zLvM%uH`XH$50?UOi^PeEx*}bIJ)|i+B_92}OAwodtY^8eo4m*k=z@EG?85%cpaCb! zSw3|S8y~VlaRQzfV-rD`VFhXSTTa>I`E-1Cj7xMs;%f;L;I|t^5ucsC$H-Y_CPk%N z$gl}Pnu~%(8`vL#x?g63f3+3~rZ)b)^&B_K-*FL8jv`$V< zK@xMtJ)i4J^!l6P4D_p8HoR*xl#uP8+-_2D*I;5!Xc<7aH80u1`HzEX+@PZ;pAA2x zx8DZFuLFCY_#{pc>MHf$vZ_vu67~pmBFhhbwNW$$g=4?27_+^7rcjgm1(4T+V9km! z3=}+?rzvR9N>vq`KwO#8!Q}FugZ#)yS@r97mm{F zemPsQdSQ0DTIY_J2@X;2Q-8p^KcrFC=_xCR`shigdW!@{QOQw9Yma&d_x;{cfFXdI zO6wFeJxkK{DQ!+=58RxO5LY??(`ncTdu5LPgxpnU;+D9-U&BYnnVQn<5YDy(7aK_1 zz0gC*GKQ;w*I7+} z2oq6u!Q<&{_eG5)n+eY7R_waBpp0C0Rn=t@)MEh$K5}zOsS8cxF>gDZYIq}1>S+$| ze~w3@&8)MO)9sC@s#h&r ztY%iM9-!6T4D8IlM|zaa6nPvqSFrd8G5Sphrl4M>JalF>p<~T2>Azo%eZqj;iv-VB z^i)wbI+CT47e-pH%{qc4+L&uavCGbyvzJ%<@I=3<)0t`%doxM?MK!^Oj3Q*RQ9pfp z+)hel@(+fto+tWJt+Ggx>ZPw}3d2SKo@Cah?!($W*{DEPXIqVG2 zp)}V!+m})*iYejpNNlbu427)W(f6o7O$ph%YXPoe5z=gTh&2Jbz3>s!x2B})Es>VZ z&5b9f*MHZ;r?*$w?YG~z3O?6{l0E%x)6Y=a9pLXK@_kEEcp0xbf2k)iRrIa;b5#4u zk>vi<7W_h_J>BFFnB#W1F2-6KIg34Fkb~i*cWel%qmuXArpPgHoyyD)lmxfmEZPu~9rYq=T}% z)5*m4UFu`qik4%is7CXpe)ZL2rPNL0t9M6A)@3P??%iP3ef`H9sAb0UHhi3+gw<0r zTf?M(zKNx}liaNxIjwEC=+@0QSsb(PVz$YYdIBG|x0pH6F*&JZR`sy&eS_|Of~k7v zr8Vn=BxATB{@K=?HE%Pq^hK-GoHcKqP|^ECKF|qU8FKB7(gqiSwu=dm*}>UL;>jDS zdVVJK$L2rX`gML+i%oG~+fdp;PKs~LUudyn23p*80YAD_Nb$H&OcZBmjy8aQb)=*< zWhT9_m-IuOGkydf&*sFY)s!AENsxG$U>A)1$bRN}6&p@ySd!_?&c6LIF@oiiOl0uT z1mzfIqDr$fW?V_%sbi^rUujz48B~e35w-?0yzZ)ZfP}Pfd*n~=qO>SvK-KFdGfS7; zf6G`zHRK=c$HO-SMVT*;!V*eVO4b3kX@mpTdGM7ZkMBflr@Pkcl@w}#KRwzO{p2=;Yu|m z7BXA|#=&#o(6G2q&Y9A8*KbzM|HUJ=%}YK16A8E(LEbK+Y>oN9n;w_4 z#m|oYSp?m3t|jNMi6xxhfpKX(Bj{%lbbvp{aoZ$u{Uh;MFWquFtlDJ2sO&Vk?3tnP zmfa%RU@Y;;S5K&2?d=-mPvwXPYcV{RC>XXJI69!X6QnNnE&DD3}1U@Geq^f$O zK*!_+_()R==d+s#O>>niqn@EU(C z4Qh|YobD8fO>+sQ4#*x>1hD6O<{Gy8M&uD?X{3{t zR?m{|*!T9u5L|Ct)Ts5fSBFZ*Z{SS03fz;qxNaLJUmzDc$AD2 zJq@jw&{+dxc0IfcJk$yQ_>cm+nSj}bvtY>Izp1Q$tKmxj82JDdZ6v6Nd}Z<7?y9DdvU^wu8O9s_w!rD=xV#`SD^|l zN4v8JSga1~k_fS`9NjIIP+L?5@G)S9U4FS=PhrrPYad3)9!PFi%oE*sZIAJ->;+de zaX1yglzpk8c%AxgEVw%RG`E=k_I7v71U;m5lvb{lMsZm|c`Q>2RzcnfO2M~Qsbjyr zhzB`hFm~M>;C7)@_RC?0V0USXnXlJNw7VZcFj_G^-ssG;8lXa+xhi#k^xv|Fik>hk z7GZjlJa@tRP9~46WFC8>M9CNhJ22OR);}YA1!Hc4-{+|A&u`t{g`y0X>DPGo^-AI) zR^bORarLftmJQ;6n}rlytFC^8+to?h&fpVx4cxYZVxk zpY7F(i_IcPWMC@%KfR-p$YKh#SSu!G9}bR2Jnw%jwl^lHR;SsxZ_Sopo_I zIf*2CYQef2Z<7w*HgTqh(8V2S7Z6s|8-^hJCumL^%qkoI#`fFAt$us{S1fo4YLn$*jr4}rO>v<C2 z7MjJ6Lz~Co(ssJ|5xl}vP@hf`mDE^aDy=@)3yJh=st-IK3)|O5e2xYRT4zt-Prv?P zGz`u9ESB$aqr7A0gV6mS91@m*;aBt~uffk$c_EH$cPvXnef2oS`ALN9Pwdez*RR0^ zI|8u7ST(vB=MR}pak8q6tM48$lf{MWVo^E7p`WKT2#+b{MT0uBx|w;Rw@-CD9i8cU zoRAGU+)Y~`d<#>z|@ie;l_K4Fz^mVDX=)*>! zCvi`eBOWx`q7{SniR4;KC^Uh%3(qwa+pFCF2Tj&~yweY@3=D(Uzm$R(+v$NuRlIUW zMfYeUv*Ut!iu_R@s%j|gd^(;`vQN5&#amj7S}effpWULl&+pc!2cmx2UILvUAowzJ zGA;((bmO$NIRvj#hD{wNmA~8G98|Atx6y}<(twp~rXtkE$rk^RpZjR$mE zw<*$MiH`pbyDpPBmA#!NQ+gFE9KJn1>9yHCyVYdr}mvcLo}wTUL3%y zU_w~$l?krnlG9}jmH&5xZWTd4l4dj9`fJp-mpnnuUS#G}l9e^3)SLj7{(V~%vl?QP ztVQyp3ZH(D{qlWuff3Yd0_zn^o#({9_Ftxgx+YWg*1Q` zY|P&TbPRw8E$4j4R&bV)oX$W-TVhk=Lq)rMmvNk5QEGJror|SBN z4)S`92z$I3q7l?MHMY;V~T}~XK62BV;^p$8^nG7I5^ zBlmz_SN^@FWe+F=6)9xLvKnw|Oh&Y(fFA+3ERAwY)&7ux6IvC9Gi>pfDb3E>8O6ds zyWloA(4De9j#T)O_%2ir^<%^UFXc5N^=m0$;3_#z`Od)EVHvaFZTT}Gu<0nd5UA?= zM(I}}N<>6~x*MNF6>n6mx<#zEA?L42CAb=v!kK#|`=8Xvy`t~HyGa#pnSYbYd*uvU z87>Vul*)Cw3Q^#&2Sp+Qc&Jd*%a2j#os2>M1^TZlRq5{#A&CUpP^{nV^A4eE3nk0$! z6$&rUjE~`}?3*SO@jil*Q$RlQh8^=4x^RL4``qBnt-^(WamCu_E)q(+UXZ$~+dw`3 zEKTn@bm)x$*|*M*H-{4i#i|LZrwCH`niC4$xcV&u_4eqgkrM>}S~DOUX=iT_rapw5 z3LXfXqxh6>@6NDjMX1Ta(3;9tBjbN)6GMUI-5ZneTKaXhCD^aPBJ}&VQDpNH(GFun zC{gk|Ey@i(MRKqrz3LRb{!60kq^uQ^@fmk_WT*U1h;x+7{@{XxIWz3z+&mWCrda(^ z&*2EU@UDCes=P?RA#&|DD5xSJ4)#3i(UHM%YLt$pym-i{1rKVx^L94JPpm8BT|r9-liKCJabT|L`EoNJ{& zYByl#?gwK`#jMbFW+#G=#8BSfV%ZE?@3IC^`i8hn<8cu3h?nMvr~HWmliAG~2Pw*g>{uLa&4P5SQO9L${zM_Q@@5gK z(_DjCA~jX6mX4U&UI0etp}3-j211puTE$1bgrPDcS7}MEKWZDL4pec^Aq>H7Ycq%n z^-pdHxMz@%?2zZIE!5$=m*y0yNi`rl(N=83H#Bpg6mH(%4Y6BqJjnasN5V0iVvlCN ztbb|7LG*QiL|1Nz3R3a^ZF-wqdFd-&6{2z3nxcKeSL%;zkBB{ zp_;4Pxr%%@X})$Qua_czi!x%1_Wauq-Ec&R zIcnblx7EI+(Q1(0```5*q=~BM^APBhW1YuEMpes6eZjKE(wZ{*PRVS5 zq{7Yo5%6faotWTFdbS{R*uEO}))6`$mCJzvN5Tgw7%l8X*c(K3SqOnJVirNTqfgSW zrBuJstWL-4wzH&X_i!~ERZkTtZXxe+lLD@7w^25OyIB%E1mZm|l4VTmGOBnSY9*(+ zG}a(_^N6F17;(9ah96D^y?H5Nk2mO5Je)EVzn-P%J96LFi z<|2@wq|cCUsWL<(|N6RX7fRn#j=n8ftTVkDVHF{9^V9kjDYWKmLUdceUy<9$Tv2kU z8-6#g+1a@;Kk8W@@78-+srtbhzty?D_07q&o=^|oG$EKVry?lq30;XOoWnoyj5RSN!i?8^{xFl%{R==oJ$~!l-eQe3lNyB&Z~1E5xkO=Px&? zr(omH0?}6r9n2r(?pu({-cs!#;3=uCBn32xwl=0!n^T=v%Vw8KRft&m1D4Z>UC^g| zyOZlr+qtC>iiWvW(oKaMih6&CHth};Nsj&=va3(U;2d+?+cV!6GgEp}UJzWe<=SuD zK3{l}4d?kEi;!k2@9I1#bE&_u8AZt3_Tz(A)~`gK&PyQgAaign+`LnA|E$Q}NL)Z& zCBZdoi;RK=Cxohxn-Pq2n9F&h7ZA28k!U}z9AW|OQAu+(Xu(`ER6lW!Z&SLj|LGUp zwl&SkL#X>hlwmK>(CC;Z?2?coQCrHsob*F(I%xA9ILV-56zU+%K*Psjr&2K52ge+9 zyn5xeI4G&=E zfkhhPTB2`u4-(1fU({=eHZ)Q$c}5{NV;fL4PxW;bEtHEoPkiApMx4P`%ApZX zv3fw?C1%wGJvYO+SVg>^8~`znQgmbP)q1Y=&SdK1<(#wJXW&PYOO#%ME$S(Wb&hEu zSL`>e<`%2E<&bH+q_Grd4OlNgPew{CL;k3k^uJHZ`RG~uC|x)X^}lfsD8UyaGcu}M z(GLb+Ymh3{cpECBUXgoc6-5F1H>d*@gurvQ;KD1VPxaJt1>E=1136d255na}Q%Pd+ zO64VlYi5%1mvYgzqMDpbAGtn7`RLSJ!qh1-l2t*{UoXuDD!v(XBrO0#7@YNjG>n^f z+nx(uR*9}e*W#()e$XXO#)|p9Jcqu$oHD>41E%`YqSkY!Op#o80s0xnvjP(Ow6QNi zhA`fHg5H|;uL_hLFqfqNhfB7VB`@PdeW~2$CunjpXP+gx$-qYX94~E*((wd7S8l`i zH>Qg937eY9w8X>Gr3Zbnwk7>llz?PH#Y(W^1))N&n2#PH|$ub}-aUiRN_paFa2FZuNxBHMp~! z2bcBG4N^I`aVz9%B@&)|b}X&M%?=E-Ss*;zpW?-ERG}QUtwe4e>wXFqPtNLBmlmpb zra;5L1mpdxP>hImamfmJI8_lVj|{`QS0Bb=UuyH7jGOSUrv-w7X*F|0(A8PQp9L&; zaFbVZntMtBvnA8WtxV3C(x*JA&<^~riBCkcneMcCJ<;ZfXN35lp@+YRKg~AJz;OK8MKkl zDaP9NknfJkCVr5GdQt~dRV-#1#Z|gh6&pfm{N3-UIeOwLOTdkePfxjhPPWEuDDgoG zA+8|_(z_f<^s`bTWc!AbGWDQQi)qS`InvcYD>`z78oXp|!ATurNMp7e*wM)bn8L)F z_ItI|F>c^U4WXL}e7aIg556%o%!(=06Vws-s{-`|Mdnh>mTV1R*P_sKKcCzyfxTt& z)IMI$MfK=_oJ~0FIp<|NBlcoyWK_-;6~f3;m2d%nN~!*dnT<|9GC0T>>LLa=Tt%fa zh6Ubd3h2GKIVxc5dvN5-IdVxEDfrC`K=0Hyc{|!{{Tv0VccjzvXHtQMNlK^1f|A=m z6W{Yb&|-J}OB1n{%YnQX3uFTaROx@}4yQiyWDMRJIZD>2(A->@39AO!Sa%-vr$6L> z6SQs(CtM@(JQm(q109~&?rpC&)zQwPTPJZZ z?ofj}hGY827F*-w-gTLBPqnT48{GnF_-%P7k$4AeZ1QOa^-KHFUEbnr^jFEEJ@rD?tF9)Re1fM zMdJGAI&9DAa~{EM!!Jkv($2bd>hPsQJ?x_tYs34B_oAe))`v-Hk9KudhOz6fPX0}6 z@AimnYFbYS%~03=^+NJEh9qJXI>=vfhsGH&)3P+zB za8LiW26@9xka3#e#Nl4*?}Xo$*Q8#_DiP}Hiw{+Z>iR9j=b*i7?-Qmr9i@CZPmeQP z0PZqKSq^}!k?6Z&>gCTmDkmoYd3c@s#tr>=u~Y&YET$F$Vd{TF1|Mm+3CQ23+O{=z zKy=V^m~_U7zh>N1{Gkpky1OtjNv*F*#P^Eda&m(Js?S!e^}5n7{H~ZGIWiE6Nrm0_ z+F&}o%~n`d=dV~Aqkl_H{GfU6Qf6_UGAlQMcZ=B`C3yS9|WS!Ej9LT$EMD5d!Aq9a@S<`zL`15r@-Tm z5I+Z6;r^7o^?;3a4=)G23(2O(O@xny>cTsDCb<4a<(Scb+OYQiXM%%gj2GFT>D7?F zX>`5OW@p}C2H9L7mduZ*pR0Yf=@gK#OesQ9D~79ZyB_Jcp7*AbW0Sqm^}Owu9c~xM zN`c1^u<4~jaUAcs!#}+bsJWl7Vry0IwU$~FF6C&vfkG=E~I50BE?li;^UBQS~N)qjpBTHMYyyRbZlZWFVBS- z9WgT7#~sOn$?neY(PRS{00ySv53eCsx@Rrh4v*d}E~`wgbQI&XXq(g=7bDJOs5Dmd z_FIDfYw|YYgsVV{m@-N+kK;a25y5GPIHKJdz?+x5j+7ML9Pw&klMg{Io^Xz=Sk7QCys0jla2%XmymGur39M(+Q0zO*tBC9mT6+>ya9A4LiD zPoZPl<#NT2PC3J}KLz~k7mDnw>_NE-0TdyRKH(2AXzElxwT2aXsD#z zQu6(&$TS?~I!eB1ias6=@>bU) zxUbw;TQALJQgqE%^pO~lPS=|V2Mp;nH->tQ2a6hWiiOWd+w}W$Q^^w2Y0DOjdwf*1 z(1_llh)n(E2!x2{fx!3i5X+$rpE#dx@y|Kki(jGt3^vTrcHwy~7`@ zw5C%I`*D04IqHg{e^wEKN~_7;j6WoSv2{d}4izf<4GpOg9;K%MHtm$wAF#4g4rOGs z#yOy5UZE?MUOs2am+EhcN67Bn{d|hEv9Y3F45|Bgt5iwA(2UU{YNX<(lhrNgBs)U! z{m*0?10KASdGQ_0%B&%H4?nJTH@kZo@v4!}djdH8N7Wd*ronlhXr zCl+n*gW@)+0wdJQq)|27(Q?q+6}fZ-IX9y%*lcg!{s6k6@)#*TE^j$c>yd#|YYFOk zDz^WmrnOxpXARhatP0$J@oCsc%hrw5c3xb4tWnCy@8{5usA3~WvB+K;MvaEe)*mC? zy)RcPN~$Eer4Oiz+2eG9hILt;fY#-`$a0aQ-XHl(DMtrz)8B30zR9Y7GG^f#8t*Y#@O)=#Q0= zV>T?#7Q56lu%;i;SpQ@ow&m}fN>Er*MV59GSCfpo*P3Kttik)h;da!N#-Gpf2BWKLhOnBut*F7(#w92A=vKA68 z>DmigX(%p4CReM(eg2+IQy{o)%29p2m=d{_S91|~ScoG&hHWO+Bq;N`7G~%-ZRK7& z7Ueu~R=K`FhcQKh>LC<;bN{NoA&B_rIHJC6+5^xH=U?QDYqc+El3HO`Z>3}xXQ z+MgbHjQ1;rlKCF|uya4)ni`Dye2uua7}mDl1GpZLGYz^cUrML?^vRv&OY`x>KG}kE zLwJ(lf1?k}(D)Y1$v!qSc@8j~&U_J;hA!QfB6=!nWy@>x+6e7+b8`kq&o{RI#QB8~ ztC@yvGi+(5rXzd(l5kES_mU$CzOe%tXwF8N74e>S(IuQljdJitT@unrkqHhK^iItg z($IHFv>@$(Q~7LLh5zyPf7p@n&M$VMj|pG6M@vP1$rqaAY1!TK@M&UE8&54K8eilp zuZuSNJU5xW3>E1wY55tg3*8hKBL(;e7tPFbq`wAr?-;wqE!zdlgX5#MG^to~rko zFVB$4#j24pDIk-vUI+W7wS+u9%j`@S(!{2Ia+Ix_lWTo)LHodY&6scM7u#X_;(!}a z#q|XSe>d?Yd1sDdw=dOzPR<&#=j2_n<%}#4E|KDjxLG;rvE3P#s%dANgu1>tnN2xl zgUf!-~$k7)m<=(!ejv2`&xlL7wG=58s7ZG}3Z6V<#t}i+awLl`@ykhCD*DJ_pf2vXHiJE1wll~(UDe)?R<(Q1Gls|#6zIov7$nFnVh%26 zTL?CISaif=K6;lQ7-A+Fsa|*)!v)Q7S(ROow*(l%MeeAFy6mQkyRs1>gbbs9w(wpY(I z5wc7rG?uLa=Y|iGyAH|inul7afzSIyZlKG+A1nU*2@7#6wB10t&>OJY_mfA_Pij^u zn3{zZe1brk)5a#nCX(C$jI{!ZT6LUBpTW+j}m;NP^1DOD8QRF5G~ z;5yxXqaxG_@e}tTj)+!7staL2&iqc5s=G8Ayl&u$_?)nCz%UM!q!&hSW);7gp zzvqg2MMV8~%`}gBg^EN!g%GH)OK2Ey@A*|3A-d=Z(qX0m7}Pi zr+`N4{8tVJKO+z5z;SmdfBVWgfAnnwIL(hx3mZ6$GGM!3=wA-rg@O22a>WtCZ_pJI zy=~4%W~65P)f(m-j?PXSRQeh^NZOi3m#^0obX&+)_{xM-asI>^pknBZYQFXgg#Aav z>hFOD-HowVmup04jF9F}sD2Iu-SBw`{k1gU9;Jh-LAvWI120B^lLC_IH=U3g0oiYh zsBdQhhqW3p=_!RT+2V1*E?!V;G#OkYn# zg_wwbc02l%kczxL7z%sG+RMR^4vJfIDInNlPUSDdk18Ghu=$F0ncg3e8%q`K#ehk` zn$1~UWx?kuS1dhv2wksOv3qib^z64Oe;hx#75Dl&;To@_U1&382*&S9k$tri>hTwc z=m|2$0(sGx34hD134hPIF-pv;LaM;chSL8v8cR{dHel#~ai#FyvQ)_bz%G*C>if`_ z1L z;PIhDZux0tsaC>YQbkA)_jGKgfAg=P<7Gkrn(|-K#)@P(`3=_-}W< zv|=v=HTmEBR$~|2U72a@=1|l-`GQJ2jUJCvs0MauJNwjK{??8r{L~Tp98mY-`Fhm1 z?rmh=K6-|kTk$tr&odEp_W7;d8KyxADIPCDzSoClB=&eh-oDOE$CdH98Ov|lu6d8E zHNGPc@Lnug>Y;*-y{=JVxrWW2`@DmOUbt6@B=1gvyf-;_8aXXVT>x0jE(EIDNkaGzcpCFGpk{ruZua!EF#W?YD}~4J-VM%xqsGk52R6% zv{S*kcve+Fn~dj$k#t*SlwhijvgO1yTs-eos#>fP#;XdO%}idW(PU|d{fLq%@q649z=j#z!Ilp$!UZ#G0f57cIU^$*%{bJ5pDG|}hHD-fsSxAy!3e< zy0|=LLh)TTx^FE_^lS9PJsg$Q{U%(6@T1w=2Dv0d{$`b>O#^51w5O08&wy+&dKY9J z2rPMqzsfK8qtun21gE5TjkN;Vi3BwrbeFAr*&bu1TCXn5ltzkHQ0krNLkKGN`)k#Jq32m7iQen zF?I@Id*KTjrfTzx0Cf|wB4uRDd^Fq|1%F7CpU6Um8tj#8dYC%A-!76J74pj&icKt0 z1N5!KDB!11^FTbsBBF1(dgnbFCM9G)lXHvqkdzFicZSa9Y(B@EN`q~QtLN3uj$T@vG3c~Ie#CBwHJ$0J4L zQr?TBBGPW(qqHj^2W=t2D&}iNLTh*3WE!D4w6pwns=T+@mG743qT!pv2mjm6@yW^0 zKNpp%qq2M4(?0-G!qw6)rnb2bv=~ExnYL7#~ zQCo0lMiV*sE>!p*&9U*}XQERpUmMjz@5#2Kn?>PospGFmK@Hfey&Gq%&g72H8XXXQ$G z&cGQtq~{uQZ!v#Cnu`6a9VODSk)9@bV3@WxpGQq_UD4zbP`Tf>mTWAu#UU8AS@Tik zA4_p-Gidb+Z`vAtI0*EqCG64S2Pin)s#n6k}sB`C%*8A z9114WT@<$j5S@7n!S{`5!FOpc*eUg(tOsE9W|YgpK2ReEwC55&kcg{T~pLb`6uZ)D`(NC7D=GI^R_ByFGo`Q$`1onztTC5SO141bsVoLO|d^p9Jx6?^-~{uYZG8|?p&{{^t`1pW-X97 z&|(V5sZx01r#zG`{k;|^F_hJiCJPH{fYAWL&H#nj%F~2Ah5G=c)X_gb#;SZdPoeO) zk}Fkpb!vS%uAIDg>p*o^{@wK6fv307j|DeqYD(wPGXu|=$FD`|;ES4_2R$eurxo1d za`iinK$57c%G!2{Z!a!(dCq55E?ym=DL8A!KTH%kh_g%P`>+8QZY+cSF3R%73NQxR_qHWVG|0lDsKhp)_qde(#qNJR!X67Ow&Q$sqk zLqo>^y+j~JAl|?15p9IPvS2Xr%eN>(WE@sa!yi)WIJ@OkP!E1g{nV2*QjkQczR&FJ zkAxa(KX{^hadY;%n$$meTopn6)R{m-<_P38Q0kFD?&S1FOf$OfsSRnh@PCZ2%gFA! zhj=G}{;$EftEn>+knm!KW&If{x?qYnw1+Bg;H6Xbb{_qG21uByJ(Zlz+=BRobXn=? z1j)zQmDkMdgM04haRUMgf-`@1UGj6;bn2C?Xc zrf)iqu|0Lz=um@r5LL#3JgSw3-#nqKs*D1Fkp9PzEP1LIdb!zHCY#N^u9?4)Y3n`q z5izqvMr@|3)oVuvZ8~O%hsi^PiVu*(HR=craa038q=S16GjOIFg|AS8C<@;EZ6ucN zg0hqmCH7Wqw^DmaSLC#E^=G8lCd$j8+WZ&5uV;$C9$irFM2K1yq8&5b^b_XNU3G*0 z#@_#pD;>0N0&K>f9Mg2zBxl^}n}*q*r3m|MC?Zs-fx}QzaN!J4dEzHY8epZ$+{!a4 zWC${JO_Z|%e+g7#1deM{_$rt?|A(KZAm({I{xiz6)GACc{)@WxSUjR%*n`eDoxbB= zPdyuqi2$i(G`6Y12K{I#IZIwV0#98}%U&SP5Cw+IAlp-5bZ>{wV#H~Jy|#%R42^iN zES1mvfy!eu)$?n%Atq09gsX#a&{ke_ieQo^C@l7&dzq8=y%V8KyiyeHV@$LV@5WTL_7Z4y-}%(pb?Z+E_D1CWE`9(mVBO} zR*ScsM$|h6^NP1844#qwPC>s_>i2dCo-*8uX#(@bLWw???1$M0STEUz{Ynm|8G3#p z?x?4AIW^!yXKE*haL5C0G(@#;-07-5)vNtEFym~77MbN^ma(UlKo0o)OFDUsc9$DM zOGbPY4Mt$gx3j-TJtx42sW}-~YCyPJ%nQ#Y(s5Vp*AmP&V_y_`bSaORy&4~0;61fw zKRB%ZvpH+D%NC_Ce`lQRXw-ZY&7v&tM%O8a0J4>h8-5UMDZO4wNKDb;_z2+4Op*pw`c9a=9z|Ab1>7L~Z%*)1aN+%+Tn(Sr)}i3n zQRBuBWzcnXl_Ihzb32k~AB%(h|tv$@mja)c!qgakp z5QkAIrH2AuV;ZaP!In6f?}NO}b+~hCI!xo@TXGr}eu7!RnZ2BOl)Sdf%ki;So`kEm z48kRBG0#~YkD*~rXn7P)3&`YlaC6^tvz!2%p&1IZ0xb0)|FJY5MqGKKAo8P+h`wpg zXB{K9wMacf27k;k70A&Wkx14~$`>m&fef!`oo#3{wLpi%YL?5Qk6(3_ zmRn-o#u(4J{~xb7>=`Pr;e4m^XUrtM!KleGu8-Im5v~y((-oPn5^3s-GOR45+X<3u z$)dK#9TJ)i|FOGC%mr6lD`YYZcEMUuWV7VQ-hfAGiq31>@Vsf-P-pFJbekexI>mh) zN@W;ibt)PymL;w@-`K3IdIwkp?*E_ z*y`RIWFKBCxpD--FXLSGdhlg_N&dm{o`L){%zv>>q%6g}~>7J;;p8fe)`j@z7z&G22MG zYAbI(m10l?RV5iD)GeX#+nr;6e5dpOsIw$-kxRGXz0)Ito)LZ8C!E+$$2QIuq1=aO zZukK<3bL0*RJZe`sz-M(rsAb7SXWy-g1fdhf=gbOqVA9$&1s}N3RBxiiaV*XOE87Y zQ0^-RQ|Lv%re{Y0$cBG9^yGpk9zLBMq+&7pG3tyMuXZYCy}glGzw3-E1U+WTnVi4 zBJ@)I=$FSYjc{7wb25H+UqqfGcHKY;ZpQ{SrCa{Jfo42NKkZO&vjqF^k0`f$FRzj8 z{JBoK`mhY-U(AA>!D(rm8KzIIqrEwg(~|h`4SRqEGVbD4Vuml8aovR$j|`Tjb4l)E zJDFA`TW(`}PRHd5yPq(e{AU6uX@uZeUia}fMN3i5gS0Ffv0Gt=<{Y!ks*d2IHf_d- z?B+b<$VvJ;GbsL}_~(MwfdjAB)8sV^WXIWb9HKobCFCV6EY!71e~s?NO_=8%_u$vJ zCVVeTY9kJ+$CkRfapVW~pSE{PO~^(Jox!V@%bxQMD}T(ckP1FBQ2N~iuf|c=jWWBU zCkM{dKJQ5Dg~V(DOAwfGGhJP%0Ex$bpP*K1oloywNX1-IB-=M&+xb!0Y$6vIteUms zZ3KgG%Hd7Z=(YYlCqwvwf}HuxULGZoe>H((`i5A%y%$K%%cl*UHy!!?Y9m>4f6uIz zBkdlNx9IeNlaRj(wDkwN;j1COr${APU-+7*7J&fO0Gc;-aUd{pHarXze)-p=AZ(9CG|yB;wiNVt8>ju|Ij8=%=fCx22#qf33HNUz2={~hu3pp*qqUi2oO-Km z54VN>By?YSW1qa#YsW#7*UpWm^%YD_T3t^%(_wLoj$hY`CZo%J4g8UA;|vuGS8TZd zhK}2w^9Tv^mKOB*1X@Rn6Dz`b&SM>I2y5eCZDAHYWEx;0<(iBDn5i-5GlR%M`$S z2bW~EN2pd2PJ9ZDpXt@+AG6fvzkHh)dYjfy@w#ji0DdI?tHaGCN%~)!VVk&E2VLMk z(9aN5sigu;w8Ym*Ro;8__hIdm%iO^h_qKq6hstN{MR<2ed}~ zJ!>Lxl(xhIbp2omLyXf(<7jxn3Y%r(J$GiU$1uqm&xYe|xDey}4bE z6wf8fksJR4(N;{(US0XF*UDW#|IAvcOC?HvqA^co_qe;Ta2ZwFA8(p*sl1Nne|Og? zOqlAhgT>~yityc!#23odHlWK9waR-49GH*^gfc9}O4a z%vkT$>kDcFc4Twct}8_7`6KcA$!FQsoVSCx_+v>baASxB3!UV!i8gxYAkFY&H~#X% za|X$(_YG%i-#Dfrq#&)3UL0QmYIp7DGWl@A zw#YRF;r2A<)^@cN_4X=DS|oEl06Kz{K zx$PX?HD|HIrnez*w~jrU+YIM^gOjzJHj~cg_|c&XccnOYWP3&`lgHAQnH+M_xjf6P zZBFJiC!`3Y@%ozwXYX5N+NR8y7OR7}t`~*(!IT6}k{17lV{+RUvr<71 z{_jXL`H4j|1DeILP?#^!Vl;Q;O!sI1QAq2^7 zVoa#LKt^)0KoyFwfvZPL{%`1%KVH&1d^O8EFWw7;YPznzR%Y4Ds2*F$4p+vt^|G)CU?9R) z_*JuoF#ItR??5XQ{{p{50YUJIAQ>Be>ulnj$#r=kis7xoNq`>HFz`tcIONF1kJ4wL zfpFqDx7nZ|Xa$qge2VjcB+6hXL z{H$fpCg@^At-cQLc$!~4_{EO2XF~V}jKMV_@ABRAgBs~A)&X$~ zRFB<549LmW$_}0~0_v5WP3EW-mbeA3rSTD7@`|bfA7y}y0n+e)gu5PLC^ZK;5+)Hzf5dE!-`RT+sQk{*IhmxS3ucVN}Rzj@Y4sz9Ri4{HZ z3u1Ck=)u+w-$;iSdjP**=Jkkx1j%A&se=zD`r?FDI8mI$ZaDsDSxqI^=MG#kl#iTTP?>X`)55OcY9H-GIqe8FF+jQp!!im@kZrWY*F%b5P}e0 z(iVO{`H7o-U})5)8*%CtI;P0et;4>N+i+&Z`>`U?wYMBc8@>kpq6gG7vZe7L{s*LW%$~Bl9*OB)tZo|v);jDPi)LNq@#&o?y3-sIkRJ;B?dw{%k z)nvy_sqE^bvxU7(=`+eMoEKYm)f(ppte-kQp*&)aY^lN%JQCAefO?MmjY zTp-78c>wx@U)9b*cfYDd@W`!is)^lOl)I)-(ph|>Rh-ulOl3Hiy5K7V4ZNJQu__j2 z)jdWM_llwHHxXc5OwEDsi}+i6%^+=CyK<<0ol<8dd3c8);U`U+#!11FURl!6VLEDi zjN;o8Ok0_TZdj)WqBmDYk|lpFc!qR^s}M&%PLqm~T=q{o*q%f-$Nh_%{`D0#-H!TY zEtYl|k&Hbu+HDMhzT>6bkoy16W=+siCTA|PDRU}?Ck4M-cQVRx@yh`Jx1GJ zZKzYZ3K{J3JOlb{P$oNK?v_Pep0L?hg3a9905C3BUdLbfri(54Cz<9HAIz&fI0Z@L zl$Vkv!@maxzS87y^In;3j%b-f!i)BF#Smkj*V%3Py{i11+6aM^1 zhgniQRXs*18UHi3qTT}A@Xpf^V!u2@&Nzl{zTy|0`VzIctJHO&w@#|1)2%jsfaZxb zPp9mC3AP(zQ8{WEEk<961~;iL#=U?TPNv09$Y$p+^}hOxXST)nG!jUxm^pKX`=Uir z@F_<{=={W?o-T6t?UCENxgE>wl@5HNH9pkmIaegI>zmanOkzk+*z~UOR-?G#MxNnd zvvg)`Ij>R5l3M4zMW+J^j*cssDel@~0pk;q{D*IMkgq?9~!cqmq9KFz0(}bbenIC%}KjWJQT`FJUkysyk^S9 z6xX1uQ&31dA9-MyS|e-_Bdu{*`q6om=@o*Fdo96Y+MF<#U=PX1L6kgp#itQYhCJ+4 zh^P|Yw^{Kj6zjfWgPvb7l%{QDt|pPCsyS%gUz;`&EA>9yJPXXrNW^ zII*LMyEWt-kU;2UV^7Wg9j~Gt*;7SZRCgPFa(2XasHaM){4dg(Onm-(hfMk@g7w=$ z=SbPl-?((dy>v7c7$#-eQ)9N->O7{fg9J06zlH{{^7o7b^mgzw&2uU=96oe~llU-| z$Ds`@!Z%gb_1;^G7)Nbu{V`sxHa2dx&WbKQsadvpN?YeqEP6%H^xJAA@5X7nwP5rL z4cuJqoHX^sQt%LC=nYA-1Mg#$Z=-Lz9$L<+O?s z6qoisxYRlMRIdjgYkKzr>9yh$f1BDe@YKS4^~@^fGxvGo#3+j#8c4-jEE!^dqHo@9 zOG(D^$~idb9`Va(q^P2I&IC;pUt5228?IXg-=oKGKO#FB)cOSKpqD2N8)S^X<&-@M zX=~mZd;dzCJTN~eOh~Yf@v`J6s9t=CvLb3PwWY$YCZazhBC=D=2KTaZaQz_3;*L~bgcu&UwQVQRhf3M2nZjsi7HcQq{|;MuYuayh3W%CwiMKn@_(e#PE0c z(S|y31(>gTgt@p$ESF>sin7eht}$E{X&tAa_NxRZxlq|>hSc?wv`3WYLKDT1dg2%Z z6F|K|#l{kn9^*DG$4ARp-+2u==89pp9O|qk(0M@gIc}tOzf9=K!6&s9lRwS+IXWsC z*2Cb=?b8f38%!LXwy*od;k3&p9ilAbs}Oylj8K13@qnF)NkT5gt#6F+a1`o{fWB19 zSO?OW=3_#?Yv*5YjU@CW1F>$xsbo0okc_h3{sqyX6U5I}t3HFBX5oaL9h3nc;&@&D zKe|%JQu9yT9Z?**6aR#ER}7^jhP?d;>FiXGTx50~sGl)Rhywo6>Qn~XMfYLXt2B&* z^VX`ozIyVnel_c#K7{SgkR$Xro~RG+BjO#MX5BQW*!7$8i6_&qe6Eq8v?#`FMOiUe zwSo1fG8#8}zK$f7WIdvGO^!4 zx5;u5B!C%}%UPYZQBeeXhh17clk%P~ny1F*%clXCiGEM0KWe`;MTzH5a4A-**rJwj zg<_%JpG6np($7NyYR89uh5;qBim`!&-x@KtK=l$pCnNNKPeY1=IBn__-ww_-ybrl9 z6%FcfAT`k${UmtUBd5?%RIrrSyx=PKSQyg`$^u94gK;Xv5Z!sGGigq_`ZY_iYbpOd zaf>56Emu8l2@2P{iA+w`HqL;}x&EV}1e@_>sM=zbE>&h=${R4AH7-N(^mO8Xg-Koe zfiFjtTb81H@K8i&Z8Dp?LyvoA2}j?{TC{`9UTGwk5gs1>Nj@$J8qS=~J)w;hB9i z;Tz>Cc1nJd9vX9tmrLyJB_V6KVoSw(s4~9kzpl{XIj=n78ng6sB4%)|6irZcdH36* zALK|l3Q)v0V`|yvc~*t}j3J(#798$B7PMuJe~sN#UX1R$)LPj zW6+fHZ-W0jVzGkat9m&na0Q{BSV6;`9Tg!8g2z_%_PR=SV<&F?SR$L`L~&gb=hy`Rta5mF=jm2zWJqy4XGNNlNy z7D$wa(k(-2s?8RHP)#VRhD2>I)TZ3pnKVh*!9pve9>A>E`8C!Y_9!P zV)J~_qpqHSWyyz)9i;N3OKbb)U~-Um3arJj$gSZ5%75T!_!Q8HxzjozB_uw<;EMJP zI|E>34qMnp0g94cd&;NgWRD zl)?%nnQ8^8v|zK(!GS$=M)j}l84fD@r$WR~*|qM;?eZ(9dhzsXR_ewkFEHa}`7`XA zNrPf`&Pgf-+w+NpbuJ_JGGI%^*m~kCFB-YHOF8{Dlz>OVJIjwWDWH}+o11MzS`h6^SoI%IdXbB>T$U0B4M5uwh9|%%`b4EK9Yq@d7eL)WF8EX`QiWo*IEf-Uj04KhZ@= zv<}0;GyGL+&INbhs$zW8r7<=X-eM#<&p<0nr$) zHL2&TZ`&j3+rGlFkP^-aa-AVO#8>Q!k#W_1i%gwn^9^C2N`~9X5p(fns$(K@S(uhY;GMmcyshA39%9G{Cw}-cl6<%sQ~3I)5T5W?FMjDlE;`=t zA<89JSQ;F~+BJHs0zh>WkZ6qxl&9Jds=CJL;nO<4OT7}}GrC?k>|nI$t+&H~SV4%I zW38&cdJ~X8{sl_!8v<97+tU$dMer#7)hdMp8;H1{f{yprUF*lUyz$AN5x80F#r$i; zRXAoSlSriPLB7D8jMr(3DE6lJ(fHuB%}o+;z?9Yh=+9_k^dLIoElOkJ zb<8fD&$0%$r8Y$y+l%1rzSYpi8{MHZ^`gE%v8n3WopuC-bwBq*&U<6In%m|Rul(@y z?B``ah1`0p=<*=Y7g${@M}>=V|#&jfrZziBhZOgc9m4 zou;KN?D?ZtAC_c;n1>AjJC@@1&6s00sn={lANc3YL0j#Y^d^6k3mX~bDE%Fh}@D(Gy~2IoheZ& zO$TTrnx(;8xjLfgAGACDJqv5>l57YFGd(iJ{Y<$l+M_?Xl z$4j3@i_;~Yo9TnJ0_h*FuZ^V6$LAWO`4xO2gjhc)&=+@bxupIr|3e6R2*U0G#EgFP z%?i_p|43YovGn?iAbG;v3KLR>^JyVbu9IX+S3!1C`r>U7ZmRs1i@2Io8V4O{cDM{f zKYdU)Z|oz-y9eTn@|TfB@+&q;Cd@>VY=YL4iX9yF66C7o{SCZehTijh&LYcaA>qg& z3*}O$HF+WDaV6bvYQe|B%`R3oy*O(>o(zXC^oodRI z@+-@*j}~(KW%2|67U7G>F?*w!G@4LXbBQ|Ssxf0MY@&&PpL8GQm~V)QacLI4`4O=1 z5AC-q@Vgu^{Gn0H#Wuyt?dNOwn9cSbK?9%zurP^Y>DC? zoG=mIwiW7v@o)5Ol{4e&j{}CBoUb5#IU(?;pl2$1QZNr>M98V>CQgzOttrZ^ZK{DygKnzCOuq*$)KLn7zeQ^xOJK`@b{l&bH*f_f^U} z@{{%iD69{cQyIB)HldcAis*3F5$Nrq^ z8m{`za8KUL*o=Gk*bqmYH(>4-n!YHN$~D%Le%=)^#xnSO7G=IB@#8L|zppb)0PFJN z`htRiPp+?20{$Hy|4ygH63x9w1`>nE#`4=BC1AWJ;2OT zv~S`Pm*=DkIwdCw#E`*j?8xgova@iUROEPUqOy$_@T;`lf-ZyT+H|E#v2?&&%5 z`=NCsc#rQ)}{Qf6KDKM z17&kgp>!F4W}fJ;RX$5E@^{u9C&Q*7{7D2p?TAZ23YwdIERE@Wit2uMc8ex$pZ^4{ zp5l%_Z?seiNTs!hHfcO9`%V`fuBR(jZ`z0y-1r_BZSM|RM`}Y+;`etKM@R<`fQ2WR z2ES22KaBXn0qW-rHewL;~3>x`djZf&;k(AIBPtRvZ zvlA1i!N3c{!xs@*Z-28Cw1PNS@fXY+~R-*X!SO-0wj&V|T49gWDJYZyyT4xyve)-i}>- z9ZFB^E*})$J=bJ+lw!?((Kkw%Fx*;$CZ|b*@CCnfXTo>^C~A5U=>Jvd2kxek5v5UiXS;>v$_V`pAqwE5y*9oZv5Y;P#?@UXb# zklbejq}#@Wx3~%Wzw68Nq0Z;Eh%xfP68;<6(5rd&TrhCch5E=aX4k9jL{Cm~iHfA~ zsV6K<85^h~hljk2ZYnvd{#z!DW#4&#`0_s|ODLic{hqlV;WUmGVRXGe8ht1?i#vlP zg0X*4^{pJKWUNOkwE;Vm7LW58E`Bbl z5An!w9};BngtD_M$;fA>J510;Z!7@ZJiLlJ!bqP&j)SDn6zWKe85rEBm~}NMiFeR4 zY5#;mPekj{7BwGNl|3+wIpywD;V3zsKSwfG6n=~){%l~QFgf{<6=m1EAlUjXyg!i-_Kc4p5D=q?`BTYweH)AaIkJp%glE|F0WG&*j z0|>k}&3aHdr8hN;FTMuH9AQd>S$TdykkOdl-ODP?zNq8UT$77Z{-rV8mFC#0@gpAK zsuKsN_!s{(y{Bf9fkYV2EPJn5X59)mSODCwN*?#HDR)tlGF6UksPVe|I@X8IjE$y= z54ypytdjaO9Nv|$8!RIjEvv?d)MGw8j}{q7Tx>^j==QT0kP~ucoHIoYF9#XAOsj3R0SUkn>FVv;9&*!i+kp0=BvXAMzAjeEko1 zxN=~|xV;jHqwpOlBrM!LgLAi(dBC1(A>tQkc=x2TYd#rEuN=r!SLJX_Ud?W4mqab6 zcV1t8*K};dTnj65;0TC^`m{y46WfWqhXigKF(>tEj09rz zGtJQfYE`G^U59u6z*Qg5&Mjb;#SdwVXyd<+5`SysOZqm-*I5X!>j=Xc&Zj`vKz8X= zuerEWU1ZECu4J}aQXgkiWPelw+92**Vl9VH`UZai@;8;8Sc5PAc-%?4DB|mv2!f`e zYY)65Jui2WHy^!fX029~nVShuL5ja*6-twbldxOMIvia@cI_Ow>W@VOTt(*DCfu#a z6OOo^1bhNov*$3{*P3bsYA0ctv;CnqM-ua0e6W$~@vmN}o>0kglCGoY(r@f> zL4WJ``hl&Z)Svaqw3!N^N+ss(d`r2J&oy?I^amb zgV=^w+kFfvr_G~?(`t&@CF!Xd(YL|qg`p8*M!>cgto(Fn-qoTC6SLKOai)tGy2SNu#eNjok6Gdfn&S99CBEfRArP@nhHkMdahHa(&EOvQUmu!oK^w2` zq8lYmoaG0sQ4>dwA0_lh-FS~~Gq8rOSaQbiHe({Di$wP|k@!;6p-%c={X| zv&9iE2GtDgFPzH`%RJ{3ths$#C_(Z5@}GGVyU+b`gW}J}2;#>IV|0rwpOIgWMK&Zc zPVO3HVAuQ3n>X6I%MNR`aOqLTRBQeuJ--98+BvS)+cOQvw&oyQUq2*HWlB7(BeNMY zlwh`QlH>VHU^i*DwTi*(ZExR)jnNkEodImLnwv8rYqu`2;~&NGu7Pql#zu6l)m&8d zqK?>!A+(wUo6%*D$vv>h0xj_kj_^9oOcePk4of1rd0X+fb@f)g$jUf-yXC1@?Q5Wo zvNw*l0s@#XNECeUR~30x2MGe!f-HM6Wv>Bxx*J#$ngnGZR#mJ;xc8J5%HT1Te6?@1 z!sVu>YW}xI$q%K}-dN<i*j+q*vO2zD7tPtEtoi=^F1n1 zAl>{Sc+8^Vr2-VcB0GyUC1%t15hVk^MPj59hR17J6~_KF*T9_C}1c zZtB*8zZvE0Uof7|7%}2`Nxg1|jl_(Bm8nYnSB~-E1NZG3xoFEl@v)s`_r4Rx&vp zC0q~V_pVm%K8zmW*J<-c(`><&&QIYFVmrufnuKjM_hVN!DidvaX*s6h@Y}aG#GjuG7%zY921sGOXpSD^Ugyi+?go$Fqym-S?wLdm{e6CC5?-Zof+`ZB57sc9;|c!O(>ot3y5|()vneYA*sAXo)e$^4M1LFQ$5}zVmbx=o zD4EI51XsM9Quf<0p5YtR=%VvvgQEGxXawn(+_AzFa*K^auKg^BK4q&iN{i~%7>r(h zM#;k6_~R*Ucrb5~Pnl$|QiHK&0l0)FU$GWneS{$1ClP-p>4f8yC2^p7B_o2>Cy+ge zvb4RSdC%XSkx3OM<5#vV#kXARNTB@gB9F{5{g#3c2ZhHuBXSaIl3U zDxX3bn%}@r?&^E7GWvxN*!Ac@;`*_Q&iG*Qfl1Y>QxCDVYl6*1|HSeZeL<=zL-r2H zh7DjtJihd$hL}866ECwS@p3=u@iKaQ)z`jm*gbz~R#(rRDxO|Kxb1tVP))5_5wgT_ zNc3$;)%SY#`32I`-@)&Pbhp)nuc7stK1YZE9GyDb#;3RnX5vy@4n*NKN+CAS^~QbW{wpkQ=$Tt z#{$Rbtve{2C-q$CXmETZl9#lYUd-T_cI)CVjbuXudItuK#=K+Xt9jV#R~4CNo=Ur= zOKwZJm6#uG{(PEmH5_wpmNqGabHc`y%FI)Pc;zdgEdo9X%AcM~A~-7Y)B|!r4K6jK zfAj)(7caX&nt`n<>u&O#7Ld-hF{;rqlBh z6(YxVOW%V2FNaypz{I3p8ONYmM7`-1LAMH~F81V;kx}YS@(tR_FbZY0rILfyHLy+0 zsxc$I9(JG)Y-E2A{!?Wv4~BgvZ0eijjr5+8eT09!+(gaN&7#AU9iy)+I|#N~)iZMS zgDG)8P3}1neukpzQzyXKJuX5X^8m#r^ubq~n8SJ&za`;s<}S`MjZ|SrU}0yZjr6IO z(D^l_veyH75R1@~l#*;e@ZueOklWlsI|NjwF@c6~TBjLUw%V|z4+z@KI34X{uJM;f zveSBrL`8gUb`1;rL&-Z!Z(M|g=i=NdwC+|8`b}aT7YmOKACtSt|{(#f&mt`m{F3+t>gbtbG!$*E>Qil(x(UctnGM1qjozs`46w|7w?*J z0$jLI?WDH+oT2le8tUFpUbDSr$N?x^ui)EJ(Jpyhioi|emen&(vdJD zVHjEaF&t&eoW{s|fQ?X-6;tspNFXsP{r=Tl+CcT(HR@$iAsHD5B6cEcpUaTnzJUa9 zVe#Gxn!D9c?H*wqHd8?~>MMBk`IB( zpi;PcLbc=Q%ep#hRLEUm)ZYQ_p7Ij0vNc7Tr?s4&r_+8I%U)M8d#8|e`Zq|UCyCN$ z_9*VV5xmN($Fbd*cT|SJDpPpFFB`ONF`jJ)?Sl@n`J+V$%>l1-M1OGOt)H0_G_5EN zYlY(%Ix(Bkqjp68B6-fg|1wJO)GDq3nxW*MI}aDmz`Lc1(C`>{$#2M6dS`ki+xc@{y~)CwIw0@Bd8ki)TrGdwB-8aDRoMut zBlGlETyqp8MoB7?axZ-+KwJ3gX%t&vc+a{{;| zk^DR7mBEDo)jx4&Xmlk_{<@S{dkwkN=iZ)&U)kP-=+L-|`Jj5{HYX71SI?yNRc!L{0d7^(cMiU65cPMgO-=it z0jsk>8W^~r#$;*;TA=fgBa&pxoBn87a(q*hNAF z3q^mlWg`YLPZkSZ@(b3PN_UUF5=}pkqODgqqxli1$&G|c$hh#+E&&`qvL%RGdGS33 zja;#MTLFLB2|e-AVYAe?Y1Z(@>CIu{BYiZ9$$z$@ExkLiq9i0^&P<)vGZXWvjIQ6& zM3^&9bLx4T)Apg?j_q4)cU*O?eN01+O1tspXV~sNwI=mL8NnZ?RxlnS+=&W9xRDL6 z3@(d*#yMwsfPES{>ZWU5P$@lm*lO9fa9!9^wBU8t%h1#@%p&#Xj)!)XF{-UBk88KL zmPd0pqkGWwY@eobnDx2#xt;Kc0?$WFQK-!0Y9gvpxCJ-_?ndT zfLD8U4lJ4Qa!+^(xDw#iRX)q}yQrcfcugAhBSqnFPovEv!U~q+UpEJ#_v^1cyp2xY z;xQZg8JNy4?9#3va7Z2@Xa2yM`^dwL+A(yrw`^);_QM^>{TnKZrAvLflse9zV}@RC zAtLwhVl2exc|YtZ7s!TBp%y^ipq^Gp2qBnwrI@N*oNBopagcb~E_Q$-fFdyaK;V;P zSxN>s$9V2?B)brD8Y-V2W9%{(Wv$En#T6B08&m}mNOc;^oZZ(x@e+wYS{>(81jw@N z7A-!>_g|mdHFkl@FprH|zTd{#1K_URi(fezfL}>5MhsK3@f|f@ffS>lI;jLzb?zSO zA5fp|@#d~R?nhR1TJiN?;!yg!_D4zDz7Ow_0$$5}bLH77ietda>P#?Zu2aimvwhR0cXTBYl%?w|BXqWRC%4mO3y31L^UHX}-2oK!)(Tjnd zU7jRH1cS{*h91 zwxpi;LG!sZtHpg6;MA)`trH}l%E8~W?RdTPLq5dXtJqP#N%hU-4Ob_s0sRwUGw{zG z#8o{BZ}?6oL;A%q;PPzPIP_UExPLoESOh5cTFWbOhRKo=2k7bFxzsm5V5*jx(9lb} zr__VEt3jy#jlI;dn9Gm*i9B|d_i4bFT^exUj{apxXf7PDD^kjZltVIhrGvVlLgG#E zFHK>a_WO(hE0g_v*`{%uNkOGoX*YFu%+mDJVY`6EK7Pnrp-J{n(@z&cwQObPnPIGv zC0?T9dz&;eEKBxQR$eU0HM!@Wq+F(7eB4iGRSV)4jTeJOrPK`zEr z^623lj1Jq{9&lXL!&rnRU}3(* zyj{2>^{4anv1Vs17wt^q#qFJ<6lqe`cFY%khf7z|WA17TF?M{enF#r5BOgq{=dC2h zfR~&e-$P3>-S`e$vERB3Y}z%mZhQvH?n5>lg1+m>S9$a#JIm*hcyx1%>11yi{~8Ik zX0gFD2P7l}0<>1VSs;1_f68xEDZA07tN-U3vqQ1Ya%yB`FE}e(K=A>v(x{hji zgW}&oecVPVWqxsz7O3WZ1mjY84jXV=u%R`c9*B>@?2Ns5LUtLh!7L78?)Fgvec7PZ z3#GbyOq#0DSY3Ll>gBX?S+zv3bhe>$%W&_2HgVlIn$0thM{g|}qZ>?pg>HF+jY+mh z(+ViIw<39vBVMq;VjRdm3c4)|z(2;z_v556?vhx{&o;eFmW5*NNuW@_rNTFWFfkGa zv4jtP7~1|wuGN+&8U*%iJL!dA2@dj-(B7g0aNb{tkv-u0f*Df`3R7t@4wFd&vkWZ@ zmfQX_baA%6o@NECF|{9P!{Tw~mv-#bqae7Af@_!*TQxFzU#S2r?=GNGECuMyK!_DK zuF`A13XTvy1-pM(N`KeT|8yTE7BVyhet_%!UhO|VRMB;K(H49ZaW6Y+P}a55XSTSx zH(JijD`Ax3fi^XlI(fg$QPtIeIPYDw;OkiLtAn(tzzsC{Ov*<5hozkJ99xim8=vR3 z3lIEwttcA3^lB+%QG7k4ztA%RFx)hMVGXn1u@}Fx-k2jpxW{vlNe2?|NezW|zG@ny zx64B*>2sb=55g^q@4@1P?+Zk?A<+q4k>i+)Nc*z8;tv^9?)mwMr2jp6{s_I)S%GrP zD&T$zkZxu_U|UA*C}Xs~W3B03iZkm2;`8ygN|I`cKbsk^%f{zO||A{}>s@9uZ@-fU5&EHjjZ{Sr=zqLC<)(ssytu!kZlBw;sMSFXZOrkC7&($nA_$k4>&5G8ctgK z3@PNQUVpS;jW)e-*Ch+O!7zQFCf)krIcj0@3x@v^&>$iH(5PM2QR1#T-!zQqJ!b*C z^+Yj=hWcmtp{QhB@m&vI(t>VDv*~{tE(M}yvV0DOYR(db3+PM8tyb=nab#3F1*fN! zixbtwdUUg@n-}BACDH82ofQYux=0%tW5=i={nj{dd_S+o_4IOZ~P*| z$-0Oh^#CgDP*7VoL08lDZX*p z_}alv2luCk(z<$H-NW5hJ90*LrY#y8ANcMBm!Xt>M(7xJiyG>vUem2Z!mbL2w0wP% zA8WMZ^`m4d=2%It0JbTb7}kqq0aAwnddxk`o*1Tl#b4OhgShu1QLXxc&8kAPIkrvc z8+MPgheFdsn8%5EERU9N*7pfhy>WuioY#CytN45s!{Dm`Z9b1{^lzt)wK9t*&zwO< zWk7_>3^a5slWi`MSvW~bH5C9LsQx@pA#7R6LL*+z**BYBxRmMsneF_EY4A@ly)i2} zd@K-l@=%V={0-{)yn~H=aeCR%w-)as3?dz|`0jz}{8HpRUV{*F3? zzXp+Xb>G)!G&8^M+C-k;ADdNQp)u;@C+MwC~i)uQ=${|L>uAnm*= z>?IBO0!0PT&saz{{)aBP5j?5I&K$RW%Q<^M+dm0zj|}G3lamx(EcbL0!6YlfUN!YJ zF{KE!zsrjBRl+1ad{2kz!^ON<6a0cH>fa*oW59!Zq2hs8jKB`4Jpw3PFMyuRZof{3 zf$kG5{kfB>^|wt(@HiMB+2++_VJ*zniodQUe5Lh8yvw&+r+thbcO-``psI=`qd`5S zZ|mo|Zgw!27Z->Hw>-vw{Y0P4LrLkJ z95BwL{k{%c4WWB?rR6WB#&#Olbg<>GmK}#x*!ap%$*z3j>>sbp1QV&Bs^axs&XeMqdr5H@>+CtvtoQc!O^?fhA}V%=`87Ts`mkiq%n>rHqqqg3-S@ z2byigRbI}y$*v;lQQiy^k;9v2XL>zv&cc7FxK~xy*5WGaapVxGnVmB7EZC_)qTh+7 z+ge!79J{L8QleU{J;|sca+=t{ zQDiQc8x>Sw5>^h|q)u!yY0Tq8KffRwGNHwTUhwv~c-n)vr1xVYvwR-T?Le!hI+G+9 zI^nk((rJq8=4`60Hbq^w8HkCS#g&G<(ugXBZ<_)dnyB^SDX_pU80sshG7I-3OPb(_ z^N;xdQIW6Qp5;FByYu9C8nA?lr8u}vzE@Lt$+cKXE`%Q(fMte+x^x5mU3C%f+A4BP zB%xRzN>VGUoZ^Va$0CSAE&0p6@&yqX-^m(tYGEh^M?Waw?GWm!j)kpNBKxPPzVtG{ z=mNz*s*YyG;?>pivNt8uuJDf9kfbbQq4XvAI}*=b z6D3$lX?{qxS}+AKs^SeSf&wbR#}bNT_rT|m2Wd+L6Ql~PDjMfVZSeB8d|U=KAqx1~ zDW2qJJYKiS(}DML4NrBFDjjI7uWTZ7q{i7XAM4Bo|4uZ~*5P;u!(4RvtBZ6$GcP%W zuA9|~7~c3`~utj~zY*B2BaX0b)cuj?z0A>4F?*=)Xj1DFx| z^ONS&X(L#A1ZXd1)`ntRWX|YXQ3nj?7|W`=Z4{fI72(P3nB4k30&_HDJLUg;$r|*c z{rC*P?Z)e;`rhs!_MK89=7-4i{oaFJ0*cYjai(vu17c0u9MP#(xJUv zbhhi;r)-?FG%z);0=?MiN9FjUms;yL-(VcTQ--s-EmAmKZ9hSa;|M}hL9t_gN-4B# z_f}R_?s|3h1LKwkk-DsZdCu13eD7sB{M4YdE)P*;wKnlro<+|WTS3Ghx-g{IP+-Oo zM;1O`=|`+DFu?z2;m>R7{x`^#P_9VXbdwv$S&r5XFVDKno>{ZXwzM&*8nb#;D;i)c zE*umb37KfD6^*>Irnyjwr+R|N-CASSSfp;PVo+h4dhc2j5PdGO5hpXf6v)}1)RBGl z+omcD=89ieb&^XujT(&%&Y44u@2G>-^v4AZYtN?)FPS5UZ4AG)7BvGgZ?FAxg(~e z^XF)aFI}5cwS!oosdo2Y3+84YZDYrUgTt1WE16z-dY9G2&&Xgfl=8kD_>@tlme+VJ zT`-_H4v*gFh5v;N)1`wU;bY^|HZneS_gp2oxQ6#69X+}psZIe#$;DG4)Sp1mbZ=l9 zHo`|nHTvH3S6yL76~ZJ(09v_AjMOzJP9@UYS1})1>Mlub)G#oF_Kj69d4+@dC$cDk z_7kvk-t!vk8k5?g{I33oEC#8ZGBHw$YZb%`%hNBNd;Ypwf%DaT!j!tcuiTH2w%v9j zBENt|+eVgS{fO<+uuWThT2Ev=B`_=QYjq^CxmxM_C)xiJHtpBs^MzzOOm$8leW{r7 zRIHom#Ok_NaB`5t-#c0IyYq=VZ}E#mkI;Mjlal^1e5c-y)o27vTF$G2-LG#f=(=a3 zUDctT+3-Ft8fG~Oo;H{?-EP8F+-U}-%Yhh6yOS@xI>|Y7VjjQAC&Sd*G#wp(VU_A& z_(^3Re)p`l^OmWp4stbbb+ngJ0I03w8Y!fGd0yE z!6Fk$S-v~mR%e(_ z(w@o?aUwLvK(-CeX{M|ZjY9)m_Iwlf0i%+ z$a=^&t*%IR^HlOk^Aa`9T1Yc2F>YS~7*^L&I&w5THFSM9NytQc-y4#j$y-~AuybO0 zX78}!FPS8-d{ddUPPOu)H)=I++x!}gG8D9G{266;sXgxkhCXAq+rf)dD#1T2{SsxR z*#Oq~GDv=Bt;tb-odh{`OlgmX+w!jWc=d#P*W?`vuh}^lOI<8h)um18emxW)ItlXL-0D{YeK#Qe9!L3ohtv8ws!yK=WZ9xES(JuQk9W+`#eF6ezm67nti!Yb5t12%13Q5pA_ExNq}(Z7X(Rz7K?bZI>J z$%gWn(2tp;Tl|`}=50GZk4Mtu#|pKHzyMP%;{HRN?89OL*ShLJMiVu0$fUxGgym@YVhx9z)GxKCzDCCcXKRWXxctl#>T*20h5+P|P8r zW}cAF3M_$XjP6?=Wh6KvpzSNBKS*d1lY~dQ6nC&7%INMl^m1POEXS+@6Gt|1uL5Sr_Hlirgr| zuR4kgE*csl-EQ!ko)Iw}i}hLeTs`EYKTGF4&@oO6cm&lqVasZY0CSV&$5yaY&|$Nl zmT&YAQGm_n&`_Wu1=*G=LegVsxwN0_6B1uN$FI#}c*c%!ZFzqoX75ZIO7OFZ)`C#4 z_z6-ipCfpVWNXX-8{Uy*A#P=ZhU>f^URCBqBA`WhrhU&qE^W?FVi#7-(DDxncKKwT zqZjR%`qj3B=HM1YP*EJGFX@;;8+X!=Z1c_0b2fw8|1f%0YF6)tH*N*3Pe8YRJAj2R zloZ+Q6D-+)KS^tON^jS+X0#JieJ|C?{lBw^0$ujgwi2%&XWt40qmmOEFxFqnpI=Ej z(7Q$WT3Cr@#KK0iRNXn>9HdonyAp7({A#Sw9qweDWHfbpQKOP|!Uz%%I`95FPBY@P zp@VEj&!Y5MYQalttbcb>%dSzx>PzUxl5@8#Bn(k*(+;A>Sm^)DP7$-vj!^lfEIN(* zWvwL#N~$yOrbqF!zk_g&=~kkzTS?Z;eaSBU%4?6vT`1A)6y%;o0RB{-MBJ?QCeP-; zhY~pM##5-H%vzzsMqf#y9wts5_$V=sjOA^x~}+PGG<%x;yXG2|mNQx#XX)7YcR9Fx7ySwgG|xYZw+TyjO2WrORV_H_PpZ-rI*7tI+Q3pX<`tpx~U$- z$y)q{Q#h6Q!ZxXqk=kFUYdiPFbKBVu9@yF*pNWu_^=no|6BffWPgZiipw|jl1KjI6 zD_$|6b@7b(;q%Gd_59x*{+6}@PZM)1YbsAxy39Gxf6bEwH?`hmOzb|w_?8~U=%8(8 zq&@f@CVluIL}dFQyyfvOZRdNY`XVfB-tk;omiK&7%Ha2iGnd2y`N5J6cwKD8lC*?v2Ma z=ISYOLWpzs^ft1s-N$MWb(LBR2hr*w2Y0y9wq3Sg(naq%qDmAPz2WVT6$DQVO~<8P zYtp*Mg690ocz7Gk9!~I%A-(tB_)OcS?Rec{y9r}l!&qqURE(;`ISEgHv8nnV*NN_b zrD3oa=`9!=H@^GyA}A|i#z;)KqS((4qSU_Mzm75(7VG;eaEak^PW}BWoG&k2*dzNY z(mt0zak>qv_ikaFcCSF<>WhJFN{9Ebr|no!d&P6buXjwEsnI@~22l^f#SGetr=@JT z;+CDQaXhr%8yQZZc}v-_(4#H7q_Tz*kazg|XE5~%tIyW`2wim#l`vI(`81fZDf}m6 z7Kw=)|5xSKsDrdObnGRK^hET9994dyid@=_Nn!b370XK|Rqs|lMA8!4;f|!LO2sdy zktmkMJTUsut}%!)wNd^c>&6u=QYD%EF=5aE7Twj4&!|09=XB@s_}IzC9CAU-l^wBwq^TUE}CDOc^K^{k`TP?f=h zCIu&tcd za0%3rHLJDMz(sT6d=PQ0SEBv<1u4HPkft1-0mUzovbO|qGhD};${sf!v&~LQGCj)2 zS2oR{$EU$15Z^G+C*&Np{SFWn6OmkUCjweBlgq~GhoJ1gf$S~((KsZV^iQjH$khTN z>L>a$mEY-h$ua!VB!H~l6i|L33QNAQ#*FlcF$>!u z2iQqRq92bXIAGqaVw8HoW~^qT{Q6&*2aItbK|H!7K=MAHoE5+4Amtiz#&csrWmFlI z$?U>Ds`|*1vmb$68%*mjIX)dEF#DqP5^#ZLK6L1%ugSIfXt-$(uUY|R?~r)c^UW<$ zS5hD^(cq4$f7~+4YBhyk7+4rCbu(4|v-UGio?_hIW?u3~gVkKWGQPwL+NjN4;GyL? z=ox1pI;GSLC_Bk2O-do@r5XojaY9cR_N)q=FGvFqG!J-5hX*K>gDW)v_8iCB%N5O`VWib z*5`ZW4d1aty%%VVL5!_yf7 zrO%Jr=LNn$hE2P>#}^@miB4qfR^(P1=Cqlt7cH}ol>~&g~sU+pB%)^ z0q>6EuYh{K%$G07FiF5tU5bqt0*~i_F+7Ux&KcURT>$flWQyW?mfU*M7b`h7wl5Q5 z^9E$6g`D~hyV8ei^cf4Pp_tk37G)gX-!|giYAxa5AzPvQT5b32>|0@hoh-wi;) zQ&rbzoKiIJVw!f@dZ79GB+$M_L6cSYS^8LIBeSLDX0-e)L4-hQNiOg8=1)(mx*q@R zCbd#2v(R_G$Rs)b1#{H%8o=SZyh#(kmJXn;3}1T+4W{&t+Q!3qGIS6wr<~cp~q7@z=)^i4E{L$Cgg1|&*OJgavq{i>X`yz{c00lMFI=2jYLgx_tEHW zGBzPaAG`3glO$ooA!pA5Xk|qOnIUzIs~a4KKfRougr)xvZUA~q%cDb~EVyURoO#6E zoH7mzzef{SN3!wzeb}eTe)R1+C2~oLEx4byy~*A{JaZh~ z>8)ATHLy^0e#D8`tfxU7;~L-zT4ieFywv8lZ9MI#63!nGtL|NgS`T~<%?6Ers~H@g zu&x#T`n`h2qLmZk5aVNI|-4bbB)Je+SO`id^@q3kG&X=#l zXxuiS=_5TVAW1d<%2~K0J#qY}70m}MnHT+B@#V{U+G-+DJ5dmk%4)$kX}>0k<9j1F ztw`-$TEehFJT`-ZWkxZa_J=n3OE*PxkxhTULk*a5En#$gu|)H{twQDp5(g}Os(#KR zVeNL9affG!>_GS2DjUM?(e7C#jA!{?oTpwCYmdh>r3QWb9vLhTRh^2_&PH&e5y{BOx>6(=eRGTP8!bdmB-`8Cv z<>&otxAS79C~8ac)sM!ifTY{T4ijuE{7}!7`rJw0mF*XMTVKvn&ey!A*i#QsFzs}G zD&e7`ZS!V2cdzs9_|O`azQX_2v(EJ1kG*4*-;q>X*Ly~k7dtH|Nsy;v?Fh>?G}k3Y zr0FBoeqQl6BOh$0W1FS(9z{p-7CLwjKkf%9{9OTCVx^xFZR7go{A-Pv<9T`ve5EA) zuCYQS#%XDi{Ea`Eiby@tAVb2Er+@xr6f-qvx{&IW2-$T|kT6~Z_B08?PV7II3tkdW zeWh3-jO!fa4ECasJ#To{toq!QtoX4HSIPmo0=lPEL<$kCay`RLNPv@+;-tFZp$ivC56N?gl}tI zZCzq__7l1f1A9!>gk^T=M=H22asC)c|H1tE==~1azw#bfnnIL%E>(@L4_LE?q;&16 zir;~6MG>D!nb{&?f?nA{BK;N>VK^T~bq~8Z+eGE9*l!AsE?5-e_Y_xn^5v+p$jtO_ z9QJ0@F+J3VckqQx>&X}w?XfBznl$|JBrKcIpR8fSj&YA|pqNBisY;kQ38Am`$3NU42>(k!GO$bxs73?NoplUJ#J zOmwOig(|y9XOs+LUNC0Aue{7L`qM1TX8w z!d-ekE#Eu^WemU5_-)^5;eQg#F$?8lvd=vm_ZmGP1D%u}z<4n6pkS3bR#X4633B=m zNTg`yAIKyxv%^Pa*YX?grRQ9O&Uz4+|Hi1!jQ1c3?eZ@(%6s#T{I*dnipk5K0GV=0 z4j1;(#S|YXX=$#0yQ6a0YUIq`nW(-L8 zh6I}>>|Q9)wGf?yG!3OCzoH^Rt|Bf%iOufFb*kS;UP7Dh}8qTHX zB#x|En;z%SW%I>wQ#^0&AKdG&&*W(7E{_xNauxFW0x!lNoExB12v;Ge8z|Dx! z?hq@<$J~qp)80tFcMbl^PJH1`V&_8AzEyw=GE2B?4jCL!J}}RY_Pmyd?mINe- z^aQ(27dva`fNou4xap|AXw`I9l}sH~fh2bxgTU}~itOs+x*9hReZu-*uilTmPMxX=w7%N#P9+Hf984>@`h4{{{b#XIY8GliqrN# z6w?d>^lqgb-0C++99p3v4=#pYc;{%dYty(%PguYh=pZ+)#rxDS%WAF|wRr>1mV~zw z+4ld!pyXdV;0&!wr2|f?v8TVTD9KbP!^{UU&us-H{W6Y(Sa#7cXDigdL~sZw%hhqW z9b<@aZCm-|6UHJRQ(xgNsgWR8M|ERc$QPWuFLpJ(J7uZDEm0!);=8j331Bh%8FBNh zu_E`grSO>{Ti`*-V@3d51L09mnlNlS2~9ln1^LHfC33;^F?8@Jts>)!gr_4i#lo%r z|CS)NXGHK3b4z(EE{W@0*g^FB{WDXz&_r?8LQ$$|{Sk;5?LUAPcW=empf}A%kteQc z_~6Cm2H~-?+y7Lnevk(i`&C{tc#NUydI9!fmcrLA`KC}5B6F~ZryQJZ7%5HKhnWx zjm$$YkUZufYYV=_Z~KM;MJ#olc*`mpzt6*IC~zkThvOaxNntk*NQAxDH3KD*OHZY3}s6PV8-!C z6OpGb>zsyc(=%b7@KH}LkH*`x!qDB}E0O3ZW@qXP;W%WjQd<4)dfEMDT;h>w$T z9p{0DPfQn-n!|w&5m8gm?~%@UI+Kp9*h^Yr3i5d}#P;Pst+uV8RT#&O11x)uLe(-Vt^Tq}|fGes}n?vT0+SFxa@|E9nGjk2KmPfGc=C6sl@k)M%pW_XBX zhAG(ZE0-J``)D9dM&7{OO{wdUfU;BetdzP>^gJjjRHduO65LtJ)@f=7xAUvuwJ>DO z;7jr()}q@wVDSd(w;#By#!DZG-QlhEwxkMfhVJGyIM0_4pgqgb4aJWz<5D(wFZW*- zi#W97ah)*gr7I~IRa?6uVP%)}&Dot|4b*ESzb>5Z{8ie3tgkmN!+_aH{kZdcIeTZmayMU zt-I&G20uKB;%z7@qGI@?OOD#)JaPsjd)?O%&ydsj^G7Bu{~URt7e4U}^gD-lH?AQ# zDHU+((r~WE9Bl-PYht;e>@;SLCwuAWW1OZqIgl0 zpWlSMY-$yf7334WmKz`86N+nTjlUi{bm}9*Sm7!y3J#KZW;2f-f0l)aqN3ZP`1saa zDX~EL<={(jWPLu5>Lo{JwaaQ-%p)21!YgZqLo<$28nPjZf$GNp<`Y2imQs_Q$I+@|H`|+M3PfTlKguKsHLH= z&c1{H`1kMb7#JyH5`~p7A z0#~leZDXzUn73+hWhd6gOMuVrAto&jH8dx=t;{9Ef%OdTelNjoGNz%~vsz;L=5BU? zzgLOz3#`H~busJS<`e_KHl9Yn^z5@YA`KydN5AxxGjIJ@<9$|G(92^_XFI|G} z^3d8go#XCAx69#7>&B;cvL>qz+v^Vy5=F_&-nCQCB6#5P5W1q;v^{hu;CU3b29(XZ zgBP7-S|ky&=o4QvXRn-`$Kv`PU#ILaZ#3wZF^u`tSz7oEwz8|ns8McuDb-fWtn45& z`3UGkV!9^-@26TRmtE8AY+^Q86<B6pE9vlUP-c#9av{r{EG6e7xxBVTuSnOO)snJWyS=Py}Ws`4oCx8OSG0y zyrt$Tw8r?=SieDK@cs!t+=Emw%?FlE;-i$K4%le5S@y3MyOw&QBll!0{wac!|H8sd znev-X27ptK z>$|fFzjetHhekDuJC|;eRg`BTY%wximKx z3z_hOCr?8;4fj_bAds2nGz^`8)`PUamGtj3?mL1U9A3LqdL#kf&ki|??+;tu@X@7x zwFm$91%o^iQo!JEBOjU40=~ayGwyIG*}FDXRfBjd-Zrv}+`3K$l7D>+=l-4Uu~IUpBA0p2Q<#sK7Y_nIeDOar=O&pI^KlnF z3EasYxE4(5N9P7cOS<$s*)^&x;PoTC^CL1fMUAH-={b(Bpye!TFsAHSbz(uIOh+)R zUmP@z@4P;0p-7qp<^O<{cdQf@Itgp$H?EM)a=7GSsE(61*R0a@^2N-z?sSZf;&ct? zH@F(RZ&u~oa^yBdX9=lmb!+`}F5rGb$ESDPMIH^7$9>foYM&*kmVH4^UxN!s{wRNe zr4X5yaAncJ(9>b$^63(8QU$r&a?;34M`JJ$uk>FTVomk=N+JYiFwEJxa&r)&st|G9jVGE0s*G zO9Q*6NrTO<_?Dxz&LsRd0TjECn?}BLO?Fae3qQ39zs(+_c3dK#;ITbqt*<}imN2@3 zk~G|Y+OAmqkyDqEjAG1Ow7w6ZzAlvvSpn~x@ZtBWNq37nro6F-V;|9d?;_Ce;z{Fn z=`^tK>KN!NL|52ap?`O3F$=MD&YUzfZMf4APZ~`^8wZQBI2emc)&3|_hL;#CZmr9P zPa23O+~lLZU@K*=pJZcB_S-h-GKOJ3Uj6ALI~@T%1q>ilJyo9;o1roDIIMRooxjbH_vx@f%Vp=0`VZ!4 znYn|d>MV}mI7f;|p9I?_{X}P@H=Ec|UKM?=l0R?xNEWb$nSKv)Vaq&S_c|hD;l-a= z_cntAFE_vl*Ev6}`{5=@ENK3Ou14?Zob!EMW$!T_|? zrE+r9l%>1g7*k;5iD4Dkb@=8DRdD9}NJNg?U%ZQS;Nq4I|HX)==B&XCg34nPzi(by z?yoDut?5)Ngj7c+&1dZ8gD(nu_1|nK5xwou7B(Vv5#DLqTG&I$M=w+PKgPZiSNobNI%bbGh%5-|7Hb1-fh?5}-K zg6R?X59d?-nz4U-(OK)E>*RFAsEu>Chml~?25rhl*3SQ<8=o5q1Xjbk<_X(~Z?qW* z^;JCjy1WQE>!dm+KTTtF1r(YP8{MYD8`C?zRTQ63+ zeEU{bC^(ss0(OIA#$MZx^pCQoZ^*&;tR-pns*InWl0q}g*C`yEnfZE{e$m8~VP#^% z@b3{f2q$~jlRgxSq<+DBr57wqTm?@r;+*#$j#5^r&-7{>R#6#5ug4Z_-$R|mU>^Cuzy*zwcbRleS_&;+G;vT|Zjd$3g-*>xOfkVR`v!o+cI-n>~ zw_>f7hxWutljE{j6>8lIrQ!B$mLp3DV$nwp=7`CGt}3zK@V#s z&=vk1#QH_nq`#}qSZbUq@!zPB&0zPU=(`4kjbK(Msde#le6aQ7R<6~Q{?__BTY{B$ zG|2{0O|`C(mJAZ%k2ss$&>p;Nm)Klb>br#GlJjlf`f*94u4xx zn{-1{ALqpO%10g$ZhWr$=0W-@?xoc4`9_H^;SiXv`rBQJg|qx)L-UWVKf-MxW-%lk z+G{NV!oPLPLP?!pp}`{P2n+MfG0$W#azOhxV>h$!)q95-Mtau@EaZ1&XLaq^;GaMf z<)MB>$_d@0xgZ!b+`v)YFU$_G8@OQ~8@h_GX zJMp-@gBbE0+%6@J`!BYl%SzX+%igt?qEtIJ%hbo$$?k`=KTIJBS5Z^8m<-axVjCBo z(DDLb<7el|Mog8NZFkQg0oJVe^s|PYVm<6JPo+saa9FHr8Y7TqyS_`@dKU|R_-V&^l;K~K@{_mS=Wr;*?LWmLPy zf-}lg2Z~Idk!TAU>{Z?grYP%uix2C3%hzN$SL5HHglT4lJFRogt|(m6C+^h)yaF(m z-yk_@@ZdJ-;sK3hI0Eo^4OuS=`O>E^?;ByXjo=c0sg(Ex%bxtISryyGH8>h_Js-@w zt$>;iE8u?HfjZkDRN!nW*g|Z-j2R`7tuG`2Mb)=8(0Gl{Z?YA3NRYk!hl=U%)`IgF z;S$^(jRzXTlqX{l>EeOSOOy{Bm9CG))p55qQIL}spU7qK9>HukD7J@t+aJyef-Tar zZ^j^!-B2bM`{Ix}$VY@70c$a-p(|HXnO}jY$TsX>-7v)j$wC)vPx*D={h<1?uIK`m zb)dBI`$>fZb;LR}`aJJ;80`ESlrA4w{a+E{Ln|}ybrFTx3dJ}<@G{{;JO(@ihhEnMn1h%kOVfbRRSo&Q8?9eNh4eP)VDHevb} zAQ1nVMD>SjhzT{O0~1G-X9yw|Ko9Dv;_Y!(QcML^wPOC&QO|*HChFE+rG;}BgOlIf z0J5CdaYa|;W@S7O<1F)6{$;5gK_cPpc&_y?m@{~qtTORZK6@%Vi$T$9f$j?GJ_P)! zkEsC_nlZOIusm~X2)>HC*6L<{;kD%ohf@{=wo2r%BPO$D8wAEjAY;hm4} z#Pn*Nb;R(NT3{ayq8?IH{4nkvYc2vLPxXMb&>2FfKnp6wjD(k`kVpVM&qtSiMWjBf zT?Q`R;~+sQPc)66=xi_SAcsAixCB(JGoas!tiC!9W9R@3ss53#9JC)0eJ=Sw>ft0q zaM*kCe#yjlOfr%F(YWjrH9-d$C?|yY00vShek0jtz1Cc`8t}~~?QqxeBVXXH4jbf*isTikTbn%DJ&JgeIJP!;JNiB(U zQ=?$YzsDB}|04)YnjHC>jJ(VC42wJs2SzmxAEjUIuhbem=?4hia zwY)~Y{Pg_JB{d({TMFbCz6z@X7iA)$w8z;T7_Krw-R(| z>oX*KY)(6bv$Vo6LW`lRZO~rBKj7noN!a~W`}Y${ryfG`TIy1pgu$LE95{IeRC^zb zTV2h&><=_;SVoF)MmJ`N;~8lHIJsQ-{P;!LJn*`XDqM`NalK-8g+iYEu``5lcI6&H zF%b7lC?icfSBKamHMWE@t+()k54I$PznhW24 z{_o{ho($ClFB>|$Ktxn8*J+|nY?xDDeZ`&%xYzm_EwEss~O!22YmZa^I$E4g7dtvT(KHMCHRhu_Q+Z zdhQ=_4}0#Y&YgeF=<$e%9P4?lnH z^Ya(71)$GUeMOy);s*I*S{jhGeixzj&kA5i9eKQggEsz{%#uA>lLznq361}fPXbY>&%rcEU8tEw;onLdq(*UxtaQ?BrbJ^EywGR)ybz6f?b{YhddkLA^qSWj>7UmX80>u-mCYzr-s~-~^w+1XnXbud}e!N?!ULw*vV7E?)In zS9JXx*e(PPtRW{3!VbIOoK^E_{^0P*DT-4}hlYFQpW?~u;JYJu-{<>~4d+WDd9%TE ztbtHEPs=64+Ewm{d(D71*t@5T<0-&+?ypjDiQD`u)ajjX;}8Oet^seKtls_vUK>9J zmG1i!x$JvjO&VJ7i`G99S7BgPyk#mAV()#K=IVEJJg?V4&iV{`gfOQ1q1g*87yUV1 zr-93rYEmn`0@rOfZY|PGb5umpzPWJ9g29g%Ydt;Z$+g6?N^r79h#Ll{U+P;$;?G`8 zJ*v&@?Yq!GSyvJ%8=S&Lg45KgFc8RdbkC`^lbA*t#mv{4A@}Cpo*fr9Y6; z4ycCgNFf7J2i}^Sk!%iA^AC~=Y8ujh{Qr+lgPJI;x>{D|Bn)_k6L}9NN#ov?tUN<} z>s#-!1@W6Y-P`!Ak5UqO$n6B+>+CYTf6>w4Gr;XYe zYVzYvfcv%=gl;u>@Fm7j6l(zH0;G;`&{)7};wa}WRJl2z2WMn<&v^wUJ>u%G`tG$r zd2wH>m++>E2ElCy$%SuZk9ix#g{N=3~W-O z@SYQ4)oUxb$tSo5Ym@>_m6*%9ztSf`%eCHazxt(BS)0D%p3b3MJyzC1z?Xr}I?C7! zW&O!w4L4{-H2GfT6!^4XLz5SfDvd0?E*SWHHcMEI0|yqaR+UkNB+|o$MrAZTI#G7k zK=?&ZK?RTaXuz$B*h=6o;YtIc>^LWcWteqTp0ngM!~IJ(8PQQ8}4p7WLIhCfEF(NdN~^$AS_k==YX)( z#Lj4Zx1omI76sngEhHafROFAi2yW37ahFZ=Jh`Rp3dHvbx72wM`A_eztOs08K{8bfezxCLSdo7KoHfoNMAId zgN=IILIUw+_iYkf(Y5HcMI7jehnB-5DF;neq5eV}a+eLwM`Q6Yi`?0(!62_X_yiHg zCEVy^#7|vD37^0UpBKP#J4#zF@d#C1I!9pYQx35gFVn-t-Q{lepCjxKAP=tskGz0y z|B2r^1qC_x6Ks;_^xE$wQ|sa(@R|!;YC8-$IHr*c4@@vC%qe-n(DV+&_RnTu_xeS+ z@cS4NG<*Tcsw*4U`d&+j-JpCfkgdIR6S{q?5@?-);<#LfX~OaqoDvgZ0MK4aqF&Gt z4{*)Ei2Keu`36(?yLC5j5Ey3*6gpP(zr;@I=ck*3XJy!q2#*Eco6@vtjX0m-$-$8~ zl$}WCJ11n(ya!xz1=%@uX6y$B4l4GNlv9PNY}NV7tw{7{G2nSni<=0z1bJ>b3>vqs zMc1%o)-y%CLx+%>k2GO})&X?~l{U(LPuZIlb+D%aTk|oRpF8!;mO9=Tj2;(RA--6L z{@sI8ATXTwXbl_8J)EMQ$mmsX<=2`Hq*2jD$EzSvDHh9Fe&CkDLo1QeOI2g8bG=8Y zgHO|Qb{|YP-(QNieBJ}^9rqRkfg54#6HH{oQIE46B=a%ylz~WR$moFfd2ItD4>qr6 z0soz9#Ff;L%lp+$=EzmWFlKMKHMgMp8HT4AA0A4J#*i2JntnT>iLs(NkRfVw6qK(I z;}&8P>%O5#^x&UnIkRjr-scBd@!YCxi`qrCkeHK8k@+&);Zh%4@!Gw=v4k(a zyQSb;Ybt;P+j0Ppb=(HQ=os+mB7XP|A4gp=7XuWgfqwf3h^ob&zcLn~8}d2ummKI6 zK4j4hHFQ86CrbO`U;890i}6cn43=fOu6qXA6?YdAniE@OaxnL4N?)8IP&hU>;viTu z4AwFym>8L~;8-xST>cjDp!_-b7p17GD)xluzvRT`ZkFHEWPOG7Tt;>Ce^&re1-({t z{R!O$^u6m+6uEP13NtsdRW)liI3D2#j(gS~M!TF+kX=icj9O44y*aLpi=VTgd$XKF zLQbtC`b>;z6gSI^;8KTRRwEb~T#@QWe|RtQrD{{qh51xPa3588L1l^V)=N8g4$&8V z!ln)1NH=7aP9Bu}2OZMzr)Dqqs(159fh!J3Gyl$U3-{5_Uj&|YRGU|jhvR_o{ik~N0r-lgb-_8qoAL9Jn;w_E~HgBdrZ?=t-T9o^>XFN2GW$Pp>iM6dFZk);#sTV(9dyvd2V zY4x$*NwTvvqsN=!5Blmg-ab<8hYg+sm`>a_0thajp;+yo(QD3%grlAju9!_5eB0Rj zcsn6qmDpS)|{-mnvQpaE~w(Nw1zVt&K{_NZ=D^UiIQ^ACQb z3?jz+G?i7vcN1Se9LA6omtBJbbkSY6Dk#XZ0~DrgLk-cYKY3QATids`ir(7!v{A^P zTq6Bo9*NJA9orKJeE!NgL4`eqMLNcPNz#@NW_;0CeYqV%t;inv@n$O$)+|PZpNPzi z17Ntv;-w{sJne_aF&h+ZP2$flA^80s^tpguD@nZ#PoK=_eYw4DQx$Z0BQn$~p0bjb zJ@%167Q#pqVSRv+qA1H$RNhfKn??7>FP({J!UbG3%~@G&wfIvdOuG?htCx>!wb^ru z8#~EeZyg|VARLYMvfH@_|Da8;%}{y;4T7|7vOKwSl&K@GRq~YQ=BL%;N%%%G*LBjR-6+<&2TCA2K z8>Jk2ZDuSWk=kDY`&Fb%OPr8%F(G;BK5JxWX@VOU4HUXLrk#u#+E7Beix*+Xl?ELj z3<)6Ap#<7vlu)y&6FZdmn<#QGXkR4;&u3JBM3E>cA?R8`wl;gnz0tq%{zC+I$HMmI zDU`O)YOVR9!z%NtLc7T=6@OLT+vRWx@llrRg?!1p1eVc`fr@h66()3mTyRF`)Ow|kw}3=#L&&=x z7gcc$`n43-FVPdV3Ta zsg03=&pKRNS07XuN_b6fZIk)BbJu=>3QRFpZCNhGy{U#^F+i+eCeYFZ9rQ`DG9U>R z_!k?$)ax1}3}SNRcr`vTBn|(@ZShMixD}?+f<-mN_wFrql=sOar+bH)7+ql?K!o-` zm$?&1-?;E+c1};4cVfKc{F_tyHAsKGtfjjMN?zIxOqywdM1)Ir!gNwhiZ~R?Jc^zh zMs}@O$Ak}~NVTuCGn%>?0bGPf@t=KTm99_l7-2Nz3d!azF298zMY5j4`7JVP&%qVY zN$)cnRm`$ymWobu_e$XIHiUhH`!oevaSE%b=_=K5auP+1NfqF|7EseSF<27JC;spR-cH|@)mm~(BN5|(%b{>m zjT$@r-Ir{I)j;A|4KQXfHDrq3y=DokZKR~ixfOE^xZ{Lkk>)pXD5g%8e*Ff5~QUCp2YUhCw zrdM_=kYDh}+<;N-CiGWj3H0ctSTlFJ*IGEy_a;f{R#8RisRX{X!22ati2H<5XbFdu z7}5@BSd9R_^Ru9}6$u98^fq@>*m`rU^c`~g886rI1&~_;@11$%!eOg)*y*=5yxb23 zzKO?q+-=8Ta{Jz+I(JX-CgFU)B#MGJ=BY|N%=>>xw&E%2z?EsD z$&-;!9+JB!Ocb4~j^9cHuWjTP3pqU;Y=4PW&pf9H?I&W$&VIAxigTCy?8umU zII|}_m;(mS!+8wAcGK&Sx@kbc_)L?(av=MC)g4$TeOU$N67ZfbOBYKl>aZVuQz5HU zoOqRIsi0(xkeRi?{1OvUubryQehaBpn*=vC`or;IvEaR~sw0zDwO^u#>8%k@>r_Ad zRT}(qP^zj6A*DI)mwvcC3BIe-?leT_@fC@aZna}g9JNR6QgjrbFDo?bX%$WbRLL_&S7AL ziB34-8E#J}3z*EQ03%Ww$m{4k^+=S+NI$|`mzA<8Uv%)IJvczJa(4a$Ewn*NQyC?U znEx)(?{#@sBjnDtw#`&0lg#BX+h!EYePzC`SQks_#NgdKkhLwJpiH~@{J>23R}&HU zr7`IM|78bzG1NO{z%TDL#tmJcuEj!4P66C-X>}-B@rl~r*iVRHOop>?5)~V&0NZ^y?pVRK4a!qs3F3 zq)B23+u-RxT@^U&HWRmxa7t<|Yqs&QZEJMs;YAnbdpVFq z4-5tWP>Yr6M+n>w!h`RUB3eQz-cD7YusXWH*z2k)YuJU=au}R^!yOXhw&rUqC0KMg z?v^+?>wEDwbS4PB6KSPPKWE;~{e)|sOBIa)etSU+I@a}1{yFE}8Zci#YXs57UTncp zOHuyNthp7E90gq+g|EKnJWZ)reYE=%p83(Tm!z~We}_C-K!Cr;cffYW@w`ks`BwxC zg)OJ1J8WE2kXUB%4^6J6BB_riu~q#Ua>N?Fm7ohqCrgU(S*evxLe-qHiRW)PTAXsj z)@YVt?#}j7!SY&3QM($qN2;e&>RJI%?IE94c=X)CSc*11XTcm$7&D34qWI*u?|V3G zc4zWvCeWsg2D__jR2DbL?v&H-PvVdJ3FAF$xF9Qr!~o&Z<8{v|F7MQv6tn{n5XciuKfIrdWc->i8|5j zSWaHhC2$~RvLV>8bjhhJW)v;N{^&pIFZcWO>?R`(mqozL zEs9>E*B#yR+s`)!{h#!It_#>=TLfQHv(c}KkA_ync^y)lsy+r6yQ(w{){Y0O-R7pi z-^OHyb(P%VnX8fL1}1d|;V4s$ zWKvfV+pB$z7HP8N=PIiM4lt0k8QM=~@ooGzXTnV_hInUVIij<;z&&u&)-)g&d$PBN zYY2tYwD)EDqn?UYz@9u7Z(;{ziO7sZN*{5E7d(Nbxrd`?^@q||Id@7v6Jqs6{sSBwsQceQiBXIuIUayd!ay^0@AO<}u&2@M8~ zdu5wGLu-GhL${}0ae*IsJGQAb7WM;~-_dh1e4_@!o&*gkXows11n*)1FyGA4DjtDl zSwzL9LRhz)$1KZ$h!tdF=MT)ceMf)W3*xo~qm$->mj+mj(8uB;@xDU_@curSl)&A! zNHk1k-`K17Z4KnZ#rmf~GRAV{0~1vl&F)6D-qjyb>8(=e1vUUj@8bnlr-3c1^w4V@A9B&A}>?B|vK4$8*9rxZ6zo%29racZM zl}*pN425^O6Xe(4paCU?e5CCf$i_Bg-@KF>dWaiP@NmjJ;TNY6dYO~nMH-jQ zmUU2-Y4hx5abZ02Di#lWNI8E}>sC5|n;%I$~KgiQR&E@Cxe4@Tt z3z2EID&kKpn%yAA7DY6bB7TiGYU?OB7%^3Ne$)or^HYg_%Zw7_FOmb$2b%!Y=4}u1 zrU)WSadFCaUQ!aS=@;dzr?Nd@!d1OWY{xA&y|9 zK|5zB?jO@ALQgVSzQRWF%Cdb6&ie8!Ezcno{#(qQ_0r;+E^&}K(C4&S+cQ!NedU2) zwACtddt(ftm2wc8c#V5wsXsOD#ka(YX!$mIp6%_GY-npbt_e`4T`fUU6Sa`U7||@1 z$np$DVn=;}v6qlT9q4|fMS{ErTG>=tYCdv_8woEBXcr4zp}7fbKLxN)B_X+MB@y9qP7k2LC8{rsjXU~6s4v`)uZ z11OXVW>r_lzp!AKiSUqo@aI`Hbzwwq_Mp#)@eBf-8vkLT7M( zX4o1qdK5z+ax9h#If})?@1Sa-8~+!mhF<1}i4>0-GzYt!jle%VSHy1L&HyGq?EycW zM*f@6P2DH^Jw)~k(PsowUtL@){=5|lB9Y}MX%(_>OXY4_hh|%x-|jUVHds`ce7=lC ztBCQOh*a=^{|v2@GIs(f%lhdn--^M`{wn#~xk)uR<}3Z;!eq-e+4!K-sk;oZez;KE zv|SiAZCd6IifmpNWFbbiMaUJSJoyli{JSjZ*;aI$w|^{vO?Jm7%@yZDt@5U(2pYVl zj7D#VFFmpqN|p?4T&2842hgKaJxFv%C1Q+ewA{N@rC^q>oCNu5)DPE+g>XKQvuR44)A2`ugcOC^vo$yBMGKc*XdB zm)ev2kf=$S)wRk01Be#3C8Xdgl~Hpf=!uvdIAh z&@M>R90i;G(ka;%Qy}QcR{5JG&L<5;%Fc~4Df^JwAdSSs8T=f0H&edywjzzA=Q?zP^;;Y(4a_iQ7)%hp!6m#btafalG#pEld zp_NJ263KC6$<4=hwGV5_jLI&ooOWd06`-tF`MmWUP`2>PQu+D0sd4?c1yI+vg z_Aq0Dsq=!IveN&=slf949gHc)LWVnJO<0bed-W(DpXEb3 zU;`|Bs-8CQRc$TWU|G9v4tax`{0r|sWh653WM$6%vOiQ3dnyg*`O&ph9EAx8fQ=h+ z`BPy2S^tCI{A%y)C)1TcQ&kDl(o=&(Utdn|j(pmxLg_<6CdR%(<1r@xIMKa`sMvhs z(pBA*+oT7VWh4hXp{*;`hUUZ?p5GjYp34EdDca+`&oAty6u}OD*Gg7_L;Irm^S12Fey57!e@ww- z5s7ItsB3LjNfx~@{3$8X!WXpXgRL>C;nB>s~6q_IwtzU6GpkD=1oT z&Hleq95a1h7_LkqQa7@|ELThvzMyR_7&ljE3a_<{w89nmJeT1sY`+bf9)tZT>Bwb_ z<6$8)Q$D-84rvh|LQ)nII}vBx8Ha~rtYIGg5_&X%k54As_z3$)mrM0MVe_&D-nwmV z#NJ3``T|od`)U???g8FqquQYRlV)Bmn0+v5wId-`;^2=F27GAR>ZZfC4lLkFfL7xs zD|tnJd6dQd>}|UZ?j5K3d><(?I-1}Dit6zXT&)iMWhB}{>>h#Lhin6%rw?W0b}H8h zn`OzzxS4jbq(-Sw`OV2*HM&{Z$R21lZ*1uoS2uiLd6b@QoXMYE&AsF(a5S;A+joj^ zh~g+%HQvKHqomS{`}Dnc>&MuL7FsAO2xWK42@IxS4Hn0Ri5|&to;Ch4kf3KONcLdM zYvRh|xC>ZHJEi^yGFK zqn8m>Iv%M!_Xus=ncl2|0-iCd<950tzV1kX>45zYEke>C2;FLbf{ZzJxYz&6*8fE3 ztu2HyKUK+Ue@oNgUDVLBKEU%W*K)4f+!62D&X#yIOQ?g#nlIwA5~FcFaln~FAz1kQ z58|a=GQdhzX=QIOBG0?HKqK)D&>|-dQreak_Ytn>f$Q6#*p-NSop3T87>o=MX-#Ty zfxR5nQwLd)!@!CDBBZ6i=i1fQDtIy#N5)sGcj8)7=5WqM)5LXwV(yxG`DR*45S`@Q zIMtxir`K0u9W(v*>~#L>FS>1I%SXJmSFlW_CH#JJovhVWu)8TTJ6N-FGG#6f z*EO#dZ{?`fk8ma|xq#7*I!HHlLmDn!Hgemmvu!~G(P#QAr&yw2vA37ARD|RZy}nV) zZ(6lglaJVPe-vWZQ4VQf&{lx$Maif`v7O$&gV;H|I4=~MT!jmK$ZM+8;QFW+>v^+* z+@$4DyUaHh`uhZ&yj1L#0^Uo<8O%UAM_}h!Fg}KaEg?TrLdR;yF~-^~Z`x9Uo!1A+ z2}^yaViRRvg4%I0y6;7gHhYDWtiwKp+}Cm89YwZ?C#y{tLHjM{qul@%rToWHcCAO$ zc8F0FCYeIi^}|)^X2~oT9OVBAFD0|OJK(iBT!#fKV^8HVkfgula~W1N>J>FU!%}c- zp8Ex`*+E8SvCe4mwam75jc)!mVE-|VLAkY+`xt3oCmYwKuk<1ajx1cfE(~(0a8nac z<64OJZZd|9;Tckh{gE1(0^i#ignv_;hi*-$qB!e_IvxM#XN>aAFLQ6d0LTScHMUI* z3^@>&J)NbN7aMv>2)|ikD77lMG;0v?k&wMws8=#$aO;T@pFBi9Lpx&`l9K+yNBP=M zIqHJmW1_twvYQ)gKL&s7jl#F=Qj@A2?B%j( zHE)Dc{x{aMokwuyfn8-9gM>#W!Z7yYG~UF)^qg}5=0H4ZEeNw3u)P(`tYW7S5?eXA zzP_f(D)gBwAK4XaO9?VZF!n7%uoF7kl0hc;i7v2L@wN=Z#^48!L5wRf@F?j%Mgd8` zFBE6oJ(3M{n^5+Qs}AX~{ZbERRqH6)J{t%-8op>bbnYWY;S*5-&rn3LA8Y! zdJJL0pyVPZy!XeY%`sT6!mhm&`Opv#nx3nIEMGr^ zno_+WySF`>v?!5Cg9nRDgf1kZwh<#YoqPO`D;A#0{19BF2l^UTAOYHBtWcMkicsvxa>ZLJdNdW7am^pxdbc8K%D`ugp;#xbz4w!H>*!HR z5oFL}j&v^<{PPfy&u=mCbNoybz8gMiu$_TDzgH5tw>{OE%J5UaC;GUF1DnsBWK~q8 zNqY5Fw+`M)>O?YcBCpo-9lm$@nvs6ry;Lejb}=7(3!uagN5o~n^91kxp{>JR`Q57` z*}Qfudh-M}(0qO*d+O?kr_>-9^3ycYm|ipD Sb7%nobb>45cC~lodt2JwxSfjqu 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

{zHo0qT&ViDi2-;(%= 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Μ>Hxbbv zd}fb3vD!F|!M&p3o@$YIe8zv@qu&XM8rLwcJUqq{Y&7XFWbkfnRg(>FfLzc0%>Hg! zYgtF~IahAsH{aznAE9>o{A39x=g_iMYR^qgqe+;r)Co(v*)F59$r4Qq|K|%!@%FZ> zK5YwkJF>~b?#E>02UXa-S(<)WAOB}w@z87p{`NJPvBgSc<74x{Se8{ljPq0s%aHsa{gyFmntwrbfi0~)q~YF^M=}02XqH2y0W8k zo#5j9IkjUx#SH0(dUN1* zZ(prKuNyJ8HXq@?w-MXq-(pZUMly^s$31!T6VdrqZ<#Ec?X3#sJjI`zS^J1HUENI1 zdd+WdI+4PYjpMARXDwGvC2e$K44=zq>RSh^<{wK>=;K_Am1MR^n3VAidh!KUMBv|M zR~~aUTmmfNS5nw6TWEVi*z5rqW#A_@5?>QI#4WLTbYq;H{CM=}KJQ;Uc6r*eG)C(D#r8}2% zO>_{R0s0DuLPlwMAz;gAVQUwyC4j6*ti}c$feYJ}oF;Ql=5G1v)-=Uy3~y2w`t+o) z#A~iqp{V4fUP9nvM`=&v6N;J-?~9Jd6xbXfG3v)Gd)dO#ME0`L$Jm1u>{t4<>IV{s zHbXUesTR})22E1DJWpzreJ&^f6N+Gd9NgK@i-Hq(3wM3BBU=k}#Y$3Xug{MbQTGRW z#N2m_Ibc8DMGyFbc=*<;c9M+YL`ob1xUcmV7TgHq)G1T3Qt@mP;5lD4*%;|t?tmbT zKZe$#gp6Y20*ftlq&+QAEPgNDe;M2=5VodMk$zL&hu^T%IXL(p9CT4*cR%KwEy_|w z$N{=Y#Smd;tySCJ5{@@*L zCh)0ZNvmp1043q18vN_tQpIi6>yB`q9<5tjT+aJM0K7;Zbr4r30bkg3?A89W? z>w+l0Mpf7N?&20W$TL5Z9h5nOXR7V0v{ndn``j%I)W41II%67!CApCnbJ*EA4f6Rj z4Ycomf9xf(JmD)NG(o3VK_bV-WjWjV*EG2QLEq^uszzo4c4B~mN*Jgu}$Mz3f< z1q+9l=hFUi=1t6}1ShIK zE5cjr;v2v6C7-yG8-0?ppJ2Np3a-~tXUFe@-F+lFOa z9y4kJ0?zqKPtI=jM&vV=X+n62lxuM(G7Mx}a!q6ghGn{$%>Ikn_~o-cco`{{o~stK z#M~-n27EIkQTOKh-sE0+!Hok=SoHFVSySmpEZwtR(?4m6|(9fZVpN+%bz3 zxYZUM69DucaBtt2kCQmyc2livhtR}z8CljI)SIc@IYCQI7t$6eAeT3yD1GkiYy&AJPUv&CiWhxM*WRixbh{RYHCd;^ z@mrK**`!MKy=VWQTuovv$ws7=Wgnvpl#SlJC5oQc?u6>?X;e~4{)D##6OIZ%=c3XBoi8@T z-M<`Vw$F-QO#71vDDLVw-gZ(d;xvTh=PPRx3WQ(nTtv6k6xU1M-x0cODI%*8D|d$L zA-2l^zXjltv>{>T7d!eLD3_1|M&4_2jqgiQ7rT(iadnRqeHMIAZ!6AVcXd7aiQZ$u zn5CwebTIrL$1W2Viv8!)jMK2s3i9fcE8#l~+m|f*2KoFU3_*#YWM>wsgjm(hDD58ls$Qq%k$TAZTU@OoVe}X1xK&Me79m_{Lb=OjJsm#nV#Vc zBlK8URixbBen&t+08hSUL-;t@*?_~hgOtGAsx;bsztq-lvP;eCr1R?2#y)D-UU|QT z@#OVul8Ni-70QdBZrh?S-kv1X*h}o!vnTHI&+f-rdJ4glB)cMq;7S45&QGo7MfIz6 zCY08i)i*aNU|Hws%n-5A;JEqTjCi!8J_|KZTT)}xSLFcPX;2FC)hezJz4jrx)QNSk zPb-D%L}7MV=4=s)U-*GrI16320_uNI^)`vUJs3$n{!JV)=A-T>FK~mu1uTgVR{B=|E2p@}7m&_HF-*pyckq23dZ5+9EkI4N! z;mPRosHAqXs|^J7dSAqk7{2HqFZ6wdQRmXGxz=8W9hscKbNC5sB#u`vfXM&EvOAw> zqPex1x%mA{arsg0)l+}e9w9RG^A;{dSy@@Amc7vt`>+ zmw0jyJo60{wG^hHHOzhJ;NTl_2Hn+Xu6SYtZ(A?ET_20+5YJ263Zb_5shS>nbivh+ z|Gs~~$QtNS4{m710Ym%)e_XZSYo2(?ibLq(&nNM5O4pOrj|_!8!xTNDS-MlPWfO%J zf4hc1(q(ggegUeO!vcBcLqZWP#$M@QdE(SLs^(zn=%R zsS5tQWL8^z=L>VNs~lI%%p2Y5Nk$8!fN%oW;cq+!3W8{KQN_`PWP-7ZLELgd93?vL}VO~Cpj$YueR8AIVN8KL;s=~Z`A?@KZJitZC2=9YF(kX ziP?ViA@*SW0N|dp5DgA%g^f0aF-V5bg{kaRM=g@Gw;*vIPjK_6n!WLC8973|Q72dk zqS!U>BK|0pm2#0M5X8F68I3CLC9a>Sp}LK#&0BJ93-H|@F-FQ$#rS0d;)J^4i+d<; zPeBsLL#guLX=FS)z@^O>%sxFcG0duc?vli`HT$RJu&T$qzNu3~sDt<<+C$xi?h!Wm zdYig7@jni)5bwb~&2c%YQwY9wM{U4kR+Q+)pST>jBCp2o4^hv=F<0?2cW06y3Up08 z#$=p13A;YNy_3XXeTV={VXp=py}fp;_bjC8Hyx$*`YkEEzqm|dw5JGcav=^oNEe$* z&h6ZwwiNw8j?OcziL`CQQ&K1)5ork>Q9$WMK!_v}SFC`#Dkwrwnu-z?B?`g}C^njn zqLjE6aMuz6HM$W7qZBD-1r?ff)9=_W>`hHbN_ zsLIo>T+~fTzU`25>hEQ;`^*1jEllhRn-GrM%g!6biLZulxmY!CSBx4v?6ZfgCP(}z z9&2tzZWQ6>hm_u#CFBnJ9OH2kd^}kjj$N3idPq$tY%Jvp7;8d~`njmY8QktW(r+1+ z;-sLf%fI_8P3sG=nq82=HyQ>SXL-pJ>GJueS?0X>9G(Hja|Rl?%hzM!SJEm?`x|+q zqQ<{OC%`1kaw$3nBffdbHq%hYJbEwz;5>*7ALNtlzd#}9RJJ=2Hs!f#jpdtu+lQ6U z4s%pY5{`8z$%P($E!HAWC2xlQNj`1j(g+(~hSKevQuO6%Y545cH0+XY9`{==B%`*N z0Y?^K+e9<)QXe$kG~!Gf*B30J%$UUT%)&N%5@|(w;e1#8t&04jCcfQ=A}?g<@~Na) zrdppJ!x7JP8Pk^FEs|E^y|q#9pS^u={R|Xk-R}K>WxO2y-HNU@~BdvT&mG> z3^eki`CcZJT+xq{LBq8)<@EwaKrx))!88}r;lIeOgfQlIaiv_Hrkp|ZFaFN?M%0y$ zs?L-*KW6k|U1cIg67$g1OhYMtvO2 zeL~|Ll{jeyTFdWE8X9Kp7Vr#CvygOGL9u%52Z;Ei1Oj^bh`#n|{L*ve^bn#iQ=%7C zKAi`iZSEd-lMgf#bxI#4EI@j#1*#2|!=k(tB@Lg}MgCFCMaP8-@z3N;9m=akQMYju zccG~>n}d|;h;}C}L#H=$fI)JjJG$yOuU?P{{jB!H=MWPSd>k3Pq{J=|D@Fk+DsaA= z;IVGGQY+yZQ`~Gz4r;1vf`d}YLH!KcT8g|>rsS6K#z&Ooj83JJ%nqJ)j=JHY&|Z(5 z=~tqYsZ{qBP1ZpE6{>M~(`y=giyAw2j3Kqk)QDYUDPBJTO8cSM>)kQDE_ zb-``pgis?vWrtafSudaY1%@YCH z7(?7l-u{~WDNd%=kR@tCR4>gF z_q=RagkjbT>P!Ll<&zAd3TS2P2>V#LBSsHnuv;I7LqMv4=lmyjWquO3p0IxEmZJs| zE&(Dv_i-EkJ(nYz>go2idaNpr>g@R5F=6kRIQfpz>)O?0lMhA^GDIGcoW2#m@A%I zqRtS=r#h(k-KPr#t}9h?n~`{b0-U+J_PnzI8iqA5>A=40fi^A7R##Nd2!Y$Ugjw>) z9MJYNU$ia+J*yuZbLH<;FU6dbnZRI5PvEcL@^BJ}&Qu-s9?MN0dI~lnXP^%stihbi z36!p9_wLsbu!AZCMTA!k1=kb+a z#Eb69&XgsYgbaME4L*J5DZ0GO61!Hrj7bXoLePL~WXT!3cTx%k>oE*%9(r*dE+MR^Q66kWY3pTqMtjY9G7u-)#b64|@6vCjtHj!noInT`AxxGnr)3ga!ZT~f>!OqCmX~kw{rp!|opQjMtr=t{lpbllX zbqxPu9aZ{vz+7gH-;O(ICO=r#j;+&PgqZ)HPqTj@jR3Z^bC9^z38bS-0@2O6!-(qk z%`4FEhDm3dUM2_VG_|kC8o{7cO3Ob>mNY2z0~B3J6HMXE=r%%2xd86VpjDchP<*W8 zQuVOvR=G*Y*(sSx*)Z)mznAog4FbbPyYD{N8U2**pE=jtBKn7@J|74Btmjx z)&=GWPJZIF=7jE=TuJfbn}zTBt45*bt{%6mX6xnZ)*bjEE1lg(DB<{*%Y^uFO;X~5 zj&=>{${|l#T-q0p=obStU9V2;;}V_JF6`27$+9Gegv7Bl|9_3!CxOMg$i^ERAoiK= zS3Nt3UVP|MJA8j{5Y~7o$Yuqm@%AdszAF)GN+6~!xUs$-bU=T4lrYbqYA$BE1avwf zx0`t1u2llA7KyM=W*!os6L9M(5`TuoB$_P04s=bE*eRb)U`L?*&Fa-zIo-n_IJ9A7 zvjf`H^smgoW6<~k1?Xw|4PCYTw81#Db&VF-x%<$x?$CyJZ_w#iz7X+y8j=X*LTsuy6X?v;jWr9K$^Dm(hx`p(b-2+(Tup4|~L1ke|;?9ysdQ z`*M*3dwT`z;7SK^)$faEHC;2#y=oJYS7L_h?Vc7Y`QXMlqUEK^zSGzHRgbW=>`bl1 z_Uw~OY32^Ya}%RTciTRCYV$P1q1|IrKSAxvLUFs6wjQ7V<;t!JO8(A--&2deHq3Wm z`~)+PgngY)+%EGsB&x-_ISVF1#Z5K7cR_l0lX>*MugLgl?HQ-ltJRTD0r;1H>^bZj zfwIHr4Qpsam&#bzqd`mN#pd~_&))>StMRo%?GGrY1d6;*M!IE!9;f$KdPm}RueNRs zlao6GDjyCzrLYxezQ$pzQ1>TG!cy#D7*1$mN$;z=yq=^=Pr~j8G_q6jv&s3V_~B^& zDw6(ks;d|G4o#Y`8oP@j?D@eF$e6k;rN~)Bbfg1sK94zr(KOMjo+QPp{dma&e-m{v zTH8QjCmWStm~`v4+NOAGYf<~PJ1HqC#f^B~W`9%8fjMDB_U|(_x)-K?n1g)|@HFmm zuqqe%!zVT(%{YpDX}qZMi|HFQ^%rki&(vIzbYaXGajj0)cN80RD&d?Zj*zFmD3ER; zFL94rtkrjNq5ropN{(Vro9M<;9^p!jyNc*P!f*MBGzIdzD$ZdMWbLT+qG?}ld;r(r z8Jd2AIOM5D;HyIAs@`|8YU{po+j#~qn;M(QPZQ=PT%9LaSfEk<%Q#Fos>f4&L3M2v zRyN4OG>%8ejWy*ZZt_g5KCG&Lg10V} zWhjB$Y#vn(yKIDZZlZ3FVaUWywITT8Wg_#PylcOBH(rP`v^@oalh+t68>gy(PxgfU z3!K#G{0Vquuv%2V0)K^^k&s)xO>X8SDyMjCPwR|$ir&Zro63s^2P*NhoWWIxN)U$M;-jj zoGOqlwJMr{f|D?nXz5|lr&pb;kGF@VT_pGT zDsoWu?`b{H3F7Ya$KwI)SFMKh=Q&Nu`bm?hty%#G#IR@hiodYHdHBU8^5{1v_#sCE zb{vSrZ&fPiUIJHHKu1*5)Ono*ePWXA0S@(sQjKYt#`7YQi&iZ?KUDK_b|{~8|I;y0 zTJzaVaEuT|tT1#JThrMqRmx98(gE#OLPqeT7ifFAp!7AyJFZDlQ1;`CZr#OJE$i!D zvK2?yRT6s*zb+0Sqvb~O%1&aVL@(j}SGT@}%lJ#@bS2Uswu+(0m7?Z*i1#pNZHeyZ zxu%9-LM1JFUrNTCa7ysdgpTCqdbL*FuW-{8^15gkGoRs=Z4`y)iQ4LTr!=B6ZKF(d z`U>epokumm74fx68GHi_cEcTob7PJ1IEF>y#(G|acZl}M4^MobgH03Anq!$)PHPG0 zFA>}(OVrk^;AQhx1XJAklWCwf<%1pkWD~mww7Wjtq%aWLYxGU*@{e4#dVMZWSIC@i zAXs%-BR3=oXdC5p!4DANXg04{I!ie^<^|;3L5K9i=8=Z?BO)(HHV8hda}{aNr33Yg2Sk~+(nxM-_RAyAZZq@+;>P%{GWL( zBh8V2JCuK-M)A999YIV^K6XI&Kx)WEtSt;}=;G8;S9$)=O@4<^UTrULq(uIbZSD(*KomXVBZ!-ed!Iof@i-ZK7F*fU*vT7;y4A(avHjH> za1}LY*i&#^%N?u72ZrlS)t;SHaaWsCb9X*sAcQhWf+c>2lA~|iq1LC+R?K(|s~;R2 z+Fk3{MDEx!z{K_S2D2?N_O?Mr)Q z+krVh=yGODlCJVra`U?1UfE1b-lT^4{a0##WVAfh z#Gbp)5uM(P)c?a&6t$dxt3p^?A0Af=Vl1hyq1ZKa0X|h+ORY6<&P!FGIG0%A_*5(> zH>%*04^XR$<~$(SmBhaCrLF#7+BUBaO2%#QgZ<$%5Q8%Bbi+*`$I1y9KO?BU1K6*c z4;dR+0qkuv>f(_ZDm!?Qn&Gl|=$9u9M_7K-5}f_I4KLCAmgJfmr_?M1lLAT1IdSq^ z3juMJd1@iJrQ06z0Noc}1bdnhn0M?GPJU#NI5$TRdOVrcO%Vw3x<)EZac=;-6Rm2i zLmbc6*@qMX-%rPWy?-K{yQd{3qlmmT(2MiDMi4!`6$dHrX{)@B(>$<@Yv>~b37i}~ zsfX`5#t};>u>&vk_<6O8X(O2luKjWcKX^;d7r1c7@&#s5+h7W%QN0##RRr%i3gWK< zu&R_DHE)~@+m7aRTMEA9UAWCmu@YaLAkK}yV989kfdW7(Lmc-Xr?B5n8;B3mw!4y! zQlc6?9fo-6)lab5^)a2Hm0P~Peq@aWdM~4B9@`^Y{(@#dzPyHY+w^RWUXf!%UMWpt zvq4|DvvEV}zHe_F^F5O;@HW(`2_0<|y-vT}!L7gE(<5jrc74LarVFZww^;Y%JD{vC zWE*jRoG!-xP3qqHL`lo~qNg;CTQQSzQ_rH$X^H$o=3V)QPxu!)(_k+RUn+M>hB| zlHzMu5)H4m3UhXpv-!KVgn62Za_k-AC0%}r)-X) z4IU4X$bWLtc%J~m7=n73M2oaC5hG1qe6>yA<;DI!TCq13F+{gP@{p|=KPW1}V|zJPlz$wNaU z)}MH#N4coCF>szEc4|HLxT>p2H0jLGM^b;Hkyn(|Vd^e&w!-i9?80~rkdh(HABl#>hQHNr3|PzpTiRFgsjwo8_ZUBvhiy;8X1MQ zRU@lb)VOy8mkwjq(==`Z^NSv zOMa?;DtSXQH z9m~H|a*ui8iRvf*kOx{MU`LKH(46uFlItflJuuM%PuE+4g}Y!c7ueNe>g_j1^d#0w zbwx?daI%u6y|Ne8XnKRKQ%Bu6qpJa1itARyQhf&OENOx|3uu-dJQy_-)i zyz&MZxNshd-{*(u)hwsnSI+@`o6%K69C4kadlVGYSdn@=ya)$Ugs;X?{HqzR5!8UC=T@R+wnd#M!hxb%;8P?Ropun``ulH3 z!JC?-KTk=HO*Z~T_iiw&GV2@bh|otwUY{?aI75YelS9r$+Me*e>Sp>`?Mw~|UpJ^jJNQRNQ7<$3a=6!atd^1)uJ(uEiGBw<5~ z1c9HN@vDE3_t@fd=PzN^$|Q>BMxE67aYXOsiFnn*sW0$*cene&Vf=4;5fih7(bmQ3 zAZ5R&5x()!IJ)i$-Far>=M~=CfI^<{x~n{O$uO=ixI8}Who?T_5Q!9GTnVXew<9Mw5(zbwEq053b$Dd&?=eeK1=q#Nj&|L(T3IQ+mKJ1|9J4{eoU%+|A)cDW}Fv1O+T1MEq}VCom` z9$G02@boMGyc{~gd#0WK%ax1P!333VqDLWUxqV-q2k%f z6T-~0hYfEu*q4mmH~pTf+JJjmyxipOdl0|%*V_bIrMs7tlwy2AqrX*TuM2ks!B5S; zaAeP|YnVi*aKH%aT$uP_H8c0*B2z2auoXDsfs{FiAXGb*(SuGiy~Jf< zf4V*)272uUd^mWv1Tff!ttu-mUm$BP_Cu?ZXA_xOIfX%$Zxr3#hw(3eVgDWvPM{Qh zwy2xdlC0kfx|bc+abI^%WrHq$=eP}a{u6TgEPOgrh^+J1VR3KtCty4lzLqNRR&P0z z+J3Ey7JPsde0qj)=<2+Q3WlQ3Mp1i2ZsiqKN1qra2rR%7bKzr%_|a}f`IN%Z>IOBB zmnkgiArGRWsQ~whl?(8V{b?fghPjlu z0tdv6NL(}J%XRQs8lGw;-l)dzru-SGq!f+8?J9%~2Iy=crd#NoNuSs+tBtGo_MsEk zZZ4%E4T)IB)v&4E&>}kD&%F<4d`iiix4#-%!L$XgWPa`_3 zh^vvTOv`F~D|#5M;Ch*dP3lA!*2(PeAFCk%;?9x{j-yvI{?BWgrgTP0l!zlAVMyG$+QXQY9t!&W{kh zZ&^twojsKd&hNxho%_a)Dn{M?Ep-wWf)WtA8VMeGrbHrXrl(bqu_Por1bng=9%mtR zZ6w+_l7F(XoENdsY|II53?&GduYkbVF_X2n(r-DCC=sng}Uws&A zCV5KCUekx74+3t9DMLdzsq+Zs+6a`VTH!--w+60~!NCw<@ZIFBPTwYec%;i@iaEuQr&$ zJ>H%Xd%;bnR1cCw6lzEc3$-MgX_^wtY@OJTi_A-4s?8d%(ILD+)yfuSc=0KXY+zPx zy^5$F#|rj}Oe*0vfrzeCa!}3d=%ijrCwRb%O7}$%eEdqDa!IXKR@ z0`%KGL$aCnLdUMbKW)|B?Pq|&Yk*zHXG$v7M7(>75kNT1N8oLj62gGNWnjU9-|A8J zR!OMqDh@n^?gqzB5;pi>CfLz74&FdOEsv_Wn3Fs*^kbEpB|l-WhZ<29mhv~rSoM&y zD;mF;t3$ZoU9OS#a*08r6nbWm@Y=v3ols{yRwgJ((m!WSq8cc%rG#-x`QqCfQR4)b zY~X3o)$!kdH3me^ZIg zUuxCFvrI!h)`%Q{{lZ9qPLPLoDamU+u|snv3g72%u&Sq(SQT4gY|Kxdrbs#DgiVIx z!=pw4)D(|iqD;aojyMR`Z}wj{O3=9sb4e`jx)0oSs>_fvKM_h&BrZ|Vtb`v7;XYxI z|2NHq{<$Ri-S_qi)t#cAqr5$*S$%%N`1<)#UBqxLTdkK+YVR{l1fK*b)YX&iOXlF% z8aE67f)Nu*{*0DT<`G4q#D4y&hwt>fi{<5KV&0+d=*VmP#Zdn5T@e$Lnv!r>_zF>R z=;Y}MN|Q%b4Wjah0VlQBo`@1|q39;!rPrE^nG(d3t^mESn7ET`)!BCEwItvvmLzPg zfp8KJ!Hp;!M8ibB>{|o&-I>^6y`)O*y$vPPvpv>)@1FxOu6eJE^%5!GhQ1F|Mt&u1 z;M5v0sHhr)u0~UhyVck)a(>H>DDGu*&;hq`H2t_Qt~zDnj!dgJIkTxppU)*xn}PxB zP)9=1+K%mx$je0=cj1En#*45cKM5h}MK2l&MHOJT-(+egz=SQBRuSoa03G z@80~-2~yC5F|gHrdg7}N5t(;hrv5}5X0&a?DOY1?ZbfXqP=o#Zj}`ht234?m`ri3W z)`0@@&}QL?hR~+dkD`OutrRuyWeWd5-SVB`;k&{{;(%Me`kIewD+tkKreGN6zO@G^ymh=)yiB!d*3!~GiUv4tW$t1Gr0A-4v6n>=3B-SlM# z(T?4n`t;pG#0Na@BvpLeA=mdi(1hO;R74g5j_xK|*>{kix zFFmd%P58D%VR3l#9D}eM7_IOta;F^gUX=RJH$P{#7troE(rYOwn4=P7)WO_Uw{>X` zhL`gLD)(C}3gJDet4+31^zg>k%wP`aI)D~z#h-OmVhu{7em(cI&4jl1$6JEpI8p(8 zuu24o72)8oE%>Lc6v{HzACxT{j!_ngitfW7Zp8#Y%|(A2n53j;*a$Xznak=fMKZNp zwlIe{C+fs|4zp7z3g(xV)Z@fNw)DxPb#wkm0ogYOvsEFliTUf>4(~X(h+>nXY z-J7pp-}90m7DH`FXs7LPeGn?%v^iWXILw!PbVfseHZ{_=W*@+=^>;Z$cN`<#LTA*4 zf!cjH|9ETc_x0WtrG>M_N&mvxb~B*vQ)9 z{lm=dDO-2UP&E2M=NWr^a3-w_`93s$m?Ag6vCZ$lqt9T^b2KIAx+GOcSbEw}(DSd@ z#o-=ca6zdAsJfji9{VX1Moyx6Cc+Q(+g>)*ZR4L_r!VO`dFgaPcYEG>S`0_IOJ4dl zRPL0$OAeKGc?n+&zAuO|Fs_$k_{0L>6 z9KAMQ1Whk>*r^19b0?;jhRvmH-g1`bvn87skaeZoRbWDsWyZNT5;2oP*U?_wHxEYv^a`rieJlodHBPZSm}U~ z;M|P4z(TFu{tsRE?ZqlKQAB?3Trt-4_MUoH(@kx0^Zfj*I&8t47lO$tP5f<3KS40| znV$qS*&T)$RIKd?xruq_4s0)xj%RguJimtZ#G~=I7G7owk?__(aMN0)vZO#=-nS^q zdy&ddAV<9fFgjsUGHeYGg~y663AoIbI%vyZ<8~(D#FVdcY?8BgTZTsK(=u2FP`F^vFMn1W-{Ge7!`f(LF>ZCys=*)9n;=Ss#ncf8IvyP{+O&1c*(uDe6d15TyCS=w2+A%=WB%b;a>0=ifa^FZ^x~F#x2tloo~m= z7K=V=`pfjo{Zhfwv$`!=V5nU47O@x}`)>wmcZ6aM?rPPNVzo*VLqn%!7$kK_KV{Ss z09R8Tg1F{WSbY*QXwKiM{%JieXcNJ2LUf-xa(%O*d$*{zMY|~>KWfz~To`>`x@Z37 z8Jy*HtWYGI3JB@KR#A93uJxE}L|GjsbW57Rc#to_*6&Y4SwuV6shJbn5Jb1X*Ajy(aFBkV?RvC3lR?&ZqACF=~?vX zDsH`uJAPf9;->-cd|jg!JWBfC)*+4*e32BiLZ#pY{K~duglZf#qxzkM{xpqR+#OOo zpQ~_uh*h`xJdUG@dNNtunw79YrMR(5B(0(}Xc=POD<)9*w&9GZ?b-G57NA+fTJF1* zZ?4tiI0Liu)LKfYM;y2Y*FW+s6M*Lg>GU7)97Hs8diCTRnnm8)-1PPG0oj8hB~~@6 z)oMJc7Nn^#N~qMZDslkZDzW%mi20o8#(}&lqae8*3E$)_KjDtKOe)>X;iw1XzCu0u z`Wb7y!dq^ppN6?oYCDpUvKA#Wz4B>*Sq?M#t!iI3QLO#9p@Lw~y-e}AScFXDUciG$ zU{EK5Vh2vC4Wv1N2ES~uTf0PS-d1v*2|?Q%P|7Xg%kQ}c{{~T+U;&p?zYp8X2XqxD*Yc0=B2A@eNQQekV)iWK z>L5HMgLZD8n6(zmfM=2FeZKOI?VLPby&me^r&Oje;`oGva~HYr5ZS|yDZK3|SW9*9 zA+4`rW4G22P(>D6e>*XOGR5j!MPxfkv0^ByTJ!Qno?b%osDZt>Vipd9#zQ2U+0Af*cFoo(Ty|ch$$#Nb5$$g0rE*N!~~oj1(}vu zDpg%9g$DznTPE^{k40y$K%K8@sO>+Aye#F%dh|6@zU(-mD&u}|t1+Mr!pC(HAlRKU31yTQNMa%v&#C$(m z^L_f4i#w=SPmu@jK|6f_L*JxY!HA3a&`kVgLc_UkD97Xh>*#@C>d?FIU`+OVr=`1q zR82(%eOYQqatPCFxw6g_l3wevR2Zkm*`sdyYm+zC+ow)rOMeuF%mT({OKMG_AWq!R zISm2`{YU&>wTsx HXL+5V%N^hu;(tcK{Dx6u^_v83cyrd_N&$u>7WbtJ?J}^%% ztbj9h;EX?E=X*>6oJryc-jKy$WBp4RMhe;%H`{xh!o%;Z#@^-O%gLMaU(m27mduZD zK0Nu(nHckVIjB4wg^SA)9TUh++fcXmGxd<4^CrknxeK^2(<5gzaYBh}`nySnu<+S^ z)JeRHA1+j7H!cQ*LEkRcXR=NzpNG#Q>0A|Q`62x+ye9__!NrVW&|Xvf+gsS~{1iPX z~J_sM!3w1g#xTVV8MQA$~EB-3$vf&^(Q^c8Y zQcY(!jav$?{$wahSNeyNw_j7GLHJwhK|DHRiR^s69@7i*aV{dVQ65NqyfXO_zjQOkg9#h!6k`>Se{%z#xY$}CCc5HLs3uI!nV<6aS(_9|vc7D(a+pP{ zc)nYhGz7}J{MOUD@+uwf?kLq3-YsT(N5?V+k9#5UVeyr!`sN}tNRp8-Hua7s#mYl> zhrd?L6Z&Jf_y5C6EK&mOW%a4N6_9%hrM<+0!hWU^8}WMw|F25Hl&;{<h7Nw%w7vMQ9ysJ!Ba~lVp3`x7LLyTo+JjCMir@#*W$LLQktIq zee&%sM<{Q^R;fAI^My~4VyS*#ywmDC+a2!`wZG_~en(`LXC{KoFjicHy&5X3O-mt8hQfWUmQ+4 z((+&CN2p0H3doU*m61Z>K}+e|2;zP_U$>iLw}XqTQ&0ZUh^{7pUdkDDL@k_2hAoCQM_)gwt+tGp(nc3AW^P@|mf zot@!cl`SGaG<}IY$|WlBZILo7y;juJ>?dE8Dr&AqbnN=j0`DyZTZ5v_I>kxlEAmJa6s9xh1CZ%BQZ-Z9J+@yMWySgL`PEga0Rb^-`WSic| z;9lcejyS9s8sJlkf?kn^gs9JS9@lxT=)ZOHRY&=eM44z6zBoaYp=U09;$a?kTcxEH zI zTKUu?&ycnQOzw>*qCl&!NojbXIsx|(#*m`B2>iOd^nz0SU0rZ)rS=O`U5WV%VCNa~ zXT+_Dm?K73p(7?2gH4-#)3UfM`)|jAp>aMn z6)f?ld`*xJJ8)AxVfrh0wzK;UoWv+S;n(v$#fqd?w_n8G<;! z??OL|7Wubhjde*#f$RfT3dg>IqVBOdg7y-0+xKxcKJs&*p6azz5;NwOaczL%#rkO zQQvd$e^+o1!kx`8)eOtSskWoANl!hcy}nBInLZ$#(k|IJrPq2L_-)QDi>*X0MNS~q zJ%H;|293L&pz02EeXN8Z=mSFqq{owU@VG}JWoS8{GNi=6hQf~@b;1uUg!G}JlqxxuOhKX^V3N~hZvztV)LUj^kWoRK zAK*VbNpGLgxcfd4-u4gj+EEwxq8`9Ic83r%QlL8wuvJ1wR06Np`y?R|D|uzv*eoG; zc+I;u&I^?_%own}Yr!DjYSo7GoZu4#Z0Rp6T6;2PYf2lKc5p&Gh}jeTT~tMvr&Y(} zi_%5HFJFiiG5T~~`RNo^YaqCPU{1k0#P-yS`VBaw&yeimA={W`+#k2 zqEf2%3DGs>GL&ko3N?$Y1Pnr41auHxJ6<9`KZ#1r_%db)5xCO`;OWlJal*xELU&!B-To?jH|bf!$EtAx)Z%ZT_x(HHU9dhC074} zcW_*zHSai;eOaYkdim+~s(-s*j5O2O*oEwUnFk1Z1U5kpQnw(nL7tkB_LYPGscNZ^ zc3NVuw?f22kb^+7pPnC(`jlWNaYALC;@6N)YEL{J_^?#Xv3Bh`*li{eFpiwMimJLl z8=WUP-7~ZSkLc|hM%{{%$ieq1($B{3FDeHWbc!avMk^V+faSy$I$HJTI+T3+8}iG! z5HT+ca?M8ie^n^IhGlJeOv(7W4Nf5-`E^7g^BDg2p83CYN4Dh1H8fK*Hqk@zSw|Fk zzbombK>3b}|HXh)uVMQ>U(q2E6t482=k;O;h+Ss+%;>05ilN|pb&{RGW_7ixwbdI_ z)d4B{85s2JH&xR9x(R4qJyB)av`I{!$qmx^UtZSY?R139)>%WEYt1va`lyZ1@nzjpT9Cmwff43w~ zU%1;%43Dx}RpJ5ZgPu=kH`CffVt^P*4s`#lR3=Cmhlp`k?U`H8h+!#BP_X<>WNJKT z+{sFy<{+(6Vdu;*xh@>u|={kZEu*qCQlpY&C{9yN%v0ssM5T$dO87NJ= zP;@r43XpgyH57srpAX~CK_7pjRqe0yLc4eI&5eav?xWL7W!(lPM5-sle~z%&AB&x( zy?<;}V!VyiRIO5{4@4dkB2U_3`*)ioa~8tL+2L5NqsQk4>))u6Rlfj#O{1t-n=mdhbAki14n8 ztZYf`@xQf%{gd1HmU$O=-WxBY>cWwZ-<#W*Lm?;LDAc^H=zIS|b?2Gu4^+-UZ<44P z(G}z-j|9r?J*)WNzMF`#NT_4s^luA=uc(IRCofh->h&Kj&u7^@TF9E?Kz550RF}X1 zuG~jC$Xc4}7gy-OK9SaH(`0KwK9HYq{HWHV86i?nOPV7W{74PRATk~SpuvFN2kl7l z!Ps!Ii-2TT6i>;&{_!OND~^6>C~lZk&`U{!o&k=EU{gv%ypuaO-BZ<=->L@WgzXID z3#sipM?qot67f8poXz15&T)|wuymfHk$RHKv%7HlPioWHQ%3>NT<3<<-bUgLHEnTk zn1vn77}D-p3!)%(vNEKL*M9@uK*leY7W+f zJi5q1aoO2s`Uv7&(SYqKi!m`f>}HSDMEnH(M&i|_)+pGDfcKQMzrQ&P5XdENlrXfc z(fJ?t>CaH$#(d!|9huDY0Rp?*GZ&&d%#zUGvrEMdv+C-8{yCo+dvjs8eRD5MA5br^ zBq3Mk-}noH?dMs(vT(?Se4^|fgTjP|Xp)6=q3XA4+pMPal)NPbJ2KHfgIuA^#2XuFUR!fDOYf$umS(B8JMsZrGq@n48Y(mc$X-#Y6qj?edXk&ea@AQ* zUj*Uw*t0~T@q?x`qp}^6$Df~MDIIQSX0|IQ3`ux5hsvFxW_DXE|FX`rUEQhX~AYw9&w-I^k! z#a6xw>01*;6NM*c`7YLyG{b3nc=QW<{KxrW?8^ty3H>7Uh)tg`R9<~VvFHLO*(~42 zpMcXh%MtU5l1=i#kAySWvLsX`XzUdj?cfAc-$~G~r4TiWnt;ZoZKslCGEwZQ+IABDnVKfQl2wph}~L8 z$kD1f7W^J&te1m>S^!!fJAqEekkNH#dB?O97TU^pivGP(0T|?nW{oPZKPjw)JC=j( zGc(`Z#O83j46ayekZaHTo~O|o2o;P~*HNxICigO2MY~&hKKH;J_flZoT96WD#;2aJ~@@r5+J z`5TeD`vGokb=lr2E@3Gf}58#BcUFcf{RGhyWW%Bxc8up zS-xJu5Eo93u!NNcg5PozTx~uD_gb-v|1Z@gjQVVGzGmywZc^|xMp_RWV(Umx(Rz^( zq52|}`N6Q8w34XuLqD?S;Ldoe$76l%A(7M^%Ad^wnpPmXrxM9SZzdV*AB3Ov;p6_&AzH_!NNu8 z4r?U-IM?zYG*X3U#N{vhJ*c5LKzwmB?1#W%3$UqnIW<^)#K3*C%8x#xIrm&6)81$| zABs2`gJ~M@@Y=f$Vz(wBP3(uA95trx3CWn?K0TF)dx?J(ex zIK&Z@z31>5b#L1Y+{39sr>Si3%O=9OS5!RxYYg&j#Xe|!A@d_(eGuQ|wNZ01-a&s$ zYsdE3$rr0ivE9vcz_)g<=Sq6e&_cNV<_z84+pN}9m2LMYQ@DU;Z7FsnXy|Z&>D=U4 z779!Ln=)`fJEe!uck3vO(QVj;_ik^zoWyYECarf%!*Mucq7<=nnxJl{|0cV?&%I}3Pf z-NoWV^Zffk|GpBRnB1N^NF8%lfd3Yopr_IwUZpE^ z8^>u6Oe!KK=!7E$OH)$H52_1e+hh2kY3-OX`vyTjYxu88MvW7?r==q2Z}Md0b4{Hkj}ut3iDdv+5d5Lo?%V%ZyV0&V6;?r z%SKdCkX3{-gw_H2pn#7Hlu9biaFnF^<-V`$JhcWjZEJ(w_a5(BShj1zSZF%msZX+gZ7M~!rFpaOAUM8K zVAt|97XH+2`M(ZH=GJQALP8JX?=P!ww!;Tnh-6;kGtzUy#x|RaEhD~HcI_J{7PLZT zIN4#--L0?6Vm~jW%#U4%ul-cV`b|5_9PFSJIWC}AuIFti=<06Oq+QziiiVblVpB^c z%$&P{%5M2HPJ(xLG(?we}uaX`LlUowB%C>&VwkHdcs%t0vn zN&@uxo%qdO|IyxGpEuKn(0HuIgS%L}@t_02A-ZJ0h&Z%gzQ(&B%&;!t3qgb7G&;*5 z0ta+YL7E&_6QEz#ME z!_n&{2bm^y-llrjY|#DJ-C?f)B5*T*seu#LC{+5z_O>Yp0xU1R#IU=K zCOH0#A0PEpeES8XvRt7n?YeyU%vl1G^)W#d6_M>07B}$B#Ej-PIMuxI>LLiGbn>1h|%?iox@pSonjYjby-qJBvU7{|-w$gJ;*F1~TdU5!7 zvO)G7a_`g>aWS?>35Waiq(e_~k-dK`<%0)_IbbPwdrtt7>ZlW@?Vmae3Kzhzu5Ha{ zP8%CwoCx)Qs3IKx*)vM}7t+9%?tF@c*P$ifQ>R3|o_OV;*Oi0ejqOB`pl7kvX;t(; zB#CL?m;KrMd0*g76aodmH=}4u~@i0Hgh&|J{RAAGDKB0N*T18FB>2J^Mu8{HP z0P#iS_^***d`wh^BZ*aO_WTz9CcLGQ8o?$$;%{1n_`1dKpuZSX#hrON7?B3V&r3hXdpV%K%u&gB62aoHMh@l zhiU=qR$y^H5Lr^A$iwcl2uCt)4SvoI*Uly^8)6o*>V%p08jO1)a>^!mc3;dETrWjO zMou?rR0*htck0K)yOu7OYjSQ(z#MF+4yIC#Q0EaeGl$>vX>1oce2ubo|7Jn%eCXie=;F*q}EU6sJ`48Qxbu*TSH- zi#( zxXk~%=FZ2gTQQ*rc5^ZIMsc&LKNY^Rp8DjO+<3xh(JCTzG+|=kw|sEOV-=PB)mp3< zV@|5P`@`n9gOlKUzlUTwxwVYpCMIT=M0{VYBs+CotX6N%H~VWTSg0PedLCyQ?bYMx z*(2{X%cS6z2X#>Yt$SduFB;W@-8aOh!7UApZN$vTH4{^_wIxzh(QeflE|3Rr>gBA+ z*G3a?+(t0h*fHXOr8q`(ZPtiuCK3HlM0jn#>{^(tNJ(~)oNadeJd?Y9r1m}s3$U&) zufmoZ^Ie@0cmo#MX&`3NqU1~GDrS*aY`nZ4JFh02f2tGFFRnps<-!rd0PH9J78$_J zxwUCiL zsXL(D?-`COML9mG3p|9valS~dtq1kNZFlIi*AQYT`i}APHe*X)ic<&&Y{@hFmba<~ zXa7P50OdcBXWl&n-Km4Rip3n*ddFWdE^&rbG(vvtz-a$K-lN0&F=*5G*o7kFOR2cH z%?S@(bsSS`4Z&AahX`Ww5K`y`;-_Ph9c3N1c;r!!v<&J$T((aj7P(2>`sFU>V(f5J zuAld@*2@WY&7Kxd^-A{E?#9yjl2l;u2x)Q1S0Et-2Vba`nkh6}l8NoJd>R_OIZKYy zoh1<$X5jX$uFL4#YNq#T|&KtuL&pE!J{2Vg^;rvGM}+Y(dZYrLqV zXe>}cV&pC0u?xlL?PZ20;uAmOuo0?*tIFdNQqohS(k8M7{7AQAgNlPDbOD@HGjNzv zHmC>AG4Swm6b=fhff#e4OeYHuBxkaUZ2f2oaNEgB`f3%^Ij7W$+%yN>hfBfQ{z2?&t}qea@fJNjed| z-|%%0-}eto(0NEtKzh67Q+Ahm*{8k6!nw!h$|d&6c&z7Zq;9Xu%fq&Zw=c4_0CF{^ zsbhiKJ^!Kf>o&9t8W6T{nvJjbIvY8kl?Jhm?&pyN3r|CWi0%ba4?g!WkX15MM=@AS z3Lbt9v`_?BYW~@FU}D~;P|4r^#Ued{=BNk% z8nk=cv-wL{)j-znnF+bFwD@5RF(lZaoS+jtbR;T+6CP$_gi*9HL%&Y{9uPhLp z{nXNNzP7#bD5_eqqhdr(HqYEFOXR1n{9D2=6gKX-a>=_58_w|=yGY;6+2dFt53uT3G`kEUq zQIK0W(dy9>hC{KTFk;9RKf(`5yKista+mEir8%u0dRI&3KXn3{FSS43Qylv8IGJ|z zrwZ+kS}#_$te7deGLI?bpypVp3 z6kd?VZ)Tdi#pK-~MjohZ|0wwcwNK z1~Giijr@uEpxcju7ipB1wlYOXdWO@PjA@nDOG*V1`~MPiN=^^0UAIX-r(&C`|3#$+ zDC=R4Q0?^b!cW<)#)E)0IOu+l)qtwmf zr)#ho&-%h3**zl)zT;X5lZ2MwRY33-Ww-Zaj=uDz__j6JZho~MaJe%zU4DkyWnsQR zDp%q()N=vkf^j#k1Ow>gua z@0*JMyu_EPVU)qn&g?Up+>)1A&KkQ6uPRn;e7O8D(P1!Fo**suGbj7UE{}@Az6%kx z)==Q~a5QxCeTL0+cm&Bt6B?hYr8lQ%ul*zL*&?2=h3!+>+2EuJM_i+{2w_Ky03<(# z82v0KR$Lz^RAc)QJud#aQIU~AI}~?^vfF|y8W(@t%}WKcw-U9WcLB3#Py_Iji|RGv zYg@%?Bw2^zxOn5AWTT^_~PUQ?J%@wr`; zZCbO`Jr)QL-WCVzZ^tZaG5wy}Sh+_`QX#!^1HD4o@c2dVyC#NJ>3G1|PBDFqtFYra z5l(}(NI#`cRq#kBX6R+Q{NC+!JkzDr4PJ6Uk?~dceWB=@s1sY4B%^^72du^WF}k_z z-^H>KSJ{y$ObIY{lrwg^E}i!S$a+MzJ_HYlz#$88@$FDj=aG7#+Wdg>&ey7D6;kM* z4h6p?g7?lvSWRkEhjzPhe+~1FkSo)BJo;8x_@l@oJC%zhqH)x_`yP&L97;8WFtg^*!A*misd6xOsd_$7zE0Ok(tPTKE3awv6#5b zn~Q7(lyURdo8{Mwt;EOvA}1oOWoz$XnyXj{)edp|CQ8_$p!Ij#fmuV8-D2K-iTLU& zvBPf`^RD=6^xc4B!kKrq8!Y14`%>XRzJ2^Yz6WyZt>x?gm!X4$(* zHOaO4fyiG72%K*kQ;#e3boFNJ2bIO)mC{@}SI)sm_GVemz`MfL)ZAipY zXn{7*nTQgt%|2*gfNDnlCk-S{%kc=5{Tr!0aR6t@O}H$@at6Z zw>4=ZpO?^`uJ1r_Z=L*yF|h$X_c!b*)_iDD*(p^www@uwxMv7qdrlvlr1Lm zSw`*`9q;@%-z6+go2f;Wk}k0X%GpU-!nmvyttWYf`6`-R?45 zgn*iJB{cSQ1${nJ^+7><7+e)G!D#e*ik(_vim!|h!`8kIX%2#l4mLFl$axlzc;`$7 zRo{rB#f{fk(?}quZx$c8nCURff)nTJM$Dm}+#quNRW019=?~nqohF}C&3H?j`^tlP z7F{ndMo!hKvDt((z{zJ5Zv3>3*}?>EZh}RgB)1=3 zpJ(>dmSO8gA7bl|RL{%+mEo|27aVkw_fKIyZwrk`BJ9PmQv8KUttk{Yp#X#Djvwjj zdcBqCzUpt>_@9T}sv|CJTem`*+oFjj(&qyNMV5U9*?!lVWt5>edI7s?TWkd6CYIVN zfnHV5KaiQ$g|5mS7FTXqG+{Ki&XBbSibFpZoTF{|`xi4ix)I$zxSKVxWDT>LXi@A_ z>#sF(*?AV#7C!pA9WQ_4i|kM5tUQ2FbpUEDTDb6}O+QUH1oAq77B1VwkJ7=RLZMW9oFOshWrWrhifC5HYnU4UenqB4?(ACx3$*LiKo)Ig{Y~PL z|EW&z!d7-W6dWvx`r<+{!*5TX**C@NcA&8y>y0o24VJQk!KO)|vHQlzHX4;N5GDK* zm>c@;#co~Y$)O}(_SYf)HFVli_AGX5e(F_YP)E$Gb5ykIR?o8z8I&v*Kt z0y(@FDstbMGDW0w{}{_Jt%}Y3Z~QgnoBuV`k79jspK?KP1Uvvybv|O3Z=&B%?6O4? z=FE^Q8RUv9h^DaiZFI#s2L+PrXD2$DKq|@`>-l7fA66YZ@i86oE*J##(Yw_t%VQ}S z&7;wTmGxXULFOT;L2mHLdo?vjTS|sC`?9hU-R%#9xxBR5%svE(l2;c6lPhC&grgoF zmIB2)UEI*LohZzhU3%ot%b#SjR&YnFxC>$&dCV528I`saC4(jKreCyl;YJqI9d@d> z<>vU7n-Pq)72G^HPj?<_SY_TmM7;7u_oo3LM$qOB)Umw5z{iwI-$<(T`%SNP`Tt>R z?t)!vNApYsoBY&cPF5YWlos~fuic3~p|Rf6pR8lM+%UmV z>k`42$(b*EG85ASP~C!8ms>*lH>myHfYXjWj^g%)5z*>{gcxM}o1OrG_HK2f_R;n> zf1-tWRE0@qNK2dD?E*RJ=V~{+I)F}%dr`WZ1~70r@d`;hlW}wbk+%Szu2K~$UbB~E zx^6DEjdM@V3jKCE63d^*Ld=hpgVdl3M1LL6ycvuxMf7VBQ51J-PIHtFsfatFDLjll z^raCjqc%Z`1D1xe>k|Y`i+TbKJ^j8K2mw>f1al5S#sr7p`z^zO+R_Lb=HPWIYgZ20^R-J99D$^ zHG_9~yZFtr1@hC{G6<;mOqBJxmJMcDRiVx9#F-CWv_?ir!uyOZMQ}be56|a;?)s@ zirw>&9pGng`FG=aa)siMPk4rBui}2jZqZ-?a7dH=EMDxRTYmy?HW0RTdrTa#mAy!o z{rjJX!X!UDw5~NnX9b#5u>%?^!y%*EmoEu3Dx^;mudNZE)K|6aer8R0EBMQGD~5pg zg3KU`aYkH6qP#bCRU+M?32c7^xh$kP3@CpdA2$9uo}S%$saU2u$wW%zGo-;gGvqDq zw0pYuxP{>R9pHaO=b5Iu78yB#=*f8Ul6szgCGW&8Ss@9(9G@;y(<1W!pc)6wX#jKg zDab`aCHEaaZDP)FA~L@Xg|v*=$o_TktWPtd_?hcU9vHW^k{9m>|0J61+JyhvN~6gG z>^vp9wNu-erVS6Ul3i%dL-eeIN>oAz=wQ&_afUs6gzB;t4jQDYSowWtB&7@(i?{L& z=g2f3Ct|FuyT)ik24V(?&nb)FRq_iNev7oUG{S)|LqKZ^tsoW{JjI7IKiy5tp79l* z`Zk2E+b_HBFFqx&!K+qtodD_I*S^Fdcn$77L|j!ZCgX(V$uTKi0T(W!7SsZX7rv8T zyJQURnV=VJB*l*q8?0(t8&|FJ)k&}-S9IbRW1{p^I`$j7u=}s_W75!&jlk=I$nZ)r zi?dzTt^Lq9Czv{(NRbUtI#K=q&bN5j*}_A2!YIv1S||?MTqPB5BX4n;RCI3UKcEbD z0Y(NSmraxAWeKE04HcEo#n@8b@mu05?MlptE~tUBXC{XTMs=giiBHV|-`7&C55l{f zxl`rb{I=)FAxIek)M>g)p59-~ptdyx{O5zy7y4SU@8 z$qA%@_>2!>23yTRs7C~FZsRP_oRmT`68u(fc{2eAx<4aVa%pQGj<_%mHX8y z`}F*y%As5&6&y$>Gm^GJiusbFnThOn$SWuRH$xQMy^&aB6mm2g2VV!bx9{F=}lh< zzm0lzNj;)s23y>&oc^sB7@YByS}~>kJ`}!s*9p74k7uaLT8S^%DN}!eeel88w;-{k z_pDR7xzWIvXR~7i-UJ3*Y>dDAX>$K>2r5bx>vzpZskBtMgyo4Z{)u@%N8`;m@vD1C zhViuim~_fw5vBKXC+67XjpI(1rEf@9(bd4vqR9!0a5GE(?@HOVU7K`di~HShAIH+0 zq`-_1GWmBnh9OdtRz1-rl&brP0}VAU4phw}et2tz9e^GuW*AG7y3GVGN)?;bQyLZs zJim?JOvIW9t8rn@9-8k^P?YSy-w}M$m`V-2w2{6B(Ac&Q3;i^N>tCB(ftU{>&6^<~ z^%;_*yaqJu{_xqHw%H~mTF3~TqE;s7cbUep+45%@ook3>dV8u=PGqHwlA_#QZNZ~p z)>tI|9>{^?Fg1h;o0U?iLArFBpEBR;JJqJ_%!t=nFzH^s4Q>IzF@^Klf(z>YmdZz= z*Y%Xti`6TUq7j2<<3#>}SM=ZnV%$wznNyc5udAbo>?o=S$e~!><_F zy9XRJI(Zkn65jMR5%oG-ody~lAs2Cne_sS_3xaJ6YKF7Bra#nSA8bOH-QDk*?)Mc0 zxnkBMEMdJ%%l5xF{RIJL)bJ0GUc*#{PnI_$gXKt5GzFl@>5e>p#lvO{n z6WuvLlHObUg!OmNmxu{+<&NMGSaM|R@qE<#-#HTWBfweyn<>d6GEFC@Qt{060KCYA zg|Di#fJ?Eeso&bt9e6MybTGC*tRetiQ4hqs&Bs24eCPJ>q~B4pcj{p+l1Ljt7D-jw ze0w`{7SK2R@FkU&WnC0`xSmkpD&#t%i>88BX4&#_HUE}$k`E)p@%T|7>uc)hPqOsh zRRYKy=M46953@*h_)qMkvub*zjN!>KJi;tGC74m2L?j*yXw3-AE@hQm97pw8ve)d#`_^F|vrB=!E+9 z=c?^M;y1%a`3PO!{m|xcszVNT-gBXI0FlB3k8R&fAZtiP*fn~fdHgmra1E?MNHa?^ z3_H{FKwaV3Z*{5ES2jwt!ZtYV4)Z(pCQ_0@YB@zZY5(%qu-yciVppd48pcs7u$w&S z&?NtJmnrb*k(sTV{ zk+rmm$V2NdNe4e^D-;BPhbqzSV+-08!ykUpjMKP!m0E7o#J!uzX< zM2C-j0Xw$&99n3QzDpO!UM$Znc;<-5ErA8bEUM^ej-x#L&`nzN$2M99)*5JpTj&ep ziLQc{;0iryp0$}!n-;-gmDVZ__On!b5wztJDWQAzP~%)AYB_fKyTa6zvSlu?yWkxxz-Y4<;Qwcb$}-M{`f0GHYyYFdZoQ0#cQ=gN?wC0$71oqEXm zgtAr^kvqUIuT*605!fM73%E`(qMTSXitb-KwIZ+f;Th4Gv+aFu&UG}(iEBq8wpwc` zh;2-gZpC@63P=3|=`+yc`B36R0x**B_+TT`4lN;ZqY#^T(gkHl{r8ihnT>5o6Xlw7 z{XH|j2Dwg~-I6L3RWnWYFXu*~-}RW>LP+o(O!~E?uQW_XQ;G>-mZ>XkJ3v621N11D zh~9VywrBfvX3`dJp_c5zpCPfU0HL=H;gK;|k9Yb-{m;DnX5s_T(YxugDkj(2KU%rq z2$Pk)km7m8jUK#@{PVCaZ<<=YLEUlm1@I)7vP=QLCTP%8RJXshfxuZ&CN<*G$MlKN zEqrgq@-eoZt;tyNH1)v|Y-%4j4LWf)oiz9#bTUOTL1{a#_SlyaMyZcauJysefBZ@` z9m42awoqL%wcf9$b_RfPrJ|ho=m^!qcN#KOruV0C6Q0dds+WJ8V#rRkV5;X)c)plo z6$8+cx=d^YAv!TN>Sh8RwTfbr)_44*dY_*Xu5#1{d-Ho7b6vspj^lct<^KB1D>Rj9 zT)2y^?G&F^_4CVkJFm2w4<=lRg6=qmekbjYlQ6l|SY$9Q6jrmh2lUS>5KDKa*t`tQ z+6xRQ06pLW0FnO5Q_rzxk{fX6<5G|yDrt7jlp{csKmA0&)7@rE5 zwL`{Mrofqs{LNU^Q*5L1UBp}Akp>MiW~q-|Ns_-1XBX-5u7gy`kgmgejM6Vat#@=o z$%|UhsRy%!78#7rZ*k@t+AZKe>35Zy<0{38;&=b>*!#HY8BsN}8RNykcoOuy6}iuh z!)A=dk-I~X(8=E~HTjR!D$9VDUby%c#b@hr?1M5k|1lP?)QRNZJCDIOH71AFAo_2x z@W*Hm5Cf1MF8?)d=}P%Ky@YslRE5-_hMLy$Srh!Arr2je*{HG$A3Cd3Euy&ayeE-; z0a!yYdcO;E7zHKmI`bIT$-IX97~7gg6Vrc*%cfNVtCcUDhYZ)!7MZO?oUW(OjGXW4 zl6uj^sOF|k^>3}SzleE|j5fEl0B*{zgw$v?DS!0ZuR~42$lR|3pZDPTA3Y#yY2uek zqE?)zd28sku^?fRWKcP)7WXR!3jVd@``B{+6mAK}d?cS$bBA-SGh9~UtnAkqMqC5= zQ_2M&DFdenr2D^TD2^3-i>5;*yA|$m%&V3E2A=I2cw&P!+~Ix)6`;?sfbB*uIy_?7 zV)>Q4z|Uu;T4u?yUVG+NJ)&+)DbfG}Vd|D0vqqfxlmG>IOOEEA0S`$~?P)Lkg+ISb zaqN88;D3j((LVGclW@F;!FPr}k{q9=K|^1J^nUdW&ys3Ub3A3Gj{Ni!C+vk-$+(Xh zm`z0=UV--i+PN(g+g)hP8Vue`a=ZCgTk6GUTYVF={6gH z);}V`WE(z42xsx7(j%JssQC`iOIVx|G3T6JSauEp%ZJ_8r%t^brNw=kwJkkw!M?T4 zI}(QmQ{ULXhdUBzZW9^~H%7W3>GSAZM4Q+&ebLXgTLonOe3Ck&ES)VZK~5x5D2vVT zII=+J=-PjfuD>B^l(dCrlpy0J1d?S|XUBZ}!gxBS3KqLX2yNymyR8d@rB!uV%wR(o z%w*n8Ql;;=#RAg#gSCDuPxFG;7IuA@I)({}jwrc^%26FdyT%(zXj#Qy!X!IpR0Qii zoJ5x-3#HGT?=xQwRz|f@9lnix8>O`=&LO&|R}<&cvBRh_C!Lk$XH`A|e(`Umd9z%Zo<=UJJG=um`O6B_H8@<&fHZQV6 zI~wQHnxhuc?sm9EuWDWtYWwC?XxRh1XpSJsLt1`Wm$mOw0jmF@iW%&lO6&g(y6zH^yH5;4okwCVMfjJBQg1z;EQNqzKt21Z1T-kjV&Gp^~*|cp4YjM=JV~-dJS5#cP zXD8f=ADc({72+BqQ68g|rKg&5t5b_D2W9 z4Wlfe@3dw8sj76OhgEiw;$nVQ{r##5)k>OHODNFf16Xd7tudJ>N)Q|( z?fktkj=&o(=rLyZLrZ156Vhuh$BG~6_$>j050bZC%Ak0nCji-MFT8<{(#<_%!gb%r zP)}%xJTrObF`#Z8u>O^?(k#RI!EX=Em`QETD{N?65~zPE`*H%>6yhg3pnh+bTJcP| z!rHhZK(nH|$G9wbvWc{DLBTU)9?=x*|XAJ~p~+3-*eQs-Tc_>f@hH^5LU zbkJPYEaC{$%uFJJ?Z=0Vbttk94GJN+aOuPRa3!~T<2B-~Z%hkqJ^jAZIQC@s)7tGv z!N;e_T6eLYwHUa1fezkl;VJv!gQ=1FCj4YOZmd~DTNUI%k)I1D!tv*4jCa1leenh1 zerCh25~;FEbp4mPjd=b&bXTOwf0&VO%!=HDJx)Rg_jIic#Fnx!dR*S{Gr zmwf&AG*NW?=HtxOKgu!<3YQn!<0mzUwfPDIhnu9f%e6{@Z-(idHK1FN7NMUGnxJh1 zW~t5o)1)OA5mALWl|WXr<*yPbGWxGLajVyY`dbjy>d4D1 zV?wkAw!e&Hj!gU3mwzM-cb!Axs=4B-NGu6_Jm09o=AgbL?l`N3uYg>RsJ1x&g(_`e z2Utof2!MOm$`+&$_(IFF%e5-)6OGh@^VG#v`>26eN3=O6qjbqU;@i%rmz0dn0BD>{ zrhjVyQ%Ih`O149vZUeqEq~t+D?}P+}P-G)_6zQGdP~kp$`_P0|<#HdUutlv;3})|F zz^;T>aqPOSV6RmliS2{)HTz<|+i;)MKsJf96SIy|SDDdb92sQbjbAq7Z|cNXue)Ka zJwAA0oE278FHRaZW(FS@pL84DPr;i3e58$N^Qz6J<6Ufx)Axw~jTGeSKT^P1lRXr} zAhm)w(L!1eJ0nNj>6{?JMEFDTJMLuU>|EF=Rq~(<1PoNCA|AL#b?Uh!Oz8FRd-(G^j7gc zPkzT=r2@AJB4DiqY_{3~QF{qa-V9)!uSv4D{7z}^M{>&1u^SmtcaiT;!J!kAFXei| zM??VnTC!hWIsCat%+izDJry@=+McTh96M027D!VU7Q9>Js#^w-)((LU^MdheNR1zU z*id5CWmIN&V?pUFdH0XyeCeNs@(7FI%-pPMpd@V;8WK;aR6f@e-nW-ux*SrhAeN0r z561?iAw+8YD*Tvt8YL%Pa^tmPf5Wd2tF`pge!K$(sMzRey`hravWQlIK zxviQ1Hg9&|lSy?U^vO7rKxJ5m@YWwI=0;yqfF1sgQj=TsxNgYlIpTA4V!C&UV5V!U zy#M$d4_hf{>25^Gw2Xcf(-Moo8H&O6=vlZj$k1YbJ>BgeCI@;&vFh`HKgCqCVL zQIQ;((6^C#;OYf7#%`25S9QaLyZdPZBGvIxfLkm!D-)a}-`VQ$;J?U;Z6vp9rX=NC z*H)iQuc7nki9nDN?&Lus#|C76GDd%mqioNoZue-62}dF-lpK7g-T5V-zwIes9RE^& zj3v}`{j`}vW|JxUJzAOHi|?`vs_f5nsS8$14xXPcsybvNP}XKkV{zJ9-xc#kfTbVA zBp~zee0fe0yX;q$u4W$~#Bfhu^|1>c?Ir&1ajGC{Sx#4D&lGJlqT6iPy5}^{|L`$X zSMol?nDci>09n{wk^_mZ-%yvT@+*tmcd1JT|EE@Pp)x(%X+A|AwE4HsVLkJ|(img6 zsm+T5p^goVEkicV7~H?{m+C8UC>BT#B-&0Sl>AUb@TKa+IashL_ekjLzjT@}lHVxt zC}%frwKe3p?kMKbC8krg$M(~j=<(RP1N$*`gi5m?IZ7MqtPJPFj)PiPw2{kpjaa16 zgOxnc`cyt-!dSi~&|a>yD>Ab~nN4sL5-zF-)Ao-Wh5?bD^YIzGX)JQLxY4@aMyYbu zdc%~&`aO93$5*fPXs!_YL0sSvK$s7iV?v9#)1q*m}e8@!Ow{w$r^o_poyPfFl} z1>jkp$2#Q}9&~5N45=W9l<*0>^R6d);^rmD0G<Yz{g{<2LrU@*q`dp50?+(!0tE5&D*HAo;D%;3r=IyJzr zCE-x8=ieb}Ob99LN89zKuFM2*$O<(4tZJpljBA2ezc*}P-MDk>x!zcPAtO6O7h9Y4 z-8zV$Es0jC-0zuH+pH}#Zk!wt@6e#cFLuv-ozh0jEuM*-AV1!70Q^&}6A-Y8vR0dg zpCgJA;y+H?8vA4~l9>~|*DY53=&ZD6#v2cdSGnInAF zzCP1+Pmz5dkd@mD^cGuwN`P!Ya?!s^R+h#!o`VMvwV%Mj`MqzRk1Tpi8^bO?d4wKH zv&ws%5n4;DFMmhD?6;^%oVIsqteVJJq$yjaBYgKQ#P1=>O4+F)oTt}riVl1LtapGP zsp5tY-01fr&)+<@E}nmtcV8EqSu3t0TgBBd{nOAWw-zS9WC@yEY|Gtpx{Re1+Ckn(Tnpp8U(Kw=JaPCEUy3WS$G*mQ)%oo1h%ZGaZC3 z%I$Lws+l0~Mf$(6YmR;jk2z5h2b#0EzfsQ$1sio#6%En=>q-8BB(6XAVV3A*XGBI^ zGxa*<%Wkk*$f$@lU@mB+Wv}fPe+cg<*05#6z%~-%vg($2U7#A@%s{wrp8Upc+-gBt zIkoK&IO1Bi1G>;O&4>`WE)Y`|R<2VyPX`T^Rf>W@HLk6Kd>-x>0{W9{u)kv-vSo52 zh-X@>(srC?0FpZkXz}f$f9+$!T}#i5Q7hGFohFJ%a(b_LN+)f(*A#EP5=}gMcvj>z zU(~ynOAnRxYsFByUCUso17SG8@A=^r$DOTc0`-w<$|Ezl^c2H+qw3BI`+0G^``k5n z8MUzTxsv;C)rus#LztQdb-)f&{ktcq zg)Fo=8;RbEBmj@-4sJ~(muBsjo7ACW6V%UQwJoRrFjC$S{{uOL@op|dMcT%ojcBYn6nKi%=*l0#9 z{1QU(H$STVUL9HtYt|M#V%Dq4iU8SKx%f;wuW-4a`5{nJF*ZJ4gRwc)0OR-G zIyr;$^fft-dJm??E5J`XcLJ_(3fJAE?D(|uwkJ?4kU(MU^z#TA@1sN^F znyEzZ$dGdx9Lxh;_lRAcxcR-#Jf|r*x8S9BgD5u!jry7fm>X2XuE}DDX3ANZ?t{2E zivL%5X%^S+mEC%IY;z)$JGEAbHgKzf4Yg5j8N-vx zMY|`#cHezdFP7pOlbi8Yt5Cajf*z%|De#69w=fjfusV^sc~6b40Nj7l$v8M%U|UY^ z_z$eyG0v7d(Ilno`z5fsi7 zXd(H;xlY1-hBWNYL+M_z>sI2i4*O_N-7e8=LOMX7OMq$u{$a+rsNBACYF{2fUb#9t zI2ul|#@AK#hkYgDW!rn*L0>zZ+Tk?L6V|jk1$!}FVsjjO;*D(oiZ(2%PEV~f zxoJTt%WGkZAw8ZFfP0QIuq6}4sCMz`3y|RQ9Ko5TeFdhTGNo>h%xG+V!eDR}DX^L3 zcDt9*V=dT>ulAc2b-sd$8Nx|B~yg4m-4+O(uvN?(d{?7uj_WKbLzq(L1EdvwBg(aX8&{{YeVESrlfTqvuNqw2HWjFR5AzlAZ!5p4@pk= zh^4kCGOzgr)Z>8Lmd(_bQoFaG!i0ajwWTFam`~GfU7GmMKo}+k?z9WZfp5E%+KnC2eiP|iKYJduv=?3&{zkazoE z6Ial~F%N3dB5ebWXLB^qyb^Td)|pLDeC&k#0&F9CqwU<%_MYdd2|c{F?KF@Qq~GM% zALD5{W1EQfRmr85UVrWS-BYwA1qX~JTEohMfX_}8>Q;7U>Zd_eUr(%=>zDIhp?Hdc zm1T^Im1jYRbE*dC?5PPW9N+lyCF9+0Qf)$eZEQ5V(%Cu}v;j_Lr&7PX|Enwf+NO_3 z-TqEngPAGv&<05d$k;DDQV~R|cv%1Tg}$)=0bqN($je@v6R-ADtXLVis{R#ujV0#2 z@)5cpl^{gd8%jRu0cH({!O0SZJ?zxP-bswgXcyGE?bn)ZR03zI1;Mkk+PkaK6I+qm z7Yp-vETMDvHms6IW@1z+c`Q4mnkC+=A))Ks*+;qc$M;B0VU!-$P zV#{7!*+1k|(yU_iG;z4~7gdz$Nx$5WW;S;&3sQSVF__>-kWacJpZf13nF72w6)w8) zXK-=FDCxp;$mp`w!ilVlC41Ba0x;@`bvF2lT5KDJo0nmfpeyy{pQX_FHCxcewTkNI zn0IiJE;12ZS>v-jmjL07_v<7rcRFSv+Ws#^lylKhLqP@aec{19?$B!43eVaboHDBHr!Qw~HFa*lFrRxC~wNX$mR+XXgoru{k z2)p{Pv3vT;)i#HBy_xfL*+>}8z1AHwV>u&x2KwQmegEa4KNbtd^o4PfE2mZ9J}o_2 zkJ!ZUqvtDH%5)$`KQ4Zyp44tF@8-(iJQUL(HsYs*a=uI4UV5pi>NX5zR73wI@#wzz zj24y&mxikR@VB+&j;*p??s<{7yhHpZ&Nj0kgS6csL$@A@a>_I5wav&~Z-;ta3e`Vv zN*GK}JWIzKHu1bK&o0XqpjjnkV%r%aqqyAD5jqmw7Wx)q$W%9MoKoy0IRkBz+w*em zQT%;a}!`nM944&(iNKrz0ZI=5(UYQAXXfiofUPH2LJTf-;Csfkvo;mX9r`+FvD?PEOX z5zbvU@*_t~_K3zD5xo(ywWVY|z0C|b&M?J8mk?$vV((UiHk=@#aCizfMpK;_!_skz zsc^k*>2l?`X;IF#6jJXxPdv?Z6aH4PiT~v(RIn82p{uFMj5PRvsZA%rcS^!Z!!k|f zoi;IAdJf*d88K90tA=fSMwE=}eUlq|P*YfGNiAFcly1<~3p(cT9tMkS7Ei0%4LQa5 zzJC3XM);6aJ5lcd-XUdVjDbX3rE^D~IpO!3hs0~YD$Zk55!^}R${HnMqh;SmA>M6V zCVJik{PRRyb)$4h0X^fsbWchvy^amkzH6@5Td0Ev8BZSLd8M zOBo8mb+w@mb7}+}{ovp;)KG~(rIGZ=QM0W28}u=x5(`L?X;|S&Y}r6^b1|GNs{x~d;fo!gJqZcyiM{Z~u)&yPL)su_d!>XeDTB?S2O zUio({GQ1P*aVfpb*z$t(Gdm-v4|UOou#Gn2Gw<>c_U2-gZIXrRZbE%ji7BQ#zJ^q~ zYlc;t%V=q)4D%X7d4-w8#y{{DzO@JS9!EogpQT7vANeTywx1y%S&b7pfxD_P2854_ z4{fNagpAfst8>o4i|%vvTWe!gN~s&PjvYA$exCVC6F-UN?*B6H>N8e%cO=sAe-xd0 zJXGrg#?LZ~F=Hn)##R!Q>@k?kObe}OS658-N=&6p+0HRV-3qOgZMrSgRfKBliX)Y> zj&h@}I4UJs2HBVSo!`Gc{+JIlyytzM=lk_hO1yXIkUs3;A$7|Fc!@OkQ9_(GzKoQ8 zih4AYKgnqM7(!Ctc=pfJwt$=IW;IWZ&S1`oLmCp>o*p0kRltee*lEr8ftu;dDXF=C z*oz#%rJ1}4Mj{#Y+y{EE*plG`I~kxmpVA-N#|2I|n&uaQ?U4-vx~6&;^?8B+f7aUEYgp6dUJ zZ20In-0mvjx=h#7@Vov>#~$BM*8>E7^HrmBWU+eU4}fMWruv&TJ@@bWh4pQtA(|2oW^4y+j(@xK0ZMZ` z^JfCQV<3R#pLqPW=>poPaJm7FVyt0xunAjOO)p>UN9H_!-GI@`SNrsI(uFsTGLIvy zKf7!!sy*?`i)#YpS0?#0CadArZA7@$=+Av)s=~eda zKa{5UXin?$?5ENPdgOr;zrXoK4{$WZHvl0F;stNsNG7B5B80TAvQ`7so zonG0&vJ>B2t1qSGAsI%sKv-TI^IQWF<8A-OE}J1XFa)w4mxP-@$QoX3Rl{`?V! zjend_c0@T(^6a@w^|?_xD`~-B%#%ltqCeK>?d6DPO(p3`R+8)+uB-UR78M7CycLa2 zts&qoMa*-B*~s)x8I$|@KI`xTnDq^bx!ztLPm4p63JX;gCm#^SlGlfcc0*E^rJ~}3 zXOppQ-^Yh&Rf~nLZ1b+G0#;dtuIz0@Yef*Fb+7~MpdQNWdRg_Aai+_TQQjy0?~w_C z*$XYV!F1j+(DQBwgf$UAwbsH)jjMOM^P4aULv{*v{;&Za)W0B6=^}ok*dD;KOV2o)7uX0ch#20M>vZ+^{=Nh><%0@6SGfv8A-AfNF>V14FVC zm%89Bh;kORdXoU!`~x*;&cs(^H^XZcXUUl+6?>f~o+f?{n^14hdi+DaI5|pgzG{p8 z4MyI-Xo@2+e%m$)pXZ{~1!dbbRtZ z4azQ1iy&Y6U-%~`%E53&d~VmkD&HRvXZAIN%j)L^C-++vgNkmm@FJSkJM?{XA=Z2| zF})0a7S*MrK-3a&e(FOP(GhO($h5Za>p8%9rixTvHVTX6Cv`aeHWqXP64Xe6^9KcC z-<9BpR9?b@ygR3kpDWW1f9%NB6{lC(ByY-cvMtOiJx?GDS3A9E)f3-+H|Hf_mQmcHEMPkrVtaE>ECdp7$p?{)=624CRO`25adj)Ep4Igvo&rxhl z;AN+Rl8Bh<)v_K-A9;zH;{0!E{Gv*}CrwHAbSrQm=XMFvju+|%U7=`u{|l%;9dk98 zCeK^SzI7Aooj^4f357x=f4?UsNhE@qvM}t;Y2K|Pr1dH3%ZIG+tj;PU zdkRIts0~nbWOOppQ>m7XN;@o4M7>tU7>Fx|#!r_xs4O{SkBre0$f?1S$W_Fj(%lq; z`flhLsSTyhh=u?g4!O|_vAG|V-2Spj)vxv?>7^82=ZlUnSHOd@npc4bG91XUAw4V8 z7MD7SuIXCHiwN_;*Fjz-W)!>#f49gr7S0*`?T7p1N8Q+*UhYiT4CD(Y4?gj)WVi1BX=gud|O@}EBrXB*W)gq zGX(K1#}ja?2d1LpOFCukDzaO-m#E@14$dNz(dDP^^kMgb zKFszzWx%8h_;A1wQ&+LjlzcgD#96A+=WL5Skl+;K^BP-f>eb8h>72|4b;E_)U~Z4< zrx?h!_Nt!Pz~~q6%?*9&>scH5VsGr`XTkL7+$@@{PrL4NLL-|D+}4oq^HU;q4esz{ z5&9p*m;C;##GWB_+sxl^dk*?%n>0kkLmjeB&{9(y^lylGjlX8$J4OQh#%eBh?Z7-~ zd?#Xbw#fu3_WfT0`tlN;E676Egc#P5i*Yq48*S%1S;OpLbK%_jBn(G1f z5f~!V&^RR|YfU*N5HOik?CeygFQTR?giovaiZ?)>5rVLzM~0C*kLHMZkWzw9PH#^B zmEQr4b57eL9(n`*iElC5#_&Mw&)#1qxc$99($Mi+4z_V{>YKx`=Xgb87&Z0FemmdZ zM4?#RZM`aLla9ndap$<6%i?4cjB=)uyqjt)B|sRX6K@YNCNOV&W2Xhq`m97^+GYZ$$lRR171fnL#)$!OSa-q0|!rt z#|MlHMj6Y0IKxjaG9)+dSXLJuQKF@`>AO%RcI>wePBY0vZ$gAR2yh3|u2RkmDo9>y z;HY|1FZt*WpYeM$P;Tu4u#hQkXlGexf1<_w(8pcAI~Qe#$YOsis9ujJ*aU0XLf(Js zP*UA@aa`;Q_7B-wfyQUc6UNn(J6G~|!fE$H#lt|DPg3vwm^7Xp_i17VN*I1U)=4g* z-NqshFysaFFbWoX(ItR(t8$9jC+uZSW$71r5ymp^FO9#VNT&aiAnIbJ*Hol7D1@diFu! z;MtU;Mo++~DrL~!Iz>NCguvo3c?`b0vy;c$J8mMnl|q#bWlvh@R6lvr$!df$xVe?l zWbujrLKcon&xT~$j+Uz0uKoKiL1q@w#q;cYH@->4uYa9>GH9oO(lTcl{?c?6HaczxD@B%xIQ; ztCzQE`tpFVvB(an5#g=2gB(lVFbtlPQ&Z857XEk`;w+GSs6kr)td2Y{Bt=~hC7xPtBcb}MdO!y9| zCo<7nQgchpUZ11Vh%xrOAomf-dUm7fIQYv@{waEqV(wfbe%nv#ww9k&RYkC1&nL?F zXyRwp3CJ4qvzw=oUP;6@4J!E?9$_0^XR`S0-Bo4c?8>T}pG@5ZG*w4B$#sot3k@Xtc6w4{ z%Yv`9FIC*em@S7w0+Duo_%o-8u`8Ecxhk1eLZ!XiM@Z`sS1YWWEB$C7M_m(7TI2NJ`0j_QXY=yoBpxG1Y0J*ykm63&|87dPQ=vzOGds zW8!$^g=!@BkU)nO1LH=va9w~rg4B~hmM74C@>R;Y8f612<%KC!@#;aI;)bD>q14N& z7=}L)Pd*W#o3SDO^&qMizli9gCZ@yTh!Mrdm2z;5@;RcBH!q0UZvA zM~>ipfKQk~w8c-J&_XBL``ZuiL6qH&>K8z6SIriJ(OrSYpHD! zLh;~dXeUsu^QWdJS)#l*o|HHCYw)*Qu~hpBPNXz80jk!DK09q9?|v?&tSBCsfDL;> zNzWv#%z;k$KT-fP>7mKVs)Fw+kQ_QF%s;EcQNdm{Gy%`PcGHVLzxi!)nTPzXg0Rb# z%I{E9Iy&GBF1rnP|I;dUvJ>5-mGv>Aw`67)I*L304a1GLbRzpS%371PdOTSy7QUV2 z$B+gk3*5T-`}Cq`VQ0}*Qp-MYSrv429uo;U#VnRARV@$t?jl;;#>4GLim+7>_T;i8 z)C+MaOh5LoXV37fM1~(0lzR$^c`AY}G>n0rde6xnUC?eXa}~e0q)*<%B(dI$Fr1tc zhgIJ^iF{8YGU_}pit8Nvv|t~roU7^E0lAq{u%q~21W2^oyAb<46^D&R1RytymF^C9 zD(hh9WXPe{M(Dj+g+m@4AL3D5w&S!Fi5yl3^1%v)j+)Q|jq)knLGmZ1 zxJzTVjY{?a+^*tW&cWB{uFs2t8+J!&j|m{wq_aM~vf`eXNcRG=$d!rQf_A;t5RD0vY_mv9TeW|f<^9Md7@3_llHIR3(?J=I>}8@bGG5I=O_!!3Q)$w#tQ+%H6einnkRPE$*$qi z&%_F|hFOm0>&87YnP1<;74n zLFiknZkv5Vz5J1$EPAyn=k}r{(ig=?sP|k3OMbnb|LDLS zsHk21LctVQzD+&)i?zs$8hMU7^#VApADLaNptl85jN-=$aAIODT^LGARYklu$yB)^ zpySjqn{)ATH>Q_dIsL%)jp`BG(|?ZGs?gSf<9=}=q8NM1z$O_crDpGa7S{!>3Yra; zb~2eC{xt_P;C%#Jg`*+v`r<~h*czW4pKop71Grf}3r%LE#269un~fH`zw|OPY;s5s zTB(s9`sty*&m-7Xl>d0b`6Co@${XtAG)8L?x~@GZ3%io=?>^#DIiDkP3GW zoM#hjeASj(D8~ohS=C*MueS?9|!{wPP2*HdJRZ@>7jgAIeL< zx=Krl)u1{_Q zCsS_q_Mkb8yo9(KIkmn6yL8##fg2y4CSY=wVyadq#+?aO*aJnjVErnp%u(aphdkeY z9niQ_?U~{4whI~9??e;Xwh1?ht?1krg)uA$Nmz%0{?=dU_|0BKc$_+=N%Mv0AKI-qw zr;}z+F1Ew90Vn+W;l+ovaP93lWy_)Y!d%xE2unM2@BaQDZ-LzvQ@Y}nCWmc_g!d+C znWvbV-SrQ|b?^s#{p~h@VPBAtq^r-|iQfn5?`4?V@y39E)ZF)P-@fh)7+p=EK9r*T zFucpS*YyOZR+Pl}&#CWJj644;TkFORM$}+#m>BX?RdIcx^HEcN#!GSG#Ic@zKK1hM zC3w6B|6k?&jH~FA{m4}cIIap&*RtkN?*~cQWiM4KO5rwU=*hw+YTor%3X`~c0!g<~ ze*Wz_e2yg6Aor+v`<$XU_SlFe9JAl6EeSNrI-hDrS&f7+iU9+`=@TXdY*y-FTyPWm zlm$gB1j82K(_5IP?6j(^f6)XY72W?4*>|1%j6n@%PNb$KrvFj5H$oo1g4oph@Ro+Z z%vFnvT^@dGm?sNSEyo#c&O*ZesRsYrHc$Ocy;||&m%wfpO2k1Vt&`k|sB^QCGm{p< zzl~eAQ4ek> z1KghP6DCsnA@s=^AftYUq~1L@NB`)6)vNwgA<_=X)Iz!1PpJrO6cDsFLyVZmvJVN^ zP1gi2db(8Xj{GxaI-kCpx0! zDQAT=Vy}lBl`?o$7Mw##@s#V^yMSZ%f><+O;@^@|@?d5II3*mvvh%P>n|EuJeCcC~jHFJq{`MXh~=1W2pw= z>l%4NL&W<2boHnNjBc^&srX=mP5m$vDfFXFNZ}5S6OLwh#eDhq{qi$0*bxsFf2`!8 zD}8wd&?6u&h&J!l|b2kCsF-!ieUG`pZOA@@59Rrn;FX zbPX0aVI%AkV*L;c;vZ?9L@e`{z`}l(@_{G4v^Xe>1?66{LX}!)c--{$66AJD!^V=--odl z;aire3#-{>JW9*18LIp0uNKuAPnyt!vJ6H&wh#kdou+<7DO4!oMEk-*zPY{<*$Z$- zwK6jjfV5q6V0!|f`lJ(M@#P191)wRFr@~}y}ZfwP-0X9W4Q zHU|QqHDFgGy_S7q$S^x`N&!x!!|u3%-%EMMh>&*Q#)_vvNBzqbfy73-Vh>N+Pfu@i z!*6VpmQi-!p|U3SQU+o0m5XJzOfdcsNK?eCapQHPhp#LVr7aGZOj_V?Zv~+HQuX5M zcy5wn712Jn$W}l4?!w|*gi>ue=}M)P{qZTf0pe9qAElw|{5s{AyO#RAZ~cL}Ekick z=jQ@@)PMJ9nHFcLlpi)~8wrAP3zQn-#)rshN5zNeNPNvt6ZBWYH6#Z-PFN>HYSg*z z`Yo59tNR@uQ4{m1BPR06Wmp}D z?p_^6(2JMG?_G>Hmt*ISj7%;kbX#lOFo_R~ucfj3$X)4@CMn5qj}qqgj>nK~}4zHmc%RMhTmY zu5*)3G8NmrV=w+rSH4dtAlKf(67trAHzjt$1BWK&rktzQ@CuR>A>d>=dJ(?e=O!Bi zSga1P)i}vxc?IzGq<+tLdRU`<9FQ!L-qMsjsL+xuu`L}M_7CPH{$x~txv~^V_!gQD z_#5AaE>lA%Js_go@GOFk7|JQ1S6DZOKiE&8nE4RFTml3rSI$nItcZO^B&3R;gj;HhE~y zHybR(U8;U6`GUHHq4*F(r|(H#ks>ww7fZG(E`yR+?9WHZzH;=#tAyFP%&wL*e>39J z66^qPRw!Vd90VNH_>rzf$t|mb3b)PKpFS-jM8c{BKU(rQde!UqEc9#-M~qA-SIh{J zJror~NBEvzsOI-e!U;2FR@YmdmJ7cKF2Pa$uhpGA&(FH|rKTi9yH;qRTPv7zIF7Ic zA7~}Q`E|akveiE7G!vc#piNBn-$)#$|6OMJ-|+3_ z$n^b_d;%cgd5uZDp}o%rX;K<3K=#%`>}=_|b7icJ(aVvn-zIjpU`8GhJjXqwx5t{9 zH`bcc{aU9CI1b|%i8)Sn(^)MaOphkLvVy?oG#veedDV~YX=Tc7^b z_O+D}*moF1VUV&(Ek1dAe7;dj3g(tvar2~B&rHDO0XvDkZQkMnAmcOW-RE{xbGy~c8K=pI*{t=m{k6HtW*mht(AWG&Qp{uNjLT((?6Y7kNj&c<#Qd-=LodwO5Rz9pEO!6 zu~|U+5U{aO8m}R}c~sC)t;Eg!@M%|mslI899r6TmKn9NhG0~=31%iB^`KgUF8XYlE zU!yJZ0h3%+FGdIM3QsvEV>KaA1DNATJK|hmSEq741ZkKf%6LEKPpg<3NfMQU9FlyP zB_s^3eT=rp!2}X(KaroNCBk9WguejY5HyE+@)PZCXMxX~hEl*X3OoApytTyDnRVzQ zViM642~ZTtN7jn%R@(THh>A1V@kXg;cxaYtc!six0M?rz&ka5BE$bFNPL!MP-iWUS zj2dYB%Vv^|JE!Oz%}KVnh4^o4Rpb4}E?=sph?4$Mg63E%)+AvP7V_J>=XO%!|5dcZ zB!j)7)bl-X?0P&ThLL`I2mX8^aXOxzozlpi3k3Ra15qoL8c!u~T#F4622;5x__NFw z$+y6q+h8}1M8W(2eF)=F&wD9B>wS>ZAdBx1T-=?=-|2vOZ4Rb1-UBrfLV#`~`JwwJXsk-5 z@?_x}@-i~Xs9&}AN&srKDLsoHyMaHxMukqdCxV-H$)|++je}_ZX2>}Zjy0CXGfewU zP>Th#AmOS%Z&*A7=iABGJ_ZUNGOVcl{5;gjLUMHl=zR_}wreDn2VbC<*K4(~$ZyfH zyU1V>NJQ7?H+#u{W)@0QZAHl%J;yzKQkXqq#=@K1NgT$sp7;-!wJQp$rgg;ULAM%x ze1D1!b|!Wa#Y^}Z!+z6b<^ATOq9Gf_P&tne>oFpTYqEF;DI4d(^c9K=ZJ7GYDE!^6 zPE2rEZv0@-G%*3XHUf$@n`80Qb1@Y8op9Vpo6)|qk73GF!jIqcGx|`fbAlu^G{Fur z=$4)zl4g}Fp%LwZ0cw92w5&2-Ibc>zm3OR{AN>$kwCpO z?TjUT<;j-DETeXZ$Pee+U@HuyEIm8i*xSeA`&$|gxD?-K>~>Y@{YP>&whblMelW5Fh?#;Vekc?(w~(40P=ZZnKfcbHEfd2r~`l-5P;Ua zSz<4mOVsd7X`odUejoeHW)vY=XZ}U9n1T$~6;BD4Mf@0()0@EJY$EwNk+?Z)w;6Jl zGYppnQN8+SU=Ide=i3%j`KBIIZ#ZTRr&q5b6s}Z1| zoyN8nzCZXdT3i2MyL()RgAtkIpOsF}@kO2}VxJm*RmTSwG8kJ+4u=rO}{ ztaXa9gh>M9kP~LZ?1;z1+A6xOV74MNP=F^tFu`7oIT!C$<^D)V_o#{=E4}Bx(PrW$ z+5&t|Rle*tk@lXS!IBFuUbHV>aH2+f(~NHA`;i$LQ1P~yF4M{(x7D?l{u?IW+A6e- zDGNEh$t$?+VLY$8W!)@ssy*nr=b#o&bpKcn+Mm7k(f>(!OF3C3QxjUrTQPIzCD^Wu zZ72B@I$ej7VjG6P9{Yuvn=inUO%w~s!pwNkYkuWF$Bkt_XUN10PO3EewF4fkn7~Y} zt!hLA??Nc@5U*pYPFP(v2Z_-+?Z8c7lm~Uc;Nmn!AW?IFl%|U9DkLBIVH>flGHGw~ zcVLLNf$8#O%0DkmJo1ISq-7Ge5sFoO7QCiHEe}=Ok2_H&u-G&W7O|s+ri2$ELf+sgp0(3-9dJ zgHp>-k5MAz+u%CT`A?HbLl*G?JDJz@y5Sc?dONmW$?T#a9)_pTD+D&V_?t4(J^3G; z-MhJZz*@1;jyP!+y%=S+u?f;rCN%Pvjc;zPCl<;#$)N2wPry|vcdEv>7TcrmIX%UO@`sP4tT3N2vg49zjq;zcYY+wm-i~MoJ^&(+eT`xBW-wkPT9q7y@qXwFx?QukA#=yO;HC75vM}f`!$$a zA&C^tQ6rc$7^JPq%;>QHp!)_WYMms#I=$uKQ(UMVC-rnm+5mk z>a2e$N8>ODP3i0|X(JTQ(i1a{h#b+{lXCDD^rs{=hKV@n)?+0}TG6Ymi_ONSExu8X zg$h%Evcj`q+)3M>0zY~AlAZ`FA2^9z5~z9jkM$+GB`(rO(~0Q# zZaZ|ED9q_koDRZ=J)Go@^#O{Z$I2VA2e2AYnOuJiaY~;f**t+#HUBTK-1VLy8D1R3 z)Zb{xBdEm{Q{;%#NzUh$$yO5h)%@^IazV4kS>79CMz{-kfImmJ*#ntupx>*^%)}0< zt=}&7G8Gf3?J@Z9TT_RPO9`PD`I95v#RoV+m`Kk^yk0{2>pj+yIpPPQ+ZBva# z=MziVbJK)ubK!ry9mSmR=nQhS=?h-?k1-`raZcyWLJtLPSNg{^C3eC%uF%FTI8i0I zl3^D7o8598YAD29bFlZf`8kK=+Gg^1I`RuorCg}OP+i>oB~fTWI(&D&X!W$ktr6%G zZ-m_j1XDg$GdgqlU<#*W_nl9@(Bv>g6PmtnW@K zbIHEWaK-^8Y*aZ7`yxFNy}ZUa*p}rtCp2(wz>QO?$ju; z*SwyBKm6T=`V?l9>9_;HmJ-F;Cw#Rb9tN)8fyeXkX)bacVs2+hbuRJef~W&7@awIIyPWVf|N3E#@DHBP?&(Irz(qNfqt>!L7`Vcgn(f<#I@n~l6YI!j zg1YJB$luod{N{(YNNQ;a#U=-CEC$2I+S-ts5h%m+IdvdoLZ!U)tBq((W!p!I!Dv19 zc%IHujp{@pHJK(hv<>evgClsl;jd}T2d2uTlHV~t9n{B(0#CcjL}(BwJN?oTn6wy+=~NQTp!#CPY?hUq=Z%0=k8CqMkMq*Ip?&n1QLk zJNu)E$=3n7*eW{T$a4o?$mnTYY}^sUkb11J)RKf2@k>`quNf0|$a2{DCF@0Z>vKAjyjrHoeop~|oIr~8Ti7^#Mn~MqDBcS7 zT1tksHG1Y9>(Tnct8xfR2YuzVUD9i*8JIw>K`3#*17WNAMg&68$_ro9qKd_rOXIgT z8N>fQIhSs4=;#afmYs&e$N~q`mDty-RYvIqdLhsS9S>1a8L}^bK6J8+Py&a=f&LzE zhAEu=SQ9oMFnl^Ym4dR{EWg0HQxKP)ifRy7rd0g1K_bHHT_(EV+M|2w(Se;1`)Lu9 zzws{6bmIpYxn6%S!Mq2doWSUxpVX3TFpnNOzFXuE;zOlTmG*usV)6(q|B};NeGFxH zFH^-E%|%L*DBjJobS>npfqH$IqGq?wjOcN!h;koIyv?9e#YB>Mda>f zhi1@QA3$M29Hf+ekx_eb0b>F7NNbS){wxo1CR#m9PY{e}F_oBnhlV>P7gh4vB`!$5 zFPPRv_JGVp83Wb&QLG4bgQju247Ae9WPU?xiW0t)$Ji!`q3PYv)D53}6N*Q_EUtc^ zKggWmyP=2$8_@U~s;NnQT{$*iaXEh)yQCk?awoiC+i3Omc}VOw_l_B2q$zuUGlbYj@3 z<)1L1<0HTwW42+<&0E5NqsNR_RMwf&&++AFs02fqAbS@H!@A+f!&K{__a)oHCSpeC zOR%WD6!|Nc@gkUQW{9!R94gLDTuu{6)b1Bx_34mFw&jPaEQR(U_ zCg-19V0jQbpnn=Kb>iQ^1y;PAn7r*4oHFDj!L zorrVi;HSr@Zaj@KCyuLkhD%$*RL-0YQ$!yIa|e}YZaluN*9M+=Eyc`hZ1u(49u(cz zl008-BDr^Fz9cD|Q~l}oS=MUQQ#M7X`Mn_{Ll0w&mY99JS&4Vsmr>2C6o2e zVFPM5rH^Ik?FVe=(L>>|mot?16Ao>;X`ybffMVY-+3$*-M+2D0ps-~vXkDwgydBAs z4%(N;zi!YBUkbb4$*yX7eXeW1BD`xFi*=hovzk|5L7x1b07p8_+X{PacMtTTHb&Bb zur&lOzDcOgy};PAbqH=vfYXY}xx(QK`kd()INDV=_-(^<21b;9-oLL9Tz@M~c2u08 zQ)r9lQ`Q(qQr6K93B!oP>HGkydRstdH11nSbb#Zep>eSk}x6ZLBR8bUPkdH zhF{in7r9zOHDRS@yH+9U?hyT$H6E``06}t=DYa^FjQKwP<~fYr0QMP+nK)k7{!op$hkQm@~br~T-XE{cf)_f4N%-`c@_9fm&SP% zKUf=*tlwlp4Cgyefv%I=G<_pyzU&0mR}!2h;8?pD{bSI*4j$1_M7t&P@Y_@yWs}C`ysKWriMq+hpS&4Pg(yJ58_X z5erOVm+g9jB=#FOFGLvzn}d^c8RXslq=Aiy*9UNUFXGB%&7bCJexC24c*lI5DDU3E zP@4W9K1T5#kqll2^7fN=?I69=*uPNXN|WAplh)Pn^@nDm#-y1^s_Q)c0(I_sDz}@= zxn4{9bQW^oLp!n1+Mxi3A`H;hXxMWR8VU7(1_tMYSCv-MqwUxQH;)~7M77PEb1LC4 zHKW&R(TfMb^Y)Uo*pQQsfr9e~6l$IF+iTLjwBcZ#VI_}|zUzV#f4z7j&`pj~v1Fry zD(e2?*-5qix)Rs<*by$klHPtnCR9WhVs+pQ(?Tn!%!QnX-!nau31 zYR50|WBv=3U4K&cuU#3|$Ui@-l&6|<_S)Oq^3_*UnrODBTa3(pb9OBv9$gAnO`0%w zNTXjd{0t^DSOov+nCm>w96u%vsW!I11lem{e!NTS{8-|8OZw4HZZDAAy-MF&im=p} z84=hC6~_{dkL^vM|5ehbLOPda#GM}3X+J|5SPtCT;}I&)v8WgRaDYckfG~%ud?^|^ zN4*CxTRNo{F_Cn21v(ZQ2RyKvB%k|3u02owbBmOvGEZ7v0cQ-BQ;oSpLq_2_?uw+X zIBjZG(`@|3>gQqXm=TG{a&z0BOF z{1kOy{LLIVux^UVjU$!O40izN3-ULAxx21>PDNp*Z#(9KTI?GJe{GdVyovH)u zmd{6`-M)uq*on=?6V&nJ=qLA1^l$G3VEk^}^y^yFg^=GVZ1NOpB(uv?Ynw-ESY!uf z3^+hvY4$gP?4zLixkR#m8+||wyV(&ziMf1#RvPwoUniW_JUetA7H1eLK2a%h^V1k> zWsi|J9`7n0hJ8a7fDXabh0DHcN86cx`{Itz*T>B#6Pf(15rL7z4x#U1=>5AWp+O?? zaU3NpMA;evf}8>q2I0g=!hWgWLJrccg)7EX#cMS!H}coKip7T)%OCbhSG;2 z_%+{GUM;XAgl3(@x2~9i4OF^9funH=%3!MTVNA7RWUY^{3P(qSyAV2|<7(Cuepp&9 zL-R}RABPb`~HeV&&caj_Xieel)&1eUzNqw8=D3RHLaOAD;(4J4! zcITn*%0KY!zfB0aq4WA-czNYC;Z?t2bW5<{mT8rOA}-PHISH!Er*>NJCE_?;wlh@} zx9y9Lq$`%4T&E;#=UQL~b5ghMmQX)b6H5L4=V^{z&%OeC6)>jn2+-O=13jOie{Ue- z#G6*xm_xr{#ddk~1sm&5A-*+?k&vBS&YRoR#^GTkA z)$V_isiVvSH}pY8%x|b3$8v>LhiW+-JFy+Vx0$MHKYd01(F1)OG0 z*>vQ{5S;%b(LE3ca_8N-b?c2ni^CrB{>HO?f5e_Z-E9Ae==UjL2dvI}oF$G*2%Dh$ zWh%*;(zXgH>M1ET^xk4sdnA-u0aj0s5W=BzJa>RSfI&vS=`#t_m%7aA!i2Z?HYjvt zb~#kvOakC~5Wu~^vg7OMlu$o3;U`MaQ}ZWMCD zoz`7MX>FnkdU*p8M>_rJAR296KMzo7G`wUU{!AbrzT1TDO4q>78^1obgYiqlI3!b} zoVMHObY6RTgY>{XTHm?V4l+2c^L|l(;M(&efwGvd28x!#LF^?FvD7uE-gtVKE&kZO zEcx#2CdP?H9~c@)R;+o;C^HzDzR&@u`Gkt!))z; zuO7N^mx0bzG3ejD!o|~}WTj-CUN;M&&<5A@)4<@Na2hjq_@|FM~c78kd+{$!(1U2x*?ryP8kUmYc_3Tpu z@0WxdJ-=KsUvhJnO7W806=PoCn)eXa6!=Pzo7qrr%vU05@Htv9~4?^c-z2n%lZ_ zXP{5IULbIEO9kkrzp-AXf8`KBtzM1JT3HJdrYMH@1Lu^fpkv5=x?i9LDLW}4W@t(E zQhfO3k^D@SKinTXem$#8zxb=oo9fr5i)*VD8f`SCMtStlQH#D~GeBx?0x5NWB02Tq zL&)aLC2DT6xrN1Rk#fmjFyxmGa<6SN7H=F)#D@q;Qe|$CKSkW#8$xlq(23vq{*Osp z=uzSLQ38#wSN-3#)CWvvDH`u|VyOj$Ncp9%She08XY^2oyJOYbzmi>_7?qu4ahR_G z*I0kD7^=%%G0luz0UM9jlewD-)cp4!DHaSFa_+8{Ll>;S+-|(3JX_Q8{Sx0Wfy>h=~(EdH} zOwFkL?Il`Cz*lF{&~me$i;kgk6+5$UNj&+w-O@kKprcwn6W;POYo#If=cIIE+Xl^( z-`OJ%U*g~}ae0|y=o(`q{(K&xykA-@Xkc(3XVc=8Z%h=%e2P5WTzq5+@l=0Z8yshu zW?c|?o}Ekac26>RBHh%i6kK|Pd)SBL)N(6E+XP_pT-9$A@QDreB8W$xAl4Z@*H1mdPJ~cJwM-Ekfug4IQdAg_6{i0EFF`HjKvY8a4S@ zwz%hRh?I4%v+@R8rc_d67^WLa`E?C*l8jO0L_Ps}=Ery=FVy0mnmW9R!cV>g{@jqP+^yd=4NVG%drL_n#oQZNF4ikKm!PP2&~J;N)c zyBEppX_}JID*nwO>85&V!+rd0h^Yfds!j}D0LHiI1zr@<4?uicZE1LrVR!%~JWrcY zvU|Q?`K6l;i$5BMd#Ik?g%O>l@pS+-rKHtvlW z+#q(7vIH>0SVHWIXJhcgULH8=!kt-(t@|HEXW|Z3`^NEe=FEcG$TnjeQc-pzgcvPU z3hk6Kc9k-fYKqJ`rl!@>N@bZh_42k#s;MkTBb03_l}a3`P?ibVncw;S0j_HTT|dHHkAE)g(-~mjNR|tJ^Zf-^;ffO5ce~ozWJo~S5Rx6`e#G(0+%3o zFWG<}Mc}y5wm7S`GD)A)M+_58$>zfOA7U`+SPZQq-H9n7wEJ5PT=M1Dk;)&}0d4n(J+bsTZInW9lu3JIU4gtk@!Ikbg4aU~d&t zhrFyhhHE_pskVL}QG z7NOTty}LlQQ@6o*3v%v}znR9uB^Nd2c34Tf71kh6NBj!TA}&coD%ESHt}OBwC-%W; z3`lmsXKaGJ8C=J7Fg6G#&2>?pjmFk)Kn)WY!B0qMfcPRk;`Zj6CS|8wgdL?0qWNo) z8Zi>B6;$rP>H$ZW7r6sDL)SWbYHrhd(dy6Im+>iKLZ~BbTS&;wrjO z3TxEtp+9@)JJfbNa+Lxgy>HqKh$|r&YNI~y14cq=Nhnpc9m1`KU(p2?RF54ijbwK; zT8OFVUhE3|A!GqBU)A!{beJ!l8b5A>iR3q$TqX>3w16hOFlDQmtE|ke?{=1spYK-_@fb)qQL_Ks? z)_4};!VL|6eyro&*Zs6x=(VRm;M5viA=y(tefTwhXLk)s@OUvmDU{3aQ9Ta-rpoR7 z`F50+j>D=9W7nnf2IcpOM2WivVm>5&V~O2Ne>tiXB<&HBlVgt9zrsCOvic^;R+n=7 zte#-|`YQ`FJKp@&r~TZtleQE6J6(YIz03vU_uSjDGD3|y7~y&dr}KS01>y7MOj)0b8l98=0Xdf3`xfVB9{n$3p-xkRSM|uw+pcXR=k~|TZoeS`@+CnofnL=c0N8UvA1@5XGcu9MYDyp)`2RGUZp)D zeq9&EKQtL&JocJAmA|9bOl}JFZcv9}{^NCB^&;3BMvU##y8SI4z3^raA;wr2sY6}i zyL*%QpN4aC^1MTqrgnS{z~=g*Z;Wu7;k0FZpu1^!sWgo%cxt9Bc|7+_S7pOvQvVe# z!uB-RKT#Gqf0=IEs1fpW>`#NQq-(_<^1|J?)nIevfnc_ENCT_?46cjY8^sJiLlh*e z`d9@B&2%a927EPRBeu_tQu6e$f$&JHp`YnCUR`f#@J~*RY5XP&TPSD$WbHb?jSUL zP?7uI@H_`u-FuVq?nQLX6;lsxE#b#n_V>orzC zUyXKd6NyK(fler4$@>7T)@^LX25jBE3a@{Br)Ho7{oaY|d395!byYmWuZs}hhGO`y z10nr|UN~S(p+4i{O;YI={xyUyd^XEaa6^)+U-ERDnlM1(3dJ5A&=))&ZAx#Vp=BMY zGxJ6%Vc{xoin>xm0KHpC5jYtJm4olRT)YJ8i(?r^EJ_|SY2%&R<|V!INaa=e=_jW! zpKkPxc)$py%m;?rm{Jwbyi@u`?j1Id;h~pFkrk5?dKboidiQZ4k39oWti28IRrwJYXX$#t(}!7 z6y<|AXqg#aCr*v=!PNIzqm3Od{F;6%!R0Bcvb@j^z2GN;MsFrf10H_{`&_Wo>ex{i zv}lIjnpj7Q6Fz*9gjlOXTmEXhy8h*~yqO^PhS)o#^bddxOL4yz`1LTs`iVDJLz@4h zvL;wW$r&3pbUHxHb%6RhLHdKF8S+zgj?*q&@*yHLE-QxW+yak+Za03q+jG1Q6Fiok z)OXZ21LO2z@-^P=Ev_xzldCF#0P~}C&(9_a)Bt; z3pY?GW>LMsyXvwjM9PMF)0QB55)dVeF)f&m4xEGs%%1~XZH&BdzjH^;Ahbs+nfbjH!(0h55 zT)C8C)T0j`+|$f50S))1yg=8d!ClMqTocZE^H!x)zHgIs{Kz?h+h^iom+as69?xVc z_*_eN4luDP&}fxC9Ywd`u9BOE1zryvR|sAa?swrvflABDB7NEFA8+1M(WtO?_6!(* zRRmba4MUymDtJ;2zI#+6>aw*zIYrrneh`FV`rk=yzJpob-TF$kZHK)j7Ecedu$zl`=2IeVG?=GuC}XdhB|OEv?;(FT(1e>D5PE3=hh2)Kj;L0n)CoB3wYv59 z;|P5;>dJrU`UlRA#A`dbL>(8$IiCu-aoJ@lU;;68?NS4=!<6$#eaiPL5&X}d6kYQuqh4kvMU{HnTfN6Tkk5w48Vr_&?>_wv&mPw{^@ z&6L9EHIj5RG58`4No3}RgcS)MM`9ObmB6#x%c;UYre{301-m`G#OF@UmcRLHh?sXT zpsniFpwSj2(b5`=X)bnOBV7+3(1xDC3&bgx+~gb^x+I2U;!tb355B!3P~NpzxlCOm z8eq?OOxBo^OS_JBh-b?yT$v>8n5yZVi@cI?t9 zG7490(v3Jd_%_D%l`6fX>dq;(=kNuMo#>b6QLxLdT?D4NtZ2kue#UBZ<+bnL4c{ld zs*s%yG1OylSnZ!tWBFh0O!gjN;0U;fjIx6Ui#O5!y_bxB8DGd6;d};ZU-D@Su8Y{7 zP>f}J1=-|1wRJ1_Sv>T;!&jo8-iC+c4ib2~k`EtmK{F3HipaLlJN3fHCMGzijZt&A^A;ylcU?m+CB@|xmm8tcg*dPcTv5mGk^LuOC%KzDT%G2VgG zPS2vNe&Noa?)w>KJ_E3LiG}Ur$c#;n(PIavt&7YDk9AmC4BAW=-Qz&Q;Ot{ME;yPx zM?jW^^b(b`1I@L$WY4=QTFm`_+Kx04dz(`XbWLdnIn&h7ET-pi_0NS8XUzK{S?XhM z&W)U}b;G-n*j54lItJfI!{DS z6kN5eCYD_5i}K zK)^wGkyCm;yTeX6?OL>w;pwB_(hcS;BSne>6ojvSgkQseRb;eYttX_o`vxO>2oBO) zT_+gNo)BC9o22w*BWanWMu|9j4ev-$u(#hE(`&cAU6za8`6{zXQ`Aq2TR(HPK<8)4 zAYNEZV0ap^go8TW%ZwC9At|}0iIY)B@c!NE{m@=o_CBK%L6V8_#pHQfijxZ=^RZaI zA_tK65EKvOccfa|q@OZ^=`B5LGuTY!tL;2Fnz(po$sS!5rEN7MZHJ(M&$4zqDc%lBt4##rzCy4!T8kzXL3?5k06)d z;OB+(`4*mEAurJyE!YFTR{{RsDgL_952m7=ZNgCW+UW~I^jxWgULzHOL7XBtECYQ# zg5kyCit`pe7}giVhd39bQQvMt=GWyqAnH=HP0q4$8k_f!o8uYIl2okprI0a9)CB#)C1dVdD*Y zf%?}jbuhJs7P?UPu?33rc6%7!S(yM_>0%58+SF6x5km^scg=bW1xJ zo@Da&8+#%8yNf~Qx$#%1`Ixp)^Ngk7hX!u3vyxwP@nR)I14}!B+_5T3h)F#ZQa!|$ z`HsJH$9AS43We)_dq2E~`gqvi;r&44u{B*%WhC*SQ#pas_!2(R4_8ZgInSF=WY;Es zi1;202-q}5{*j28(D@!yL|eNF`m;M)GRhx2foirqR6364{|$vGU%fM(k_ooYCy4b+ zMTlSC48phzb`ccMc!4h|ttjJ{k$B#Gk+`2h7!0n!`IdxjwslZQ4irKMN)H%2Sq@TL zIw(I36(liw9zV}iWS7_;J^QsOZ-3ii^_H>dH;Y)2RuOTMnmvt?4r=h~Dq9f9MtX%9 zNMR(n^=;<6!ft+2_c0<&nMxvVM}YGe&Xf92k?$>;pq`CM<{Pq{xa9Knl%N$U&G05y z_^n&)xL&M^sV}f1QWfp(@a7G$KUJHU6HY4q1(TdI$n_5iX#P(TA?EDUU?Spo14(=Z zx9Jf~=F)Iw#=Byvsel9)<&zhzzXEf4cX&r%eB*_JneoYl4;QS_OS7cKSGBU9s36Kn z3w)T|3XapV?nhtKu#Q;-=awqCz_N@##>fUcK!2BVvfh*EVYo1@aQy7}JhD;u|RGz^^ANs*t+KOTT-`V*baqMkU@Mfa|THQwUXPLE;Fm zkeGs9&+lJ1%7F)Ku_oX=1}AmY+~|66Y}KI{#68*Ib80FQw!|XAeY8u!o9qt zsUbJ{eY<$vm2TKs%A3ZAS+GXXXROO|%o+2bjh(i=1xx{aOnMWmX=*VLM1 z#-XA7mh!!z+y%RM;Y#X!@eMNt6OC~B3eAQyQ_G@S%3|lss~;w^k0CWt#nhwWiZ{jl z3`H}4O!<=`Ux>}J`rs148b(NR%4I{Ek(Z3s?@$)W*H@vYH>I_vP^+aCqqI5wl2*bM z9c_6GUots=N&>!hN^VlB3zv0W>3YK6UM_s4#Q8an6|UlW$`1#lv8SI6K4hbeIztH; zO=OOd=CG>ZYgb&6R2*!fm2pU_Juj;QjMvuDxLA$cNeXd#~7mH`O;#KpzBl+Pw&`b7FE~lO>oY;WlLQxX1u3odB=_WN z{9#dUrQVFVX#*iG#8NdK;VWHp<=dKFHLRKP@JJ!_tDnE^Y4E>8aAMHqb~4u}0&mE=fzR>&L3lno*W93 z9r{a>-%3n`eM6VHd3eEf|KZbNf{Nt-;EerXzHF(Ht0l(nZYtVUvkI4h9*O3Y8i{cw z$jE5{IM4_5ozNonZ<}CPfAj=8wVP$+g|fWTnd96|UW8Hj59Dh_-wjW~bMT{aJS1Xl zMr~huU3*?j`Y5U4*8EpM%sJ%8*X7uoH=Mksjn>I(t%ij1VKDX!Q&F90N?#R_jzGQ| z2GO+FUhVeT(6(D@zbqi%o$TZky`N_O^DdOQL>w`-U-Q8(IGDZ~ zzWfdT@PzA_!aO?0e7#0`l)_ouc$@ zCT#kwnt2EZq=9R~rzp?auIrdrR|1cwc;-FQG_`KYfq4oL%t+0YuK6VW1h=CTRM`>r zI1BTlxm7PTK2r$$h=Oq~;eW*MEL@dk^qu3(r$8lBIIs=J*Cye&gxKUH6@B|`a(OSK zgafv?f^>heZ9BA3=7ESw-m9!T&f5cSx25cKoFSx5q_~;j z>54pQux4#Tue4!WRarBQ&%CnveOBbyPU96~pQuVRwbQGm6=sG;p&81+F0oA)A@A`^wXg1kZLdjN zJ=H>jUjm*dfdmZ$tH_mlvgeE~&ZM1jDVGC5ImKxO>6a_aNaCm1u_FKuqT%-Fv{v`Q zz+Z5s64d8EjFt5(o z`=JOOn<2%mpPpdEjX^O@$q(V^XxIVt_FaHmoDS80)QEmnVW~Y3ca2Eu>*(|*xO_O5LMj08%Er-;7dsc>8HpJ~IliJPd3m9m(hc5>rX*}|B<5+d0LNVhP(H>9vU2Lp?n4&T2@BI+l)TNkE zNAu^GXArlWTAG6&jY>D@z{4)1;l3y?u2=BwMyNp^>jX zgF%noJspeS|9jZ-W*BbEJD5u1gFNZ}^(y8GS`Y)D($r^q7dE8e1ldU>#z~58H&O1Tx>ICFV<}sdjo?63C1Nmwh~&d zeWRplswSp$y$P~c18l)V8mDM8BgBScl==e*P5Vo4iI`!;RZWxbZJVUF#sFKaRA)Mk zq3$Y@Iv-6wZ1X}nvq->QC|{2i<4@{PFZ@~=b18ZZTHPD(Mex1hHBH>^F?8BH3pvrz zr@x1M_;NcM5r=?;?C>cnH44MZ$h>`(JTv{bzl zTP5bRCs{2#mpue`55}gSG+%hv)70L(tdg^F>}J^T&K34|RtZuNGfmW+YG?g)Od2n& zlB#F_UAyTWF|F|x*MpEYl0<4_s2Hs3(fHo*jCG_&&$6R0mE&3hVb;oQWHjAXu;3y! zNqc%dM*l!~O+%@wHqdcEhz|7)^&2*ri+yunyw<$tUt3Oma;!s2hrm?i-1h>0z$yc zBUJ(wG(7u7=n8WMTJ(*$$$nyD3;IdZQ&N}6G~Fmt1>Raha`4A)X6&S;=aq#CmEH58 zib88;vJUo>U$Ul}3H!Y-2bxACYm(sVV?1NEvoGCHjjL>#9?mS!cwxvtG30gIKnxe_ z$vb}^q|utv34K0ydMJymP*Gke#o3 zU%TU7V=tx?o#F3D&F*%RZQjJhknL&XdbDx)b`9$8&M=9TRqS^O>W7NB6W`vi#|CGU zvHvzE(e!?Ppe>jc3g^7dr``VtnhNz)fw?y*pYsN__syoB|IcyXTiPJX_HUUVA*KHl zf}RWQ7fGujL4}?m10O<1OaugqwJsaY%tWA+{;w6)rgyK`NX_oQGQBs498x{MUWu7f z1ovyqF`FfM4|Yzgm)=!ZxiGXGud{8*FkUHTH@gg& zMH_t)WmPWmo#kq7fukrFNASreWxs)J-A~UWNL38XGZ87Wrr+{oZ^m;6UZ(z%w96!Ccb=av z4hR2#tV=`Z`_4eQX7f03AP%kh;^=KFg_Tj zqPxA;OK{YS{iIWvqN0?08w)pdg^~pYDY`;i5AE(aA+~~Bh~Q?OV$lz;Amb`K6*?L- z1=_tL=IOj7UIl^OM<@q$vQWd*W=Aa*CtbCL5sPE@b7P$hj;XwD(}016c=IB~ABA$B zFh848uTFqXAyZL+-KlYvehG(A+yo?CXT_?k$KG`pF48S}s&@4fpLn@Kh4^jb=}#g7 zR|(EI9C^0Ah?0uG`{57J&(?X!~RJK;bzJw~*t^gkZy>e@M?38kK@s zTFqvpz7xRLO)4>%G;JIk`ZBa?{zih}|`sSyXbleFy!QP=s59(3{O(d%Q zHZJ&*=Ub8Tc5ZiqwJoMqRuLRrnG>WS|GJM(Ze> zXi&GKXW&)v?uE%A;|D#)&8H|||A0G%GvJ<5a!vxtZ55{^&Wq!=``ds8gz#fLl`;I}^yVQ)(U@{ocegs~e)8{ra|4g3g_NeZ$4 zkQ8UU8SC6ZmwGKj#Mi&=TZOLIya|hs^wMU}LL-C-Ju=X@pDG};k{)nkUvUKr%t9G- zKygRAdtK=$ntGhD`aD*5y5cC&iPPH8>_vL-r z<^5-rEKIS~E~3l>S})*#0h$SIkT6<9R^Rh+RD{VW#`)Bp2}6TO+Fg<{X@*i<#k^XL z;>L>}Ku0Bl{UBbZZHiOM$TDQ47Ir(r!DXa~8!5wyv?@l*u;U6>np!FC&9(RzK5DY| zrR&yZdlQ8{cCq=cu?x*&S87`(dyCaxpyGYyK+Jb<{dFm$X-Q<0Z8X|?fBxc1HKSJ~ z<1aH*nGW4)h~W11qP8%UQ@DSqhpT8uN7}Tp|I$6s;Q5MrPWM<>d!BdQIwWxweB#** zX+*(;Ak#-uDs3FeX%FDQl%Ih6g>XDV6oUTP8wx`P*(jc_RiCY2lrM)ox+%>&W+-QC zHaGqMQYu4w$!QGaem5|3s>#8gFuFDNw;^EH?FPlI--jG};0IBWLui{3QxNIDBITNQ z+UC>Vt@X#fjb(A)yoze-)mrrj`>EZLXLq4J9?n=WP7H|LSi+WVhwSDPw+G1?*%ODU zArDo*rnIqB>qC*rr7i51AF22~zE}knyqW<%N*)lb+;PdlA&lgqLdq5-n_)d0P#?Su zbRJ1Z=bB5YYgsJhOBuq(Ycjpxo7FL6s5hK;y|^8rZ}G(b^Dm~o*28mak4289#65*m zbX>NorTk97=v-WZraR~9P4>*u=$J8D2-WU|Mo10QW9Gb8i3wA9{Q{s&A^P*p4N5j~ zoTlp=4`>N*T~-rZY6!*Q(M{}Jf?@C5&<(6CxF+)`sgdyYc``}HTtO+Y7Bo&9j$I~!4*~n@XFJ|z^Xhx~R5uJ->!R)c)HxXYA z5g*9uXdq^nmmTb%CoV46fDF5{czm;JQi%K1Z*%2IFKolWA?)I}UHtr>>QB4SzXNDP zO#6&I?0gS#yCiM!llsZpAeRCav7hvG`j%`fUOBYNzv{QByOH$_%; zs*j@&WfJWmL;IulVCNOOuzc(g=F_1P$ylz4-@4?|DPp!dpO|Yjk{UM9vzWH8_%uyx zuR1MmAlV`55;(6WU4`ROp1&#@f5VWZ*0~TeudQ?(qa5Q_oml2DwOJ>ocENv{G*T1u8o?6+iOOKD?T~_w(QbIY5sqWni(dLM`h1k`69k+!N%uYoJ2;td+p5h zykWe+H%pH%9)bkHA0Az6NqKtJSQ6+5TR^Sl8Kj;eM^A~Hj{D{kKszqh=7%Mtd;?&t@f z;pdbrLraHf^7M@B-{0RJe4#xt&vU5%+R~WO8>+r(h9unY@iB&fSlwD>N>AeNGAQ|D z=<#@pljJ@iQmn9#l>n}<)wYDA8m*R$ox`xfCMnq{R>vrz#I|r>O!y3h(?|@~t;Qk@ zk!#uBbVL42rop3_a4;v56nvk)$2!I5^EscZl~fs8Q%IPmf6-w+i)17&)? zkN-1e&tg##($)!1>9Lcb$2*AKKzVfF3J<5xNum{}wxI`ppOrEiISLw0u++6XnS%9N z7E1Wx$LensiER%;CN=7dUR=^mf?QQLh%;=~@VZ z+bbCL`utHx`11>C;@X*|m!Bb{@Dw3*L2a$t=K$j8lgz7Z&}6s9=NQ6gBSy89nt<&3 zg3tpLZ7TyIR!J`<(gkW+y&^`lIGg@mKTya`3Fw-kU)@Hq(Sqm);1|Y8Yv+82LB(6E zz!MamXlyJJb}Hi4MezzcU^mVbK}zM1vv@h0fw|$7v}59!EiCUt6@c#+=d zo)lbU*xUg&_=ASQ^?2qM9Lp2Ab;~yykfl|B(NL@qq#Aght$khlGH? z7-8XS-ee+g7ZDi;69Sty^RJSP^Iy~Ag2c`zhfagcey}mO7~b<5`mj|x>Fx<+-m@pf z+~&>T!?^ZwDElU0^8k8D>i+i+-h3^U(i?GjZuBM$v!xo=POrv}E|NyvXCwW`8l0C5 z>c+~QAjqaZ<#;rgj2mREK<6HF5G56_685y0rkm&MlvT`zOI_YOLlgCxsc{(RW^7_fq0Q<6j zkRo(ZV?y2Ab)xytb15z5D(33CY&7`DVJXg_wV+AUt^hwmrkwB}cDPOvG&`Z}(CB zNIXrOb^R>r&dSA&X)iOOJ>hy`i7!!l>xy9m*Ze;}=L^all(9weD7m8Oq=v9Zk>^D~ zL3<1z^J9xTRb%kpKPJMx*N9`wKuP-@+S_j-v_W2tYU;0~qjUW{iPe1*hY;6M1KA>V z;d;j+A3fqdP)GkF!Cx2gDHFmL+ZIR25<48lS5j@{XA0t3czOw&VrENz@}aieSJjjd z7iQ}uYEh5QC*z2@NnhSB$|di~P31V*>WIo#aJOPMWGA?Ke%wV_`-*!FFNnJ9(9mf+ z+}^dH-mn`fhyv5+k?*}PeGCR2-c{=u^qJ@gH+GaCP%-51{R&{iTW$71gpVuTTdsj! z7vWR6B&QkLPQv1tG2$~~?~prLaonZ?&UEku+bpMkG(eIk9Cl@0EbmbAEdq72=>_^o zG8lu5W=+LptRv)}#FyElQ$thZ2}S2)JA)-2bkE?kMnmav296y_bZO-dwK@T|hVq?-mO-95W8$?FBQf zlYoBSq>zh;^)%kGGeY0}}IV0rn*U+nRu#TPU|QxF8T<4cHCw~iWrVbU+J3br zu>Dg#cDOFD@@1VEVFuN57O9mUo}P%3@a^o#;9)b#$ALwx8_gS7a}eXZ?&w^64>-NB zb@gn#Op!BtIW#44w}?AC}+tef1LzRTc+g& zY(WlSrItPW2g!eHGUO~6N7&a?$2H~d(i{^fxAV5!6o>gA`f8 zkBOdlG?(=2CiHsf4u286w~3z3Cfd-CHNk4X0G9*%9ZDBHP`|BPidJLyQVm(2;3%Vv z)L*f0h!Kq?J;?0%{IrX9e;_YX$h0*KeAEx!QcX;d^u=qlYz<*PrYPi1KN(%S>TK!A`7$|)d7B9pcmLdqwme4y@XMb z_?xRBBZ=5Y0UL|)VbCC8ct?epZ19 zlD7Yh-MQzrVBg}myHzN4O$B7=F^Dq0%DW0{7OiJeS|uZzp&)UrlVQ z#En(-@+XuMj}uz^YUT)oS+O6;PP=F~!s`A(3l<`y`ha1m^vWv5{Pj|;eG0c2#mr{@ zk11x$%4z1ay;GbUf9Q;53WrOm9@MQC8)!c3n0H+Q&$lea`ML_)6Y>MV`}9v2;V0}b zm|;A|{9Hoak_&FJV}$6D;|3hzG;$PZYXu%i;U(_oJ+#NJwFdKk4~oPeOh8J0`BMLl z1c^;|uAXv6z2y!V>)heeou*s6Tr8F7cF+1UApO#W>>B6Q74YhsdHJRF7*!i@|MpjM z%~1wRkuE~ae~3_vi-^%^Cb+NFp|Fx#77DREu{EvIWwmObq|BYM$mK1F&nB~noFrPQ z;uBM`T|@D6PvCl!giwt_@0vks!U<}uxmP6QCcLaxx`E{M1?*Kr>W|-hMaVl#8ss#4 zDi=FRqmD@5912{j<#e3%MZt9YdYXRljJtjE%+lzWyu>Ke*QSa4O&`w9DC0>J8fd3u z_y#y)FB|{$%$lKxyd9>te1hT~$&&f*f+FA|hgT3)416pTr(GiLSw}jw&D-yy49T(G zgO#t-jPBIs12!B&>Ot}4xrnnF^l=eaPy~I!CD3Yx+Ev8W6cNI;SdD_x0cq5JsryBk zek3sQn4zo~EDh00&@w4n|B`6bGc(F`3LFw6?3O~xwj*lKYP1rnthiR)X$*cVKzYln zd7Dg08&g4ztfkSREo>Rjumy>>Cs3abp!>cv1v~Vt><19Wf-$PK2u`)ed!D1T@~#~Pk%3U8Acaul%saHY7NqDLMmk=S-8>DtCGn`eYNE$R z5P0dFx0;Y&>xFr~wnN{$;yu{#WQf@{23b?Hkeq}@y9yjBkv`|=_oLK)!9IeaLn%6U z$_qBOSCko9hpeV~%{&0@8jeD(9|!f5>TSA{wG_GPiXDN{#3M7wq(&dW<%&2>MKboL z$CZHrf2JCgTEZ82-4JimlsWc_R7;s{eBd1h&F7uC2z*%^T0ux(ORzokEs~Ps|5w{% zJ@slCVcWkNpSwUu{fpbZbLfGT)7n85OWiC*aAF)%cOAAm#WMyRutBT98Y+%b>F#F* z9wGLSY^bDxc<^6}V&6i=e;cKPy3KnbyXC~69Ruh_8)>7LWgg;oSL#<(0gNWX(Rn=I z`P7xCxJtMWYHErpxlkTp&TV z1z$oaEn!+T`(>QjBD zCKE4H$h$`K^l5e`Q2YbjDRG~jRjC3;x0C|@?WgvgakQL&%OQ)9>3%2pX?Dl(@k!dc zVmI14^xdu*g5iNs_*!^H1%7rKyI!A9^SJy`@$y1tZH>NgNz);0UV>u21-hOAAHV9> zzCqF%NlaPhnDU-le?J<|E5g2v=z$MApZM9B6}y2(e=(aCwRZpX*b zP*$$jWG%{wyP=|_MV6B8?NU`uib1FABWzb)b+<|5gt$NYn4`3&p2Nz8+|OQ@uD60y zkH@2o*|B|thp=w+or{QlZ0;3SN%Jt0NR4Fi$}nbpIpltP3XSqZpRaGmH+CddSRg^q z*}~2!0wd|+_>M!nEmz)l43X_UjdX%I9(Ogi{8YRr*T^;L0+^6-n_Tp$cm%_#XPGpb z^wP-Ho#>fa@t_Nl)50vhe;ff5s^P3zcy6{jMj7?dDqif9)9$$1liCVwJKjRvHY@I> zqU@&{wDi*s$$>gO$5J3IV?Pk!aecdK&XL)2hq+@zL&5 zPtg5<|35ou7Nd8-w$=rxGEZOl52Gk9D0$jbzOczs(r~*g;;}J8?<-*Tb6by2WP_YB zDy_l=UD8!^NU`_gYV?cmr%IP9@rQ`hR=4d1gn;?yE`ARa9-&N5Ye>^5-OdNT|5$B} z|DP1A)j{zim-&1!y4#Lp!Yvh5y)c!J<{>{+R@kZBteTg}Gj){gy>I!7gyzUG$YWby z^@C0t6UlLuw4=`>k`aTtlP@<(L+CrpQ+^WQ2rZOtvs7Y%?&vf8Xqq}?h1UK0>3^+K zsV4lgsJOiya0ygR767I1mY=9x_1i;UzAK~p*^Sa!@)Ig)qD2ws$?&(fH4@zmUsw#a z)AlXoD-L7A;|@W8ZgZVfl78HY zWBt4ArbGQk+pr+l!-OL3=?fiGmngKNpA{Exsf({$3iLMjYKw2&0hIj)m^DM7UU`!m z!?w*SKQ-$T`X>>4Fme{nHw{MI)!>Iu(5{Vm4$sO8s6?~BfbLm8Co`*8qeBeqNSWG2`x`v z_V#}io%thF3meDJG7DzLkT7E#T}6_0?Ay##H?6p>k{G*6nMzD0&M~D`v?ANItJ|U| zQ;CB@*`{(!C5|jfmQmT4dC&U~lpkj1Jm-17-_K|CRL2C23)o4SHm4_lX}!CnB?OGp z2Ijq1gi+_uNGP!ttIx8e*E*ytKnEyGFeXMW1p{^d_!{o`^+mo_2G0Mg>m8n@wHd%U z4zOc{z{~-4U6gcX=PhNjlQ~S#Mr+Q@&cJ0XjYro{fTe#_n|}ZUK|uaG@{Yq2*9BO$ zb5xRQSf{h-!OIx=o+50iCqF)rKZYQ#T1kSs1AMbs)Y@a3wp+yxh&((Czpo4;;J@;e zV7bb?s4(qjKH#&|Zi%B%;<`DBU!*5pJBY7;itRi|thtzuauxeOkhOdcygZ_ppy^f^ z3sXW!aq6>0fG!hs`)iG~(_P@Nlw1k~Yno74buspsji=U0&*(>8bC;{jJxOv8rnJ*l zka{kNCs=(I;p(nQs+i(tVnwU5n}8zBMqwH+j6~S7@*~=<1(YXh6+5pZ#~O+hCfXsFQV4E8CE3+U+PzxZNW2-%l?5~D z^pZX8=yv9>RPts*!j9yu8qqCXqxR?}z4>->|8pVK;6>E#>ZCV9r8hPOVA@*J z)b9bU($HuZ7QaJPZL|D{UW+HeS1v70)!tj=UOOaR`z@XE3(K-p96gD}8Jd{Pf5S39 z(C#5$v*U!+T?&_>gB`a)H{-Q zI#DS{b)AJ(ssVOY40qFuH1Q%i4{u}0_i8U!%mXpdAAh7Dh&!l6V+i@{YFLdLC-nM3 z73)AP2Y^Os1~SZ0(~AZ6mwsxqEkt8Fse`)Y$sg7PMQ{gahI-4~+ZRWM5+=ye8cOiy z2nQ=|QgQXx&HO6J&3+(#rdAyLgW0vr)HhOd?q#VPmk`JG>WhXdopAHp#wC&`S0&zi zpluhZixFg&YRP~vMe<9C*6BwuL~dv&J*>h*b0N8kyIbLJOszkCC6w_GO4%hwO@^*w zPZsoAF+B0Nqoqso(SO-xP$Ultr;2V+xV;Ob6;^vp73<=C3#TcKWytghdBZZW(;)Vl zmYGOng@O2rwZc&?lmqwSmE$7$tJ_4wB`57;gFZm>bd5huCM`ngQ zBMIYDPCIHSwZ@+B^@ME~mhUT6k~wc_t^r`egt6!n*z7XSxQcH7W}&z$h!c8#Csof| zNN7H&93m*;n+JcL)5vh2kI-ZxN2o0d@Ww`>JYkAN6;H-9Sx+@NSoU?$&YBehg1 zM`0VO`m|H;+W{qij0L{`9WHC$UsQG;gE<^_IcwcGEZX9-`elDN8z>QsN^grNkw+K<0NX~ zSEhkIq&{aDN|R75ABIpHV-bp>_@!X8Ixs*rnrl3N9@$_VXbc0Z&Zct2T5h6 zm2m0XbsAzVCq)6_LB)UADO-%}L{P@}!dYmOto053YCmT38mY@q1O`F@;`*wVqj^9y z28#N67?LXzW|a?q+}5oyqnhr&nPD{0NeG)JLUB?XG&$aAl(IRdoU5X`2pHS+$gY%{ zcXve3dE__Exk~i=vj<+LLP<&EAzq`9*3Ca#7YMN=Qr_sFG9UW;O(YVTT-DzI8r(JiME=o9EYnEoiJ$XhoG57S64T#Ls2uV#{i)DDLJo zS+H7c@+&63u=d{)Cv?iA%qFUCA?&2K2Xf=+(W4is(K9{{hL4j=m0kLUog*|c@8rq* z+6rhne(u5QL#)Bl7u42egs%)_&8B?DrgX;9tYyH3Ix(J#j(ZBt{w>gyIZmr8YULdI zwEI>1H;f_sEBPH==|V`=U4Eyc=gG3SYAu@6%*Bh_6UJXFMh2L;>T2u=RLWht&HH4B zg=oNpD_ZJM&;j@-skjcNs`?d3E`h_4+j{KlG?7&*B0jDTh*eDp=?uLz>Gvstzma&9 zD>|Xt>nAi9nog(Rpm_jE9&Ph*g41~I6ix=!MHim%UPN6|<6U2NZu?i*+keo zc^xrI6qGEetM5`ImIGlVaoHg`>^%H3qrr* z>qqC=+@zFVh^o$cs^Rtt9Uj)Qr^0$~NLKp~rj-8%a~cQG1dvXQH^NiJKdrrjNBxAFE4(@<>;WtzR1(->g@t z`K7o&-FK$r=hPH^F?KC&DDbno`(w2t_?L#*(Mqdiv1A)jbRRpQnW9fcxul?ZhAy$E zo|637^A99)TPaV*!Y`5#v%4#8YyT~al4 zr%*CVXKj$4oczd4pAx*HUteEov7HoftG-du)3Jw`&)l5(tT5^0d-jsEesillCgSO* zYqNunAVnwdw$bUK;oD|ayW)4dz?4q?#;XM%;lRu0@U#Bk zU;f6&ReR4Ef)u%Jimr8jr1QQ>&6ED7!uWA!;a*s~s~s^(3c!-H^;x%r-VXKx#Ix!1 z=>rqfF2e7y?Qe|U>b~>(?Is1MW>17WcI{#LG`e`x6vF^b7-8GJ-!t@voMO4PgqsO4 zb%Zb>eg`bEDdKPt@VlPgFFvdU)=>kuGp&O1056dDdk;+AVf-yxTBpS;562k7E0h3J z)qu|je)KsAYckJ+2R`)uH?x`Ea$hh#l27}5I#ihX_#i0Jec;xjr?~g=w7lqFqU~vH zpjffE*UnaME|8|U6m+QcU9ed)^d3m9g!Px;H++aot%pdWbzRXsj3nLaW_pxC}hHG>Q5 zt{4)~gXN!s@V(7RiYXnWE|WiH$nQxWSvtf7hfV=;lv)0nX!15+s%P9K)ko86#jW%s zg0Urtorh>IRi>kKD%f5_NIaK*Zz`v!>*IoBs!DRuUbQ|8{-`hDrYlufi+bo%kfk1L z5p|nXaHX*t3^+w>e3jJxLd3fk9Owk{6JM!$juFxl$o}s7H;_gS(dD%CcXe#+)xXAkT2 zz7|P8Y2s(8_=`Qp9?~ou1v!WBAYK28ziUyP@aed&y%4tYnw1QEBei|31Q(kLR^N3d z6dR?shJNZZ;iTK7!Bo%+g&V}vq&TD5ja}Sl(-FoLwx?~q87eaxP-D1nPA02I$RNOOxKw|}G713v zuTt~=0iS#)JbUj3p)pMw@bMyHwV0oSWijNZZKrsGk0b*Zm8C+Qpt;xa6&o^-fp^y7j zxr)6r{UX~&M#Q%g@w50!Y)If*Y|Bg@5AnDy&A1x^-G zAlU`91`=Cz#arR))aB!4i>fyFgwhY*Sx#Rv{f1s@r$b-&>)g@$I4Qgo^ia99N-sitG1p-~X3TLW1|53fyDQ!l#?^u_M0+ zXIA4gi?QDo=+2h%(g{lIxRNF_LzwpUwTd5X(RpXluD*O84=Y($w^QGy<+cKfG1Coq zelp}-bX_el>zqk1F#5bBgqgM4nJ z19^^5v}LNBv|4V@h`Z=jPja)_fgsHw*jPDwk4o3|DUSdgURm<5*2P1V z>u(*&u@p_oJkbj`i^9rCu8(~m9D42&um7m|xS_22&v$+N^JG4M^Wg-BhZT7>m+4os2e59}qO>KN zEwXCDr~$uc2PfA5-vTfgC+&#`)__FwDf1Y_R3;7aO7GuXD#o44kLpE_C#x=dsl0 z6^;&wS7I4%mm8VJ69nK(a zxCDE#LzgqX?4kF@jj5pfxmdHl2S0a`lg~O1pQcx0os~`b zo>dB6XW2E%-GcmbaixNt))W7r+-}XGgE{lIem*Bit4R^OTbA45BI4*oQ%I%XW_V#b zUA(9uvg|pu-(tnIbysG6xl&-}GDEgzLuoIQM-35g9Bf*Q==Dgm(%SK}{&MpT_$SSD zUBQf={9)#4DSN*VtoWm~7cgy6lP`1(+paGD>ek!FRGg&|z1L(m-{iZL@kP48U1*)G zw^{oB4)Xhs@il?&7-}1J*rT_no0rbGep-5lAvR~z;Qn5r{3Ro5gJJ9yR&O5NcLBry zKl0})BK>=Rj8jY|4ymm+QI=y#a?1g}Q}Sr7|H4E zy`^HmRq>N4GXeD`s0?*<$P={mfYm=q9LpX-X(h@Ux+^hN1^H5$wGqKkL)SE=eIfJm zCn3p9b-Boe+!u?uYUBH+la@xf5L-MA%KkEbwx1>!rWfMDNWCk+N1fkCtgMb_Nj*%Z z%Qd>9wn?+_1>2Qu))nIUw%%BJ#=O=>v77GOY1q3-@hnarXcR>y&AlnDw$j({?FrkY zSTkqgEdMac_f`i-Y|Vt>Xo-u=x(ZpCHoH{+HSV^KpDLn6c^w6xW#xeDHY}Znx{$%k zANd&$_&e}~D*J@RUqP%EPgCwrl>ttMMR3f<@4(jrb-G!)l5ZF+C-f0Bb9tUi9QTyZ zkV~r=vUc3CaE7`{UMa0pAQgbWKY5Fuia`MAm>@7wDp89Fe#W!p(W8jz4Sr}H9Y4FX z_6qSwoXSvwGo(4xTpRM|BG5naHQhbvhxNWiY#8B-!(aTEc2~___%_FBP^r0b3>=8MqA%r9vq*Yinx>OLURho5zq>knryPm^w(* zJ*@CHpJ4pvK272x7lLIO$;GtUO^0F#6)=bs>e1ChHV>vX{EWN|jbnQx`VcPAg3qpx&A*+BF_TG1B~7#8h`K zuP~-$$FwnvP#nka6>lU4w4aTh(+6KG@HaHdJo&@@KB(6%zutu@mStuOsAB5tr}|9R zc$Pgy7VtX>Af|YUFIPi|099LOBxU1 zkIeAH#t)3_7Fry)EloUl1SQLQF6xUr-LlVth3{`x7*|kQYeb-I2oxVFIQl}pii1ZS z)N~Q1lHA!HwI{D6cc|i1LX6lPB z9vdxdsg)R$a-bII^S;m#CA>mMLZ30k*hvbVthmd-YN6(z5fnj^%F}|U|Ii4iC~jJO>B%s;^edW>{!bj_63CN-W1awAshZpkz6hy zRarm%NH2e^v@>XboHEa3URv<(3J2k>ekv@IU+%C_e2C3)dxGx9HA#&Z%nJbhw3Aq8 z78zZ=--_GnnaVn$WV+XOxD~Efeda#YE%}MT%siC2UK4Vpv>*OE_l3rW4Wzgw8`(tg z^=IDh&&(LTw&w@ZI_mD-qUS5ylaGU5q**x97+JrH-lLvKaJ65Uxj9)2$A76hex8BF z38PyTy533|}Nnoe^eVqRPttEU@8~ ziJ{h0BP^Mds%-FtmU!OxG!C}qT9b5vrf60NW?`k`=W9kv zxFrTt;>sfUPxGfbf(flk8z;0~Own|7O3D52K7UMTw0)}k{og4}`X#zWPkn@Q(ST`6 zw$H#PMviS*m_~3y6GnUuB$T_wGPJwKdhRu6wmsr>Z{INBB}Z<}R|WKEgAk`C&%+}S zD<#Rdegn9vfbb#=x>uL_X%s8_8h?JF4;#3!9?6Nd*n>=s6D z^&yKNu@y&3YUr4qn)pGJoAB1y#MkF^rQoq?mjPGiCPwNU=c7e;qob`+CmAmixVL5Y zPd2Io1XLgVVGnDGQb&S>*QUOgv^!htk=T?SzYZsjp6h7oSxR5UCh~oCN7&J!huNFJ zp(Ze9cJ`R_-+i3%{uL`~B%1C!rf9_^c9ibIX;#IxZfSUaIbtFtZmZ%6b(65p#kKd9 zE4=O{r)8ic!3e`uelA~$EnUgKxOhBbI7!-_D)nX--d5MEpft%4$A2Y`70G(m(uS|t zD~`0mRVmO_o2A6WQZ3&@U+aJ!EL5)+_xOv5(aZN*DYgd^3g8!f+EI+LTps1drCqP8 z0`5FeauJ`t5K?a!w0nLoia<{)%FO9G~n-?Av$E) zNzxfAc6O8e$9n1edzo93P^TJ6gnJp7QIRn7iy@w87R3V#ZKuCmi`jE&GA(#Z2x-(> z>rYQiggjBjnBpj`h~J60ZIrgYQOVjvzR(NRK%=S2Crm z)zDv3wuWz{#xgD%Nkc|~_bSvv6G~qK5;4eMEt^e%zcSSW&M~6HXC}xy)F8IBjN3ck zLOPj`CniJ&GyAx(My9#ZSDIv(A?dWQ~ ztVGC-A)Vo1;9R+fK@R4qsxMO2DiG8$KL;?@WGIoE#@S#X&yKw2>0%7sVS1*W5R^ka zn3_oJ*bYoGTqpHgPR!CS`-43z<#>}1Zd*=xMYbSCiPAa^0lX{;p_-t2O#BlM@7ZID z->plMmJ5oONWI;43$N6vtjRvTI0-%Fh;*|>4lkMV;N@6DLjX3DM5OXHy^S_etfbGK zKXs$4ccU2}%gSB@{?8`A4~0_Fd0D98LPsn4mDSjk1!AbY6>kJnD-g+P42+iN>G*n4 zOV^Q{4J#@A{R+u6?X**z{8yn8+bTy7^ueMuj+0{kMnyeYbWuOblw5qk$X@d6yOZJ# zgtr+A1x^^CDfz=vxj_tCk{ zUSi676`LAAqQagZT=3hw1bv1i=yyq6EKKZG4EXt+Jb z*X$Hc7M+(0#u6z$`Q1e}yUS-mOEyfLQvQ(}bCrM(2X1JwvE@O7e}99Yv75Ke(4y;9 z2zST7r)q!Ot$0(%U0ARPeyFEdIORl_o-gE|f1HCIJVI`U8lcgrpk`Xh(7OM& zV21nfJDTzvLhObt0J|}~Fz0dI!>&b49k;T`&S+aezuxS2TU%%5G?{4qI zJlvv*2h%4|-hC{gv>tn*i>2PyRZ7Ue1@o>xUZ*XApUr>PVLd;Snpr)Y;Bj;TGM%pdy0iSidiWsA>z4BT0X!n&X zH>j{83dR?5MX+X*kAm^~8RlWqj=UJ+1hpWbIjPidm;pN}8ksJ_jv0ONl8XgLT&uM4 zhfkzGstO7;Qi7z_dh&d?C)VMj{bSU&cMOA#W&2Y*Y(@9-pFEo>PUDYAZm z#t{(K{E2=ixpy2})DRgJNV0hq+Ryq6rYe7lR#Yvn4mV}WR8P3Ke^D-ima+xDEG zZYn!D6zfl<A1kz^UDV*LTnkMi5HbZl_+mO@IaqkP} zE#F94yM1j+`MLo5WsI%H*tRR>UyRmtVT*l*e$wB6zr-AB9`D2mOz||LH!P#dF8$W8(iI;2RMD7s#VG*tGR{c!FIKz7@kB0fJ-Gt^sm z$H=a9GVN1!Sl7nT^hcsdUq_&No?`Nx1NUZ?_SaHzX2)l-9}`18Y)YO?!3 z+di$PQzlo@F^_}vNS}P6SV6MiipD}(Is?}CJ;G!+j>0cm*nW)Ze2}up zD-nqK8X;!7CuaWl|A?TAx#+x0w3@2@?~Z~RRnMjb<>%*gC)9&kf4|BkPpxZT&qOE_<=xvPC$8LQsm zX~nf~X+~(}q;(-cw)!uDy8Uqx>~y4v7<@TMk-H9)5~CeK@6-7$%{bvE01-_zQ_>SC>^!gSmsnahoF3fNRzwf^{Eq%D zP87{9bjei{-gVa<4w$5;zrI^aI z>*?g?2_d*Sr(XWHpLo5mDn|`LxoxJjdX^yRgT#_dtg)!zm12k!jjF@fUFciNNP#!s zsBGyY`>$@GUw#YZsnkNxq#E{HD}f&*G$KQA=qEole3Sg#Tt{g+8vcWauZonfuomC0 zPpbXcaY^^-^_h z#fl9IRd4CpLqZzPv++p&P%Qa?a*<28jV&_fhg9k&G@FUGD>8gA&=ChM%8_e7jZ19c znU`wrb|XBSR(@SAe>b#i9eLnCzzN!-OfKOgdNcUGee8L}n5w0PGy0Vkn($z>tsOVn zZK?F_VfmxO%X^oRP40H6=XoHpJB+zj_yKaEKKn|M9==?=P%xXpKB(_fds-<~XB7Na zxx5{GMtz1Fd0Iey0Z4?y>=IYjn!;kpGYU~Hy`UDmPNS12(nD%44yM{1t%P3P4OIP|fA-zFb5C-2*{XYHr72wK( zn~4s2@oy)^hHFZEW;ynZ+!ZIK5qV}(>`U`rbsgWxquMPtu%#+&nFXFm0tcTazyWP^ zy{{4An_(3sB8+E?EN>}?GIl1rZeJ|_WG(;YATQHWyqk~zGZ~F-+2}i+Tz`;hpqj)a zPSvWXhpgRsEOBD8-c{`V3X~C{j@!HT{^hwFH&2yP9C|n0S7O?8q-?^fRM$o9i|}OE z{de)U`65*f(SPKqrFJyY1%3OUU|%LN`@4ry%osYv9#XZSvzk_V`3FbDp(w8YjlY>o zDv)}Q4e12lZlilR#5w2oIM+^o#%!14pprun7aU|r& zOQ&bZF3zCr8coI<)D%fG3`=WzsZr*0B!ADodfOMbGR zxb$acIb(He1W$XN6dHQVg+`ENHq>B@oZ%7G?gBg5XWt}r_c?!T>5E99Awl#=8IH83 zRlEdTD^8~kQQ_JFDaAF)^diGAV;CIsM7#yCp&sygDZJyQB!Xa?>U39y77X%+wJ;}xHS2kM}PkqA^hG<*OwF3qgiY~ zw|}d)j@h>c>CMNp+t~Q(Z%1h?v@hdm4OWVGV9ir>zmjZ40IOx0+2&iJVMjB(} zfF7`PiBd<@Ji%6+Bxn?&TL{bo=(XD@#Mfb}n&{X+?d&=mBBn-<|G2}lIWBr==MLqK zzGUXOej{7a=7g>%wV5Vf1dDsdnrkHVHSMTL3zqWLLfB~-YcWZ~`9ITYN{}gwBdqHO z=CiskFj!sPmP8H)``uR2x$hS-5#F{`CHf;xgd9E!cHEIfOttOfPqGDmYc5o*`+A|n zS-$pJ`vlv5q!`VvYlptvO=5}B5^fp1Tm9n3b-}WvPA&LBa}Z8WdPd*eei$BHkB7_O ze~1*vE8P{3ID3dNc&J-bj>l^Sr)4~YlqXY6R&Z1He;l+st_C+f*X;)H|Fbz*7B}Qs zwf5#0LUj`8pe1r)@d_iy{=8b6Lj8V*+Y21J9+_qoh6AI$+S*;LOjNfi$2Au1Xkp;9 z>Z*GvE)3jmG4A@(qGXU;nC!R$T-_IsLEkJ2J1Lhb24;4(j#lMP&N=bA$%Bt*{YnJzYP__S2mH z79ocFgA>X3f~fa(XPK?-@Uz>aE(+2e{rDiLsVO2@PR$ctpLeancv#^m(&?f|)J4yR z$u=Ej)V41VhrewW9shFT5qH`5aN=&CvD3C(S)CrVt`<{qAMTjgi7yYpcQA#Mq}_3m z!t`^U;l6;;t2g9;603RUOoM-*(L3#+Pc+n+M||~&ib7uA=z0ZDVsBGA2y8ZK$aX#z zJo0Qm!PRrx@@4XiodLD6PXy?$3Zk^>C^?x@Hs@=IFW`7)SxzeJ!bAX@gkEb%Lu&d? zwzo7Y=*|NZ{SKnCrO6isD<*hVZ>PLi>K_K6GqKa5$E|(}Z5}~w8q9j*V?IXVHb7%z zA>bo@^v^%kz{J`n(QNBKl$EylIj-k+Jo^8`$ZzbSV`H)NFx*t58CD4$) zT&>}3_wojzg+D)OC^G3~j+^dSwtoG_kC_DO@V2t`#L|T(ovm0M?c#Mbd$+PoC?>bo zkIpXWYj_)!&m%r&TH^E5xo!(B-Q}<66PuW523;Yt!r$F+q8pFI7=;8?OWFp*Nx9Hp z=5@xAAytYIW?}HDX7E$d0dtAeo>mnv_xGc;0?h_xaE_m5XlV_0533XnP8+6-MW3S^ zTwYG+wGogc!_h?K@kz;~7qb5OxGqxu--d9pdjEz1cdE;OrvH5)W`ta-tOh}>l)4SaIHp9;C)Lz2czkuKesDq$@}}-rR2{sDaWwq zduD}CvG~a zC*o-Jj_>kq;_I|%PAWP)MG+T3*-)8#D70rc@%{Gr@rM5cD)_m>27# zQm{wuvgUXbFepYE;COXp?P}kuORB~6|JS;Fy%D1R4-Hd`5uOLb7^H%5?mDIcsH~_Y`fYl97 zIQ^$C5k$OjlV4;a^(OTOo=TEF-^$Ovi=v>Xk#5&oDV4~S$)m|p%V`%pXJ?OEKA36( z+&pLoAFy#SMxE+7?pKlPS^LYZ)>A*K-sZ2-1mqnBE)E5~Z%Nh7R3s6O{9{Z&-&Fdg zI18(5G*;_aeQ$P2f66P{{>&|=qVLe&KZ~8)wit7T!gyQTCHKHS@+Y{j&{i!?kwc1CHzQ*L5Y|jr4MsxP|%b`}Xa72;dOlf?iYh*Gp$sU|Q#pWBtgbCV)D?=GWa36cHjb z-Ex#`)sEy+j6(oRpGh#l?jWH*Mkt2M@CM$d~T~{=~D+t9H(Fw`l0DBtziz!;53r7+8AAg`RS_DN# zd_rMRi56-0-<8sSmf0Y`+IaZaaBFnROpsxh{9dQPgt?9uOWcw6F7_r6DZ2`1L4&9; zQjNZiH@b)R%(~l2Vee>!cdQuloDKynM${0 zwqXz{ae~v%Q!W)5EH3<0LtpiSjuXX`YKRgZSWdDpJ9m)k8RVBK;lWnrsx%NFd^T7g7QYR711lj4^lQ>(>jt{Z;1 zmyVy&=*3iohnN>i$|0v&iR%~X7Oi>sg8FEFya?zPm~BQQ8u>q#wNOE1v^t)RKJn-~Q-zXFh)5RaPzw|`&q;5&=|6I?**W)t_{ zVnA1oYqJ-*Y=Uv$vXN}@rz337nX+1Jl<>sP@zXpB(9(l2XzG2Z8Fp&ROV);s4ul>A ziJUhb79k#+hGCk*@5yHDXC!ZW_W#|%U-b*5j8cb5b7HsB20P*^AAIocZ82zWst;C8 z>5Y!i!RK~b2(Jwrip*bkum6aer19AHyDZtogzY^L%m~>74K3{mAvxYmRDqfw4AS+WFtm)Ugk@Y zn)5zU$G4Rf+vVGEL*2b}>H8R?*5@_YLi*>qv>l~|p#DgEMa}fdy|!G%$~uCZ5lITn z^QZ(auLT+_K{pOo7vwn&=ACDhY8pCkonLEC^5jeobWYKe(0KjAUv_p2_gMgu%BQSA z&%@P#|AY7+Z&WF&aew2cHjWelzH5X!+8-vSy61VbVkarSX{2K+qHW_;3fGC7GJ(A? zI9c68w?>Pc-5iamXATYm)l}=H!9*^p_mPRMyxRfGf<1)>xlhG<;^Lct3jO}QY^8T1L_c*~&0QLY2q@N zKt9tK1-rfCO@y(Cy?*w(&FPWO2d0hTs0)8@TYZ)|iQlUHlGe@&ECmL>bdZhyrn{@L zTiCPoR@!eJv4#D6eY~NIc(eI+^&JL{=~fNSoMO%0zl+7+shyv65EIQ-lPS9l4@7NM ze|+0q)%~3Rl2yrqEn6iWZ?Y^DZ$piQ@T%p>hEX3wQ}$t$i5DfktB-oxC5Xvi^3kXj zc`^}LdXOE)F5E5jCFQ;Q!JA^=N$NT-BepN!?0 zJ%CD2k;U)c(`pmbbg`|Ed?S^Sj1`Zq3ps3{=}5IhsogP zDY&IzmbN&DwG4G&C_;QGd+-_im>Vol$mf&IdF@D>_1p-VXi@|Ig+8dpev?Uv;nSIq zNyesjEW&^Qq+L&(8McL^m>@hpd6*)S!TU@kPo9`c>_s}GgT%c4X;u1i9n;c!QoXs?UZ_W7G~X1(wT#8u)4npjErNUjCJ+B-^iQ1 zgODQ5V(ifoZJB4scWZfSWj?C!n9sGDnFBS>fg`sex1Q{Q-=CkO*dP!jdQ)(rDXbOs z=KB{O9Tt>)Qrp`~iOWR2@{}_*NK%>F6~p43Utc)A{Y=r38M8BPO~tLndqv?DC}%psVN?0j~f8RCf%y{<%xLdCJrmgZkprRF+%fm}Mlny;?+BNB34 z&L+;M$@FJ<{Jx_%&CPFNtlJbPIA#YVV=^ zlB(r(71@1g=XK1(a*a~J2#8SJXuuD-`DIpYPt9T%$B_NnK>Y-%cLNW%(~;9jz2kn4 zaq=jxh_|5E71BxnNLWv+UaAE0DSfJ-ZPW=`VGdxGKS2xVf#_=}zQ-u;3cA{AdBYn6 z=?wv0?q=avkx@4jibPjaH~un?Um8JTVXFg`vnll~Wb80Dx7m;D zmp(|=E@f*wI|2hD8`~wWbmuA@;*s)&4^{96mS<|rg~B4+P&&&y!0*V zipz17+BsIoPt6Lf{yFkT%wkrWD_6MzJS#^#5$ITM;_S z6K`j=xQlL`$O2=*zY2m?pAEAUBrdctA4=>JN{&v2p{Z%qcim-@lxzXvllo*#sXfRo zd~RIV;)iU%sLfK3#ul7ULM+rh2`762Dd%k`bSAMVd2}aKrABc5p6%>#6W!)U?X&8A zxj;UAOBxNk2LE{f{DJf)LHc?!!^862qh99ei=C(zq8_OD+>nzf%Q$LOEzGjuz3N^! zsxQ&R+<+@gMCPU<3M12rSoSx5I`B8zQK71?wH#k?NcyGB1^GxL-lazhA^jo(T)Zaz zl#yVM>Kl{O((qvEmkG4)SYoo(Ptpy6wEX}Y?qa52$W{%QB=s4fR##`Jt(#v0&*tT^ zW6xy*vOUTS#)Zx3)IlWIR!)iWJup2rRs@K)JZeGGHtd@rj2T50=7>y&jYgx0Hzf zhwzK&R6Ghhlp`G@nk^^b{bIhMnXfC!dMVVWB$t)W>HXL)ty+K#hC_xYu?k>Ey>ePT zK!x1u%q&(*nAGp}Qw(7hzTU!2E~-CUPnRx0q?5C~_m`rBBfyQ-5%R+au`O&X-1cWB=2)yD(g9;9KST;W{tOP7DfSi;THSIL zg%L~MPgxk09C1LfhvB*@GZz-$A=HQ=armrIu32i#LvNz|?nSlg!fU#v&6=_kN5RH-$WUD4B$As>Gkkmlz5=D>(oan!O?2Ifngvs|7o+ zF3mC^F4mR>zbXC)r;RPE#qLnz7DFz`i4!zdudALZJwLpicpe|h zB#>8XuUGEmmMTXx1+bX@vy8YOvaxVzGNlL8I)WT>N4^|GbA40(WeyQE`i;PDjAYcU zk`tFOrLe4e&t$Ug|Ep&=H~-CQc{$FSPrAm$k?sCxE^F8hyLKQ8HCs6| z3A(opFA}A?iB^pNjKsGy0`l1;LDsC&O!0K69WBYAfo}8C(CnGK)>2w)_He#n+j?Eu zw4rR}!~k*ZQ!~fko(p1Irt^m;8PV>g5rk>Xl=Mt{llRIw&Of2nX|;fSi#OJ<6khxb z==ZwSDNIaDm4)i(IhQ9p&K?fMq20Zc)PUy`E;a;1zH=?(iR_tzyx#K>X;D1iJKLWj=q*c7~c~2j#TEYmc2caRT%K4>pK;dQ3#` zbz)mXHXLx5=!u#dwn>#=T%WVl4a=)B)w@0|L>F{5Zg(a1%NXFZ5(-R)b2c7?a{i+1 zR}XX-*GLQgqSA+A=x)Y%3C+2z1%OSK0+qY`8w5^Q5H`qj{z~X972)zY6+Ifr} z8ykymUO62Ge4QF4n2inOfLn{y1In#UvD!i%@!l5R;>#8B%;Uh=AHeMuoilIB!uYv^ z@kYyDXa|UAeU8T56+QEMYa=t~y`!%h&BI{zBkb9)?q?$Gc#`?wd6dC+seX^(R@iUI z$4e_%ri31LOwXSGA4g~64%Peq@i}v5u^fhk8Dq`XVjm&IOp10|sl?c)5|fWIvdlTA zXtA|YiD}nrD%B**k&059N=3vGMP(UFcIJ1!zyDyai*r5CbKmdx>y-g{(htK~`}cBd z&K>TMeYrxv2ku=)**{i2%)%$-5@CZ}JD#Y_Z$I{+%uaOnzEe#wcJgv9x{Y0WeJNOH zQCNkBJ^j3&-jACWa|#uamJDFVmb?7@2KD*Ohww>J&dyteoDs6%v8 zMp^ChmD}^H@f~qT&H0N^)IH9aKVkTrKX!BX7;^ElGisW^slA@2Pjh9h^WK)pAvAHy z@O5zOQlYM({)wZ+M1gd;Nq1(IHD6Q{xDYJ)j<^ZF<*$Dc@=8J+xTzW92N<51`Tcbd zwr(ajKbNF4`esN4@`as`RVmW+juX!YL7M%)pj&tFjmi#e?ch#XuhJifr?#krcVHS# zaC*QNw^Wpl0pSbXw0I@T^1}3B-14Z!uLh=^DI3hWR5fYGRR6z+kOJ{pKT9!uv5(@y z2ENr>lJrw1r#lvJWd&DI`VGPk#h-rk`3!^Y-0qn?dju!C3~D{_S)tODpOXG%g78zN zscm`yRl6y^Iif&Az62)}Ik;CPUf^sA)@TAqPYoKyR2wGI08l=^f-CA>$0g;s5}B{@ zh(%AMnO`?CKk6K8pk_xoPu}e)y57rSCUVYbnX;~Kpe-yxlh)*)LrwRHwK4*lo2q@T zr9~Rg0&XCBFdJwb1s0=hrdRb7e-^AKRiMuCUXg*u7exy6998z+SgcOujTohK9%_hR zk-O&3m!;0}GiAEm2K2J1@3Z0ciV%X4DXlD$l)TWG_eZ4tQ28?Ysff+e^rz5}jMYyn2UeQA`Vbt3}9_Op&Ap8IG2iI zQfF!Bu7ypj4*nJPSdnUk%Xf#6-XCL+?XzP?dd{YO7DbxOR*$WNW1T1lbp&@aAU;F6 zPALAsl{sW9syGSoG`U1dY6e>Li66mjm&s5fw~X)-;0?Tu-CFnIl6ae)EMT!|{Ad~i z*iR9+Zz6xB;Z_IRGNRMH{8`vFFxNZ)Gq*rr=~MX&=J2)vix!0!L7-{0#UTWEeD&Bl z?T^ZU^^;J_EpWd#=lZnB=6KljaeYHPe^;-{*+rZ~(a;Kc=$QM|g|A@dk8Wcp93wD) z3?N{E*gUBh^~UR-RD<{uRmq^G8RULzuFEOHw@k=Ex4fIsl=zcq6Eck>M>I+gWgI`H zD|ow<1{QY$#}Z^X5{UUxh-Bwe_BX*DQ>sl)ngqjT&%wai=PJ=G`0WIsA3sB}B2)n_ z{^A)QeetP6`1h}YfgH$_lQcv(NxH$-{e6FyuwMtRq+G9#Mbk%u#X)|i|LUV;t5%@q zx6q#(6iu9m+i_{xc$#Zp5!=!w&E_qb&TzBqlK_3>-{i$xk?v5K)(G^i1KzRIypIMT z;7jrPf6f@?P!4JuS5=-w>%Xc(pzb^juP`eHpz~y6A8kUVfQ$p}uD~BHw0NF6{9vt~ zVhlI={xfP%6;W$Ax<#p!28{~f3rn2!*Bxz+@xW$-BC$Cssn{Q?Z1Cv-QvZizz*ol- z?~AVm8CT6tDwp++cnWm18h?XKT5G(5AszW^Ek6jyva1w?!wZU2sQsA=(2($4xiVg( z@i%bM@Sm>Wfr)^|l!#tIn?cvZD&>viRI_zyK_^DG)kL$nd6AUZ}8*%ub>gM(K#Hfug;o6!-3ld z@oD%3DegzR!X%HC=2{@0ddl_*6xHAN%nc;!*%1v!2ARc0T2j)05g#i!I%df)R0(jY z0xinBX~7QkBsy`7QckcrE+e;{S1W&t-}_0X{7p}fWUAEMu#AN-Tn)1053R(#^7mG` z)7;&H{eoc5N)8}cRXC4-+a6gg`#Im=6vmq-T`G;J?Je#RQvU!NEr;wn2g9>j^gL_5QvrK9Hw4 za(^W&S!1%+_?3B`yzBW2Tz>gsg=UB$1=zX-W6X$EdkXQgo6|>JCcD3~GDXFG!skRs z<4Yg(r)wJOt;doK+SJI$XG|#{XmOC_v9-_Np3fpN&pS*L+sgKag+7A95s3&!syP3%Z&OrU}gxa^;yl#1EQ19q&k*QCfU zM#iCh4eYU`&}euaPJuX9^hPC0Xi-7y|@G{hliMW=`&=; zAb&l~dI*`Ua)L&6wn785Dd8?vQ6QcX?0(bSklE4j{VQY{Qy9i~D8)O5ZH|jby=KYa z*0)be0wY~0R-~@YFOVyrL!sTFL?{noexL_5B9^`tAub0d313EAEb&vAB=^wqz|bZd zZ))@Q^{Osm6!$us%NtyP7rtgSp36=dKXyGB21={Q@fr1^9bb`$ynJRk=fXOq^E7&@ zll^z2W>&BvhN!_z)=DG@UT)1vL^|*X$X)DYiB{9BSCGIQ12m+6%UwA zGRpORhTQXWh}p>%Ni!-gf6{pRBE1XZmO9S5U0r0aH1r)`Y*T0_fi#GQvEyUIi_@KR z3?1xd(aP~2BUOIl1%kZI_(UE)=>9!~L)i|(Ov5T5$8J{D{YsFs%bHuXz=iQMO)Jtb z=BbCN?MPjaN?H1!LAo1y>Ujf-Q!BH7RZtG7x6e$Xay9&nf-RrjBz|pv1GpV5N7uhR zVVc4CV!iV%IxRAg(q5-=0BKiDd-f^Ff4#fceJ@BldU^ua2uETvMJzXB1aR?s^>#>E z`bxJ+1K3(BW>D61sXC>k0dqOw@S?mJ@zWD0E?v7;SlzH3>G*M;3?^*0f>CK8G3~-3yx@IIv%I>bfTksR#UfxDKs}SZBMLDT(*|@sP zaqxF*{)G#y;$phP+lx!Vn0zIPRm#+ixg-&%ur1=>>=-aYM@V>wuyD+IBhR|k+(!9NXYrkWtK>Z+MM+Y)nV6$Zm1H`KemkTr#R^$Uew zUw(=7B;x&5chD0;x!ysYI?apXu+`P|CGZ*^W1EoZdwqsn@D4bz9e#a5)4c|`GtO39 zA={qpT{mPV8;$Xn&rufZ^VWIrNQ?l$EBo=`Rx|a=DPppj6>o)Botl^r8dOZFmMiNv z_P_?6s(;{V3Z7iG2Ec)(K*AAvNZ&?^%)m_iY!&;;ln_<(^Ainwc6slTMXU0b=V*U4 z0d_v2xW0xQz2vl>Alb?;BYCnuZ!5v^hav}Xm>A9h;?}qyq4nw`-aVZ9^{|0G_X(kx z)VO9AG&CmO3MVZ7rbx@PCiw6W>qMD@l5E3Wee{*Gn+6LU?)T)n&M3P!_gM0V9k14q z+Ta_vP^3CeqtLi$!xg~(%BU*0{?8=a2b#hZ=*Zi=byA>h7 zW~ezsqP)$Vm$P0z)0~4Lwbr6YEw<^kOzhQHBROuA{M8eTQVfc(DDQ^Sd{2RY$ksDB z?fIJ!c#v@dh;x{uI%0;`613zS%Gc%^%;UNt=ad}*pc2w(R3?21QgA*+U>AOC8feHq zREoWAd7h+Vd+KkwodX)>L^ozdX3Clu%Pj;J7Avg^JbUQT>)ga9#RWl{f5$%aqXFHu!ss zP~M(Jb@|U2aBnDL(AC8kS~+>tN^+TI{BnC${^+#s|2M;(RAuYL*LGxL^(z&~KrdmZ zx6=8eT=1+l5p|l&Yp>On{o0GASc;b#MPp%?k&7DG#s|S@N@DIqGx&R^BG*Lkx+1rf z^hc03WINw;8aNk>CA2J3MI zzkSzRu@`__tgO&%X?nSX2$J`oNx;8an;Utgd+H}no(LaTA9-(yX{#8`;yn@>jxt3z z(K)&c(_FD}VLf04s5Tn%00i6KLn0CisT!PErh3kvQQb zqDvf3pFG3$`}%}pcwE(eZ_fu-x@QscY+6Cc%Lcw~N^8iQC6((d37j4Ijd(HfT1yFI zwyotgmmB&h!Px}vJquHR2I$UgVPNc-KsCV-k+7p zVC&wW2Je|qkpqclb#<@B=Aiy%@pqCv!&}qu;?{KD z{38x7NfRtO*@XprYv&_1ul3QXC2e@5Zk%*)-)1noEY16e0H3F9#2V)^^XT9(6HC=v z%Ej%Dtn~M&T8|NYp_=V8r#*S(P<2gXdbRBq-6ofiP?twxMm2x_G4Vh|T{FG8+VW5; z>E4Y_l8ta`7_U)w4n(Erpqgzol-Or0*;GsEJ-K@DxcxNg-bL!p!UIFoyV9e46?Xag zyB(UoEpbpH&bU3QxLEymqo}&R`V6Pb*0Sb=h{`Z@Pf>2$Gw*Hv3uA)2$uV7l`chr~ z#cO8rvy3^q(T}aZ#W=m?DLpf*kDjkx3jgLPwaTBSq|&_ZMv?e6F5yS#^sGPnqzLh! z5{+ttUz;VwykYm`(VXg9|3jSM&-t9=J5E%$qKB%Vzk(4jop|3`pY)|kHmvzK7l1cb z;81E?D3EGx1kKrt#k%Us_E9BlR?C7Fic0XTPK&yG?k0$vSR)B^1l-6Ms zZiUG)sgy#ed8Afq4OlM8$U3YW1rBPU}LjEx-+_CWeJ$~ z(Rjzb5Z-fC{!_c=LQApfuUL=i2)~n>;dWHRZS_F;)u9(>Qy~8_L-ORh0#2^ik&YQ! zqk7{S?$(1)FI{+$>b?&W#Oa$#kg3Vv=6Ks$>t543ZMv2ITE;T~HEjxVAlipV0@)~_}>5W*~y&z4q$#haM2#C_>xOoM{ zK{eO*6py_xpO~cwOvb^?dF_Vt%Ch}Sh;H^mh8)Bmkg>(%+{NuOS0l0G7}@37RHxC$ zehmw3!x@w{^=Jj0ahTxd?3`m1B^~O~^Xd{(#tR7)`9~e`d-j$0sQCl&mDL<(0%y+| z_Lc5CsJaqs$`=dL!8G&5osrdR?!omZalo1$H;Fo%mS=%D9Zd6Og(7$AsW_JIPZPY} zi1;`V){T8&2lqcGWc?96wpkYGl8>%Sl6|;}Z4k(AZq5Zd{^?8**}qC;9^&f4(w{oemg`v_;F70e=n4pOV!H&5uKZ(EGz_U$%jrdQI|>SztG&Aij^ouO(@&OLEov6(+UaX|DF{B%CTQgEYb7 zA*xdo$3SB%)}bL*r3neXwLp8O+K?w`8XiY<90v8aWi;T_PFIET#f41}<<2nR8;HqQ z^j(F0?@X#L*~o}rrrkCEL6NIAi(NU$*{6R0)CtXlD%z$arx(a8Re4ba!6ADsK^al+ zs5tw*kkWNjFJ0j`q3|=$T{n=K`>s!1;boWEsvx|xLG17=ai~7yFWqLk(KJM+z7T4E38VT@vk_@f=sl>)l%AXSL^^bn(JX2HA*BAeIY z#K)i6^-WTE0*b$H$P0eu$(8N{qt>$PQ`i^h$@r#=iffd6B@P6t3!9Z8Zuul6yqi$# z4ZuSor$sjZrijrjWNhCwdH-%Yy$y)ES_R}eKLlczbpr=d#}U?IA^dk^6_HtzyJJuY zmsvsLD@TN)nA6l>`JU+d8cU2l&s5^BO}ckb;|J+(DIv&0xi@;6qMkfUde<~fRCfWR z1c%^^lXd_##FLnFID-6LPJ>isN>jnIpM@wt6ujOYa=nUn#B}P1;G!E#h~H;LXza%D$Y)8Y%QTUg!abrIeKP+_>`Faa9;^>+b$ou zoiGm97cYlJD}s@vUHB80L|H83Bq}E#{UfZKYo=<4v$b$A?U0keTcye5Ag%0U+Lkn+ z@g}e{k2r_=UG+IhzbU~m;+I+ok<<#0VNCHS2P zhZrll^Qg&=F1$B$n(~MS+g}jY1{2Yd*W~D&VdZ^@?{hrGUxN?l)fO_U!1`#}3G|M5 zhZ4gWoGWIS`b|8??WISQPkSSY%JEN>cx-B8H5DI&zHyL!xA27bQT6J^iGkn73<5l+ zsn*Tmf&=Q((*zeSd6z-Wlbo-NlPBZg6x@RV$zKpX62rJncy!yKj9PwXJ1sx^Fg;b_ zUSn*t@HING{(o1MzgDDz22J4J70;v@dl5kb|D+o3{f%{@a@8iSXM1YbU-pSEzND=yo?+j1vJ`Hd3SomNFx+7dcH^e(M+LK^8uisi;dcPLkaWjh^ zJ)K5}zuJJ#MPN>6iv$#OKTn{jYhvmCSY*kVQ6YXQIlyl#ud0!cSj#ukv9*UGi5)ku z6Krcx?+sjf@D18fTgRUx(6`~Q&kLD2)(nZmz6OSNqWf1ZlTbxjIb?o&ZCLsqXE@;& zVQkfO2r;IT>eN_8^x1F~&m1aJA_;v@C)BNSQ-K>Fm&1%>c}4-s;DAu@Z_rv~XUmkU z=Usqe;Z1R|Fw3l@5{%8w+Z0h}WgFT<+8@b@if6HH*146J=Y<^PDb-A}(DmvYHz{wH zPBCw>itCQryCk;QtpsUwDarkQZT(jj>2G(vJy-rX$SQ(8Bn~Ur5NwZ^r({&ueal94 z1t@awn2r39x)WA;Ndeu61qKR3QeTTpqTUc(Pk>Uj6P%4J83M;aPwaP02_rk$^^Lgt zeVuW!RlS7!nu0F{udS_CUIM-Tcbl;s*8N?cCW(@?n$q+sszf489Z;52rgTw8 zQ80vVQbL##lW$TaX>TgQ$0Z2x?IIf7SYTt`An#{99^6Oa(uvfwhtcjB!2g%m!qy`3 zzmIFDA(fA-p>)bY$jGM0KDi=cPPEG+i9^c2US`d`?@Wf&b}3iDkER{lvG+U3*!)vy zU(ovCP)PS^7-XBf6|x6?eum@D506S}P+8g+09epTaJpkvn#Bm>D?+6y@wPQd*z5hC zaFUB7a`Eg~6zx*eu!=NsU@m{4v4T0qChU+e`1 z9C-sWqk?0^L0!C_9yKR7s}Dt&T$MxASp4f-^owx^AN^S(uHopsVGC#26QZJ!sXJ0L z7kapv8Do7>rRv&tjbXNB)x3L9luvSy%tnLXVI7}IuX4~|_j(+Vw zbtfk|7@$>!faY;3&+&g>(9|cPh-mX0-1>CR0|;Bw0c%@yoi@fi2v{b0e0(M52=Quc zidRtnz;+MVPW@>y2O}wWYbom>m?>K8=Sf)fNGQ%~#_RXS>}Sbr(@tzdWB_LQ*|kOqXCr&7n-0gycbbT`Ucz8C*36XMAz$vG6$DR!Wo8;1)8R-Gdrctw;au^$ zH`orz$xreVEZ;ty;6u0V~u zNbh#SXN&QlksGn^NQ3hHK=e1EQKq0B{ZD?o?|NKhAj=vNtB&JMat+za zC7r^aSse`4<2f3Z9-5O3*-1K7UFVF`c!`5mLTss$IP07EQ_C#T?G83h@^&mPQtf@r zf=BgI6qAKOYjrrW&pZ@($hi@MsEa{sS|_nAi|JBqrQ)ulSR_B$f#1PMylr1Sxf8FI z%l%bL{Rv&`wsLC>eq`!mFxSmhl2@uBMV3>@?ZRxPZU#3Ft(wQRM6A(tePL>^AUxZ|BRmXnc zx{P}5KZK0=DgiB&%V^5wY4n*re4Nf;8yG}l;^O)IfM2-gKtH}mW&Sj$-b@Jkbm6I7 z71@WE;%zFjeO2P)Gwi(#?uHk}7S^xD>g9dR2Z7U6N#6ur&|}Vftp5Npa1;Q43gGn? z;JfGW0~T+UdAKbp+*XNKf(7^7$)NWPEydo-FJ_>h!rBS`G$86lGa@QhAS{g{&YD`( zl9#rA7kGUUW=!glf&9rC+RirWTA?`N!dld6F>jO-?#vrd?s@PgxEvpnF2!vYwsx83 zI984`<&=Mp{ogxO4`|{fjrVxeT*>gIvy%)wlcyVS?}|g3cD@D205Ze~4!rBD^#%5} z^KDYW`cT$9CtuN1N4TE@Y-0f2Us35wA%^IvMC~Wn*gS z^enAR@fUA{R4MaT=?dOMc1aT8lar}zodSvY<;$;(ueoj8ylw24kxdrNGMS z*Zje6`?0=L4p2KhF{&b2);%?GqN7NICeuHF<5NFme?{uAl4jr79f_L>#i;kH6#wnD z73E$g)Z|fv8A1R3A(TAN3y~6|1BL)MgK6~9k2_-1Hy(t6iSgOA4#S@7ySUZWDr*_# zXjrI1;tp8cY=MHSitXyaq?`CY=milC3#}1N>=e@322zy6RMW3K@w6{5E5)NZ64^)l`(&q&C3Zb~ zcChM*ZXDnCnGlUR{HUhdN5`r+v}bn|9e1gzuNr`-RB$hONfdm1=pTa~Gsuz`@3NEE zEwrDWoWkvY{hl>RuX3OpqlKgcTOoS%yUz@dKp>`#e6J)DunGG}YMY%IS|snfK0HQG zEyvI3mnz#Gz-Tj~^Pc0!D7lIfUrGs+b&yIa`p6C{HrDn?2}hkKsydDgzLL2?R(2d zj{%KMfc4Y|@R2)W+I=7>4mxmB6FTsr5SI`!HgEN%2@>b{c}l=yYVR#ikGR7j-$pdj zZP63*MM*S=K%!HRq1PTQ+bxvz;ui$Uic{g3QkPHqv#%v~#f+7#KrqN-fqFd4?TWF; z!LIF)+IRXaFmp+{{BOrn$tepZ_wT)RmrNn2QFRDEzE`#4MpNpOm{7jc;)vWcCnKc^ zgYGXV?pI!mZz;Kmf$}>Bf)P7@#X!9-dMd4LX^3FDmnFz@rAlNWl%Q`Tpmc6F;PQFm z*JmHBT16jHL0`FKU?2Us z8N_M)hO&AXZwM&YuSi|FTlkm3-Bwc`i0 z42@We|8S4)0sWBieY*b&+H^~h49{s@LfgRbnU1fjb!rCf$Sg)_Gb;fKCd%*cTJmD1 z;11g2zk=Rh*i6AU9*oz3MLZrBZt7wf5(c2{PebQ`PK5JjLDsK9+pcF1h^pH(-MF*2s8x3!UV5 zN0VsdsYSScxCGswX^SwuIJKrK1fO;RtbNT+PH&+OAgmiQ?ZZ$VA?tp(bsZrKne~(^E(#N47VFgAN-rolR6<`DAeZbtDLGepXoK+u7Ss02Y z9Sld#6d_0E@`Z10aSDNEZc>6lsLTFY5@=#Zt~M2h`)JGoC(tn z%%|9FB3w+MdEA;?Dg;aK99AyBAOi3xn*%=Gj$*5E{eCL9oFXuo88%_S#Vp!prLtVL zR*Ud)TF`p3Yx8efPpX=X80L-36BX4LP|gI+VNz{d8Cfr6imHE@giC|I9Z~tgg7ZGJ z7aqtx_f~w4#x+%Uyz-oAxQldv4WD80CbW5WKx002-B#Fwhi2hy`3~p!1BCcq+qzJB zsya84Y~2pry&DN^DaGDNQE(G{QKK#sxavjTo;O2_cXZ%I{`3Un@9UUKIjXyrL}$0c z{e!@MO8zzz-Nt>ecLs7rs*fe9z-!pBZb{l%uZQrH&4j#m_{$&A=eZE^)gM>&P-irn z0Pk*jt=F5vAzQPgTRoh=FPo7pWgE-`@UtYxhc*Puo=%I^zZH4Pl9q}uyu5Uwnxl48 zDBE;{JGBO_ubJgEB2hT}aVpH%^paRUOKv@-)GwRPczYgpi^6fc;Jm#vQSkZ@m^qQ# zsN8>OT0w2AQwcgo+#dX%n7xfl&1HO4!28+wiYrxQC*e>lBlLO-t7PXi{c7es5Ox}w zy_-g&4@MDoX1*rvK*$R&&=p7$N6b=#vtsMwZYli!L+=syXIB5tW0bo?$((tD$48X$ z)%ZE0p~ockw-k1hib2iU*)aI~D&p#|Z_#%>3V037&hl}>dK`L&+;y;%^JO3IV(J6I zxlH6)8m#tdAh?~_H>n!)AD}B>NeDidIawQJul+FwOSX!Kp4Aw)*emvU>?vmI;zsv! zxL;SI_MD>koobUmS-VileSMLtfI#6tHI>J&io{Sr$|6F}vMfye%DCtH9+`)#%p+Za zPWixJ^Bv$w4epw30WvmsAK*`w0B)!i>Nrkr(wL$2VsOlpUzB%k@aQ~Xs!J$D&ISN( z-l*!CDsTV*zfU%(l*g)+W}HyX4?d?D#x+9t0wPsNRCf{*y~#!(&IfWblB*wik8(~H zv8VBUkjl3^3e_eY2)DZ!WPTQ3IhF`p?!ONVoFy29y`vOZPu7Fwf7P0J5k#9#E>->8 z5RvN6K!)wbT4+G(Frh|OP_qQ5s4bdG;C==J)6@%o3&?>l0X;cJ*f~cjaQ&=ylZyfz zQ8neKGo{Nec2N1BReG|`4`Bc1xI1jbaYm!i<(zvgB_eeXKAKzTK#Y1NR8V%lQ*Rxh z;8G58MGWdl{q_W0E%Z!H%a%nF`jp^Iv-5S!;jqoYlW zu)=0f)ahd|c4vszQ^C|n9nO$lishi-s4Z_m2^^8A%HrH*v*xmhOtE^szih@5jVGUf z6iPZvTZo?1mK{zlPj1Bu$O}&e0WDRrhV5Yj#q83WMOeia@wIp{KG}P=9T%l*p7|UB zgD=o}22%f)UGGXp9C;IS$72k*47r+=jQy@Tj(%EHWtU7bT%sUL8)sDIW{xt=fjD%F z`NlZ$wa+KfVG5mr-gpAcD7k7Vm#$T7yomt~Jzh5H;ZX$Z6w;YK@lv)}o#{N^gLB~v z4B{F58Db1~DdcLc8NbV16|6Fsf2{luRV8d=2+U8@XW<5GYD{Jbcba0@OjN(mvP*vU zir@Kb4Mh#R-d{hJ130&^9O`cJ0O$L1dv`+ixCgagdjl!ERY5IO8XB2hgYEqpOuve3 zN+^PT%2J3i{fU(F#e>fLlB3$sEF^RUYbC@oy$2 z1WV2G-5m!N;4%LI_{Q9Q;3Ay*a?S4Jk9$y*?RTJ1E@!wT4W6lHuP(%OMA>RhWz<)* z+Sr2yCg~5+4HWYw$`lW5bJw-MPpU23ih(@jKEZUfwKfS7cM1mDU1?>y>D51q^hFCw z7Rb9S52Qy~q3cg(&Z+tO#2xx^J{`J+;sJ)NlRu8BKu?exGvyvB=Q(wCnfRn_a~~j& zw^(&_4B8&I8^X;cJwcE%_O|}}4l1(d60F-sU`or-Yq;X?zu=3W&*eX+)hIiednw+F zSEPG-_Ji;1X5XN%?mRa(7ZddR%Ii^T`OHbORHPXE)Q#idK2@XwT4R>jeEF64CG@t+ z8CtX*F=_{_yiUXA;mD~DYyN@N`5bRZ+D>RXsQ9PeG()s8IYkSse;n794J8cq%)bb~@=F-zoj4yYBpG%@&>SJ^6#G+xl8T7{R{R|I~ z^?{153VntoDY0?;&6QKQ9O6*picI9fxtH`9!hm5SjuM6%(|?h&^B;otcJJ+4pC(@n zslN9gB(cZNST9C3gUJ|lXhF@roqy@-hAt}l3o2jof4s29JhW3OmSLvpi)u$%bkH_{ zb-y%RzHc;C@{aHhH9l)<{l_+xOX+6{5{KyW#yfau>b+5v0O*DBy2QGvzim<6CZIkF zQ;`bVS5j^ef+;?+3Ec1RUh%`)bto2vHR$?$EB;bbutv0JExK&^2}DzRNbbg`rIl3> zYbx>v@DAnSKR%d6h^*9DVu>0rG=D4q$&#D7a91S8)$33g3pU`3>1A?)3QI*TC5#GFLz<0IUb?jb}T`naQyDuUr8ja0%S zrVX~jOJ(7C$TPng1Ba-9;ZdiW&sU<@=63v@i|kVA ziYxa{5WXq7y0Y~G5ckT2Qynvpf?aCnGzL~u-97$}G*cmtVmV{Pd^6)t-%fgi;Zu}Q zkQpZ1tP`3$d6U%YB|p~TS?|LwuLyHV=~FqD=v=4><(~)<9YHAZ;-tr9_@}CtM4Wj}nRX=1(9KcjKp=`EI;2JTK+ zc1rBhb(B@+-sw?pv4mmgd9BEziwwiG^`D*{%QR+V>MM3p9Y4h}P+5_FgL z$@QFiZO)Apdky8bXxQB1YK=;cPGYtl5G7OE}rQArK7;R(U6BRgf4Il&M47Vng+A8k?3oaMRhk`-WA+GtB!-Z;EaAPc?SF1xlW6Ww+&lIwNo z963JBRi@)zr@T`9jK#HA3mPIv%Mn+y5M9%3Y#rklrCiQejnA}Ujm-C#eN@vZIt(PI z>5dz!tJg&cuo>00GKQ{2-GX(|=+X_w&jQYwJj7L7HDBuD}EocBYy2skP{A|K4WRwMv>`OmqL-kh5vBLLkV^KNJKzQA;aMT)XW2R zHHv=pI7@mXX30x}=;b6za;shVS)%@Rb|OyPbp(f~52kZ~k535$4B*!p&$oCFb;{~( z?zJFsZWNL1ZVJAsRF^+k(6zp%3g>tDLmFB*?#&?c$Tk{&^K{tpLg}?V)?n>tWY-5r z=AjQ+RVFtQk&kMgd~=E|f0QuS2?tg#jKqRKKRsaaavW-Kk(0MFZOj1v(vs#~i`1J4 z!6@qhcrRT?78%ZU1^Z~A!4=wh`~NLx%Zb~AK=(eQ! ziz8H2JmuBuY-eK2T}b>P)z2f8+|S|y*9~-J)-&id^_!6N$2f&-_!;_U29-q=P@69O zq7;53mzm7CNx+xnUI_0Xsz=-6(7Y~K?}ymEo)VZnOpA9R%e$`RpdZdZVOOPjw1?0!*|0;s+FHc3o`K0?^V{e_9jQ;&ig6m~tb2s^r|}`K1a{LBDkOI0 z9h9JB^(y*@DF=8QOD>RCMX3KWfP0_UR}%krjiKidUo;s7A(r12M!c(*C7(--x1{#` z8V*Jyim?iJG@i6@x$&AUjOtya(`Pw@s((gONinym?+9;RzXo!CQq?6@K-&x{It+Hr z2}D;D9YMmz;lZW6vvUQbbM1oVU`xEXY09^K zg(J=3Y^SYY;gHJiugb)M6-k3b41VliUAbnJ7%zVhJ5yz?wy61Ft2_D_E{5>fMsO}k z-nc>b-5P6VW4$uG-vmO7YXYtwzn!A8nx<78oo9b{vT zuZEMpGH^GjqwHUA;It7VJEpu&P8K}Zw9GN9SyQPCmA`d|LXTZWPwe)_;w)k?>)KdG z*W4G37YOrWY+Dt@J?oDh$g{p|$M-VDx17OGLqO5-z4JvUP2}+=TX$g}Z9LM8(1r#} zytN#RST1%KCgYvi1!_G7$reHC6c96q+w)0uk5mDzyq29?O_KIcG9_-^mTG z$@rc(-#eeP{H%zxeN;gEnN$<14pplEtNRJ6;ld%~k?mj~pkkOeKi`l%b10Quwx2 zg^#NQ{vFqn_I5S@wS{a8QzN*V5#+WVCMxB@BP?7s2Dk$_3v0nhb8RqsCEn9MdA6=v z-d~+SQL|o`?uAw`%gWF&5wa$wHL#Dq^=>PrpgAfc!08%tsqET?4jNzNX(_Sa6KX|t zH!8>g9Jebil(`_5YTt!wcD!(*nP_X*6(UvZ4WA|(BDa*?4@{VR^1?cZ z=<|PLN$C;K*0bPO+mBD*r62rCuuTs;!F7@H=GEA9GxiRR1Yr@PuZT~<8;ALXfzL`x zxuFujulNL_01xFl4Ke8OT|F%N>mm$l>fbiZh$Kd>DFnYBN==$1NMB?l9N!hk5KwA( z0&iRm#B#wts)RqR?ii)CvgoC__?FV%g~*p1RiQ3UPtJt=I@F9_(+FnZyP+l8+Wrnb z-}czKC(UY0ms13HetWJ+PpEo|XF%M{JaO{-YOwYoY`L3nr|MAt>)>r z8|m|jdAnyiLc%d1TdyK9zOdux-6y!PqA-#>uCz-J9B7Ure0Q%mzw=rg5l${xjn_K_ z^$X{AdpwOh)`93zK`q_O;81U0ECow-qD1Vnr>ryIhT$WBXii}8eWz_X;8>t?Mar>x zH$ud(F^pF&pOlzh1&OCqQfKW%x6e9=evb*Ess8qigteR9xG8&3elnSYH5lSXGz&B-C6kc~j%5_Dw6{N^n1g=;1twvn180kH zGL(#FJ`44(wIjHN8hh>E>%y=p$>=={Y%z?5nTj?-)L5#Q?VnC+_77NPCc!A!p3W?` z#|P=`S{q@wOTwrlNaHW3#V=XP|Dh~6X6Ok{c`B#>m*ZEmYA&g*Dr9%ad%PFn8B>t> zlK*ePWsvyR97-r;k4D3<;-12P?^l60N?qVQg9l)gW*gv3ohB88P(lI-<%)xO9Z%*{ zMeh8G8xY@VxGif30$^uQm2}_&XA|y&R*7~| z5Zj`yNabBBje{8B0J{k`?G<;jIr}wu!gkOrb!_3E* zEEDjZsD&7JNzMr2!xlVSm!48x3x3Vnqrig&b3-i!EH@qn5Rm$d+GSo$y2*_+#D+~W zxc`RWkf&V=T+nRYMcw;^vN#&I#Zw?z$|6t1pv4Fh|BS^>B+E96h2jlSSltrd7)|ou zu#r@MlqPvNrdkTkZJZ$V2T!TD#uDN{rsRZj+wK}t*;E?2+=L!~RF8K~s~92ero*&x_8YHZK<|KS;`cq`;Z zX`fVKp!1;&2E*#$ZqNDY3(PU>kR z7f$Ue7UKE^H9dhubQxi*iq>LXLq_gB^1j9L(+g!o?%3~wXh_WbjU+9AEu)aL_u}st}pRGzwpu?u;xLnL>Cpx-$00w4QK{_K0^54ED#JfhJN>uYO_`~-e0S4?rwJsg*x#?Neo+I5tbdeIAH% zaR26$q!>M2ojiig&KY9Rc3hU4&}At>-l_CXD-WrH{@11nL96k6ZoKXr8fNU6Ly*Ut zudiG8GZ@}$=FOEV1D~|0@+0lR=z3iBbB9RdUoE_#Ex2iPn;;lfF6}6!#-E(e*TI#} zlQ~A>uq>g&G^zi}xKisAs4ZN*QPp+9Ulw2I#HM`BCJXROjyT&x5=L=7&u|>BL#K}d zjV{!^*V7H{l=|@pi%{%H{C0eh;&Pz@(r?z)>ZCpv27@gL?bSaCJuM`#x^Vdk5D$&_bI~{5^p6j?Kng)n$$|Sl&UTWw3qk0`?-E;{6c(u z^9&AUccB~WYE^~_h|!iag#HP#^)up573FUz?VAU|_3&D-*f73WnMWa&zMkr@@Ik%O zg6v`6n#l=mmmRaZf^(*p61BJ0gi60TO-MLkxNII2)DZd3SlL~6L@oci5VpBTu{oTi zR-l$R+XI30lXSo{sDellN(f z#7nKvgwntp0{zpHiDxs!kB4Hh5Q@0-c{LdP=GJb=7s-lRvWpAq3C@4g#Rf|h@Tbr! zU z^k)9p9n^d$swSI83ybynk%+Qjy034|4TfXsJ2;DjZM-||kL2x50Sb%B<=sSS`;VHu zZdCob4Mqt~#I4si7usNxc)e=vzsVN2^rH4)dpq!kRj`ow&wU&6_o0| z!FOSBK0P`GWY`$FzT*%6*oqH!)({obls5Z8?SNf?YMI-UBGyVE@8quA#SRkShMfXr z{Yt_TWkpEB5k8-R>;S}S{<*(U8pXcQ6Ma`64GrKzlK@zA+(1Bk?SmcNIDmxIQ(8xq z%X4ypc>SU~O2wy4RRg0b+dqz+0UUQ)nA*OOPb`+?(cG7GH&ozGE6)IiVO!!GZg^-N z|L2f7#S=?C@ovXsV8-35C6Duc@ki=7$@}S?vOxXs@g~&Ap1Ye$bW%5^RBX|IL z_o27s{{C`u;e=BRRq%C{tShCyiCMCZ#85eqT_^cN-4$5zvgqX1lAC9^w4KHHDqm7T z_f9IrmwdMY@y)A+Dr+FVubL=ZMSA>D7Gq;_HZEE9G&6{dqdZxOWYR3m3WVK3<52eL z-NIRB=;#^41&yg!pB}Ikowxzm)anDSb7Q8vUl%97TP+6T2ib(IE~pi4y&mVIC3@hi zEstK6B;Nn^mf7DDcb?ZLwV;gc|M_9#i%_)2h+LkrMO&byXeu|Fu!povd`RMR`eyZ| zjA)o0Oh?!*b3SagZkt(F*FyO>JK3@9jq~=Q_5lOPA99Yx=-C~|y5`h*3#aM)C&bdo z<2r(?T{S;4C{vGW(4dVJ92LFY4?Jx_O6fZUoKQuQ$h4`$y*27zs&#FHA1=7(s`16m@ zTbWsF?4o#^Em+seuFp>1XHt7_5S>zTNsL?4o zBcE7aKcm%lFPr~EFi}RdH^@S#^U;6B{j4wWhwc+E986ix0XU|vJZEnk+%2_KF>YfUYem#)_k7 zC&SlZ5^aIHt$N@Mo#yS}%CEqE(^>kJe}uGZ#HbF>9SQWH+UmKC#ctTbSO%}bxt1Iy zVJ66X6tGJ^t3nsG4IU6w`*O(I*S(0BKOsV=vK z67@8A%8E1P#Nh0yMq=TM3-A}2R7sD9WS6QJmD=qgyD361YW5w~mmy?{3t7335{^;c z&Y_coEWxEgR>>gg^4vH*d~LFdKJec|XC#b?M=YQHa4rCpT9t{vToLUXxX?25CXxzt z?tG>2lLXuSSHX2#C&|Jp+Uw0M~O)J4; zs}?TDQ(&>XH4DtgSx(A?6uK<5yP{K~u4ibRR5`i{4zc6te3^r-jOW0nsA)uS0}=r>#wiKV+4Tx_RGQ=FtihI;>BtA}u~5f(6-XQbQ6Uf-)>cNyD0=ZzTG5L7 z^3wlYu!f{L_;j$W>Yy&}-jM_ysDRyiIW(cyYLNCT+0%}=u^6bcm$}UPO5EDvpZ|1< z%^N4x1eXn#sI(ZmY2bnT=aWhfUlf}+&rs`Gl1+`0zm(P*MO$5j>F|~MOCf=1QU%by z;s0cx%xRu%W&xJAtU#*rtB;`bPLk;6fC2&AF<7B*{_Re5>(g;kl10KqrDAqvPcWhV zRs&&$*ctKoPK;g6iC@F1Ss`*6IE;WA+4ze8=^W~)Sy36kkNb#l4?X>%9$gbnLdXMg zSkyIoqz{;R2C(0b1|_2V-58vlO)_`Dv~QcKY^Vb53GIa0OMHO9|l6G-1vPs1IwMN_k2pvW-Fof15vv;m~8Tsn5R$a zZ=NQb9HiuQS1X2}7ugYfxtVM*q?uEf%E>YHqH3=dnFNs9jjNRG9F=ikQQVxNd`k_fj54?j-je@h?_RCoVJ z9UVYusxsSGl0>EcPA4!k(mOyP9JJzJky{s6zM;2fH1U5nD`F2&d?a`QVe6o@&V;GZt6&v8r~N@*PN-9hi9U64Bb)UPpPyBV!d?Y@u;~=q)c# zN}Z=8)xm;JeR?2Cwi5oZv5Afs$vYd|8#l`u+(aj%8#j)j%qWkhtWoQUI|q4QBD4Bv z2lg!#g?KSQdAYwh;O-Bz(z}Z0{bi?jikc>WGDTVG;F`O6TB2J|Or$T|KI7k!O??J~ z`KB0a(V$?bmq8MvrJ?1W>vAu1wOR}{sA;<4w*1ttT9GG2M|7H3Hfu10GkeUBz7E1| zMnM({39pKuSRKFmC`h|l3OM|yutb~n{dMuM65nd=SGBeT9uHTE`?rTvM7>)mhw!_8 zN74|KwAmJt#C(h#9Plqq(qeo@DP^eZR9s5Ri8ASnb}p@a2G!^8*g!>rrkJ1 z7`*Zf^rkOUZdk9uo5YHm-_#MVD3$iTb$(w?o@%cU|$7V2jp7NVP` zmEP`y=(%8I_pI3FutM|;1$Frn7cy-j#g7-+1@T!8xT_w!?@BggipNkn@aZY!T|NlM zd`J`v^I$49VeO0M-x_i2NumPETp$ZNBvk7adCz@&zf`;&-MUr)hm8)absJgA3+GXI zRQL5~a4$sM&vqSIpL6#%Qzz_&mCNueY_DcfZpXT?xQh6p6I~Nqv9LW&Ue;IUNFII( z!TxIt$Q?u1{O{EfHh%PEcmY&?;5b{}n7*}5$cV`KN-gKn1xpL$*1Q1SQfFnGbq#;# z=%s4^ej4{i6+WfIk2Y$T@j%BmJ*FL#qw^0LQt*x(g-Xw#IH&dQ3=T{zyl^hKi5D1A zZ59?~Diwuf&{zrRhurzd>46=bi3(InuO#*FtWNzGLoPP(XM{Rx7T#Kd0Ee?w(~B)d zw_hrW3d@Ma{&Tg(`x-W4IV&IrXXkERfud3IRzkgcJ(xn)RnDPG%#Yrk!kPsX> zVYNu#sVeHIX3B0b?qCM*~YLPeCne20iekC3m*NTR!l`Xa4!m6!6Z)Oep zb2{C(!;F7237?`8psm#^<#eTzzlh$>cPEK;pe9fBOHux++83ogEZ0?noN*dx7}5TN z`-*yuNtJKDE1XMi8mI2%lV3IgB@m@0l+xK+M{x4iicV4rUq}MG*Si}PU&uHUveTG! z1X?C&pAnvzkTe3JYZeK{wObAnaR1Asb z>1einA^uliU%_?#KI>1oFQWc=N6^!opqCpHL-lauYUq4z!3T5xsFJ{vDZgRKTSH4& z$_zc9$4vO95&C^qUvQ#V4LM=nN9Xlx=9dhO+w-?i8_WMLl!?PzHnmDL0ww?c%vBnj z0n7V@_1GqwhAj`;vxU^IPRv>1N62fFl5Afn#R9Cpzk0IT754mY{qya(C3196V}K!Uf< zuCY^qioZa8?vzE2qTnm=UWaZEh3MBh*&YmLW!)diIc?dw_E~c{Zc3CH%=L%|8@l25 zs`!Wd5G-?6cn<)LvT2eZ7OqmJ zN4UQmZzs=@2b=?ly~ljf59Um6+*bJ3IYdh_DS=$?i3Yu3A#UDz?eW!e%!^6o^~*4dCL{Iu{T(WknW1f^G?i=Bm+=8!Qvy!?Ob5s<&&Wg?~Qq@vAMqJze- z#l4NF?@IS@A^Y?`4;u`;93kVmHB0X?j;W5$# zlVeQjcoucKi^=EzQ|B*$wFKXCZRFj%|63D4@p4t1KPE(S8k<-?7TJeM{Q|inp=bla z;5#mTMZ7~_ayw=dRlorMahD?d*v>aGCvj?aP&Ok(f56FH_D z3R5g)3c0`pyIX1b3QP*-An5O z!6ZkGXOkqbmUmDjEdjw;_;C~ICaku?K;E}S7N!zqp$)n2DB_Ki-N*f}U4*>R22TsL z?&WOMERd^I^_Ks;HHc!)TSw4V+?w$;SVkFb^C1obUmhP}i=O0a%S#Ng%gsfd<_RPd zos6jkji{3M=s#9z>QCj+W=f0gd+SG_{^wDAzv*)pq1psUm;ZSsA0hJ(zgmvn3_{rt z@Wyqxy%4jM($#rXh0w9v-*+&28?$Tpy>EOekB=8IB8cfWiBvmVVyO#W#@AZA=Cf+4 z<;J5x^wHZ#OICn=^H%TC@f4@$518NEQ*pM^dq*ZhXQVk)TxJgFm!kZ!>z2|DpAwWPb^2_;cnz^Up?4`A)Y2*5Ov*l7 zMk}vb`;pNSO^vvgNs3iE3~L!D%?_pD7YPg9lZm(n5IvWE0}H*(RSVw;62U1*^r6h9~=<&iYBLf-QC4QOKB^Z!PnKYlQun1%*k`qENQC|5tn zRWEgRF1np#xRlm>unYIC_AZiEDNAh6;#=#h73>pA8;R+=k_hGN=2$p5XQ57L;%{fU zi}L?^tD!0t5?xX9NlSdn`|jRUc~p=;vtW4wBK?hLi%*m;7vG&c*(AZm7d3Vi}wN<$Z?WaT=|p)x1oDyd#c^+23g& zdzG(LwC(*v#vAKlpm)=iT3Metbw$Lon{UvS#&6{R)NU+Pw6n;_10Q^?lzxFLIi9Ed zMygLkcb_h_i~TkH5dHe?GHg91BzNq6jmrOiP^N_Qeq6i{+08@G{esUeYi&hW@2V4b zvG^ZGg}jOJxxqc+n5^w!e%-s+2jKEWOU-$^w}S0ARJ40$D)~L{|D(vR_+;o6XSv~M zfkhPwuiMr(Lf(zWiVh0hZ(_Xg@c-VKpwhzw^HWBSB4IgrobH=_@w<^MJ+HF0k z-qA-g=gg30{fg@Bzs1MqGR_3c`o>Ia8}cw6DVL^%z0a&b(-cFGYFVCF-u+EVbbP5* zLLxSYlJuA=W!$_W>%eH;Kyv8yMcv)nwFkN-ZyDWmF9Pgw(~qdhbI10)M6&u3H>Fv` zBn9x7ow?OxL19ZBuy>wk)8anHV-66 zpI97FV&;{H zi1-h8WsJn0dmR;Wv^*_1gC@u=v-JTi?Jts{tuB2BN!aB(71-(SImsi2L{9m$m9Q%N zGUMt`vgM&lg)jAVO=`ZD%)*+|m$M8HKxEwXpR0VH%8FJ=|nqFnq{fmKQ(wQ(tV zpQ;I0ZW9`{37%fWc0)=^q-@5(8+9=&7?}b}y?dAQ&9q8(=vfkRN3I>+?y|~xqd9P- zw#FJgwGWv%wrOoDLTlO1Bj*}bLE(Au#nBm3Y*c0bLE!5~hkkU8D@@gdM-P_^CR4bC z(zE2YXJnH-lVtDQDoSddGum^b0+~9BEa$^@nKsO|i=V+kM)siAaWh=R^BO;`H4Bk_ zb3g-mWx%9T+us>Io4Prj(rmrx|Du4JO98da zJd;hiBokk7rST+D_a=2E+n=Jh5`s+SH@Q*n5x6`f_<_s~^#+w*@u z5QHH!s7&va9A@+OQu_sbAbmK5dMi>EZXRk%FE~ftc+P*`H9Sqfcw_-OTBU<2rTqR} z#D=YkMQN)j4b5=yZcED&JfQtZ1BbO&KGK#rewHlWj@2n$b#)MVY*!~Xu3ry+y(Upn z!TS~kTZwijR&T%^g-tS;tII7uHFhuYU=CwWxsW`Z@c!K^mdy^Ol^R1OJ=` zR~{p+{6M-Tl%+1}yJ6{NTSIZs{Hs;$JxyG3DhbSF&61udqK}8tn<5d~SPe9HxP(!P zeE2QdbG;Mz(en&>{)db_JyJo`RB(n}AG{&NKgvc4Q&S!%xvx#>+KsN4R$%7EnXtAFVJa_9$AlbAyIoPE2G zVP2fF&mw_r^7UE#d_m##Z#QUlcnTV`Zv`Y#_JsaRW!A$v3Rc+R=CY^vm>mwJj(U~0 zA83_fodKAw@hky8+11*92-?_*#5of@Dc^!N2lA3|KmE_n&ya+D_cDAat_j)SvkuOR zBf(pRQRrH@o`6KO+J-5+TYg1*KC=P zebNl(M;!timk{ZVBp-epD0rr){@hHIa?BiL^C!-py|RpdJJZH&2oKF^9`yGLJRiX8 znotQZFArA5`##!uF{zxgop@ZRAH@4G&tEV;tS?=Ni3d&5cWX6q^nq3pLu4kmDWRf0 z__f(^#2Z~&)`Tj3`#mxTeM7$w>}-LxG@JxgGT%LwJnU*6?|!#R+f$;$H5EbGdtceX zLug0OXJ0ga5B%bbHA<^2%9{=LB6hgvp3Q!%%G6YLuAbTgxmx=v%2cnW<@_dc!Uu&zs8^stPvW-yxuK~b8})J0Q28Q_yE z_}A_!_`a4^x}rROwXx`KfP%FDnL1PH!&^ogA##8cLoYdx)TrKFLa;yPi!7`tLad|N zW&-L_V*GFubBm5Pu4OO^S+@(1yXRY!1_mJw4o?G|r6jC6ziMo=)@k>8T3~G!$u3OM z#(rc-NqR9X2AXkXGvOXhkpEn5O?Z&v8bOkE+g{&+oS@K%O~HckS;aMh396#|SE>9W zJl`6Yp)X~BT7{!&Ts10=j4Ilk9zV&Y*sQ)!C>g0bgblqx#VV$9%3drvp5o<)0uE^t zgTfQSAY|%r5)jF(h}CIfyi~NCQ4rV<;gPjI%!$9@Lb)YNR8mI57oz7r=}7kaa_$Gp z{}mT8IBZY+E!waXo=VA`<{t1?0y4iWZJEU1GJH%9D=|#W9u2m?0Ls12Dz;2ed`2e} zKQ?|wqgA{o-=Z~t&v4>O+>hWT>)AD|39bJ05*plYLQ>HX29Lj{yH{j)BIHzE zX;#sRp4Ac$>f~E}FI@|wDN!R(J%~pxyqiH7_=vrK5KuafZ=pKQe1)RUYC}__2ZDDx zBp-2exm3**7bX4miWPHQJcn1TV^<%)%Wy3XJc{rL~yBX0=oLF`p(S> zq{gHdRVVyq4#dz{#rKs{4WoI6OP8PF`tCU0)kO!yjk~fKX$Lxwb{W}X9T&7J$jl@l z{c<V7hSo)7TqD)OFwNg7)z=tKF-~i zihuWJfZdAkjqP=4M3txeDx3s&r)?SZv|@Fzn@>d&rR_Qi3fLTknWy-pE`J;;p;~8v zlCX1KO|F<&xE-(h1{LEgrFS?w+~)92n@Sp0W;s7_j%;=SNedv}ubh~pwrwWVEDUXj zLLWB>+|*KIbKrvFMH*uQs|eBi2{G;t^`*)1E={Sk2>NMwS-O%HLmsXqAHa;fB(!{ ze_gAY3yPPorwc}=h1hy?cBm1xrIa$M5q+i|_iy5^$Z~LZ4q^92qFt|g$+U7b*MP0Q z53fMPgZe`ugjLOF%mgRta+PJ+S!RR*|N|mW4T)pUI9lWpFQ9pO8%btIJT$w*tMaSM13*p{bAhMNG z#)_^W@hzwAWwd)}biJa((79vEf?@)HP9Ze-n{n|~N(w!gmrLB6T&v)~CpKf?>2Z z0GR%k2<-N*j9rT~DPC))*u~s8ra-?XkjZ`k4%UyWlt1cU&X--#YuOI8I}^(^e~;z+ z;=M`mpflojcjq%?$^;h0>7q0H`q9z(#{8{@p`+ieix0h0vixq%5B_e-zsP7dn49@Y zlM1o=DpTI&v3aHa<4if@?-+W)!U3(^wv_ihGc!{?0qNKw)3fGS51&|X!6$fD&LinR zsH0eBfzh}1`Pj*m-}TIB3Dkiwg2`Rtlkc2-?If@AkkEAVg|-HWQ$k_!A8 z`9>5!D7ZnAqYE$tHh=p$vW-YuS6OcWg@4@uRLueQcGd$tNL<@Z!uV~*O`%qH|^jAVgoH1V?*WCzO%xwn!aw=KK)y`bN_M7C zqBFwmw18D+XQ|7c!~ZP`?bWr^A(!#gyw!k_F8pO$*$#h)C@$m$A^J&CT7u1OQ}iOl zSThmqP&HBV9u8FS9wh5toujw5P#rYYZT?$CbJ)ZIT6Xr%4d)@gm(Sr_qu|-fbH+Hl zBGYFEu!7;I+2(!m1!m=B{YO(XHSrWfLoVg8?502Z&Jf^Lh5nfTNWb=D&=U8=E-lFM7%Ab}hz<|^~rA*B>CWVaoE_bq-E(4`SVIMD0g^)A@UA_}io zeyQXwy3xSbD$QQ+GGE}=S(6W4L$7y?!>(06WQy+KL>x|v$Q|*;9^R4G#IohY^n&wG zKLllXX^I}%h@o#$165%d$ z{?^;&w<&9$#4(6HRY5m)uQFSrw zI2?Hv(%$EdZWY=x_1kP~P?~q4k?Bo(`SEY7qzAAQH@~rh#MU^Azr$$;H7LOOw1QE3 z=%+{unO8J3dbbmG>E2I~&5G#g<~Ql46$IC%BxW>{sXt&}ak;B&_Bj-9LJSE_p0(K7 zl7cV&&va3&E=GW^?H!8G;6twK#!&&ZtOiG&XYX%EIrEDS+xlM^$gLu z0cW)%#^E@)S1MNkK8F)ck7jgV2tJ{VKa+_?9rp z5z}@UxIQ9gr9;QAIzc`ERpDDqz4tdi^s?73&ivned-Pzp{VsMf7P@igEuxeXZT|gP7M z9b>-5ZWe^}Z^XQ%g`mTtE-Sgy`7AAXN;j8tWn!$;F&L%11nrkDKxeka4&*}ln(iUI zaiy@CB+~XJ`7rzVtHGVj+_smZs~XW33*=Ezl$Z-e_|Nq%t+YJ_h+a}8xi(*va+542 zV?#Ob(Mlq)7!YTAM&j!2^x|32yKKD6cr?I|OLYal_M$z)PTaN|ujKId%CWBd(`1U% zp;cnIpFvTRrbDI!K7mUb4uC$XajYuGYp8yg^JX46r~B(k$Wp9!@^_{d&Qms}1!5$V z*N51CW^8r<)&=Blqd2^-^j5a97tkKQ*~{2jIx84C-KEBVM(F48io?*G=@r69V15mE zVSfd(-@C%R97xlAOH6M`f}Fl-zPtK+FpLt*=>^)W-xwIxHp2WKYl_U^(b4%V(Sxfh z(lc8_7-=lqI=F3C3s5PWrlu)4$B#nnEAUvg!X+v$dXHFk;rn!Th6eAgss^u04hVXW z9PrVRJ`kN?E{iq99+EI9i$U)TT)18A+hpK&JBg4rb{3UdK#!vl*F6>frI7cQl$DMO z!15Sy6{fEo>m*hWF%e~EcGx{R)1?WS?VAj0D>cKG7Yod$}G#ux|^Jp3i1`o z$^u*c&@d2>z$K{L_vz2W`bXgiJ ztU}j(senU*l1C50o^Oc}?|%^f>;=R#TD&#i>;;eP7O8ObRJ~kJF`odlEbz65?3cA9 zvA#ZI(dUoQ20^tME)VSbT zHar$5`3Mr--$N!0S+1e?!MFSVKj`Mh5H;>vomd#1Ofp*uiB-kLtCU<1yg|CEXJwJy_0c2_@y|{-u}J9A^qt!E}S}Ts$)c%=3^i z%TbDRfnhz4{FW-(J=AP@GEQq#AJPyUZwbMEZm8Eqvp#c|Tfwm@;2>#gf?g87K7*@U zs+LV}LCFUo>NBnA=KCki%$kJc0Ubib+VR;ea@(#cqWf}ZUy)UVFl78Mx%8-3^j3V- zCD#+g)igOr;x)~KruXn=+WST*d=8F?rnUnl2eEeZ8{#^!c%+fya6bhsJwHN~yNvka z5;7dyasg3M18%W)EygxT&`QQStbNZb)XksER_jEjT#}HBU!n+m=A%7(@1bSjwi@KU zk?}bNe0@v>?d8*Ld4ssXp>#twxg~6hRu%`fR0hnw2Ap1v8yACeR&>7!KlTi{G*d(H zQC&WNrB}_oOP`R#kmVu5v!@h6s<~MM@~g$vmoo(;`F_jx6FlE`2ac0-|08uwP`ou> z5p+*<2Y)Bi@0qR13{J+?W5RF+gR-uR0O4|sHD4cegOgp-snA!Ln_f0^A z^dCLnf+;3b)W<_F!OTOmI5U0*>9XKop1klIjhdR+Ly_q-7i04d+hT9-W6YJ9MbRGA zLoxLBJT^brg(&!;-`9Pcg;sW_qh`|z*Tbo-xV360xcRq| zRj8%WGb^N9u@`$K-md{@x!0FvfJ0O#L9pQV3i-|{Uk*E$uwy*iMsNkM`&+J3<0YH` zj8(?re+G2Ev#~XQ-TNK9nje$vFgz8JuFkc2p}iw)sbIIYbPOm0dB@Ke!lwsgBuK6Vc(1jlZo& z@o~tZm|+Nevn2((hpNYqBi6_q(9yO6?B|&)oj{dU|9WDwa;01;!HnyPu9lNDNXv7OT)0V{s85?BmNIjh0^Qc-6eiZXHeSt@GSrz3 zZG2mZe$5>;O9)IvC3g&fwr1t>AobEOd$#nmrO)bcEDlXeoN1kIKApKGL~xi^YCGK( zM_I$h4t#B#g#0BvA?VOHll^*PXVXabw4*SKt1syP^|2|Anfv00Kkp0{SQ|RNYN?gS|ns` zC)KAb{0D=RB~6%_W{wUzL%Kb|K!>M9#eI=GRE|CtJ%yF051-G5 zU1cx)F}2wy{_p~R;-X^m*~h5N>)URBUd|-pDi&~1 zRw@Jpm7Ou-t?1M$lf1+#uL~MYGP@W+R?UL;^w#^!9=YniP+qp3d%gQm*%4;j##53% z*D|4lVkPL5sRL<*dw0^>^G%=^$s|!-b!(t1*~6{FIqs<8!o8VYKQGfEG7tr&ovveE zdg(~9^6+KXZa_Q~gf+#7KI&t=yLrYt-dy5-Y`o%ES9Tf-M&14%opTK4l^r?G^;(n5 z^-Q6*{2WK+x|cTV19ThN2Ww*P+C`|@?MTg*h=>imnxWd|p+CSye_58yMuVElCV3zA z{R<}AusyGWP_uXE7c`!Tk2)EFF-{icKnH(rR1x%%PrunO_C(dMyoR&J61T9KPuwpl z?GWxr)aIVHZV zmrwsWh`~+v6nzXskN;?~H;^>4ocmm&m`*rtPRPWSGruEPJ8KOh`WkuN{!P3kRZYdg zKSRWB$^!wV$K1B1aAm|xb4>?=;Xjr@&ilobeubo26$p;!I9e3q#besgE(Bt#cG{2_M-dHuW&YAid#tQ;ki}ith&B|W zL6*VNEVSmCvhn0Vr(o+F@7`>)DEBS+eZN)Fv=g=c;)i4LCwK#9^C9a*@w7Ps< z{n}#okj16lt?WJm{YcBRprz88`~s^7Cmyi_*NQE6?$l`pc zeD+f>%1)yIp-pT&(qZM!>AoJobu|Y(my)U#m&>!`f;DA( zjZoaE(!t{81JSmI%IrWRFnb@D9lWBLscIBTJ*t+J0EAz6=+;-S4gXppl%!b%ay7$u zX$FcZmpB}S?R?}`7(3i|0|jq11S5_DP15_T;^>`MYc%JMub4<~zdWplmlL$t z38#k1cwM<&s@$)@ABG1ad89Opxj@3op#Y%q&dkJYW|!W=MF((Y#T3};rQ-c*OsPeI zoHI(g;@zE~+-6FF4n<)5sIjsWmVE3iRd9H@@;FAr!VaJdf6Ni6@l50eUVWW0s(_d8 znI#TZjnmzY?{N~NbdO+XBK;)V5m-HWe7-fW9aYGl2mxXRw#b1(Uv!tEOkvs=a|!a{ zDq?`6km2O;ypFK@Jw9sPAy?cb#MN~bsG58Zy`X;<{pZt$_M}N>C=$nILfEZ_n}k

tb%Fx$MUh95{wh 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

*rX~0^? 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�&R)La=e!UOR9SG5WqUUTU@Ak3kt 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 W96iOPe78IR0000}S literal 0 HcmV?d00001 From ada1d0fb8caae85b544035bbd78b41927883f049 Mon Sep 17 00:00:00 2001 From: Danil <61111955+danilwhale@users.noreply.github.com> Date: Thu, 23 Nov 2023 15:41:31 +0200 Subject: [PATCH 020/790] BINDINGS: Add Raylib-CSharp-Vinculum (#3571) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index eacfe78ad..0e71d16e2 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -83,6 +83,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | rayjs | 4.6-dev | [QuickJS](https://bellard.org/quickjs/) | MIT | https://github.com/mode777/rayjs | | raylib-raku | **auto** | [Raku](https://www.raku.org/) | Artistic License 2.0 | https://github.com/vushu/raylib-raku | | Raylib.lean | 4.5 | [Lean4](https://lean-lang.org/) | BSD-3-Clause | https://github.com/KislyjKisel/Raylib.lean | +| Raylib-CSharp-Vinculum | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/ZeroElectric/Raylib-CSharp-Vinculum | ### Utility Wrapers These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. From 94aba23ef45d4faadb9d1657a2707f6721eca48d Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Thu, 23 Nov 2023 23:41:44 +0000 Subject: [PATCH 021/790] Expose glad functions when building raylib as a shared lib (#3572) --- src/rlgl.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rlgl.h b/src/rlgl.h index 2c5c3e3f3..27cfaa0d0 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -773,6 +773,11 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #if defined(RLGL_IMPLEMENTATION) +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_SHARED_LIBS) + #define GLAD_API_CALL_EXPORT_BUILD +#endif + #if defined(GRAPHICS_API_OPENGL_11) #if defined(__APPLE__) #include // OpenGL 1.1 library for OSX From dfa64f228ae95a7a3bf4a1c9ed91ac5041f78e1f Mon Sep 17 00:00:00 2001 From: BLUELOVETH Date: Fri, 24 Nov 2023 07:46:54 +0800 Subject: [PATCH 022/790] Update raylib_api.* (#3564) --- parser/output/raylib_api.json | 850 ++++++++++++++++----- parser/output/raylib_api.lua | 493 ++++++++++--- parser/output/raylib_api.txt | 1298 +++++++++++++++++++-------------- parser/output/raylib_api.xml | 239 ++++-- 4 files changed, 1963 insertions(+), 917 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index ef94c3d86..4b7049d8d 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -9,13 +9,13 @@ { "name": "RAYLIB_VERSION_MAJOR", "type": "INT", - "value": 4, + "value": 5, "description": "" }, { "name": "RAYLIB_VERSION_MINOR", "type": "INT", - "value": 6, + "value": 1, "description": "" }, { @@ -27,7 +27,7 @@ { "name": "RAYLIB_VERSION", "type": "STRING", - "value": "4.6-dev", + "value": "5.1-dev", "description": "" }, { @@ -1329,6 +1329,48 @@ "description": "Filepaths entries" } ] + }, + { + "name": "AutomationEvent", + "description": "Automation event", + "fields": [ + { + "type": "unsigned int", + "name": "frame", + "description": "Event frame" + }, + { + "type": "unsigned int", + "name": "type", + "description": "Event type (AutomationEventType)" + }, + { + "type": "int[4]", + "name": "params", + "description": "Event parameters (if required)" + } + ] + }, + { + "name": "AutomationEventList", + "description": "Automation event list", + "fields": [ + { + "type": "unsigned int", + "name": "capacity", + "description": "Events max entries (MAX_AUTOMATION_EVENTS)" + }, + { + "type": "unsigned int", + "name": "count", + "description": "Events entries count" + }, + { + "type": "AutomationEvent *", + "name": "events", + "description": "Events entries" + } + ] } ], "aliases": [ @@ -3092,16 +3134,16 @@ } ] }, - { - "name": "WindowShouldClose", - "description": "Check if KEY_ESCAPE pressed or Close icon pressed", - "returnType": "bool" - }, { "name": "CloseWindow", "description": "Close window and unload OpenGL context", "returnType": "void" }, + { + "name": "WindowShouldClose", + "description": "Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)", + "returnType": "bool" + }, { "name": "IsWindowReady", "description": "Check if window has been initialized successfully", @@ -3467,27 +3509,6 @@ "description": "Disable waiting for events on EndDrawing(), automatic events polling", "returnType": "void" }, - { - "name": "SwapScreenBuffer", - "description": "Swap back buffer with front buffer (screen drawing)", - "returnType": "void" - }, - { - "name": "PollInputEvents", - "description": "Register all input events", - "returnType": "void" - }, - { - "name": "WaitTime", - "description": "Wait for some time (halt program execution)", - "returnType": "void", - "params": [ - { - "type": "double", - "name": "seconds" - } - ] - }, { "name": "ShowCursor", "description": "Shows cursor", @@ -3971,11 +3992,6 @@ } ] }, - { - "name": "GetFPS", - "description": "Get current FPS", - "returnType": "int" - }, { "name": "GetFrameTime", "description": "Get time in seconds for last frame drawn (delta time)", @@ -3986,6 +4002,43 @@ "description": "Get elapsed time in seconds since InitWindow()", "returnType": "double" }, + { + "name": "GetFPS", + "description": "Get current FPS", + "returnType": "int" + }, + { + "name": "SwapScreenBuffer", + "description": "Swap back buffer with front buffer (screen drawing)", + "returnType": "void" + }, + { + "name": "PollInputEvents", + "description": "Register all input events", + "returnType": "void" + }, + { + "name": "WaitTime", + "description": "Wait for some time (halt program execution)", + "returnType": "void", + "params": [ + { + "type": "double", + "name": "seconds" + } + ] + }, + { + "name": "SetRandomSeed", + "description": "Set the seed for the random number generator", + "returnType": "void", + "params": [ + { + "type": "unsigned int", + "name": "seed" + } + ] + }, { "name": "GetRandomValue", "description": "Get a random value between min and max (both included)", @@ -4002,13 +4055,32 @@ ] }, { - "name": "SetRandomSeed", - "description": "Set the seed for the random number generator", - "returnType": "void", + "name": "LoadRandomSequence", + "description": "Load random values sequence, no values repeated", + "returnType": "int *", "params": [ { "type": "unsigned int", - "name": "seed" + "name": "count" + }, + { + "type": "int", + "name": "min" + }, + { + "type": "int", + "name": "max" + } + ] + }, + { + "name": "UnloadRandomSequence", + "description": "Unload random values sequence", + "returnType": "void", + "params": [ + { + "type": "int *", + "name": "sequence" } ] }, @@ -4034,6 +4106,17 @@ } ] }, + { + "name": "OpenURL", + "description": "Open URL with default system browser (if available)", + "returnType": "void", + "params": [ + { + "type": "const char *", + "name": "url" + } + ] + }, { "name": "TraceLog", "description": "Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)", @@ -4101,17 +4184,6 @@ } ] }, - { - "name": "OpenURL", - "description": "Open URL with default system browser (if available)", - "returnType": "void", - "params": [ - { - "type": "const char *", - "name": "url" - } - ] - }, { "name": "SetTraceLogCallback", "description": "Set custom trace log", @@ -4548,6 +4620,86 @@ } ] }, + { + "name": "LoadAutomationEventList", + "description": "Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS", + "returnType": "AutomationEventList", + "params": [ + { + "type": "const char *", + "name": "fileName" + } + ] + }, + { + "name": "UnloadAutomationEventList", + "description": "Unload automation events list from file", + "returnType": "void", + "params": [ + { + "type": "AutomationEventList *", + "name": "list" + } + ] + }, + { + "name": "ExportAutomationEventList", + "description": "Export automation events list as text file", + "returnType": "bool", + "params": [ + { + "type": "AutomationEventList", + "name": "list" + }, + { + "type": "const char *", + "name": "fileName" + } + ] + }, + { + "name": "SetAutomationEventList", + "description": "Set automation event list to record to", + "returnType": "void", + "params": [ + { + "type": "AutomationEventList *", + "name": "list" + } + ] + }, + { + "name": "SetAutomationEventBaseFrame", + "description": "Set automation event internal base frame to start recording", + "returnType": "void", + "params": [ + { + "type": "int", + "name": "frame" + } + ] + }, + { + "name": "StartAutomationEventRecording", + "description": "Start recording automation events (AutomationEventList must be set)", + "returnType": "void" + }, + { + "name": "StopAutomationEventRecording", + "description": "Stop recording automation events", + "returnType": "void" + }, + { + "name": "PlayAutomationEvent", + "description": "Play a recorded automation event", + "returnType": "void", + "params": [ + { + "type": "AutomationEvent", + "name": "event" + } + ] + }, { "name": "IsKeyPressed", "description": "Check if a key has been pressed once", @@ -4603,6 +4755,16 @@ } ] }, + { + "name": "GetKeyPressed", + "description": "Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty", + "returnType": "int" + }, + { + "name": "GetCharPressed", + "description": "Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty", + "returnType": "int" + }, { "name": "SetExitKey", "description": "Set a custom key to exit program (default is ESC)", @@ -4614,16 +4776,6 @@ } ] }, - { - "name": "GetKeyPressed", - "description": "Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty", - "returnType": "int" - }, - { - "name": "GetCharPressed", - "description": "Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty", - "returnType": "int" - }, { "name": "IsGamepadAvailable", "description": "Check if a gamepad is available", @@ -5083,7 +5235,7 @@ }, { "name": "DrawLineV", - "description": "Draw a line (Vector version)", + "description": "Draw a line (using gl lines)", "returnType": "void", "params": [ { @@ -5102,7 +5254,7 @@ }, { "name": "DrawLineEx", - "description": "Draw a line defining thickness", + "description": "Draw a line (using triangles/quads)", "returnType": "void", "params": [ { @@ -5123,136 +5275,9 @@ } ] }, - { - "name": "DrawLineBezier", - "description": "Draw a line using cubic-bezier curves in-out", - "returnType": "void", - "params": [ - { - "type": "Vector2", - "name": "startPos" - }, - { - "type": "Vector2", - "name": "endPos" - }, - { - "type": "float", - "name": "thick" - }, - { - "type": "Color", - "name": "color" - } - ] - }, - { - "name": "DrawLineBezierQuad", - "description": "Draw line using quadratic bezier curves with a control point", - "returnType": "void", - "params": [ - { - "type": "Vector2", - "name": "startPos" - }, - { - "type": "Vector2", - "name": "endPos" - }, - { - "type": "Vector2", - "name": "controlPos" - }, - { - "type": "float", - "name": "thick" - }, - { - "type": "Color", - "name": "color" - } - ] - }, - { - "name": "DrawLineBezierCubic", - "description": "Draw line using cubic bezier curves with 2 control points", - "returnType": "void", - "params": [ - { - "type": "Vector2", - "name": "startPos" - }, - { - "type": "Vector2", - "name": "endPos" - }, - { - "type": "Vector2", - "name": "startControlPos" - }, - { - "type": "Vector2", - "name": "endControlPos" - }, - { - "type": "float", - "name": "thick" - }, - { - "type": "Color", - "name": "color" - } - ] - }, - { - "name": "DrawLineBSpline", - "description": "Draw a B-Spline line, minimum 4 points", - "returnType": "void", - "params": [ - { - "type": "Vector2 *", - "name": "points" - }, - { - "type": "int", - "name": "pointCount" - }, - { - "type": "float", - "name": "thick" - }, - { - "type": "Color", - "name": "color" - } - ] - }, - { - "name": "DrawLineCatmullRom", - "description": "Draw a Catmull Rom spline line, minimum 4 points", - "returnType": "void", - "params": [ - { - "type": "Vector2 *", - "name": "points" - }, - { - "type": "int", - "name": "pointCount" - }, - { - "type": "float", - "name": "thick" - }, - { - "type": "Color", - "name": "color" - } - ] - }, { "name": "DrawLineStrip", - "description": "Draw lines sequence", + "description": "Draw lines sequence (using gl lines)", "returnType": "void", "params": [ { @@ -5269,6 +5294,29 @@ } ] }, + { + "name": "DrawLineBezier", + "description": "Draw line segment cubic-bezier in-out interpolation", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "DrawCircle", "description": "Draw a color-filled circle", @@ -5423,6 +5471,25 @@ } ] }, + { + "name": "DrawCircleLinesV", + "description": "Draw circle outline (Vector version)", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "center" + }, + { + "type": "float", + "name": "radius" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "DrawEllipse", "description": "Draw ellipse", @@ -5985,6 +6052,387 @@ } ] }, + { + "name": "DrawSplineLinear", + "description": "Draw spline: Linear, minimum 2 points", + "returnType": "void", + "params": [ + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineBasis", + "description": "Draw spline: B-Spline, minimum 4 points", + "returnType": "void", + "params": [ + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineCatmullRom", + "description": "Draw spline: Catmull-Rom, minimum 4 points", + "returnType": "void", + "params": [ + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineBezierQuadratic", + "description": "Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]", + "returnType": "void", + "params": [ + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineBezierCubic", + "description": "Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]", + "returnType": "void", + "params": [ + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineSegmentLinear", + "description": "Draw spline segment: Linear, 2 points", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineSegmentBasis", + "description": "Draw spline segment: B-Spline, 4 points", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineSegmentCatmullRom", + "description": "Draw spline segment: Catmull-Rom, 4 points", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineSegmentBezierQuadratic", + "description": "Draw spline segment: Quadratic Bezier, 2 points, 1 control point", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "c2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawSplineSegmentBezierCubic", + "description": "Draw spline segment: Cubic Bezier, 2 points, 2 control points", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "c2" + }, + { + "type": "Vector2", + "name": "c3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "GetSplinePointLinear", + "description": "Get (evaluate) spline point: Linear", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplinePointBasis", + "description": "Get (evaluate) spline point: B-Spline", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplinePointCatmullRom", + "description": "Get (evaluate) spline point: Catmull-Rom", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplinePointBezierQuad", + "description": "Get (evaluate) spline point: Quadratic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "c2" + }, + { + "type": "Vector2", + "name": "p3" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplinePointBezierCubic", + "description": "Get (evaluate) spline point: Cubic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "c2" + }, + { + "type": "Vector2", + "name": "c3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "float", + "name": "t" + } + ] + }, { "name": "CheckCollisionRecs", "description": "Check collision between two rectangles", @@ -6768,6 +7216,25 @@ } ] }, + { + "name": "ImageKernelConvolution", + "description": "Apply Custom Square image convolution kernel", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "image" + }, + { + "type": "float*", + "name": "kernel" + }, + { + "type": "int", + "name": "kernelSize" + } + ] + }, { "name": "ImageResize", "description": "Resize image (Bicubic scaling algorithm)", @@ -10339,6 +10806,11 @@ } ] }, + { + "name": "GetMasterVolume", + "description": "Get master volume (listener)", + "returnType": "float" + }, { "name": "LoadWave", "description": "Load wave data from file", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 26b2564a5..18375e179 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -9,13 +9,13 @@ return { { name = "RAYLIB_VERSION_MAJOR", type = "INT", - value = 4, + value = 5, description = "" }, { name = "RAYLIB_VERSION_MINOR", type = "INT", - value = 6, + value = 1, description = "" }, { @@ -27,7 +27,7 @@ return { { name = "RAYLIB_VERSION", type = "STRING", - value = "4.6-dev", + value = "5.1-dev", description = "" }, { @@ -1329,6 +1329,48 @@ return { description = "Filepaths entries" } } + }, + { + name = "AutomationEvent", + description = "Automation event", + fields = { + { + type = "unsigned int", + name = "frame", + description = "Event frame" + }, + { + type = "unsigned int", + name = "type", + description = "Event type (AutomationEventType)" + }, + { + type = "int[4]", + name = "params", + description = "Event parameters (if required)" + } + } + }, + { + name = "AutomationEventList", + description = "Automation event list", + fields = { + { + type = "unsigned int", + name = "capacity", + description = "Events max entries (MAX_AUTOMATION_EVENTS)" + }, + { + type = "unsigned int", + name = "count", + description = "Events entries count" + }, + { + type = "AutomationEvent *", + name = "events", + description = "Events entries" + } + } } }, aliases = { @@ -3044,16 +3086,16 @@ return { {type = "const char *", name = "title"} } }, - { - name = "WindowShouldClose", - description = "Check if KEY_ESCAPE pressed or Close icon pressed", - returnType = "bool" - }, { name = "CloseWindow", description = "Close window and unload OpenGL context", returnType = "void" }, + { + name = "WindowShouldClose", + description = "Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)", + returnType = "bool" + }, { name = "IsWindowReady", description = "Check if window has been initialized successfully", @@ -3344,24 +3386,6 @@ return { description = "Disable waiting for events on EndDrawing(), automatic events polling", returnType = "void" }, - { - name = "SwapScreenBuffer", - description = "Swap back buffer with front buffer (screen drawing)", - returnType = "void" - }, - { - name = "PollInputEvents", - description = "Register all input events", - returnType = "void" - }, - { - name = "WaitTime", - description = "Wait for some time (halt program execution)", - returnType = "void", - params = { - {type = "double", name = "seconds"} - } - }, { name = "ShowCursor", description = "Shows cursor", @@ -3686,11 +3710,6 @@ return { {type = "int", name = "fps"} } }, - { - name = "GetFPS", - description = "Get current FPS", - returnType = "int" - }, { name = "GetFrameTime", description = "Get time in seconds for last frame drawn (delta time)", @@ -3701,6 +3720,37 @@ return { description = "Get elapsed time in seconds since InitWindow()", returnType = "double" }, + { + name = "GetFPS", + description = "Get current FPS", + returnType = "int" + }, + { + name = "SwapScreenBuffer", + description = "Swap back buffer with front buffer (screen drawing)", + returnType = "void" + }, + { + name = "PollInputEvents", + description = "Register all input events", + returnType = "void" + }, + { + name = "WaitTime", + description = "Wait for some time (halt program execution)", + returnType = "void", + params = { + {type = "double", name = "seconds"} + } + }, + { + name = "SetRandomSeed", + description = "Set the seed for the random number generator", + returnType = "void", + params = { + {type = "unsigned int", name = "seed"} + } + }, { name = "GetRandomValue", description = "Get a random value between min and max (both included)", @@ -3711,11 +3761,21 @@ return { } }, { - name = "SetRandomSeed", - description = "Set the seed for the random number generator", + name = "LoadRandomSequence", + description = "Load random values sequence, no values repeated", + returnType = "int *", + params = { + {type = "unsigned int", name = "count"}, + {type = "int", name = "min"}, + {type = "int", name = "max"} + } + }, + { + name = "UnloadRandomSequence", + description = "Unload random values sequence", returnType = "void", params = { - {type = "unsigned int", name = "seed"} + {type = "int *", name = "sequence"} } }, { @@ -3734,6 +3794,14 @@ return { {type = "unsigned int", name = "flags"} } }, + { + name = "OpenURL", + description = "Open URL with default system browser (if available)", + returnType = "void", + params = { + {type = "const char *", name = "url"} + } + }, { name = "TraceLog", description = "Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)", @@ -3777,14 +3845,6 @@ return { {type = "void *", name = "ptr"} } }, - { - name = "OpenURL", - description = "Open URL with default system browser (if available)", - returnType = "void", - params = { - {type = "const char *", name = "url"} - } - }, { name = "SetTraceLogCallback", description = "Set custom trace log", @@ -4077,6 +4137,65 @@ return { {type = "int *", name = "outputSize"} } }, + { + name = "LoadAutomationEventList", + description = "Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS", + returnType = "AutomationEventList", + params = { + {type = "const char *", name = "fileName"} + } + }, + { + name = "UnloadAutomationEventList", + description = "Unload automation events list from file", + returnType = "void", + params = { + {type = "AutomationEventList *", name = "list"} + } + }, + { + name = "ExportAutomationEventList", + description = "Export automation events list as text file", + returnType = "bool", + params = { + {type = "AutomationEventList", name = "list"}, + {type = "const char *", name = "fileName"} + } + }, + { + name = "SetAutomationEventList", + description = "Set automation event list to record to", + returnType = "void", + params = { + {type = "AutomationEventList *", name = "list"} + } + }, + { + name = "SetAutomationEventBaseFrame", + description = "Set automation event internal base frame to start recording", + returnType = "void", + params = { + {type = "int", name = "frame"} + } + }, + { + name = "StartAutomationEventRecording", + description = "Start recording automation events (AutomationEventList must be set)", + returnType = "void" + }, + { + name = "StopAutomationEventRecording", + description = "Stop recording automation events", + returnType = "void" + }, + { + name = "PlayAutomationEvent", + description = "Play a recorded automation event", + returnType = "void", + params = { + {type = "AutomationEvent", name = "event"} + } + }, { name = "IsKeyPressed", description = "Check if a key has been pressed once", @@ -4117,14 +4236,6 @@ return { {type = "int", name = "key"} } }, - { - name = "SetExitKey", - description = "Set a custom key to exit program (default is ESC)", - returnType = "void", - params = { - {type = "int", name = "key"} - } - }, { name = "GetKeyPressed", description = "Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty", @@ -4135,6 +4246,14 @@ return { description = "Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty", returnType = "int" }, + { + name = "SetExitKey", + description = "Set a custom key to exit program (default is ESC)", + returnType = "void", + params = { + {type = "int", name = "key"} + } + }, { name = "IsGamepadAvailable", description = "Check if a gamepad is available", @@ -4453,7 +4572,7 @@ return { }, { name = "DrawLineV", - description = "Draw a line (Vector version)", + description = "Draw a line (using gl lines)", returnType = "void", params = { {type = "Vector2", name = "startPos"}, @@ -4463,7 +4582,7 @@ return { }, { name = "DrawLineEx", - description = "Draw a line defining thickness", + description = "Draw a line (using triangles/quads)", returnType = "void", params = { {type = "Vector2", name = "startPos"}, @@ -4472,67 +4591,9 @@ return { {type = "Color", name = "color"} } }, - { - name = "DrawLineBezier", - description = "Draw a line using cubic-bezier curves in-out", - returnType = "void", - params = { - {type = "Vector2", name = "startPos"}, - {type = "Vector2", name = "endPos"}, - {type = "float", name = "thick"}, - {type = "Color", name = "color"} - } - }, - { - name = "DrawLineBezierQuad", - description = "Draw line using quadratic bezier curves with a control point", - returnType = "void", - params = { - {type = "Vector2", name = "startPos"}, - {type = "Vector2", name = "endPos"}, - {type = "Vector2", name = "controlPos"}, - {type = "float", name = "thick"}, - {type = "Color", name = "color"} - } - }, - { - name = "DrawLineBezierCubic", - description = "Draw line using cubic bezier curves with 2 control points", - returnType = "void", - params = { - {type = "Vector2", name = "startPos"}, - {type = "Vector2", name = "endPos"}, - {type = "Vector2", name = "startControlPos"}, - {type = "Vector2", name = "endControlPos"}, - {type = "float", name = "thick"}, - {type = "Color", name = "color"} - } - }, - { - name = "DrawLineBSpline", - description = "Draw a B-Spline line, minimum 4 points", - returnType = "void", - params = { - {type = "Vector2 *", name = "points"}, - {type = "int", name = "pointCount"}, - {type = "float", name = "thick"}, - {type = "Color", name = "color"} - } - }, - { - name = "DrawLineCatmullRom", - description = "Draw a Catmull Rom spline line, minimum 4 points", - returnType = "void", - params = { - {type = "Vector2 *", name = "points"}, - {type = "int", name = "pointCount"}, - {type = "float", name = "thick"}, - {type = "Color", name = "color"} - } - }, { name = "DrawLineStrip", - description = "Draw lines sequence", + description = "Draw lines sequence (using gl lines)", returnType = "void", params = { {type = "Vector2 *", name = "points"}, @@ -4540,6 +4601,17 @@ return { {type = "Color", name = "color"} } }, + { + name = "DrawLineBezier", + description = "Draw line segment cubic-bezier in-out interpolation", + returnType = "void", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, { name = "DrawCircle", description = "Draw a color-filled circle", @@ -4610,6 +4682,16 @@ return { {type = "Color", name = "color"} } }, + { + name = "DrawCircleLinesV", + description = "Draw circle outline (Vector version)", + returnType = "void", + params = { + {type = "Vector2", name = "center"}, + {type = "float", name = "radius"}, + {type = "Color", name = "color"} + } + }, { name = "DrawEllipse", description = "Draw ellipse", @@ -4866,6 +4948,180 @@ return { {type = "Color", name = "color"} } }, + { + name = "DrawSplineLinear", + description = "Draw spline: Linear, minimum 2 points", + returnType = "void", + params = { + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineBasis", + description = "Draw spline: B-Spline, minimum 4 points", + returnType = "void", + params = { + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineCatmullRom", + description = "Draw spline: Catmull-Rom, minimum 4 points", + returnType = "void", + params = { + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineBezierQuadratic", + description = "Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]", + returnType = "void", + params = { + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineBezierCubic", + description = "Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]", + returnType = "void", + params = { + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineSegmentLinear", + description = "Draw spline segment: Linear, 2 points", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineSegmentBasis", + description = "Draw spline segment: B-Spline, 4 points", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "Vector2", name = "p3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineSegmentCatmullRom", + description = "Draw spline segment: Catmull-Rom, 4 points", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "Vector2", name = "p3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineSegmentBezierQuadratic", + description = "Draw spline segment: Quadratic Bezier, 2 points, 1 control point", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "c2"}, + {type = "Vector2", name = "p3"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawSplineSegmentBezierCubic", + description = "Draw spline segment: Cubic Bezier, 2 points, 2 control points", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "c2"}, + {type = "Vector2", name = "c3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "thick"}, + {type = "Color", name = "color"} + } + }, + { + name = "GetSplinePointLinear", + description = "Get (evaluate) spline point: Linear", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplinePointBasis", + description = "Get (evaluate) spline point: B-Spline", + returnType = "Vector2", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "Vector2", name = "p3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplinePointCatmullRom", + description = "Get (evaluate) spline point: Catmull-Rom", + returnType = "Vector2", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "Vector2", name = "p3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplinePointBezierQuad", + description = "Get (evaluate) spline point: Quadratic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "c2"}, + {type = "Vector2", name = "p3"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplinePointBezierCubic", + description = "Get (evaluate) spline point: Cubic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "c2"}, + {type = "Vector2", name = "c3"}, + {type = "Vector2", name = "p4"}, + {type = "float", name = "t"} + } + }, { name = "CheckCollisionRecs", description = "Check collision between two rectangles", @@ -5286,6 +5542,16 @@ return { {type = "int", name = "blurSize"} } }, + { + name = "ImageKernelConvolution", + description = "Apply Custom Square image convolution kernel", + returnType = "void", + params = { + {type = "Image *", name = "image"}, + {type = "float*", name = "kernel"}, + {type = "int", name = "kernelSize"} + } + }, { name = "ImageResize", description = "Resize image (Bicubic scaling algorithm)", @@ -7195,6 +7461,11 @@ return { {type = "float", name = "volume"} } }, + { + name = "GetMasterVolume", + description = "Get master volume (listener)", + returnType = "float" + }, { name = "LoadWave", description = "Load wave data from file", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 725d6ae91..8a57b4e15 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -9,12 +9,12 @@ Define 001: RAYLIB_H Define 002: RAYLIB_VERSION_MAJOR Name: RAYLIB_VERSION_MAJOR Type: INT - Value: 4 + Value: 5 Description: Define 003: RAYLIB_VERSION_MINOR Name: RAYLIB_VERSION_MINOR Type: INT - Value: 6 + Value: 1 Description: Define 004: RAYLIB_VERSION_PATCH Name: RAYLIB_VERSION_PATCH @@ -24,7 +24,7 @@ Define 004: RAYLIB_VERSION_PATCH Define 005: RAYLIB_VERSION Name: RAYLIB_VERSION Type: STRING - Value: "4.6-dev" + Value: "5.1-dev" Description: Define 006: __declspec(x) Name: __declspec(x) @@ -282,7 +282,7 @@ Define 056: SHADER_LOC_MAP_SPECULAR Value: SHADER_LOC_MAP_METALNESS Description: -Structures found: 32 +Structures found: 34 Struct 01: Vector2 (2 fields) Name: Vector2 @@ -540,6 +540,18 @@ Struct 32: FilePathList (3 fields) Field[1]: unsigned int capacity // Filepaths max entries Field[2]: unsigned int count // Filepaths entries count Field[3]: char ** paths // Filepaths entries +Struct 33: AutomationEvent (3 fields) + Name: AutomationEvent + Description: Automation event + Field[1]: unsigned int frame // Event frame + Field[2]: unsigned int type // Event type (AutomationEventType) + Field[3]: int[4] params // Event parameters (if required) +Struct 34: AutomationEventList (3 fields) + Name: AutomationEventList + Description: Automation event list + Field[1]: unsigned int capacity // Events max entries (MAX_AUTOMATION_EVENTS) + Field[2]: unsigned int count // Events entries count + Field[3]: AutomationEvent * events // Events entries Aliases found: 5 @@ -968,7 +980,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 529 +Functions found: 553 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -977,16 +989,16 @@ Function 001: InitWindow() (3 input parameters) Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: title (type: const char *) -Function 002: WindowShouldClose() (0 input parameters) - Name: WindowShouldClose - Return type: bool - Description: Check if KEY_ESCAPE pressed or Close icon pressed - No input parameters -Function 003: CloseWindow() (0 input parameters) +Function 002: CloseWindow() (0 input parameters) Name: CloseWindow Return type: void Description: Close window and unload OpenGL context No input parameters +Function 003: WindowShouldClose() (0 input parameters) + Name: WindowShouldClose + Return type: bool + Description: Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) + No input parameters Function 004: IsWindowReady() (0 input parameters) Name: IsWindowReady Return type: bool @@ -1217,117 +1229,102 @@ Function 048: DisableEventWaiting() (0 input parameters) Return type: void Description: Disable waiting for events on EndDrawing(), automatic events polling No input parameters -Function 049: SwapScreenBuffer() (0 input parameters) - Name: SwapScreenBuffer - Return type: void - Description: Swap back buffer with front buffer (screen drawing) - No input parameters -Function 050: PollInputEvents() (0 input parameters) - Name: PollInputEvents - Return type: void - Description: Register all input events - No input parameters -Function 051: WaitTime() (1 input parameters) - Name: WaitTime - Return type: void - Description: Wait for some time (halt program execution) - Param[1]: seconds (type: double) -Function 052: ShowCursor() (0 input parameters) +Function 049: ShowCursor() (0 input parameters) Name: ShowCursor Return type: void Description: Shows cursor No input parameters -Function 053: HideCursor() (0 input parameters) +Function 050: HideCursor() (0 input parameters) Name: HideCursor Return type: void Description: Hides cursor No input parameters -Function 054: IsCursorHidden() (0 input parameters) +Function 051: IsCursorHidden() (0 input parameters) Name: IsCursorHidden Return type: bool Description: Check if cursor is not visible No input parameters -Function 055: EnableCursor() (0 input parameters) +Function 052: EnableCursor() (0 input parameters) Name: EnableCursor Return type: void Description: Enables cursor (unlock cursor) No input parameters -Function 056: DisableCursor() (0 input parameters) +Function 053: DisableCursor() (0 input parameters) Name: DisableCursor Return type: void Description: Disables cursor (lock cursor) No input parameters -Function 057: IsCursorOnScreen() (0 input parameters) +Function 054: IsCursorOnScreen() (0 input parameters) Name: IsCursorOnScreen Return type: bool Description: Check if cursor is on the screen No input parameters -Function 058: ClearBackground() (1 input parameters) +Function 055: ClearBackground() (1 input parameters) Name: ClearBackground Return type: void Description: Set background color (framebuffer clear color) Param[1]: color (type: Color) -Function 059: BeginDrawing() (0 input parameters) +Function 056: BeginDrawing() (0 input parameters) Name: BeginDrawing Return type: void Description: Setup canvas (framebuffer) to start drawing No input parameters -Function 060: EndDrawing() (0 input parameters) +Function 057: EndDrawing() (0 input parameters) Name: EndDrawing Return type: void Description: End canvas drawing and swap buffers (double buffering) No input parameters -Function 061: BeginMode2D() (1 input parameters) +Function 058: BeginMode2D() (1 input parameters) Name: BeginMode2D Return type: void Description: Begin 2D mode with custom camera (2D) Param[1]: camera (type: Camera2D) -Function 062: EndMode2D() (0 input parameters) +Function 059: EndMode2D() (0 input parameters) Name: EndMode2D Return type: void Description: Ends 2D mode with custom camera No input parameters -Function 063: BeginMode3D() (1 input parameters) +Function 060: BeginMode3D() (1 input parameters) Name: BeginMode3D Return type: void Description: Begin 3D mode with custom camera (3D) Param[1]: camera (type: Camera3D) -Function 064: EndMode3D() (0 input parameters) +Function 061: EndMode3D() (0 input parameters) Name: EndMode3D Return type: void Description: Ends 3D mode and returns to default 2D orthographic mode No input parameters -Function 065: BeginTextureMode() (1 input parameters) +Function 062: BeginTextureMode() (1 input parameters) Name: BeginTextureMode Return type: void Description: Begin drawing to render texture Param[1]: target (type: RenderTexture2D) -Function 066: EndTextureMode() (0 input parameters) +Function 063: EndTextureMode() (0 input parameters) Name: EndTextureMode Return type: void Description: Ends drawing to render texture No input parameters -Function 067: BeginShaderMode() (1 input parameters) +Function 064: BeginShaderMode() (1 input parameters) Name: BeginShaderMode Return type: void Description: Begin custom shader drawing Param[1]: shader (type: Shader) -Function 068: EndShaderMode() (0 input parameters) +Function 065: EndShaderMode() (0 input parameters) Name: EndShaderMode Return type: void Description: End custom shader drawing (use default shader) No input parameters -Function 069: BeginBlendMode() (1 input parameters) +Function 066: BeginBlendMode() (1 input parameters) Name: BeginBlendMode Return type: void Description: Begin blending mode (alpha, additive, multiplied, subtract, custom) Param[1]: mode (type: int) -Function 070: EndBlendMode() (0 input parameters) +Function 067: EndBlendMode() (0 input parameters) Name: EndBlendMode Return type: void Description: End blending mode (reset to default: alpha blending) No input parameters -Function 071: BeginScissorMode() (4 input parameters) +Function 068: BeginScissorMode() (4 input parameters) Name: BeginScissorMode Return type: void Description: Begin scissor mode (define screen area for following drawing) @@ -1335,61 +1332,61 @@ Function 071: BeginScissorMode() (4 input parameters) Param[2]: y (type: int) Param[3]: width (type: int) Param[4]: height (type: int) -Function 072: EndScissorMode() (0 input parameters) +Function 069: EndScissorMode() (0 input parameters) Name: EndScissorMode Return type: void Description: End scissor mode No input parameters -Function 073: BeginVrStereoMode() (1 input parameters) +Function 070: BeginVrStereoMode() (1 input parameters) Name: BeginVrStereoMode Return type: void Description: Begin stereo rendering (requires VR simulator) Param[1]: config (type: VrStereoConfig) -Function 074: EndVrStereoMode() (0 input parameters) +Function 071: EndVrStereoMode() (0 input parameters) Name: EndVrStereoMode Return type: void Description: End stereo rendering (requires VR simulator) No input parameters -Function 075: LoadVrStereoConfig() (1 input parameters) +Function 072: LoadVrStereoConfig() (1 input parameters) Name: LoadVrStereoConfig Return type: VrStereoConfig Description: Load VR stereo config for VR simulator device parameters Param[1]: device (type: VrDeviceInfo) -Function 076: UnloadVrStereoConfig() (1 input parameters) +Function 073: UnloadVrStereoConfig() (1 input parameters) Name: UnloadVrStereoConfig Return type: void Description: Unload VR stereo config Param[1]: config (type: VrStereoConfig) -Function 077: LoadShader() (2 input parameters) +Function 074: LoadShader() (2 input parameters) Name: LoadShader Return type: Shader Description: Load shader from files and bind default locations Param[1]: vsFileName (type: const char *) Param[2]: fsFileName (type: const char *) -Function 078: LoadShaderFromMemory() (2 input parameters) +Function 075: LoadShaderFromMemory() (2 input parameters) Name: LoadShaderFromMemory Return type: Shader Description: Load shader from code strings and bind default locations Param[1]: vsCode (type: const char *) Param[2]: fsCode (type: const char *) -Function 079: IsShaderReady() (1 input parameters) +Function 076: IsShaderReady() (1 input parameters) Name: IsShaderReady Return type: bool Description: Check if a shader is ready Param[1]: shader (type: Shader) -Function 080: GetShaderLocation() (2 input parameters) +Function 077: GetShaderLocation() (2 input parameters) Name: GetShaderLocation Return type: int Description: Get shader uniform location Param[1]: shader (type: Shader) Param[2]: uniformName (type: const char *) -Function 081: GetShaderLocationAttrib() (2 input parameters) +Function 078: GetShaderLocationAttrib() (2 input parameters) Name: GetShaderLocationAttrib Return type: int Description: Get shader attribute location Param[1]: shader (type: Shader) Param[2]: attribName (type: const char *) -Function 082: SetShaderValue() (4 input parameters) +Function 079: SetShaderValue() (4 input parameters) Name: SetShaderValue Return type: void Description: Set shader uniform value @@ -1397,7 +1394,7 @@ Function 082: SetShaderValue() (4 input parameters) Param[2]: locIndex (type: int) Param[3]: value (type: const void *) Param[4]: uniformType (type: int) -Function 083: SetShaderValueV() (5 input parameters) +Function 080: SetShaderValueV() (5 input parameters) Name: SetShaderValueV Return type: void Description: Set shader uniform value vector @@ -1406,54 +1403,54 @@ Function 083: SetShaderValueV() (5 input parameters) Param[3]: value (type: const void *) Param[4]: uniformType (type: int) Param[5]: count (type: int) -Function 084: SetShaderValueMatrix() (3 input parameters) +Function 081: SetShaderValueMatrix() (3 input parameters) Name: SetShaderValueMatrix Return type: void Description: Set shader uniform value (matrix 4x4) Param[1]: shader (type: Shader) Param[2]: locIndex (type: int) Param[3]: mat (type: Matrix) -Function 085: SetShaderValueTexture() (3 input parameters) +Function 082: SetShaderValueTexture() (3 input parameters) Name: SetShaderValueTexture Return type: void Description: Set shader uniform value for texture (sampler2d) Param[1]: shader (type: Shader) Param[2]: locIndex (type: int) Param[3]: texture (type: Texture2D) -Function 086: UnloadShader() (1 input parameters) +Function 083: UnloadShader() (1 input parameters) Name: UnloadShader Return type: void Description: Unload shader from GPU memory (VRAM) Param[1]: shader (type: Shader) -Function 087: GetMouseRay() (2 input parameters) +Function 084: GetMouseRay() (2 input parameters) Name: GetMouseRay Return type: Ray Description: Get a ray trace from mouse position Param[1]: mousePosition (type: Vector2) Param[2]: camera (type: Camera) -Function 088: GetCameraMatrix() (1 input parameters) +Function 085: GetCameraMatrix() (1 input parameters) Name: GetCameraMatrix Return type: Matrix Description: Get camera transform matrix (view matrix) Param[1]: camera (type: Camera) -Function 089: GetCameraMatrix2D() (1 input parameters) +Function 086: GetCameraMatrix2D() (1 input parameters) Name: GetCameraMatrix2D Return type: Matrix Description: Get camera 2d transform matrix Param[1]: camera (type: Camera2D) -Function 090: GetWorldToScreen() (2 input parameters) +Function 087: GetWorldToScreen() (2 input parameters) Name: GetWorldToScreen Return type: Vector2 Description: Get the screen space position for a 3d world space position Param[1]: position (type: Vector3) Param[2]: camera (type: Camera) -Function 091: GetScreenToWorld2D() (2 input parameters) +Function 088: GetScreenToWorld2D() (2 input parameters) Name: GetScreenToWorld2D Return type: Vector2 Description: Get the world space position for a 2d camera screen space position Param[1]: position (type: Vector2) Param[2]: camera (type: Camera2D) -Function 092: GetWorldToScreenEx() (4 input parameters) +Function 089: GetWorldToScreenEx() (4 input parameters) Name: GetWorldToScreenEx Return type: Vector2 Description: Get size position for a 3d world space position @@ -1461,522 +1458,590 @@ Function 092: GetWorldToScreenEx() (4 input parameters) Param[2]: camera (type: Camera) Param[3]: width (type: int) Param[4]: height (type: int) -Function 093: GetWorldToScreen2D() (2 input parameters) +Function 090: GetWorldToScreen2D() (2 input parameters) Name: GetWorldToScreen2D Return type: Vector2 Description: Get the screen space position for a 2d camera world space position Param[1]: position (type: Vector2) Param[2]: camera (type: Camera2D) -Function 094: SetTargetFPS() (1 input parameters) +Function 091: SetTargetFPS() (1 input parameters) Name: SetTargetFPS Return type: void Description: Set target FPS (maximum) Param[1]: fps (type: int) -Function 095: GetFPS() (0 input parameters) - Name: GetFPS - Return type: int - Description: Get current FPS - No input parameters -Function 096: GetFrameTime() (0 input parameters) +Function 092: GetFrameTime() (0 input parameters) Name: GetFrameTime Return type: float Description: Get time in seconds for last frame drawn (delta time) No input parameters -Function 097: GetTime() (0 input parameters) +Function 093: GetTime() (0 input parameters) Name: GetTime Return type: double Description: Get elapsed time in seconds since InitWindow() No input parameters -Function 098: GetRandomValue() (2 input parameters) +Function 094: GetFPS() (0 input parameters) + Name: GetFPS + Return type: int + Description: Get current FPS + No input parameters +Function 095: SwapScreenBuffer() (0 input parameters) + Name: SwapScreenBuffer + Return type: void + Description: Swap back buffer with front buffer (screen drawing) + No input parameters +Function 096: PollInputEvents() (0 input parameters) + Name: PollInputEvents + Return type: void + Description: Register all input events + No input parameters +Function 097: WaitTime() (1 input parameters) + Name: WaitTime + Return type: void + Description: Wait for some time (halt program execution) + Param[1]: seconds (type: double) +Function 098: SetRandomSeed() (1 input parameters) + Name: SetRandomSeed + Return type: void + Description: Set the seed for the random number generator + Param[1]: seed (type: unsigned int) +Function 099: GetRandomValue() (2 input parameters) Name: GetRandomValue Return type: int Description: Get a random value between min and max (both included) Param[1]: min (type: int) Param[2]: max (type: int) -Function 099: SetRandomSeed() (1 input parameters) - Name: SetRandomSeed +Function 100: LoadRandomSequence() (3 input parameters) + Name: LoadRandomSequence + Return type: int * + Description: Load random values sequence, no values repeated + Param[1]: count (type: unsigned int) + Param[2]: min (type: int) + Param[3]: max (type: int) +Function 101: UnloadRandomSequence() (1 input parameters) + Name: UnloadRandomSequence Return type: void - Description: Set the seed for the random number generator - Param[1]: seed (type: unsigned int) -Function 100: TakeScreenshot() (1 input parameters) + Description: Unload random values sequence + Param[1]: sequence (type: int *) +Function 102: TakeScreenshot() (1 input parameters) Name: TakeScreenshot Return type: void Description: Takes a screenshot of current screen (filename extension defines format) Param[1]: fileName (type: const char *) -Function 101: SetConfigFlags() (1 input parameters) +Function 103: SetConfigFlags() (1 input parameters) Name: SetConfigFlags Return type: void Description: Setup init configuration flags (view FLAGS) Param[1]: flags (type: unsigned int) -Function 102: TraceLog() (3 input parameters) +Function 104: OpenURL() (1 input parameters) + Name: OpenURL + Return type: void + Description: Open URL with default system browser (if available) + Param[1]: url (type: const char *) +Function 105: TraceLog() (3 input parameters) Name: TraceLog Return type: void Description: Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) Param[1]: logLevel (type: int) Param[2]: text (type: const char *) Param[3]: args (type: ...) -Function 103: SetTraceLogLevel() (1 input parameters) +Function 106: SetTraceLogLevel() (1 input parameters) Name: SetTraceLogLevel Return type: void Description: Set the current threshold (minimum) log level Param[1]: logLevel (type: int) -Function 104: MemAlloc() (1 input parameters) +Function 107: MemAlloc() (1 input parameters) Name: MemAlloc Return type: void * Description: Internal memory allocator Param[1]: size (type: unsigned int) -Function 105: MemRealloc() (2 input parameters) +Function 108: MemRealloc() (2 input parameters) Name: MemRealloc Return type: void * Description: Internal memory reallocator Param[1]: ptr (type: void *) Param[2]: size (type: unsigned int) -Function 106: MemFree() (1 input parameters) +Function 109: MemFree() (1 input parameters) Name: MemFree Return type: void Description: Internal memory free Param[1]: ptr (type: void *) -Function 107: OpenURL() (1 input parameters) - Name: OpenURL - Return type: void - Description: Open URL with default system browser (if available) - Param[1]: url (type: const char *) -Function 108: SetTraceLogCallback() (1 input parameters) +Function 110: SetTraceLogCallback() (1 input parameters) Name: SetTraceLogCallback Return type: void Description: Set custom trace log Param[1]: callback (type: TraceLogCallback) -Function 109: SetLoadFileDataCallback() (1 input parameters) +Function 111: SetLoadFileDataCallback() (1 input parameters) Name: SetLoadFileDataCallback Return type: void Description: Set custom file binary data loader Param[1]: callback (type: LoadFileDataCallback) -Function 110: SetSaveFileDataCallback() (1 input parameters) +Function 112: SetSaveFileDataCallback() (1 input parameters) Name: SetSaveFileDataCallback Return type: void Description: Set custom file binary data saver Param[1]: callback (type: SaveFileDataCallback) -Function 111: SetLoadFileTextCallback() (1 input parameters) +Function 113: SetLoadFileTextCallback() (1 input parameters) Name: SetLoadFileTextCallback Return type: void Description: Set custom file text data loader Param[1]: callback (type: LoadFileTextCallback) -Function 112: SetSaveFileTextCallback() (1 input parameters) +Function 114: SetSaveFileTextCallback() (1 input parameters) Name: SetSaveFileTextCallback Return type: void Description: Set custom file text data saver Param[1]: callback (type: SaveFileTextCallback) -Function 113: LoadFileData() (2 input parameters) +Function 115: LoadFileData() (2 input parameters) Name: LoadFileData Return type: unsigned char * Description: Load file data as byte array (read) Param[1]: fileName (type: const char *) Param[2]: dataSize (type: int *) -Function 114: UnloadFileData() (1 input parameters) +Function 116: UnloadFileData() (1 input parameters) Name: UnloadFileData Return type: void Description: Unload file data allocated by LoadFileData() Param[1]: data (type: unsigned char *) -Function 115: SaveFileData() (3 input parameters) +Function 117: SaveFileData() (3 input parameters) Name: SaveFileData Return type: bool Description: Save data to file from byte array (write), returns true on success Param[1]: fileName (type: const char *) Param[2]: data (type: void *) Param[3]: dataSize (type: int) -Function 116: ExportDataAsCode() (3 input parameters) +Function 118: ExportDataAsCode() (3 input parameters) Name: ExportDataAsCode Return type: bool Description: Export data to code (.h), returns true on success Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: fileName (type: const char *) -Function 117: LoadFileText() (1 input parameters) +Function 119: LoadFileText() (1 input parameters) Name: LoadFileText Return type: char * Description: Load text data from file (read), returns a '\0' terminated string Param[1]: fileName (type: const char *) -Function 118: UnloadFileText() (1 input parameters) +Function 120: UnloadFileText() (1 input parameters) Name: UnloadFileText Return type: void Description: Unload file text data allocated by LoadFileText() Param[1]: text (type: char *) -Function 119: SaveFileText() (2 input parameters) +Function 121: SaveFileText() (2 input parameters) Name: SaveFileText Return type: bool Description: Save text data to file (write), string must be '\0' terminated, returns true on success Param[1]: fileName (type: const char *) Param[2]: text (type: char *) -Function 120: FileExists() (1 input parameters) +Function 122: FileExists() (1 input parameters) Name: FileExists Return type: bool Description: Check if file exists Param[1]: fileName (type: const char *) -Function 121: DirectoryExists() (1 input parameters) +Function 123: DirectoryExists() (1 input parameters) Name: DirectoryExists Return type: bool Description: Check if a directory path exists Param[1]: dirPath (type: const char *) -Function 122: IsFileExtension() (2 input parameters) +Function 124: IsFileExtension() (2 input parameters) Name: IsFileExtension Return type: bool Description: Check file extension (including point: .png, .wav) Param[1]: fileName (type: const char *) Param[2]: ext (type: const char *) -Function 123: GetFileLength() (1 input parameters) +Function 125: GetFileLength() (1 input parameters) Name: GetFileLength Return type: int Description: Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) Param[1]: fileName (type: const char *) -Function 124: GetFileExtension() (1 input parameters) +Function 126: GetFileExtension() (1 input parameters) Name: GetFileExtension Return type: const char * Description: Get pointer to extension for a filename string (includes dot: '.png') Param[1]: fileName (type: const char *) -Function 125: GetFileName() (1 input parameters) +Function 127: GetFileName() (1 input parameters) Name: GetFileName Return type: const char * Description: Get pointer to filename for a path string Param[1]: filePath (type: const char *) -Function 126: GetFileNameWithoutExt() (1 input parameters) +Function 128: GetFileNameWithoutExt() (1 input parameters) Name: GetFileNameWithoutExt Return type: const char * Description: Get filename string without extension (uses static string) Param[1]: filePath (type: const char *) -Function 127: GetDirectoryPath() (1 input parameters) +Function 129: GetDirectoryPath() (1 input parameters) Name: GetDirectoryPath Return type: const char * Description: Get full path for a given fileName with path (uses static string) Param[1]: filePath (type: const char *) -Function 128: GetPrevDirectoryPath() (1 input parameters) +Function 130: GetPrevDirectoryPath() (1 input parameters) Name: GetPrevDirectoryPath Return type: const char * Description: Get previous directory path for a given path (uses static string) Param[1]: dirPath (type: const char *) -Function 129: GetWorkingDirectory() (0 input parameters) +Function 131: GetWorkingDirectory() (0 input parameters) Name: GetWorkingDirectory Return type: const char * Description: Get current working directory (uses static string) No input parameters -Function 130: GetApplicationDirectory() (0 input parameters) +Function 132: GetApplicationDirectory() (0 input parameters) Name: GetApplicationDirectory Return type: const char * Description: Get the directory of the running application (uses static string) No input parameters -Function 131: ChangeDirectory() (1 input parameters) +Function 133: ChangeDirectory() (1 input parameters) Name: ChangeDirectory Return type: bool Description: Change working directory, return true on success Param[1]: dir (type: const char *) -Function 132: IsPathFile() (1 input parameters) +Function 134: IsPathFile() (1 input parameters) Name: IsPathFile Return type: bool Description: Check if a given path is a file or a directory Param[1]: path (type: const char *) -Function 133: LoadDirectoryFiles() (1 input parameters) +Function 135: LoadDirectoryFiles() (1 input parameters) Name: LoadDirectoryFiles Return type: FilePathList Description: Load directory filepaths Param[1]: dirPath (type: const char *) -Function 134: LoadDirectoryFilesEx() (3 input parameters) +Function 136: LoadDirectoryFilesEx() (3 input parameters) Name: LoadDirectoryFilesEx Return type: FilePathList Description: Load directory filepaths with extension filtering and recursive directory scan Param[1]: basePath (type: const char *) Param[2]: filter (type: const char *) Param[3]: scanSubdirs (type: bool) -Function 135: UnloadDirectoryFiles() (1 input parameters) +Function 137: UnloadDirectoryFiles() (1 input parameters) Name: UnloadDirectoryFiles Return type: void Description: Unload filepaths Param[1]: files (type: FilePathList) -Function 136: IsFileDropped() (0 input parameters) +Function 138: IsFileDropped() (0 input parameters) Name: IsFileDropped Return type: bool Description: Check if a file has been dropped into window No input parameters -Function 137: LoadDroppedFiles() (0 input parameters) +Function 139: LoadDroppedFiles() (0 input parameters) Name: LoadDroppedFiles Return type: FilePathList Description: Load dropped filepaths No input parameters -Function 138: UnloadDroppedFiles() (1 input parameters) +Function 140: UnloadDroppedFiles() (1 input parameters) Name: UnloadDroppedFiles Return type: void Description: Unload dropped filepaths Param[1]: files (type: FilePathList) -Function 139: GetFileModTime() (1 input parameters) +Function 141: GetFileModTime() (1 input parameters) Name: GetFileModTime Return type: long Description: Get file modification time (last write time) Param[1]: fileName (type: const char *) -Function 140: CompressData() (3 input parameters) +Function 142: CompressData() (3 input parameters) Name: CompressData Return type: unsigned char * Description: Compress data (DEFLATE algorithm), memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: compDataSize (type: int *) -Function 141: DecompressData() (3 input parameters) +Function 143: DecompressData() (3 input parameters) Name: DecompressData Return type: unsigned char * Description: Decompress data (DEFLATE algorithm), memory must be MemFree() Param[1]: compData (type: const unsigned char *) Param[2]: compDataSize (type: int) Param[3]: dataSize (type: int *) -Function 142: EncodeDataBase64() (3 input parameters) +Function 144: EncodeDataBase64() (3 input parameters) Name: EncodeDataBase64 Return type: char * Description: Encode data to Base64 string, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: outputSize (type: int *) -Function 143: DecodeDataBase64() (2 input parameters) +Function 145: DecodeDataBase64() (2 input parameters) Name: DecodeDataBase64 Return type: unsigned char * Description: Decode Base64 string data, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: outputSize (type: int *) -Function 144: IsKeyPressed() (1 input parameters) +Function 146: LoadAutomationEventList() (1 input parameters) + Name: LoadAutomationEventList + Return type: AutomationEventList + Description: Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS + Param[1]: fileName (type: const char *) +Function 147: UnloadAutomationEventList() (1 input parameters) + Name: UnloadAutomationEventList + Return type: void + Description: Unload automation events list from file + Param[1]: list (type: AutomationEventList *) +Function 148: ExportAutomationEventList() (2 input parameters) + Name: ExportAutomationEventList + Return type: bool + Description: Export automation events list as text file + Param[1]: list (type: AutomationEventList) + Param[2]: fileName (type: const char *) +Function 149: SetAutomationEventList() (1 input parameters) + Name: SetAutomationEventList + Return type: void + Description: Set automation event list to record to + Param[1]: list (type: AutomationEventList *) +Function 150: SetAutomationEventBaseFrame() (1 input parameters) + Name: SetAutomationEventBaseFrame + Return type: void + Description: Set automation event internal base frame to start recording + Param[1]: frame (type: int) +Function 151: StartAutomationEventRecording() (0 input parameters) + Name: StartAutomationEventRecording + Return type: void + Description: Start recording automation events (AutomationEventList must be set) + No input parameters +Function 152: StopAutomationEventRecording() (0 input parameters) + Name: StopAutomationEventRecording + Return type: void + Description: Stop recording automation events + No input parameters +Function 153: PlayAutomationEvent() (1 input parameters) + Name: PlayAutomationEvent + Return type: void + Description: Play a recorded automation event + Param[1]: event (type: AutomationEvent) +Function 154: IsKeyPressed() (1 input parameters) Name: IsKeyPressed Return type: bool Description: Check if a key has been pressed once Param[1]: key (type: int) -Function 145: IsKeyPressedRepeat() (1 input parameters) +Function 155: IsKeyPressedRepeat() (1 input parameters) Name: IsKeyPressedRepeat Return type: bool Description: Check if a key has been pressed again (Only PLATFORM_DESKTOP) Param[1]: key (type: int) -Function 146: IsKeyDown() (1 input parameters) +Function 156: IsKeyDown() (1 input parameters) Name: IsKeyDown Return type: bool Description: Check if a key is being pressed Param[1]: key (type: int) -Function 147: IsKeyReleased() (1 input parameters) +Function 157: IsKeyReleased() (1 input parameters) Name: IsKeyReleased Return type: bool Description: Check if a key has been released once Param[1]: key (type: int) -Function 148: IsKeyUp() (1 input parameters) +Function 158: IsKeyUp() (1 input parameters) Name: IsKeyUp Return type: bool Description: Check if a key is NOT being pressed Param[1]: key (type: int) -Function 149: SetExitKey() (1 input parameters) - Name: SetExitKey - Return type: void - Description: Set a custom key to exit program (default is ESC) - Param[1]: key (type: int) -Function 150: GetKeyPressed() (0 input parameters) +Function 159: GetKeyPressed() (0 input parameters) Name: GetKeyPressed Return type: int Description: Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty No input parameters -Function 151: GetCharPressed() (0 input parameters) +Function 160: GetCharPressed() (0 input parameters) Name: GetCharPressed Return type: int Description: Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty No input parameters -Function 152: IsGamepadAvailable() (1 input parameters) +Function 161: SetExitKey() (1 input parameters) + Name: SetExitKey + Return type: void + Description: Set a custom key to exit program (default is ESC) + Param[1]: key (type: int) +Function 162: IsGamepadAvailable() (1 input parameters) Name: IsGamepadAvailable Return type: bool Description: Check if a gamepad is available Param[1]: gamepad (type: int) -Function 153: GetGamepadName() (1 input parameters) +Function 163: GetGamepadName() (1 input parameters) Name: GetGamepadName Return type: const char * Description: Get gamepad internal name id Param[1]: gamepad (type: int) -Function 154: IsGamepadButtonPressed() (2 input parameters) +Function 164: IsGamepadButtonPressed() (2 input parameters) Name: IsGamepadButtonPressed Return type: bool Description: Check if a gamepad button has been pressed once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 155: IsGamepadButtonDown() (2 input parameters) +Function 165: IsGamepadButtonDown() (2 input parameters) Name: IsGamepadButtonDown Return type: bool Description: Check if a gamepad button is being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 156: IsGamepadButtonReleased() (2 input parameters) +Function 166: IsGamepadButtonReleased() (2 input parameters) Name: IsGamepadButtonReleased Return type: bool Description: Check if a gamepad button has been released once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 157: IsGamepadButtonUp() (2 input parameters) +Function 167: IsGamepadButtonUp() (2 input parameters) Name: IsGamepadButtonUp Return type: bool Description: Check if a gamepad button is NOT being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 158: GetGamepadButtonPressed() (0 input parameters) +Function 168: GetGamepadButtonPressed() (0 input parameters) Name: GetGamepadButtonPressed Return type: int Description: Get the last gamepad button pressed No input parameters -Function 159: GetGamepadAxisCount() (1 input parameters) +Function 169: GetGamepadAxisCount() (1 input parameters) Name: GetGamepadAxisCount Return type: int Description: Get gamepad axis count for a gamepad Param[1]: gamepad (type: int) -Function 160: GetGamepadAxisMovement() (2 input parameters) +Function 170: GetGamepadAxisMovement() (2 input parameters) Name: GetGamepadAxisMovement Return type: float Description: Get axis movement value for a gamepad axis Param[1]: gamepad (type: int) Param[2]: axis (type: int) -Function 161: SetGamepadMappings() (1 input parameters) +Function 171: SetGamepadMappings() (1 input parameters) Name: SetGamepadMappings Return type: int Description: Set internal gamepad mappings (SDL_GameControllerDB) Param[1]: mappings (type: const char *) -Function 162: IsMouseButtonPressed() (1 input parameters) +Function 172: IsMouseButtonPressed() (1 input parameters) Name: IsMouseButtonPressed Return type: bool Description: Check if a mouse button has been pressed once Param[1]: button (type: int) -Function 163: IsMouseButtonDown() (1 input parameters) +Function 173: IsMouseButtonDown() (1 input parameters) Name: IsMouseButtonDown Return type: bool Description: Check if a mouse button is being pressed Param[1]: button (type: int) -Function 164: IsMouseButtonReleased() (1 input parameters) +Function 174: IsMouseButtonReleased() (1 input parameters) Name: IsMouseButtonReleased Return type: bool Description: Check if a mouse button has been released once Param[1]: button (type: int) -Function 165: IsMouseButtonUp() (1 input parameters) +Function 175: IsMouseButtonUp() (1 input parameters) Name: IsMouseButtonUp Return type: bool Description: Check if a mouse button is NOT being pressed Param[1]: button (type: int) -Function 166: GetMouseX() (0 input parameters) +Function 176: GetMouseX() (0 input parameters) Name: GetMouseX Return type: int Description: Get mouse position X No input parameters -Function 167: GetMouseY() (0 input parameters) +Function 177: GetMouseY() (0 input parameters) Name: GetMouseY Return type: int Description: Get mouse position Y No input parameters -Function 168: GetMousePosition() (0 input parameters) +Function 178: GetMousePosition() (0 input parameters) Name: GetMousePosition Return type: Vector2 Description: Get mouse position XY No input parameters -Function 169: GetMouseDelta() (0 input parameters) +Function 179: GetMouseDelta() (0 input parameters) Name: GetMouseDelta Return type: Vector2 Description: Get mouse delta between frames No input parameters -Function 170: SetMousePosition() (2 input parameters) +Function 180: SetMousePosition() (2 input parameters) Name: SetMousePosition Return type: void Description: Set mouse position XY Param[1]: x (type: int) Param[2]: y (type: int) -Function 171: SetMouseOffset() (2 input parameters) +Function 181: SetMouseOffset() (2 input parameters) Name: SetMouseOffset Return type: void Description: Set mouse offset Param[1]: offsetX (type: int) Param[2]: offsetY (type: int) -Function 172: SetMouseScale() (2 input parameters) +Function 182: SetMouseScale() (2 input parameters) Name: SetMouseScale Return type: void Description: Set mouse scaling Param[1]: scaleX (type: float) Param[2]: scaleY (type: float) -Function 173: GetMouseWheelMove() (0 input parameters) +Function 183: GetMouseWheelMove() (0 input parameters) Name: GetMouseWheelMove Return type: float Description: Get mouse wheel movement for X or Y, whichever is larger No input parameters -Function 174: GetMouseWheelMoveV() (0 input parameters) +Function 184: GetMouseWheelMoveV() (0 input parameters) Name: GetMouseWheelMoveV Return type: Vector2 Description: Get mouse wheel movement for both X and Y No input parameters -Function 175: SetMouseCursor() (1 input parameters) +Function 185: SetMouseCursor() (1 input parameters) Name: SetMouseCursor Return type: void Description: Set mouse cursor Param[1]: cursor (type: int) -Function 176: GetTouchX() (0 input parameters) +Function 186: GetTouchX() (0 input parameters) Name: GetTouchX Return type: int Description: Get touch position X for touch point 0 (relative to screen size) No input parameters -Function 177: GetTouchY() (0 input parameters) +Function 187: GetTouchY() (0 input parameters) Name: GetTouchY Return type: int Description: Get touch position Y for touch point 0 (relative to screen size) No input parameters -Function 178: GetTouchPosition() (1 input parameters) +Function 188: GetTouchPosition() (1 input parameters) Name: GetTouchPosition Return type: Vector2 Description: Get touch position XY for a touch point index (relative to screen size) Param[1]: index (type: int) -Function 179: GetTouchPointId() (1 input parameters) +Function 189: GetTouchPointId() (1 input parameters) Name: GetTouchPointId Return type: int Description: Get touch point identifier for given index Param[1]: index (type: int) -Function 180: GetTouchPointCount() (0 input parameters) +Function 190: GetTouchPointCount() (0 input parameters) Name: GetTouchPointCount Return type: int Description: Get number of touch points No input parameters -Function 181: SetGesturesEnabled() (1 input parameters) +Function 191: SetGesturesEnabled() (1 input parameters) Name: SetGesturesEnabled Return type: void Description: Enable a set of gestures using flags Param[1]: flags (type: unsigned int) -Function 182: IsGestureDetected() (1 input parameters) +Function 192: IsGestureDetected() (1 input parameters) Name: IsGestureDetected Return type: bool Description: Check if a gesture have been detected Param[1]: gesture (type: unsigned int) -Function 183: GetGestureDetected() (0 input parameters) +Function 193: GetGestureDetected() (0 input parameters) Name: GetGestureDetected Return type: int Description: Get latest detected gesture No input parameters -Function 184: GetGestureHoldDuration() (0 input parameters) +Function 194: GetGestureHoldDuration() (0 input parameters) Name: GetGestureHoldDuration Return type: float Description: Get gesture hold time in milliseconds No input parameters -Function 185: GetGestureDragVector() (0 input parameters) +Function 195: GetGestureDragVector() (0 input parameters) Name: GetGestureDragVector Return type: Vector2 Description: Get gesture drag vector No input parameters -Function 186: GetGestureDragAngle() (0 input parameters) +Function 196: GetGestureDragAngle() (0 input parameters) Name: GetGestureDragAngle Return type: float Description: Get gesture drag angle No input parameters -Function 187: GetGesturePinchVector() (0 input parameters) +Function 197: GetGesturePinchVector() (0 input parameters) Name: GetGesturePinchVector Return type: Vector2 Description: Get gesture pinch delta No input parameters -Function 188: GetGesturePinchAngle() (0 input parameters) +Function 198: GetGesturePinchAngle() (0 input parameters) Name: GetGesturePinchAngle Return type: float Description: Get gesture pinch angle No input parameters -Function 189: UpdateCamera() (2 input parameters) +Function 199: UpdateCamera() (2 input parameters) Name: UpdateCamera Return type: void Description: Update camera position for selected mode Param[1]: camera (type: Camera *) Param[2]: mode (type: int) -Function 190: UpdateCameraPro() (4 input parameters) +Function 200: UpdateCameraPro() (4 input parameters) Name: UpdateCameraPro Return type: void Description: Update camera movement/rotation @@ -1984,26 +2049,26 @@ Function 190: UpdateCameraPro() (4 input parameters) Param[2]: movement (type: Vector3) Param[3]: rotation (type: Vector3) Param[4]: zoom (type: float) -Function 191: SetShapesTexture() (2 input parameters) +Function 201: SetShapesTexture() (2 input parameters) Name: SetShapesTexture Return type: void Description: Set texture and rectangle to be used on shapes drawing Param[1]: texture (type: Texture2D) Param[2]: source (type: Rectangle) -Function 192: DrawPixel() (3 input parameters) +Function 202: DrawPixel() (3 input parameters) Name: DrawPixel Return type: void Description: Draw a pixel Param[1]: posX (type: int) Param[2]: posY (type: int) Param[3]: color (type: Color) -Function 193: DrawPixelV() (2 input parameters) +Function 203: DrawPixelV() (2 input parameters) Name: DrawPixelV Return type: void Description: Draw a pixel (Vector version) Param[1]: position (type: Vector2) Param[2]: color (type: Color) -Function 194: DrawLine() (5 input parameters) +Function 204: DrawLine() (5 input parameters) Name: DrawLine Return type: void Description: Draw a line @@ -2012,72 +2077,37 @@ Function 194: DrawLine() (5 input parameters) Param[3]: endPosX (type: int) Param[4]: endPosY (type: int) Param[5]: color (type: Color) -Function 195: DrawLineV() (3 input parameters) +Function 205: DrawLineV() (3 input parameters) Name: DrawLineV Return type: void - Description: Draw a line (Vector version) + Description: Draw a line (using gl lines) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: color (type: Color) -Function 196: DrawLineEx() (4 input parameters) +Function 206: DrawLineEx() (4 input parameters) Name: DrawLineEx Return type: void - Description: Draw a line defining thickness + Description: Draw a line (using triangles/quads) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 197: DrawLineBezier() (4 input parameters) - Name: DrawLineBezier - Return type: void - Description: Draw a line using cubic-bezier curves in-out - Param[1]: startPos (type: Vector2) - Param[2]: endPos (type: Vector2) - Param[3]: thick (type: float) - Param[4]: color (type: Color) -Function 198: DrawLineBezierQuad() (5 input parameters) - Name: DrawLineBezierQuad - Return type: void - Description: Draw line using quadratic bezier curves with a control point - Param[1]: startPos (type: Vector2) - Param[2]: endPos (type: Vector2) - Param[3]: controlPos (type: Vector2) - Param[4]: thick (type: float) - Param[5]: color (type: Color) -Function 199: DrawLineBezierCubic() (6 input parameters) - Name: DrawLineBezierCubic - Return type: void - Description: Draw line using cubic bezier curves with 2 control points - Param[1]: startPos (type: Vector2) - Param[2]: endPos (type: Vector2) - Param[3]: startControlPos (type: Vector2) - Param[4]: endControlPos (type: Vector2) - Param[5]: thick (type: float) - Param[6]: color (type: Color) -Function 200: DrawLineBSpline() (4 input parameters) - Name: DrawLineBSpline - Return type: void - Description: Draw a B-Spline line, minimum 4 points - Param[1]: points (type: Vector2 *) - Param[2]: pointCount (type: int) - Param[3]: thick (type: float) - Param[4]: color (type: Color) -Function 201: DrawLineCatmullRom() (4 input parameters) - Name: DrawLineCatmullRom - Return type: void - Description: Draw a Catmull Rom spline line, minimum 4 points - Param[1]: points (type: Vector2 *) - Param[2]: pointCount (type: int) - Param[3]: thick (type: float) - Param[4]: color (type: Color) -Function 202: DrawLineStrip() (3 input parameters) +Function 207: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void - Description: Draw lines sequence + Description: Draw lines sequence (using gl lines) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 203: DrawCircle() (4 input parameters) +Function 208: DrawLineBezier() (4 input parameters) + Name: DrawLineBezier + Return type: void + Description: Draw line segment cubic-bezier in-out interpolation + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 209: DrawCircle() (4 input parameters) Name: DrawCircle Return type: void Description: Draw a color-filled circle @@ -2085,7 +2115,7 @@ Function 203: DrawCircle() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 204: DrawCircleSector() (6 input parameters) +Function 210: DrawCircleSector() (6 input parameters) Name: DrawCircleSector Return type: void Description: Draw a piece of a circle @@ -2095,7 +2125,7 @@ Function 204: DrawCircleSector() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 205: DrawCircleSectorLines() (6 input parameters) +Function 211: DrawCircleSectorLines() (6 input parameters) Name: DrawCircleSectorLines Return type: void Description: Draw circle sector outline @@ -2105,7 +2135,7 @@ Function 205: DrawCircleSectorLines() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 206: DrawCircleGradient() (5 input parameters) +Function 212: DrawCircleGradient() (5 input parameters) Name: DrawCircleGradient Return type: void Description: Draw a gradient-filled circle @@ -2114,14 +2144,14 @@ Function 206: DrawCircleGradient() (5 input parameters) Param[3]: radius (type: float) Param[4]: color1 (type: Color) Param[5]: color2 (type: Color) -Function 207: DrawCircleV() (3 input parameters) +Function 213: DrawCircleV() (3 input parameters) Name: DrawCircleV Return type: void Description: Draw a color-filled circle (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 208: DrawCircleLines() (4 input parameters) +Function 214: DrawCircleLines() (4 input parameters) Name: DrawCircleLines Return type: void Description: Draw circle outline @@ -2129,7 +2159,14 @@ Function 208: DrawCircleLines() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 209: DrawEllipse() (5 input parameters) +Function 215: DrawCircleLinesV() (3 input parameters) + Name: DrawCircleLinesV + Return type: void + Description: Draw circle outline (Vector version) + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: color (type: Color) +Function 216: DrawEllipse() (5 input parameters) Name: DrawEllipse Return type: void Description: Draw ellipse @@ -2138,7 +2175,7 @@ Function 209: DrawEllipse() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 210: DrawEllipseLines() (5 input parameters) +Function 217: DrawEllipseLines() (5 input parameters) Name: DrawEllipseLines Return type: void Description: Draw ellipse outline @@ -2147,7 +2184,7 @@ Function 210: DrawEllipseLines() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 211: DrawRing() (7 input parameters) +Function 218: DrawRing() (7 input parameters) Name: DrawRing Return type: void Description: Draw ring @@ -2158,7 +2195,7 @@ Function 211: DrawRing() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 212: DrawRingLines() (7 input parameters) +Function 219: DrawRingLines() (7 input parameters) Name: DrawRingLines Return type: void Description: Draw ring outline @@ -2169,7 +2206,7 @@ Function 212: DrawRingLines() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 213: DrawRectangle() (5 input parameters) +Function 220: DrawRectangle() (5 input parameters) Name: DrawRectangle Return type: void Description: Draw a color-filled rectangle @@ -2178,20 +2215,20 @@ Function 213: DrawRectangle() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 214: DrawRectangleV() (3 input parameters) +Function 221: DrawRectangleV() (3 input parameters) Name: DrawRectangleV Return type: void Description: Draw a color-filled rectangle (Vector version) Param[1]: position (type: Vector2) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 215: DrawRectangleRec() (2 input parameters) +Function 222: DrawRectangleRec() (2 input parameters) Name: DrawRectangleRec Return type: void Description: Draw a color-filled rectangle Param[1]: rec (type: Rectangle) Param[2]: color (type: Color) -Function 216: DrawRectanglePro() (4 input parameters) +Function 223: DrawRectanglePro() (4 input parameters) Name: DrawRectanglePro Return type: void Description: Draw a color-filled rectangle with pro parameters @@ -2199,7 +2236,7 @@ Function 216: DrawRectanglePro() (4 input parameters) Param[2]: origin (type: Vector2) Param[3]: rotation (type: float) Param[4]: color (type: Color) -Function 217: DrawRectangleGradientV() (6 input parameters) +Function 224: DrawRectangleGradientV() (6 input parameters) Name: DrawRectangleGradientV Return type: void Description: Draw a vertical-gradient-filled rectangle @@ -2209,7 +2246,7 @@ Function 217: DrawRectangleGradientV() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 218: DrawRectangleGradientH() (6 input parameters) +Function 225: DrawRectangleGradientH() (6 input parameters) Name: DrawRectangleGradientH Return type: void Description: Draw a horizontal-gradient-filled rectangle @@ -2219,7 +2256,7 @@ Function 218: DrawRectangleGradientH() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 219: DrawRectangleGradientEx() (5 input parameters) +Function 226: DrawRectangleGradientEx() (5 input parameters) Name: DrawRectangleGradientEx Return type: void Description: Draw a gradient-filled rectangle with custom vertex colors @@ -2228,7 +2265,7 @@ Function 219: DrawRectangleGradientEx() (5 input parameters) Param[3]: col2 (type: Color) Param[4]: col3 (type: Color) Param[5]: col4 (type: Color) -Function 220: DrawRectangleLines() (5 input parameters) +Function 227: DrawRectangleLines() (5 input parameters) Name: DrawRectangleLines Return type: void Description: Draw rectangle outline @@ -2237,14 +2274,14 @@ Function 220: DrawRectangleLines() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 221: DrawRectangleLinesEx() (3 input parameters) +Function 228: DrawRectangleLinesEx() (3 input parameters) Name: DrawRectangleLinesEx Return type: void Description: Draw rectangle outline with extended parameters Param[1]: rec (type: Rectangle) Param[2]: lineThick (type: float) Param[3]: color (type: Color) -Function 222: DrawRectangleRounded() (4 input parameters) +Function 229: DrawRectangleRounded() (4 input parameters) Name: DrawRectangleRounded Return type: void Description: Draw rectangle with rounded edges @@ -2252,7 +2289,7 @@ Function 222: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 223: DrawRectangleRoundedLines() (5 input parameters) +Function 230: DrawRectangleRoundedLines() (5 input parameters) Name: DrawRectangleRoundedLines Return type: void Description: Draw rectangle with rounded edges outline @@ -2261,7 +2298,7 @@ Function 223: DrawRectangleRoundedLines() (5 input parameters) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 224: DrawTriangle() (4 input parameters) +Function 231: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2269,7 +2306,7 @@ Function 224: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 225: DrawTriangleLines() (4 input parameters) +Function 232: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2277,21 +2314,21 @@ Function 225: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 226: DrawTriangleFan() (3 input parameters) +Function 233: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 227: DrawTriangleStrip() (3 input parameters) +Function 234: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 228: DrawPoly() (5 input parameters) +Function 235: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2300,7 +2337,7 @@ Function 228: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 229: DrawPolyLines() (5 input parameters) +Function 236: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2309,7 +2346,7 @@ Function 229: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 230: DrawPolyLinesEx() (6 input parameters) +Function 237: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2319,13 +2356,142 @@ Function 230: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 231: CheckCollisionRecs() (2 input parameters) +Function 238: DrawSplineLinear() (4 input parameters) + Name: DrawSplineLinear + Return type: void + Description: Draw spline: Linear, minimum 2 points + Param[1]: points (type: Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 239: DrawSplineBasis() (4 input parameters) + Name: DrawSplineBasis + Return type: void + Description: Draw spline: B-Spline, minimum 4 points + Param[1]: points (type: Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 240: DrawSplineCatmullRom() (4 input parameters) + Name: DrawSplineCatmullRom + Return type: void + Description: Draw spline: Catmull-Rom, minimum 4 points + Param[1]: points (type: Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 241: DrawSplineBezierQuadratic() (4 input parameters) + Name: DrawSplineBezierQuadratic + Return type: void + Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] + Param[1]: points (type: Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 242: DrawSplineBezierCubic() (4 input parameters) + Name: DrawSplineBezierCubic + Return type: void + Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] + Param[1]: points (type: Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 243: DrawSplineSegmentLinear() (4 input parameters) + Name: DrawSplineSegmentLinear + Return type: void + Description: Draw spline segment: Linear, 2 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 244: DrawSplineSegmentBasis() (6 input parameters) + Name: DrawSplineSegmentBasis + Return type: void + Description: Draw spline segment: B-Spline, 4 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 245: DrawSplineSegmentCatmullRom() (6 input parameters) + Name: DrawSplineSegmentCatmullRom + Return type: void + Description: Draw spline segment: Catmull-Rom, 4 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 246: DrawSplineSegmentBezierQuadratic() (5 input parameters) + Name: DrawSplineSegmentBezierQuadratic + Return type: void + Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: thick (type: float) + Param[5]: color (type: Color) +Function 247: DrawSplineSegmentBezierCubic() (6 input parameters) + Name: DrawSplineSegmentBezierCubic + Return type: void + Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 248: GetSplinePointLinear() (3 input parameters) + Name: GetSplinePointLinear + Return type: Vector2 + Description: Get (evaluate) spline point: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: t (type: float) +Function 249: GetSplinePointBasis() (5 input parameters) + Name: GetSplinePointBasis + Return type: Vector2 + Description: Get (evaluate) spline point: B-Spline + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 250: GetSplinePointCatmullRom() (5 input parameters) + Name: GetSplinePointCatmullRom + Return type: Vector2 + Description: Get (evaluate) spline point: Catmull-Rom + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 251: GetSplinePointBezierQuad() (4 input parameters) + Name: GetSplinePointBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline point: Quadratic Bezier + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: t (type: float) +Function 252: GetSplinePointBezierCubic() (5 input parameters) + Name: GetSplinePointBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline point: Cubic Bezier + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 253: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 232: CheckCollisionCircles() (4 input parameters) +Function 254: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2333,27 +2499,27 @@ Function 232: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 233: CheckCollisionCircleRec() (3 input parameters) +Function 255: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 234: CheckCollisionPointRec() (2 input parameters) +Function 256: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 235: CheckCollisionPointCircle() (3 input parameters) +Function 257: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 236: CheckCollisionPointTriangle() (4 input parameters) +Function 258: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2361,14 +2527,14 @@ Function 236: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 237: CheckCollisionPointPoly() (3 input parameters) +Function 259: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 238: CheckCollisionLines() (5 input parameters) +Function 260: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2377,7 +2543,7 @@ Function 238: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 239: CheckCollisionPointLine() (4 input parameters) +Function 261: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2385,18 +2551,18 @@ Function 239: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 240: GetCollisionRec() (2 input parameters) +Function 262: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 241: LoadImage() (1 input parameters) +Function 263: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 242: LoadImageRaw() (5 input parameters) +Function 264: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2405,73 +2571,73 @@ Function 242: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 243: LoadImageSvg() (3 input parameters) +Function 265: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 244: LoadImageAnim() (2 input parameters) +Function 266: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 245: LoadImageFromMemory() (3 input parameters) +Function 267: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 246: LoadImageFromTexture() (1 input parameters) +Function 268: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 247: LoadImageFromScreen() (0 input parameters) +Function 269: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 248: IsImageReady() (1 input parameters) +Function 270: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 249: UnloadImage() (1 input parameters) +Function 271: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 250: ExportImage() (2 input parameters) +Function 272: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 251: ExportImageToMemory() (3 input parameters) +Function 273: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 252: ExportImageAsCode() (2 input parameters) +Function 274: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 253: GenImageColor() (3 input parameters) +Function 275: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 254: GenImageGradientLinear() (5 input parameters) +Function 276: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2480,7 +2646,7 @@ Function 254: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 255: GenImageGradientRadial() (5 input parameters) +Function 277: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2489,7 +2655,7 @@ Function 255: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 256: GenImageGradientSquare() (5 input parameters) +Function 278: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2498,7 +2664,7 @@ Function 256: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 257: GenImageChecked() (6 input parameters) +Function 279: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2508,14 +2674,14 @@ Function 257: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 258: GenImageWhiteNoise() (3 input parameters) +Function 280: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 259: GenImagePerlinNoise() (5 input parameters) +Function 281: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2524,39 +2690,39 @@ Function 259: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 260: GenImageCellular() (3 input parameters) +Function 282: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 261: GenImageText() (3 input parameters) +Function 283: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 262: ImageCopy() (1 input parameters) +Function 284: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 263: ImageFromImage() (2 input parameters) +Function 285: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 264: ImageText() (3 input parameters) +Function 286: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 265: ImageTextEx() (5 input parameters) +Function 287: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2565,69 +2731,76 @@ Function 265: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 266: ImageFormat() (2 input parameters) +Function 288: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 267: ImageToPOT() (2 input parameters) +Function 289: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 268: ImageCrop() (2 input parameters) +Function 290: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 269: ImageAlphaCrop() (2 input parameters) +Function 291: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 270: ImageAlphaClear() (3 input parameters) +Function 292: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 271: ImageAlphaMask() (2 input parameters) +Function 293: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 272: ImageAlphaPremultiply() (1 input parameters) +Function 294: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 273: ImageBlurGaussian() (2 input parameters) +Function 295: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 274: ImageResize() (3 input parameters) +Function 296: ImageKernelConvolution() (3 input parameters) + Name: ImageKernelConvolution + Return type: void + Description: Apply Custom Square image convolution kernel + Param[1]: image (type: Image *) + Param[2]: kernel (type: float*) + Param[3]: kernelSize (type: int) +Function 297: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 275: ImageResizeNN() (3 input parameters) +Function 298: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 276: ImageResizeCanvas() (6 input parameters) +Function 299: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2637,12 +2810,12 @@ Function 276: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 277: ImageMipmaps() (1 input parameters) +Function 300: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 278: ImageDither() (5 input parameters) +Function 301: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2651,109 +2824,109 @@ Function 278: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 279: ImageFlipVertical() (1 input parameters) +Function 302: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 280: ImageFlipHorizontal() (1 input parameters) +Function 303: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 281: ImageRotate() (2 input parameters) +Function 304: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 282: ImageRotateCW() (1 input parameters) +Function 305: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 283: ImageRotateCCW() (1 input parameters) +Function 306: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 284: ImageColorTint() (2 input parameters) +Function 307: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 285: ImageColorInvert() (1 input parameters) +Function 308: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 286: ImageColorGrayscale() (1 input parameters) +Function 309: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 287: ImageColorContrast() (2 input parameters) +Function 310: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 288: ImageColorBrightness() (2 input parameters) +Function 311: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 289: ImageColorReplace() (3 input parameters) +Function 312: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 290: LoadImageColors() (1 input parameters) +Function 313: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 291: LoadImagePalette() (3 input parameters) +Function 314: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 292: UnloadImageColors() (1 input parameters) +Function 315: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 293: UnloadImagePalette() (1 input parameters) +Function 316: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 294: GetImageAlphaBorder() (2 input parameters) +Function 317: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 295: GetImageColor() (3 input parameters) +Function 318: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 296: ImageClearBackground() (2 input parameters) +Function 319: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 297: ImageDrawPixel() (4 input parameters) +Function 320: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2761,14 +2934,14 @@ Function 297: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 298: ImageDrawPixelV() (3 input parameters) +Function 321: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 299: ImageDrawLine() (6 input parameters) +Function 322: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2778,7 +2951,7 @@ Function 299: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 300: ImageDrawLineV() (4 input parameters) +Function 323: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -2786,7 +2959,7 @@ Function 300: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 301: ImageDrawCircle() (5 input parameters) +Function 324: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -2795,7 +2968,7 @@ Function 301: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 302: ImageDrawCircleV() (4 input parameters) +Function 325: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -2803,7 +2976,7 @@ Function 302: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 303: ImageDrawCircleLines() (5 input parameters) +Function 326: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -2812,7 +2985,7 @@ Function 303: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 304: ImageDrawCircleLinesV() (4 input parameters) +Function 327: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -2820,7 +2993,7 @@ Function 304: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 305: ImageDrawRectangle() (6 input parameters) +Function 328: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -2830,7 +3003,7 @@ Function 305: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 306: ImageDrawRectangleV() (4 input parameters) +Function 329: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -2838,14 +3011,14 @@ Function 306: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 307: ImageDrawRectangleRec() (3 input parameters) +Function 330: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 308: ImageDrawRectangleLines() (4 input parameters) +Function 331: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -2853,7 +3026,7 @@ Function 308: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 309: ImageDraw() (5 input parameters) +Function 332: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -2862,7 +3035,7 @@ Function 309: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 310: ImageDrawText() (6 input parameters) +Function 333: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -2872,7 +3045,7 @@ Function 310: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 311: ImageDrawTextEx() (7 input parameters) +Function 334: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -2883,79 +3056,79 @@ Function 311: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 312: LoadTexture() (1 input parameters) +Function 335: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 313: LoadTextureFromImage() (1 input parameters) +Function 336: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 314: LoadTextureCubemap() (2 input parameters) +Function 337: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 315: LoadRenderTexture() (2 input parameters) +Function 338: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 316: IsTextureReady() (1 input parameters) +Function 339: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 317: UnloadTexture() (1 input parameters) +Function 340: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 318: IsRenderTextureReady() (1 input parameters) +Function 341: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 319: UnloadRenderTexture() (1 input parameters) +Function 342: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 320: UpdateTexture() (2 input parameters) +Function 343: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 321: UpdateTextureRec() (3 input parameters) +Function 344: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 322: GenTextureMipmaps() (1 input parameters) +Function 345: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 323: SetTextureFilter() (2 input parameters) +Function 346: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 324: SetTextureWrap() (2 input parameters) +Function 347: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 325: DrawTexture() (4 input parameters) +Function 348: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -2963,14 +3136,14 @@ Function 325: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 326: DrawTextureV() (3 input parameters) +Function 349: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 327: DrawTextureEx() (5 input parameters) +Function 350: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -2979,7 +3152,7 @@ Function 327: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 328: DrawTextureRec() (4 input parameters) +Function 351: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -2987,7 +3160,7 @@ Function 328: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 329: DrawTexturePro() (6 input parameters) +Function 352: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -2997,7 +3170,7 @@ Function 329: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 330: DrawTextureNPatch() (6 input parameters) +Function 353: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3007,106 +3180,106 @@ Function 330: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 331: Fade() (2 input parameters) +Function 354: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 332: ColorToInt() (1 input parameters) +Function 355: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color Param[1]: color (type: Color) -Function 333: ColorNormalize() (1 input parameters) +Function 356: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 334: ColorFromNormalized() (1 input parameters) +Function 357: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 335: ColorToHSV() (1 input parameters) +Function 358: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 336: ColorFromHSV() (3 input parameters) +Function 359: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 337: ColorTint() (2 input parameters) +Function 360: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 338: ColorBrightness() (2 input parameters) +Function 361: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 339: ColorContrast() (2 input parameters) +Function 362: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 340: ColorAlpha() (2 input parameters) +Function 363: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 341: ColorAlphaBlend() (3 input parameters) +Function 364: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 342: GetColor() (1 input parameters) +Function 365: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 343: GetPixelColor() (2 input parameters) +Function 366: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 344: SetPixelColor() (3 input parameters) +Function 367: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 345: GetPixelDataSize() (3 input parameters) +Function 368: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 346: GetFontDefault() (0 input parameters) +Function 369: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 347: LoadFont() (1 input parameters) +Function 370: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 348: LoadFontEx() (4 input parameters) +Function 371: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3114,14 +3287,14 @@ Function 348: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 349: LoadFontFromImage() (3 input parameters) +Function 372: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 350: LoadFontFromMemory() (6 input parameters) +Function 373: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3131,12 +3304,12 @@ Function 350: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 351: IsFontReady() (1 input parameters) +Function 374: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 352: LoadFontData() (6 input parameters) +Function 375: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3146,7 +3319,7 @@ Function 352: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 353: GenImageFontAtlas() (6 input parameters) +Function 376: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3156,30 +3329,30 @@ Function 353: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 354: UnloadFontData() (2 input parameters) +Function 377: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 355: UnloadFont() (1 input parameters) +Function 378: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 356: ExportFontAsCode() (2 input parameters) +Function 379: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 357: DrawFPS() (2 input parameters) +Function 380: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 358: DrawText() (5 input parameters) +Function 381: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3188,7 +3361,7 @@ Function 358: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 359: DrawTextEx() (6 input parameters) +Function 382: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3198,7 +3371,7 @@ Function 359: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 360: DrawTextPro() (8 input parameters) +Function 383: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3210,7 +3383,7 @@ Function 360: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 361: DrawTextCodepoint() (5 input parameters) +Function 384: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3219,7 +3392,7 @@ Function 361: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 362: DrawTextCodepoints() (7 input parameters) +Function 385: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3230,18 +3403,18 @@ Function 362: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 363: SetTextLineSpacing() (1 input parameters) +Function 386: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 364: MeasureText() (2 input parameters) +Function 387: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 365: MeasureTextEx() (4 input parameters) +Function 388: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3249,180 +3422,180 @@ Function 365: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 366: GetGlyphIndex() (2 input parameters) +Function 389: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 367: GetGlyphInfo() (2 input parameters) +Function 390: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 368: GetGlyphAtlasRec() (2 input parameters) +Function 391: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 369: LoadUTF8() (2 input parameters) +Function 392: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 370: UnloadUTF8() (1 input parameters) +Function 393: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 371: LoadCodepoints() (2 input parameters) +Function 394: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 372: UnloadCodepoints() (1 input parameters) +Function 395: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 373: GetCodepointCount() (1 input parameters) +Function 396: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 374: GetCodepoint() (2 input parameters) +Function 397: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 375: GetCodepointNext() (2 input parameters) +Function 398: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 376: GetCodepointPrevious() (2 input parameters) +Function 399: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 377: CodepointToUTF8() (2 input parameters) +Function 400: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 378: TextCopy() (2 input parameters) +Function 401: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 379: TextIsEqual() (2 input parameters) +Function 402: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 380: TextLength() (1 input parameters) +Function 403: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 381: TextFormat() (2 input parameters) +Function 404: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 382: TextSubtext() (3 input parameters) +Function 405: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 383: TextReplace() (3 input parameters) +Function 406: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 384: TextInsert() (3 input parameters) +Function 407: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 385: TextJoin() (3 input parameters) +Function 408: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 386: TextSplit() (3 input parameters) +Function 409: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 387: TextAppend() (3 input parameters) +Function 410: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 388: TextFindIndex() (2 input parameters) +Function 411: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 389: TextToUpper() (1 input parameters) +Function 412: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 390: TextToLower() (1 input parameters) +Function 413: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 391: TextToPascal() (1 input parameters) +Function 414: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 392: TextToInteger() (1 input parameters) +Function 415: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 393: DrawLine3D() (3 input parameters) +Function 416: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 394: DrawPoint3D() (2 input parameters) +Function 417: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 395: DrawCircle3D() (5 input parameters) +Function 418: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3431,7 +3604,7 @@ Function 395: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 396: DrawTriangle3D() (4 input parameters) +Function 419: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3439,14 +3612,14 @@ Function 396: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 397: DrawTriangleStrip3D() (3 input parameters) +Function 420: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 398: DrawCube() (5 input parameters) +Function 421: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3455,14 +3628,14 @@ Function 398: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 399: DrawCubeV() (3 input parameters) +Function 422: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 400: DrawCubeWires() (5 input parameters) +Function 423: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3471,21 +3644,21 @@ Function 400: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 401: DrawCubeWiresV() (3 input parameters) +Function 424: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 402: DrawSphere() (3 input parameters) +Function 425: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 403: DrawSphereEx() (5 input parameters) +Function 426: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3494,7 +3667,7 @@ Function 403: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 404: DrawSphereWires() (5 input parameters) +Function 427: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3503,7 +3676,7 @@ Function 404: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 405: DrawCylinder() (6 input parameters) +Function 428: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3513,7 +3686,7 @@ Function 405: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 406: DrawCylinderEx() (6 input parameters) +Function 429: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3523,7 +3696,7 @@ Function 406: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 407: DrawCylinderWires() (6 input parameters) +Function 430: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3533,7 +3706,7 @@ Function 407: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 408: DrawCylinderWiresEx() (6 input parameters) +Function 431: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3543,7 +3716,7 @@ Function 408: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 409: DrawCapsule() (6 input parameters) +Function 432: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3553,7 +3726,7 @@ Function 409: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 410: DrawCapsuleWires() (6 input parameters) +Function 433: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3563,51 +3736,51 @@ Function 410: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 411: DrawPlane() (3 input parameters) +Function 434: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 412: DrawRay() (2 input parameters) +Function 435: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 413: DrawGrid() (2 input parameters) +Function 436: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 414: LoadModel() (1 input parameters) +Function 437: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 415: LoadModelFromMesh() (1 input parameters) +Function 438: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 416: IsModelReady() (1 input parameters) +Function 439: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 417: UnloadModel() (1 input parameters) +Function 440: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 418: GetModelBoundingBox() (1 input parameters) +Function 441: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 419: DrawModel() (4 input parameters) +Function 442: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3615,7 +3788,7 @@ Function 419: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 420: DrawModelEx() (6 input parameters) +Function 443: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3625,7 +3798,7 @@ Function 420: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 421: DrawModelWires() (4 input parameters) +Function 444: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3633,7 +3806,7 @@ Function 421: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 422: DrawModelWiresEx() (6 input parameters) +Function 445: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3643,13 +3816,13 @@ Function 422: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 423: DrawBoundingBox() (2 input parameters) +Function 446: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 424: DrawBillboard() (5 input parameters) +Function 447: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3658,7 +3831,7 @@ Function 424: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 425: DrawBillboardRec() (6 input parameters) +Function 448: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3668,7 +3841,7 @@ Function 425: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 426: DrawBillboardPro() (9 input parameters) +Function 449: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3681,13 +3854,13 @@ Function 426: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 427: UploadMesh() (2 input parameters) +Function 450: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 428: UpdateMeshBuffer() (5 input parameters) +Function 451: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3696,19 +3869,19 @@ Function 428: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 429: UnloadMesh() (1 input parameters) +Function 452: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 430: DrawMesh() (3 input parameters) +Function 453: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 431: DrawMeshInstanced() (4 input parameters) +Function 454: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3716,29 +3889,29 @@ Function 431: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 432: ExportMesh() (2 input parameters) +Function 455: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 433: GetMeshBoundingBox() (1 input parameters) +Function 456: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 434: GenMeshTangents() (1 input parameters) +Function 457: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 435: GenMeshPoly() (2 input parameters) +Function 458: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 436: GenMeshPlane() (4 input parameters) +Function 459: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3746,42 +3919,42 @@ Function 436: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 437: GenMeshCube() (3 input parameters) +Function 460: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 438: GenMeshSphere() (3 input parameters) +Function 461: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 439: GenMeshHemiSphere() (3 input parameters) +Function 462: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 440: GenMeshCylinder() (3 input parameters) +Function 463: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 441: GenMeshCone() (3 input parameters) +Function 464: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 442: GenMeshTorus() (4 input parameters) +Function 465: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -3789,7 +3962,7 @@ Function 442: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 443: GenMeshKnot() (4 input parameters) +Function 466: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -3797,84 +3970,84 @@ Function 443: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 444: GenMeshHeightmap() (2 input parameters) +Function 467: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 445: GenMeshCubicmap() (2 input parameters) +Function 468: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 446: LoadMaterials() (2 input parameters) +Function 469: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 447: LoadMaterialDefault() (0 input parameters) +Function 470: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 448: IsMaterialReady() (1 input parameters) +Function 471: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 449: UnloadMaterial() (1 input parameters) +Function 472: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 450: SetMaterialTexture() (3 input parameters) +Function 473: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 451: SetModelMeshMaterial() (3 input parameters) +Function 474: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 452: LoadModelAnimations() (2 input parameters) +Function 475: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 453: UpdateModelAnimation() (3 input parameters) +Function 476: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 454: UnloadModelAnimation() (1 input parameters) +Function 477: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 455: UnloadModelAnimations() (2 input parameters) +Function 478: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 456: IsModelAnimationValid() (2 input parameters) +Function 479: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 457: CheckCollisionSpheres() (4 input parameters) +Function 480: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -3882,40 +4055,40 @@ Function 457: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 458: CheckCollisionBoxes() (2 input parameters) +Function 481: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 459: CheckCollisionBoxSphere() (3 input parameters) +Function 482: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 460: GetRayCollisionSphere() (3 input parameters) +Function 483: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 461: GetRayCollisionBox() (2 input parameters) +Function 484: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 462: GetRayCollisionMesh() (3 input parameters) +Function 485: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 463: GetRayCollisionTriangle() (4 input parameters) +Function 486: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -3923,7 +4096,7 @@ Function 463: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 464: GetRayCollisionQuad() (5 input parameters) +Function 487: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -3932,153 +4105,158 @@ Function 464: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 465: InitAudioDevice() (0 input parameters) +Function 488: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 466: CloseAudioDevice() (0 input parameters) +Function 489: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 467: IsAudioDeviceReady() (0 input parameters) +Function 490: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 468: SetMasterVolume() (1 input parameters) +Function 491: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 469: LoadWave() (1 input parameters) +Function 492: GetMasterVolume() (0 input parameters) + Name: GetMasterVolume + Return type: float + Description: Get master volume (listener) + No input parameters +Function 493: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 470: LoadWaveFromMemory() (3 input parameters) +Function 494: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 471: IsWaveReady() (1 input parameters) +Function 495: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 472: LoadSound() (1 input parameters) +Function 496: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 473: LoadSoundFromWave() (1 input parameters) +Function 497: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 474: LoadSoundAlias() (1 input parameters) +Function 498: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 475: IsSoundReady() (1 input parameters) +Function 499: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 476: UpdateSound() (3 input parameters) +Function 500: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 477: UnloadWave() (1 input parameters) +Function 501: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 478: UnloadSound() (1 input parameters) +Function 502: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 479: UnloadSoundAlias() (1 input parameters) +Function 503: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 480: ExportWave() (2 input parameters) +Function 504: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 481: ExportWaveAsCode() (2 input parameters) +Function 505: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 482: PlaySound() (1 input parameters) +Function 506: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 483: StopSound() (1 input parameters) +Function 507: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 484: PauseSound() (1 input parameters) +Function 508: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 485: ResumeSound() (1 input parameters) +Function 509: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 486: IsSoundPlaying() (1 input parameters) +Function 510: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 487: SetSoundVolume() (2 input parameters) +Function 511: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 488: SetSoundPitch() (2 input parameters) +Function 512: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 489: SetSoundPan() (2 input parameters) +Function 513: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 490: WaveCopy() (1 input parameters) +Function 514: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 491: WaveCrop() (3 input parameters) +Function 515: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 492: WaveFormat() (4 input parameters) +Function 516: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4086,203 +4264,203 @@ Function 492: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 493: LoadWaveSamples() (1 input parameters) +Function 517: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 494: UnloadWaveSamples() (1 input parameters) +Function 518: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 495: LoadMusicStream() (1 input parameters) +Function 519: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 496: LoadMusicStreamFromMemory() (3 input parameters) +Function 520: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 497: IsMusicReady() (1 input parameters) +Function 521: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 498: UnloadMusicStream() (1 input parameters) +Function 522: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 499: PlayMusicStream() (1 input parameters) +Function 523: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 500: IsMusicStreamPlaying() (1 input parameters) +Function 524: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 501: UpdateMusicStream() (1 input parameters) +Function 525: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 502: StopMusicStream() (1 input parameters) +Function 526: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 503: PauseMusicStream() (1 input parameters) +Function 527: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 504: ResumeMusicStream() (1 input parameters) +Function 528: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 505: SeekMusicStream() (2 input parameters) +Function 529: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 506: SetMusicVolume() (2 input parameters) +Function 530: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 507: SetMusicPitch() (2 input parameters) +Function 531: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 508: SetMusicPan() (2 input parameters) +Function 532: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 509: GetMusicTimeLength() (1 input parameters) +Function 533: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 510: GetMusicTimePlayed() (1 input parameters) +Function 534: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 511: LoadAudioStream() (3 input parameters) +Function 535: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 512: IsAudioStreamReady() (1 input parameters) +Function 536: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 513: UnloadAudioStream() (1 input parameters) +Function 537: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 514: UpdateAudioStream() (3 input parameters) +Function 538: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 515: IsAudioStreamProcessed() (1 input parameters) +Function 539: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 516: PlayAudioStream() (1 input parameters) +Function 540: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 517: PauseAudioStream() (1 input parameters) +Function 541: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 518: ResumeAudioStream() (1 input parameters) +Function 542: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 519: IsAudioStreamPlaying() (1 input parameters) +Function 543: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 520: StopAudioStream() (1 input parameters) +Function 544: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 521: SetAudioStreamVolume() (2 input parameters) +Function 545: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 522: SetAudioStreamPitch() (2 input parameters) +Function 546: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 523: SetAudioStreamPan() (2 input parameters) +Function 547: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 524: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 548: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 525: SetAudioStreamCallback() (2 input parameters) +Function 549: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 526: AttachAudioStreamProcessor() (2 input parameters) +Function 550: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as s Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 527: DetachAudioStreamProcessor() (2 input parameters) +Function 551: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 528: AttachAudioMixedProcessor() (1 input parameters) +Function 552: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s Param[1]: processor (type: AudioCallback) -Function 529: DetachAudioMixedProcessor() (1 input parameters) +Function 553: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index aa7605b8b..15cb77dce 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -2,10 +2,10 @@ - - + + - + @@ -58,7 +58,7 @@ - + @@ -283,6 +283,16 @@ + + + + + + + + + + @@ -660,16 +670,16 @@ - + - - + + @@ -785,13 +795,6 @@ - - - - - - - @@ -931,18 +934,33 @@ - - + + + + + + + + + + + + - - + + + + + + + @@ -950,6 +968,9 @@ + + + @@ -968,9 +989,6 @@ - - - @@ -1091,6 +1109,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -1106,13 +1147,13 @@ - - - + + + @@ -1246,55 +1287,28 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + - - - - - @@ -1335,6 +1349,11 @@ + + + + + @@ -1481,6 +1500,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1688,6 +1806,11 @@ + + + + + @@ -2632,6 +2755,8 @@ + + From fc4b0c9aec561abdb8c8310a151090f854c29491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emmanuel=20M=C3=A9ra?= <70095113+ManuMario0@users.noreply.github.com> Date: Sat, 25 Nov 2023 19:11:29 +0100 Subject: [PATCH 023/790] Corrected the path of android ndk toolchains for OSX platforms (#3574) --- src/Makefile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Makefile b/src/Makefile index 2ee0c5a06..3ccea903b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -114,7 +114,7 @@ HOST_PLATFORM_OS ?= WINDOWS PLATFORM_OS ?= WINDOWS # Determine PLATFORM_OS when required -ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB)) +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB PLATFORM_ANDROID)) # No uname.exe on MinGW!, but OS=Windows_NT on Windows! # ifeq ($(UNAME),Msys) -> Windows ifeq ($(OS),Windows_NT) @@ -189,8 +189,12 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) ANDROID_NDK ?= C:/android-ndk ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/windows-x86_64 else - ANDROID_NDK ?= /usr/lib/android/ndk - ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64 + ANDROID_NDK ?= /usr/lib/android/ndk + ifeq ($(PLATFORM_OS), OSX) + ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/darwin-x86_64 + else + ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64 + endif endif # NOTE: Sysroot can also be reference from $(ANDROID_NDK)/sysroot From c35c531551a6bf1d6b9cf41d8837231c4d942f8d Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:34:17 -0300 Subject: [PATCH 024/790] Fix SetWindowIcon() for SDL (#3578) --- src/platforms/rcore_desktop_sdl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 0d3b091fe..58b337ff7 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -499,9 +499,9 @@ void SetWindowIcon(Image image) bmask = 0x001F, amask = 0; depth = 16, pitch = image.width * 2; break; - case PIXELFORMAT_UNCOMPRESSED_R8G8B8: - rmask = 0xFF0000, gmask = 0x00FF00; - bmask = 0x0000FF, amask = 0; + case PIXELFORMAT_UNCOMPRESSED_R8G8B8: // Uses BGR for 24-bit + rmask = 0x0000FF, gmask = 0x00FF00; + bmask = 0xFF0000, amask = 0; depth = 24, pitch = image.width * 3; break; case PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: From 811abcb19faba710839a254ee3781a8d0ab23337 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:36:09 -0300 Subject: [PATCH 025/790] Fix rcamera.h so mouse/keyboard and gamepad can coexist for input (#3579) --- src/rcamera.h | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/rcamera.h b/src/rcamera.h index c999370f5..0232dd488 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -471,31 +471,30 @@ void UpdateCamera(Camera *camera, int mode) if (IsKeyDown(KEY_E)) CameraRoll(camera, CAMERA_ROTATION_SPEED); // Camera movement - if (!IsGamepadAvailable(0)) + // Camera pan (for CAMERA_FREE) + if ((mode == CAMERA_FREE) && (IsMouseButtonDown(MOUSE_BUTTON_MIDDLE))) { - // Camera pan (for CAMERA_FREE) - if ((mode == CAMERA_FREE) && (IsMouseButtonDown(MOUSE_BUTTON_MIDDLE))) - { - const Vector2 mouseDelta = GetMouseDelta(); - if (mouseDelta.x > 0.0f) CameraMoveRight(camera, CAMERA_PAN_SPEED, moveInWorldPlane); - if (mouseDelta.x < 0.0f) CameraMoveRight(camera, -CAMERA_PAN_SPEED, moveInWorldPlane); - if (mouseDelta.y > 0.0f) CameraMoveUp(camera, -CAMERA_PAN_SPEED); - if (mouseDelta.y < 0.0f) CameraMoveUp(camera, CAMERA_PAN_SPEED); - } - else - { - // Mouse support - CameraYaw(camera, -mousePositionDelta.x*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget); - CameraPitch(camera, -mousePositionDelta.y*CAMERA_MOUSE_MOVE_SENSITIVITY, lockView, rotateAroundTarget, rotateUp); - } - - // Keyboard support - if (IsKeyDown(KEY_W)) CameraMoveForward(camera, CAMERA_MOVE_SPEED, moveInWorldPlane); - if (IsKeyDown(KEY_A)) CameraMoveRight(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane); - if (IsKeyDown(KEY_S)) CameraMoveForward(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane); - if (IsKeyDown(KEY_D)) CameraMoveRight(camera, CAMERA_MOVE_SPEED, moveInWorldPlane); + const Vector2 mouseDelta = GetMouseDelta(); + if (mouseDelta.x > 0.0f) CameraMoveRight(camera, CAMERA_PAN_SPEED, moveInWorldPlane); + if (mouseDelta.x < 0.0f) CameraMoveRight(camera, -CAMERA_PAN_SPEED, moveInWorldPlane); + if (mouseDelta.y > 0.0f) CameraMoveUp(camera, -CAMERA_PAN_SPEED); + if (mouseDelta.y < 0.0f) CameraMoveUp(camera, CAMERA_PAN_SPEED); } else + { + // Mouse support + CameraYaw(camera, -mousePositionDelta.x*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget); + CameraPitch(camera, -mousePositionDelta.y*CAMERA_MOUSE_MOVE_SENSITIVITY, lockView, rotateAroundTarget, rotateUp); + } + + // Keyboard support + if (IsKeyDown(KEY_W)) CameraMoveForward(camera, CAMERA_MOVE_SPEED, moveInWorldPlane); + if (IsKeyDown(KEY_A)) CameraMoveRight(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane); + if (IsKeyDown(KEY_S)) CameraMoveForward(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane); + if (IsKeyDown(KEY_D)) CameraMoveRight(camera, CAMERA_MOVE_SPEED, moveInWorldPlane); + + // Gamepad movement + if (IsGamepadAvailable(0)) { // Gamepad controller support CameraYaw(camera, -(GetGamepadAxisMovement(0, GAMEPAD_AXIS_RIGHT_X) * 2)*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget); From 1906f1eddf5220f6324471ebf4929f229115d2bb Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:37:04 -0300 Subject: [PATCH 026/790] Fix SetMousePosition() for SDL (#3580) --- src/platforms/rcore_desktop_sdl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 58b337ff7..4a3195d8b 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -941,6 +941,8 @@ int SetGamepadMappings(const char *mappings) // Set mouse position XY void SetMousePosition(int x, int y) { + SDL_WarpMouseInWindow(platform.window, x, y); + CORE.Input.Mouse.currentPosition = (Vector2){ (float)x, (float)y }; CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; } From fe53ba80dd684c501eb1c6d297fbf842bb42e515 Mon Sep 17 00:00:00 2001 From: RadsammyT <32146976+RadsammyT@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:39:10 -0500 Subject: [PATCH 027/790] Fix typos in src/platforms/rcore_*.c (#3581) --- src/platforms/rcore_desktop.c | 4 ++-- src/platforms/rcore_desktop_sdl.c | 12 ++++++------ src/platforms/rcore_drm.c | 2 +- src/platforms/rcore_template.c | 6 +++--- src/platforms/rcore_web.c | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 05c390f97..0aca73134 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -129,7 +129,7 @@ static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, i static void CharCallback(GLFWwindow *window, unsigned int key); // GLFW3 Char Key Callback, runs on key pressed (get char value) static void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods); // GLFW3 Mouse Button Callback, runs on mouse button pressed static void MouseCursorPosCallback(GLFWwindow *window, double x, double y); // GLFW3 Cursor Position Callback, runs on mouse move -static void MouseScrollCallback(GLFWwindow *window, double xoffset, double yoffset); // GLFW3 Srolling Callback, runs on mouse wheel +static void MouseScrollCallback(GLFWwindow *window, double xoffset, double yoffset); // GLFW3 Scrolling Callback, runs on mouse wheel static void CursorEnterCallback(GLFWwindow *window, int enter); // GLFW3 Cursor Enter Callback, cursor enters client area static void JoystickCallback(int jid, int event); // GLFW3 Joystick Connected/Disconnected Callback @@ -1137,7 +1137,7 @@ void PollInputEvents(void) //for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.position[i] = (Vector2){ 0, 0 }; // Map touch position to mouse position for convenience - // WARNING: If the target desktop device supports touch screen, this behavious should be reviewed! + // WARNING: If the target desktop device supports touch screen, this behaviour should be reviewed! // TODO: GLFW does not support multi-touch input just yet // https://www.codeproject.com/Articles/668404/Programming-for-Multi-Touch // https://docs.microsoft.com/en-us/windows/win32/wintouch/getting-started-with-multi-touch-messages diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 4a3195d8b..a274f25dc 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -48,7 +48,7 @@ * **********************************************************************************************/ -#include "SDL.h" // SDL base library (window/rendered, input, timming... functionality) +#include "SDL.h" // SDL base library (window/rendered, input, timing... functionality) #if defined(GRAPHICS_API_OPENGL_ES2) // It seems it does not need to be included to work @@ -598,7 +598,7 @@ void SetWindowMonitor(int monitor) // NOTE: // 1. SDL started supporting moving exclusive fullscreen windows between displays on SDL3, // see commit https://github.com/libsdl-org/SDL/commit/3f5ef7dd422057edbcf3e736107e34be4b75d9ba - // 2. A workround for SDL2 is leaving fullscreen, moving the window, then entering full screen again. + // 2. A workaround for SDL2 is leaving fullscreen, moving the window, then entering full screen again. const bool wasFullscreen = ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) ? true : false; const int screenWidth = CORE.Window.screen.width; @@ -617,7 +617,7 @@ void SetWindowMonitor(int monitor) // ending up positioned partly outside the target display. // 2. The workaround for that is, previously to moving the window, // setting the window size to the target display size, so they match. - // 3. It was't done here because we can't assume changing the window size automatically + // 3. It wasn't done here because we can't assume changing the window size automatically // is acceptable behavior by the user. SDL_SetWindowPosition(platform.window, usableBounds.x, usableBounds.y); CORE.Window.position.x = usableBounds.x; @@ -1012,7 +1012,7 @@ void PollInputEvents(void) // Register previous mouse states for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) CORE.Input.Mouse.previousButtonState[i] = CORE.Input.Mouse.currentButtonState[i]; - // Poll input events for current plaform + // Poll input events for current platform //----------------------------------------------------------------------------- /* // WARNING: Indexes into this array are obtained by using SDL_Scancode values, not SDL_Keycode values @@ -1318,7 +1318,7 @@ int InitPlatform(void) // Init OpenGL context platform.glContext = SDL_GL_CreateContext(platform.window); - // Check window and glContext have been initialized succesfully + // Check window and glContext have been initialized successfully if ((platform.window != NULL) && (platform.glContext != NULL)) { CORE.Window.ready = true; @@ -1362,7 +1362,7 @@ int InitPlatform(void) SDL_EventState(SDL_DROPFILE, SDL_ENABLE); //---------------------------------------------------------------------------- - // Initialize timming system + // Initialize timing system //---------------------------------------------------------------------------- // NOTE: No need to call InitTimer(), let SDL manage it internally CORE.Time.previous = GetTime(); // Get time as double diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index bdfc9e0f5..461588995 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -602,7 +602,7 @@ void PollInputEvents(void) if (!platform.eventKeyboardMode) ProcessKeyboard(); // NOTE: Mouse input events polling is done asynchronously in another pthread - EventThread() - // NOTE: Gamepad (Joystick) input events polling is done asynchonously in another pthread - GamepadThread() + // NOTE: Gamepad (Joystick) input events polling is done asynchronously in another pthread - GamepadThread() #endif // Handle the mouse/touch/gestures events: diff --git a/src/platforms/rcore_template.c b/src/platforms/rcore_template.c index 5d4721c84..01e52af58 100644 --- a/src/platforms/rcore_template.c +++ b/src/platforms/rcore_template.c @@ -420,7 +420,7 @@ void PollInputEvents(void) CORE.Input.Keyboard.keyRepeatInFrame[i] = 0; } - // TODO: Poll input events for current plaform + // TODO: Poll input events for current platform } @@ -561,13 +561,13 @@ int InitPlatform(void) // TODO: Initialize input events system // It could imply keyboard, mouse, gamepad, touch... - // Depending on the platform libraries/SDK it could use a callbacks mechanims + // Depending on the platform libraries/SDK it could use a callback mechanism // For system events and inputs evens polling on a per-frame basis, use PollInputEvents() //---------------------------------------------------------------------------- // ... //---------------------------------------------------------------------------- - // TODO: Initialize timming system + // TODO: Initialize timing system //---------------------------------------------------------------------------- InitTimer(); //---------------------------------------------------------------------------- diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index d8fa54305..4353f795c 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -664,7 +664,7 @@ void PollInputEvents(void) // TODO: This code does not seem to do anything?? //if (CORE.Window.eventWaiting) glfwWaitEvents(); // Wait for in input events before continue (drawing is paused) - //else glfwPollEvents(); // Poll input events: keyboard/mouse/window events (callbacks) --> WARNING: Where is key input reseted? + //else glfwPollEvents(); // Poll input events: keyboard/mouse/window events (callbacks) --> WARNING: Where is key input reset? } //---------------------------------------------------------------------------------- @@ -937,7 +937,7 @@ int InitPlatform(void) emscripten_set_gamepaddisconnected_callback(NULL, 1, EmscriptenGamepadCallback); //---------------------------------------------------------------------------- - // Initialize timming system + // Initialize timing system //---------------------------------------------------------------------------- InitTimer(); //---------------------------------------------------------------------------- From e7a486fa81adac1833253c849ca73c5b3f7ef361 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Tue, 28 Nov 2023 19:43:45 +0000 Subject: [PATCH 028/790] Hide unneeded internal symbols when building raylib as an so or dylib (#3573) --- CMakeLists.txt | 7 ++++++- cmake/GlfwImport.cmake | 10 +++++----- src/CMakeLists.txt | 15 +++++++++------ src/Makefile | 6 ++++++ src/raylib.h | 13 +++++++++---- src/raymath.h | 4 +++- src/rlgl.h | 16 +++++++++------- 7 files changed, 47 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 236aa9a64..9619768c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0) project(raylib) # Avoid excessive expansion of variables in conditionals. In particular, if -# "PLATFORM" is "DRM" than: +# "PLATFORM" is "DRM" then: # # if (${PLATFORM} MATCHES "DRM") # @@ -13,6 +13,11 @@ project(raylib) # See https://cmake.org/cmake/help/latest/policy/CMP0054.html cmake_policy(SET CMP0054 NEW) +# Makes a hidden visibility preset on a static lib respected +# This is used to hide glfw's symbols from the library exports when building an so/dylib +# See https://cmake.org/cmake/help/latest/policy/CMP0063.html +cmake_policy(SET CMP0063 NEW) + # Directory for easier includes # Anywhere you see include(...) you can check /cmake for that file set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index d0c23ca52..bd7d56811 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -17,16 +17,16 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE) + set(GLFW_LIBRARY_TYPE "STATIC" CACHE STRING "" FORCE) - set(WAS_SHARED ${BUILD_SHARED_LIBS}) - set(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE) add_subdirectory(external/glfw) - set(BUILD_SHARED_LIBS ${WAS_SHARED} CACHE BOOL " " FORCE) - unset(WAS_SHARED) + # Hide glfw's symbols when building a shared lib + if (BUILD_SHARED_LIBS) + set_property(TARGET glfw PROPERTY C_VISIBILITY_PRESET hidden) + endif() - list(APPEND raylib_sources $) include_directories(BEFORE SYSTEM external/glfw/include) elseif("${PLATFORM}" STREQUAL "DRM") MESSAGE(STATUS "No GLFW required on PLATFORM_DRM") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5092bdf47..4335bda5c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,12 +62,10 @@ if (NOT BUILD_SHARED_LIBS) add_library(raylib_static ALIAS raylib) else() MESSAGE(STATUS "Building raylib shared library") - if (WIN32) - target_compile_definitions(raylib - PRIVATE $ - INTERFACE $ - ) - endif () + target_compile_definitions(raylib + PRIVATE $ + INTERFACE $ + ) endif() if (${PLATFORM} MATCHES "Web") @@ -84,6 +82,11 @@ if (WITH_PIC OR BUILD_SHARED_LIBS) set_property(TARGET raylib PROPERTY POSITION_INDEPENDENT_CODE ON) endif () +if (BUILD_SHARED_LIBS) + # Hide raylib's symbols by default so RLAPI can expose them + set_property(TARGET raylib PROPERTY C_VISIBILITY_PRESET hidden) +endif () + target_link_libraries(raylib "${LIBS_PRIVATE}") # Sets some compile time definitions for the pre-processor diff --git a/src/Makefile b/src/Makefile index 3ccea903b..772e5809f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -389,7 +389,13 @@ ifeq ($(RAYLIB_LIBTYPE),SHARED) # BE CAREFUL: It seems that for gcc -fpic is not the same as -fPIC # MinGW32 just doesn't need -fPIC, it shows warnings CFLAGS += -fPIC -DBUILD_LIBTYPE_SHARED + + # hide all symbols by default, so RLAPI can expose them + ifeq ($(PLATFORM_OS),$(filter $(PLATFORM_OS), LINUX BSD OSX)) + CFLAGS += -fvisibility=hidden + endif endif + ifeq ($(PLATFORM),PLATFORM_DRM) # without EGL_NO_X11 eglplatform.h tears Xlib.h in which tears X.h in # which contains a conflicting type Font diff --git a/src/raylib.h b/src/raylib.h index 28f052c7f..2bbbef00a 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -86,17 +86,22 @@ #define RAYLIB_VERSION_PATCH 0 #define RAYLIB_VERSION "5.1-dev" -// Function specifiers in case library is build/used as a shared library (Windows) +// Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden #if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif #if defined(BUILD_LIBTYPE_SHARED) - #if defined(__TINYC__) - #define __declspec(x) __attribute__((x)) - #endif #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) #elif defined(USE_LIBTYPE_SHARED) #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) + #endif #endif #ifndef RLAPI diff --git a/src/raymath.h b/src/raymath.h index ff6017039..069c9464e 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -59,7 +59,9 @@ // Function specifiers definition #if defined(RAYMATH_IMPLEMENTATION) #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll). + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) #else diff --git a/src/rlgl.h b/src/rlgl.h index 27cfaa0d0..67429d060 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -109,16 +109,18 @@ #define RLGL_VERSION "4.5" -// Function specifiers in case library is build/used as a shared library (Windows) +// Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -#if defined(_WIN32) - #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) - #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) - #endif +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building he library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif + // Function specifiers definition #ifndef RLAPI #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) From bd81bdc24a2e896d641706fd23bb379d19cb2426 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 30 Nov 2023 06:09:57 -0300 Subject: [PATCH 029/790] Fix IsKeyPressedRepeat() for PLATFORM_DRM direct input (#3583) --- src/platforms/rcore_drm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index 461588995..a63790a63 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -1709,6 +1709,7 @@ static void PollKeyboardEvents(void) // Event interface: 'value' is the value the event carries. Either a relative change for EV_REL, // absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat CORE.Input.Keyboard.currentKeyState[keycode] = (event.value >= 1)? 1 : 0; + CORE.Input.Keyboard.keyRepeatInFrame[keycode] = (event.value == 2)? 1 : 0; if (event.value >= 1) { CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = keycode; // Register last key pressed From e84099bfd42669250a5df4b29f8ffebbd21fbc82 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 30 Nov 2023 06:11:45 -0300 Subject: [PATCH 030/790] Fix CheckCollisionCircleRec() (#3584) --- src/rshapes.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index bababf8cf..4b3f2cfd0 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -1549,7 +1549,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) Vector2 delta = { 0 }; float length = 0.0f; float scale = 0.0f; - + for (int i = 0; i < pointCount - 1; i++) { delta = (Vector2){ points[i + 1].x - points[i].x, points[i + 1].y - points[i].y }; @@ -1568,7 +1568,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) DrawTriangleStrip(strip, 4, color); } #if defined(SUPPORT_SPLINE_SEGMENT_CAPS) - + #endif } @@ -1718,7 +1718,7 @@ void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color co void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 3) return; - + for (int i = 0; i < pointCount - 2; i++) { DrawSplineSegmentBezierQuadratic(points[i], points[i + 1], points[i + 2], thick, color); @@ -1729,7 +1729,7 @@ void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Col void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 4) return; - + for (int i = 0; i < pointCount - 3; i++) { DrawSplineSegmentBezierCubic(points[i], points[i + 1], points[i + 2], points[i + 3], thick, color); @@ -1740,7 +1740,7 @@ void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color c void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color) { // NOTE: For the linear spline we don't use subdivisions, just a single quad - + Vector2 delta = { p2.x - p1.x, p2.y - p1.y }; float length = sqrtf(delta.x*delta.x + delta.y*delta.y); @@ -1768,9 +1768,9 @@ void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, floa Vector2 currentPoint = { 0 }; Vector2 nextPoint = { 0 }; float t = 0.0f; - + Vector2 points[2*SPLINE_SEGMENT_DIVISIONS + 2] = { 0 }; - + float a[4] = { 0 }; float b[4] = { 0 }; @@ -1825,7 +1825,7 @@ void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, Vector2 currentPoint = p1; Vector2 nextPoint = { 0 }; float t = 0.0f; - + Vector2 points[2*SPLINE_SEGMENT_DIVISIONS + 2] = { 0 }; for (int i = 0; i <= SPLINE_SEGMENT_DIVISIONS; i++) @@ -2132,11 +2132,11 @@ bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec) { bool collision = false; - int recCenterX = (int)(rec.x + rec.width/2.0f); - int recCenterY = (int)(rec.y + rec.height/2.0f); + float recCenterX = rec.x + rec.width/2.0f; + float recCenterY = rec.y + rec.height/2.0f; - float dx = fabsf(center.x - (float)recCenterX); - float dy = fabsf(center.y - (float)recCenterY); + float dx = fabsf(center.x - recCenterX); + float dy = fabsf(center.y - recCenterY); if (dx > (rec.width/2.0f + radius)) { return false; } if (dy > (rec.height/2.0f + radius)) { return false; } From 6b136fac679a2dad30cce1abda9613b499ee4d5c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 30 Nov 2023 13:01:19 +0100 Subject: [PATCH 031/790] ADDED: `ExportMeshAsCode()` --- src/raylib.h | 3 +- src/rmodels.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 2bbbef00a..fd870c188 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1536,9 +1536,10 @@ RLAPI void UpdateMeshBuffer(Mesh mesh, int index, const void *data, int dataSize RLAPI void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU RLAPI void DrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform RLAPI void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms -RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes // Mesh generation functions RLAPI Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh diff --git a/src/rmodels.c b/src/rmodels.c index c191f0ac7..84c7d9cbe 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1850,6 +1850,104 @@ bool ExportMesh(Mesh mesh, const char *fileName) return success; } +// Export mesh as code file (.h) defining multiple arrays of vertex attributes +bool ExportMeshAsCode(Mesh mesh, const char *fileName) +{ + bool success = false; + +#ifndef TEXT_BYTES_PER_LINE + #define TEXT_BYTES_PER_LINE 20 +#endif + + // NOTE: Text data buffer size is fixed to 64MB + char *txtData = (char *)RL_CALLOC(64*1024*1024, sizeof(char)); // 64 MB + + int byteCount = 0; + byteCount += sprintf(txtData + byteCount, "////////////////////////////////////////////////////////////////////////////////////////\n"); + byteCount += sprintf(txtData + byteCount, "// //\n"); + byteCount += sprintf(txtData + byteCount, "// MeshAsCode exporter v1.0 - Mesh vertex data exported as arrays //\n"); + byteCount += sprintf(txtData + byteCount, "// //\n"); + byteCount += sprintf(txtData + byteCount, "// more info and bugs-report: github.com/raysan5/raylib //\n"); + byteCount += sprintf(txtData + byteCount, "// feedback and support: ray[at]raylib.com //\n"); + byteCount += sprintf(txtData + byteCount, "// //\n"); + byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "// //\n"); + byteCount += sprintf(txtData + byteCount, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); + + // Get file name from path and convert variable name to uppercase + char varFileName[256] = { 0 }; + strcpy(varFileName, GetFileNameWithoutExt(fileName)); + for (int i = 0; varFileName[i] != '\0'; i++) if ((varFileName[i] >= 'a') && (varFileName[i] <= 'z')) { varFileName[i] = varFileName[i] - 32; } + + // Add image information + byteCount += sprintf(txtData + byteCount, "// Mesh basic information\n"); + byteCount += sprintf(txtData + byteCount, "#define %s_VERTEX_COUNT %i\n", varFileName, mesh.vertexCount); + byteCount += sprintf(txtData + byteCount, "#define %s_TRIANGLE_COUNT %i\n\n", varFileName, mesh.triangleCount); + + // Define vertex attributes data as separate arrays + //----------------------------------------------------------------------------------------- + if (mesh.vertices != NULL) // Vertex position (XYZ - 3 components per vertex - float) + { + byteCount += sprintf(txtData + byteCount, "static float %s_VERTEX_DATA[%i] = { ", varFileName, mesh.vertexCount*3); + for (int i = 0; i < mesh.vertexCount*3 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.vertices[i]); + byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.vertices[mesh.vertexCount*3 - 1]); + } + + if (mesh.texcoords != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) + { + byteCount += sprintf(txtData + byteCount, "static float %s_TEXCOORD_DATA[%i] = { ", varFileName, mesh.vertexCount*2); + for (int i = 0; i < mesh.vertexCount*2 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.texcoords[i]); + byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.texcoords[mesh.vertexCount*2 - 1]); + } + + if (mesh.texcoords2 != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) + { + byteCount += sprintf(txtData + byteCount, "static float %s_TEXCOORD2_DATA[%i] = { ", varFileName, mesh.vertexCount*2); + for (int i = 0; i < mesh.vertexCount*2 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.texcoords2[i]); + byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.texcoords2[mesh.vertexCount*2 - 1]); + } + + if (mesh.normals != NULL) // Vertex normals (XYZ - 3 components per vertex - float) + { + byteCount += sprintf(txtData + byteCount, "static float %s_NORMAL_DATA[%i] = { ", varFileName, mesh.vertexCount*3); + for (int i = 0; i < mesh.vertexCount*3 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.normals[i]); + byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.normals[mesh.vertexCount*3 - 1]); + } + + if (mesh.tangents != NULL) // Vertex tangents (XYZW - 4 components per vertex - float) + { + byteCount += sprintf(txtData + byteCount, "static float %s_TANGENT_DATA[%i] = { ", varFileName, mesh.vertexCount*4); + for (int i = 0; i < mesh.vertexCount*4 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.tangents[i]); + byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.tangents[mesh.vertexCount*4 - 1]); + } + + if (mesh.colors != NULL) // Vertex colors (RGBA - 4 components per vertex - unsigned char) + { + byteCount += sprintf(txtData + byteCount, "static unsigned char %s_COLOR_DATA[%i] = { ", varFileName, mesh.vertexCount*4); + for (int i = 0; i < mesh.vertexCount*4 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), mesh.colors[i]); + byteCount += sprintf(txtData + byteCount, "0x%x };\n\n", mesh.colors[mesh.vertexCount*4 - 1]); + } + + if (mesh.indices != NULL) // Vertex indices (3 index per triangle - unsigned short) + { + byteCount += sprintf(txtData + byteCount, "static unsigned short %s_INDEX_DATA[%i] = { ", varFileName, mesh.triangleCount*3); + for (int i = 0; i < mesh.triangleCount*3 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%i,\n" : "%i, "), mesh.indices[i]); + byteCount += sprintf(txtData + byteCount, "%i };\n", mesh.indices[mesh.triangleCount*3 - 1]); + } + //----------------------------------------------------------------------------------------- + + // NOTE: Text data size exported is determined by '\0' (NULL) character + success = SaveFileText(fileName, txtData); + + RL_FREE(txtData); + + //if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image as code exported successfully", fileName); + //else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image as code", fileName); + + return success; +} + + #if defined(SUPPORT_FILEFORMAT_OBJ) || defined(SUPPORT_FILEFORMAT_MTL) // Process obj materials static void ProcessMaterialsOBJ(Material *materials, tinyobj_material_t *mats, int materialCount) From e9ddb15d9d05ac61739c52a604a7a5adb7efa4e9 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 30 Nov 2023 19:04:38 +0100 Subject: [PATCH 032/790] REVIEWED: rlgl function description and comments --- src/rlgl.h | 108 +++++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 67429d060..2468f30bd 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -557,14 +557,14 @@ typedef enum { extern "C" { // Prevents name mangling of functions #endif -RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed -RLAPI void rlPushMatrix(void); // Push the current matrix to stack -RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack -RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix -RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix -RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix -RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix -RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area @@ -572,15 +572,15 @@ RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport //------------------------------------------------------------------------------------ // Functions Declaration - Vertex level operations //------------------------------------------------------------------------------------ -RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) -RLAPI void rlEnd(void); // Finish vertex providing -RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int -RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float -RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float -RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float -RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float -RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte -RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float //------------------------------------------------------------------------------------ @@ -594,13 +594,13 @@ RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array ( RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) -RLAPI void rlEnableVertexBufferElement(unsigned int id);// Enable vertex buffer element (VBO element) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index -RLAPI void rlDisableVertexAttribute(unsigned int index);// Disable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index #if defined(GRAPHICS_API_OPENGL_11) -RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer -RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer #endif // Textures state @@ -623,7 +623,7 @@ RLAPI void rlActiveDrawBuffers(int count); // Activate multiple dra RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer // General render state -RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlEnableColorBlend(void); // Enable color blending RLAPI void rlDisableColorBlend(void); // Disable color blending RLAPI void rlEnableDepthTest(void); // Enable depth test RLAPI void rlDisableDepthTest(void); // Disable depth test @@ -636,7 +636,7 @@ RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlEnablePointMode(void); // Enable point mode RLAPI void rlDisableWireMode(void); // Disable wire mode ( and point ) maybe rename RLAPI void rlSetLineWidth(float width); // Set the line drawing width RLAPI float rlGetLineWidth(void); // Get the line drawing width @@ -673,48 +673,48 @@ RLAPI int *rlGetShaderLocsDefault(void); // Get default shader lo // Render batch management // NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode // but this render batch API is exposed in case of custom batches are required -RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system -RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system -RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) -RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) -RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch -RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits //------------------------------------------------------------------------------------------------------------------------ // Vertex buffers management -RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported -RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer attribute -RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load a new attributes element buffer -RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update GPU buffer with new data -RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements with new data -RLAPI void rlUnloadVertexArray(unsigned int vaoId); -RLAPI void rlUnloadVertexBuffer(unsigned int vboId); -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer); -RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); -RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value -RLAPI void rlDrawVertexArray(int offset, int count); -RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); -RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); -RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing // Textures management -RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture in GPU -RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) -RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format); // Load texture cubemap -RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update GPU texture with new data -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture -RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) // Framebuffer management (fbo) RLAPI unsigned int rlLoadFramebuffer(int width, int height); // Load an empty framebuffer -RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU @@ -725,14 +725,14 @@ RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fSha RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) // Compute shader management RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program -RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) // Shader buffer storage object management (ssbo) RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) @@ -3794,6 +3794,10 @@ unsigned int rlLoadVertexArray(void) void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); #endif } From ef5069862d737919d98718095b0696c3bc74bac8 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Thu, 30 Nov 2023 19:07:50 +0000 Subject: [PATCH 033/790] Fix mistake in pr #3572 (#3587) --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index 2468f30bd..21aea6a05 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -776,7 +776,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #if defined(RLGL_IMPLEMENTATION) // Expose OpenGL functions from glad in raylib -#if defined(BUILD_SHARED_LIBS) +#if defined(BUILD_LIBTYPE_SHARED) #define GLAD_API_CALL_EXPORT_BUILD #endif From 55e7d1aad13a1329d257ac948509a3a0ed2c20a9 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Thu, 30 Nov 2023 21:43:02 +0000 Subject: [PATCH 034/790] Expose OpenGL take 2 (#3588) For some reason, there are actually two macros needed to control this. Yes, I tried with only one, both are needed --- src/rlgl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rlgl.h b/src/rlgl.h index 21aea6a05..4b3184986 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -777,6 +777,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad // Expose OpenGL functions from glad in raylib #if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT #define GLAD_API_CALL_EXPORT_BUILD #endif From 0748dc2d1e8a73311ff47f815708e939f8953b20 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Fri, 1 Dec 2023 10:55:48 -0300 Subject: [PATCH 035/790] Remove a duplicated loop for PLATFORM_DRM (#3590) --- src/platforms/rcore_drm.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index a63790a63..f51953a63 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -546,9 +546,6 @@ void PollInputEvents(void) CORE.Input.Keyboard.keyPressedQueueCount = 0; CORE.Input.Keyboard.charPressedQueueCount = 0; - // Reset key repeats - for (int i = 0; i < MAX_KEYBOARD_KEYS; i++) CORE.Input.Keyboard.keyRepeatInFrame[i] = 0; - // Reset last gamepad button/axis registered state CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN //CORE.Input.Gamepad.axisCount = 0; From dfb0ca43c5b2602dc70cfa4e893e9e82c9bb3fe6 Mon Sep 17 00:00:00 2001 From: WIITD <52134513+WIITD@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:51:47 +0100 Subject: [PATCH 036/790] Update raylib-freebasic binding (#3591) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 0e71d16e2..4cd22013d 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -24,7 +24,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib | | rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex | | raylib-factor | **4.5** | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | -| raylib-freebasic | **4.5** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic | +| raylib-freebasic | **5.0** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic | | fortran-raylib | **4.5** | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib | | raylib for Pascal | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib | | raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | From 8ae804ff9a677c068486303510d1ebc4e8cd3a14 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Sun, 3 Dec 2023 18:53:11 +0000 Subject: [PATCH 037/790] Fix cmake-built libraylib.a to properly include GLFW's object files (#3598) I broke this in PR #3573 by accidentally removing too much The examples still compiled fine so I didn't notice - my guess is that cmake was still adding a separate link to glfw manually. --- cmake/GlfwImport.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index bd7d56811..77c88e6c3 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -17,7 +17,7 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE) - set(GLFW_LIBRARY_TYPE "STATIC" CACHE STRING "" FORCE) + set(GLFW_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE) add_subdirectory(external/glfw) @@ -27,6 +27,7 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT set_property(TARGET glfw PROPERTY C_VISIBILITY_PRESET hidden) endif() + list(APPEND raylib_sources $) include_directories(BEFORE SYSTEM external/glfw/include) elseif("${PLATFORM}" STREQUAL "DRM") MESSAGE(STATUS "No GLFW required on PLATFORM_DRM") From f1b0d15813098228369dd647ffc04a7dbd92c02a Mon Sep 17 00:00:00 2001 From: Marco Maia Date: Sun, 3 Dec 2023 15:53:52 -0300 Subject: [PATCH 038/790] Fix warning while using external GLFW older than version 3.4.0 (#3599) Co-authored-by: Marco Maia --- src/platforms/rcore_desktop.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 0aca73134..e31032911 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -88,11 +88,6 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -// TODO: HACK: Added flag if not provided by GLFW when using external library -// Latest GLFW release (GLFW 3.3.8) does not implement this flag, it was added for 3.4.0-dev -#if !defined(GLFW_MOUSE_PASSTHROUGH) - #define GLFW_MOUSE_PASSTHROUGH 0x0002000D -#endif //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -396,11 +391,13 @@ void SetWindowState(unsigned int flags) } // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH +#if defined (GLFW_MOUSE_PASSTHROUGH) if (((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) != (flags & FLAG_WINDOW_MOUSE_PASSTHROUGH)) && ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0)) { glfwSetWindowAttrib(platform.handle, GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE); CORE.Window.flags |= FLAG_WINDOW_MOUSE_PASSTHROUGH; } +#endif // State change: FLAG_MSAA_4X_HINT if (((CORE.Window.flags & FLAG_MSAA_4X_HINT) != (flags & FLAG_MSAA_4X_HINT)) && ((flags & FLAG_MSAA_4X_HINT) > 0)) @@ -509,11 +506,13 @@ void ClearWindowState(unsigned int flags) } // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH +#if defined (GLFW_MOUSE_PASSTHROUGH) if (((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) && ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0)) { glfwSetWindowAttrib(platform.handle, GLFW_MOUSE_PASSTHROUGH, GLFW_FALSE); CORE.Window.flags &= ~FLAG_WINDOW_MOUSE_PASSTHROUGH; } +#endif // State change: FLAG_MSAA_4X_HINT if (((CORE.Window.flags & FLAG_MSAA_4X_HINT) > 0) && ((flags & FLAG_MSAA_4X_HINT) > 0)) @@ -1316,8 +1315,10 @@ int InitPlatform(void) else glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_FALSE); // Mouse passthrough +#if defined (GLFW_MOUSE_PASSTHROUGH) if ((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE); else glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_FALSE); +#endif if (CORE.Window.flags & FLAG_MSAA_4X_HINT) { From 4ae2af0bccc2792e0f380152b8638bfa384595c6 Mon Sep 17 00:00:00 2001 From: mr sihc <85245131+mr-sihc@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:55:16 +0100 Subject: [PATCH 039/790] Fix Windows Hardcoding (#3600) Compiles on Linux & co. now --- src/platforms/rcore_desktop_sdl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index a274f25dc..7c27c611a 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -48,13 +48,13 @@ * **********************************************************************************************/ -#include "SDL.h" // SDL base library (window/rendered, input, timing... functionality) +#include "SDL2/SDL.h" // SDL base library (window/rendered, input, timing... functionality) #if defined(GRAPHICS_API_OPENGL_ES2) // It seems it does not need to be included to work //#include "SDL_opengles2.h" #else - #include "SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) + #include "SDL2/SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) #endif //---------------------------------------------------------------------------------- From 5aa84a34ea9e39528e830baea230f8efd9dc8883 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:06:34 +0100 Subject: [PATCH 040/790] Revert "Fix warning while using external GLFW older than version 3.4.0 (#3599)" This reverts commit f1b0d15813098228369dd647ffc04a7dbd92c02a. --- src/platforms/rcore_desktop.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index e31032911..0aca73134 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -88,6 +88,11 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- +// TODO: HACK: Added flag if not provided by GLFW when using external library +// Latest GLFW release (GLFW 3.3.8) does not implement this flag, it was added for 3.4.0-dev +#if !defined(GLFW_MOUSE_PASSTHROUGH) + #define GLFW_MOUSE_PASSTHROUGH 0x0002000D +#endif //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -391,13 +396,11 @@ void SetWindowState(unsigned int flags) } // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH -#if defined (GLFW_MOUSE_PASSTHROUGH) if (((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) != (flags & FLAG_WINDOW_MOUSE_PASSTHROUGH)) && ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0)) { glfwSetWindowAttrib(platform.handle, GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE); CORE.Window.flags |= FLAG_WINDOW_MOUSE_PASSTHROUGH; } -#endif // State change: FLAG_MSAA_4X_HINT if (((CORE.Window.flags & FLAG_MSAA_4X_HINT) != (flags & FLAG_MSAA_4X_HINT)) && ((flags & FLAG_MSAA_4X_HINT) > 0)) @@ -506,13 +509,11 @@ void ClearWindowState(unsigned int flags) } // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH -#if defined (GLFW_MOUSE_PASSTHROUGH) if (((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) && ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0)) { glfwSetWindowAttrib(platform.handle, GLFW_MOUSE_PASSTHROUGH, GLFW_FALSE); CORE.Window.flags &= ~FLAG_WINDOW_MOUSE_PASSTHROUGH; } -#endif // State change: FLAG_MSAA_4X_HINT if (((CORE.Window.flags & FLAG_MSAA_4X_HINT) > 0) && ((flags & FLAG_MSAA_4X_HINT) > 0)) @@ -1315,10 +1316,8 @@ int InitPlatform(void) else glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_FALSE); // Mouse passthrough -#if defined (GLFW_MOUSE_PASSTHROUGH) if ((CORE.Window.flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE); else glfwWindowHint(GLFW_MOUSE_PASSTHROUGH, GLFW_FALSE); -#endif if (CORE.Window.flags & FLAG_MSAA_4X_HINT) { From d0a783e362a7756f79af4d19bc0d4df78397e6fd Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:08:48 +0100 Subject: [PATCH 041/790] Revert "Fix Windows Hardcoding (#3600)" This reverts commit 4ae2af0bccc2792e0f380152b8638bfa384595c6. --- src/platforms/rcore_desktop_sdl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 7c27c611a..a274f25dc 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -48,13 +48,13 @@ * **********************************************************************************************/ -#include "SDL2/SDL.h" // SDL base library (window/rendered, input, timing... functionality) +#include "SDL.h" // SDL base library (window/rendered, input, timing... functionality) #if defined(GRAPHICS_API_OPENGL_ES2) // It seems it does not need to be included to work //#include "SDL_opengles2.h" #else - #include "SDL2/SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) + #include "SDL_opengl.h" // SDL OpenGL functionality (if required, instead of internal renderer) #endif //---------------------------------------------------------------------------------- From 8a586249d776d41e4e4180022780a30d00105ff6 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:16:19 +0100 Subject: [PATCH 042/790] Fix Wrong Makefile flag #3593 --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 772e5809f..ca978f777 100644 --- a/src/Makefile +++ b/src/Makefile @@ -380,7 +380,7 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) # -Werror=format-security CFLAGS += -Wa,--noexecstack -Wformat -no-canonical-prefixes # Preprocessor macro definitions - CFLAGS += -D__ANDROID__ -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION) -DMAL_NO_OSS + CFLAGS += -D__ANDROID__ -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION) endif # Define required compilation flags for raylib SHARED lib From 26d61875ee95c27da6e02b5a013b3ef17ad87fcd Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:16:23 +0100 Subject: [PATCH 043/790] Create raylib.icns --- logo/raylib.icns | Bin 0 -> 12242 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logo/raylib.icns diff --git a/logo/raylib.icns b/logo/raylib.icns new file mode 100644 index 0000000000000000000000000000000000000000..5adad08cb88e692d188c7ef638473f5c98c51837 GIT binary patch literal 12242 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 HeT4i!*pH{L literal 0 HcmV?d00001 From 84ae189953bffaf1cc24168e647fb100bf26a74d Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:16:26 +0100 Subject: [PATCH 044/790] Create raylib_1024x1024.png --- logo/raylib_1024x1024.png | Bin 0 -> 4536 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logo/raylib_1024x1024.png diff --git a/logo/raylib_1024x1024.png b/logo/raylib_1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..b855a6bf64bc19ab0b04c2ce9d22e601bf17c5d6 GIT binary patch literal 4536 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&w@K)Q9>#R~Q%s>pfi@Ln>~)x#{S4*g(Yf zqFCj#?f<9Nolj(JSaqfM(T_QmuAh9gV}E`GY8k?yp>p2p{RbotYcequ%)0mc()s^S zIT#rd#8Vl2mX(3DoyPF(94jkfc zQULjZgm4mIP$Nx)15kMb5TnKnL26zDnU6ge;dDWYT3XR-n%8MdKmr}Fq39-15i00 zlR=?v5NXW#M!8ckE+n*U-^X+B|J)Vbzh8Ub`@HD4-*#`j{r}0;9U!OSb{^I!YXEA& z6PYvC%w(u=4V63?w%_Z~g~Y@6dGG%%-ANmJ64t4>F+A9G2k0OIuEHqE9DsW8M5NC( zABFAd#U{cG8x{d0#Nq(Rcd literal 0 HcmV?d00001 From a016b4ded23f653da45679f36fcb5ffca6a5f6a0 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Dec 2023 20:17:16 +0100 Subject: [PATCH 045/790] REVIEWED: `LoadFontData()`, load image only if glyph has been found in font --- src/rtext.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index dd7c83f39..802b02b90 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -604,7 +604,6 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz // Fill fontChars in case not provided externally // NOTE: By default we fill glyphCount consecutively, starting at 32 (Space) - if (codepoints == NULL) { codepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); @@ -612,7 +611,7 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz genFontChars = true; } - chars = (GlyphInfo *)RL_MALLOC(codepointCount*sizeof(GlyphInfo)); + chars = (GlyphInfo *)RL_CALLOC(codepointCount, sizeof(GlyphInfo)); // NOTE: Using simple packaging, one char after another for (int i = 0; i < codepointCount; i++) @@ -630,16 +629,19 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz else if (ch != 32) chars[i].image.data = stbtt_GetCodepointSDF(&fontInfo, scaleFactor, ch, FONT_SDF_CHAR_PADDING, FONT_SDF_ON_EDGE_VALUE, FONT_SDF_PIXEL_DIST_SCALE, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); else chars[i].image.data = NULL; - stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); - chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + if (chars[i].image.data != NULL) // Glyph data has been found in the font + { + stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); + chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); - // Load characters images - chars[i].image.width = chw; - chars[i].image.height = chh; - chars[i].image.mipmaps = 1; - chars[i].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + // Load characters images + chars[i].image.width = chw; + chars[i].image.height = chh; + chars[i].image.mipmaps = 1; + chars[i].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; - chars[i].offsetY += (int)((float)ascent*scaleFactor); + chars[i].offsetY += (int)((float)ascent*scaleFactor); + } // NOTE: We create an empty image for space character, it could be further required for atlas packing if (ch == 32) From 731b210f51cb273161bb7a8ba9cced11e0c4b9d2 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 4 Dec 2023 17:32:55 +0100 Subject: [PATCH 046/790] REVIEWED: WARNING: `LoadFontData()` avoid fallback glyphs This is a redesign on font loading, missing glyphs are skipped instead of falling back to font `.notdef` special character (usually "tofu" character). It is changed because not all fonts support a fallback glyph. One improvement could be allowing users to define a custom fallback character, for example `?` glyph. --- src/rtext.c | 102 ++++++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 802b02b90..1ab45277a 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -625,57 +625,67 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz // stbtt_GetCodepointBitmapBox() -- how big the bitmap must be // stbtt_MakeCodepointBitmap() -- renders into bitmap you provide - if (type != FONT_SDF) chars[i].image.data = stbtt_GetCodepointBitmap(&fontInfo, scaleFactor, scaleFactor, ch, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); - else if (ch != 32) chars[i].image.data = stbtt_GetCodepointSDF(&fontInfo, scaleFactor, ch, FONT_SDF_CHAR_PADDING, FONT_SDF_ON_EDGE_VALUE, FONT_SDF_PIXEL_DIST_SCALE, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); - else chars[i].image.data = NULL; + // Check if a glyph is available in the font + // WARNING: if (index == 0), glyph not found, it could fallback to default .notdef glyph (if defined in font) + int index = stbtt_FindGlyphIndex(&fontInfo, ch); - if (chars[i].image.data != NULL) // Glyph data has been found in the font + if (index > 0) { - stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); - chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); - - // Load characters images - chars[i].image.width = chw; - chars[i].image.height = chh; - chars[i].image.mipmaps = 1; - chars[i].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; - - chars[i].offsetY += (int)((float)ascent*scaleFactor); - } - - // NOTE: We create an empty image for space character, it could be further required for atlas packing - if (ch == 32) - { - Image imSpace = { - .data = RL_CALLOC(chars[i].advanceX*fontSize, 2), - .width = chars[i].advanceX, - .height = fontSize, - .mipmaps = 1, - .format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE - }; - - chars[i].image = imSpace; - } - - if (type == FONT_BITMAP) - { - // Aliased bitmap (black & white) font generation, avoiding anti-aliasing - // NOTE: For optimum results, bitmap font should be generated at base pixel size - for (int p = 0; p < chw*chh; p++) + switch (type) { - if (((unsigned char *)chars[i].image.data)[p] < FONT_BITMAP_ALPHA_THRESHOLD) ((unsigned char *)chars[i].image.data)[p] = 0; - else ((unsigned char *)chars[i].image.data)[p] = 255; + case FONT_DEFAULT: + case FONT_BITMAP: chars[i].image.data = stbtt_GetCodepointBitmap(&fontInfo, scaleFactor, scaleFactor, ch, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); break; + case FONT_SDF: if (ch != 32) chars[i].image.data = stbtt_GetCodepointSDF(&fontInfo, scaleFactor, ch, FONT_SDF_CHAR_PADDING, FONT_SDF_ON_EDGE_VALUE, FONT_SDF_PIXEL_DIST_SCALE, &chw, &chh, &chars[i].offsetX, &chars[i].offsetY); break; + default: break; + } + + if (chars[i].image.data != NULL) // Glyph data has been found in the font + { + stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); + chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + + // Load characters images + chars[i].image.width = chw; + chars[i].image.height = chh; + chars[i].image.mipmaps = 1; + chars[i].image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + + chars[i].offsetY += (int)((float)ascent*scaleFactor); + } + + // NOTE: We create an empty image for space character, + // it could be further required for atlas packing + if (ch == 32) + { + stbtt_GetCodepointHMetrics(&fontInfo, ch, &chars[i].advanceX, NULL); + chars[i].advanceX = (int)((float)chars[i].advanceX*scaleFactor); + + Image imSpace = { + .data = RL_CALLOC(chars[i].advanceX*fontSize, 2), + .width = chars[i].advanceX, + .height = fontSize, + .mipmaps = 1, + .format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE + }; + + chars[i].image = imSpace; + } + + if (type == FONT_BITMAP) + { + // Aliased bitmap (black & white) font generation, avoiding anti-aliasing + // NOTE: For optimum results, bitmap font should be generated at base pixel size + for (int p = 0; p < chw*chh; p++) + { + if (((unsigned char *)chars[i].image.data)[p] < FONT_BITMAP_ALPHA_THRESHOLD) ((unsigned char *)chars[i].image.data)[p] = 0; + else ((unsigned char *)chars[i].image.data)[p] = 255; + } } } - - // Get bounding box for character (maybe offset to account for chars that dip above or below the line) - /* - int chX1, chY1, chX2, chY2; - stbtt_GetCodepointBitmapBox(&fontInfo, ch, scaleFactor, scaleFactor, &chX1, &chY1, &chX2, &chY2); - - TRACELOGD("FONT: Character box measures: %i, %i, %i, %i", chX1, chY1, chX2 - chX1, chY2 - chY1); - TRACELOGD("FONT: Character offsetY: %i", (int)((float)ascent*scaleFactor) + chY1); - */ + else + { + // TODO: Use some fallback glyph for codepoints not found in the font + } } } else TRACELOG(LOG_WARNING, "FONT: Failed to process TTF font data"); From 984e83c2d0c6f75053a1ab533e12aece80e24b32 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Tue, 5 Dec 2023 06:02:48 -0300 Subject: [PATCH 047/790] Fix GetKeyPressed and GetCharPressed for SDL (#3604) --- src/platforms/rcore_desktop_sdl.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index a274f25dc..e684465c3 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1110,6 +1110,25 @@ void PollInputEvents(void) if (key != KEY_NULL) CORE.Input.Keyboard.currentKeyState[key] = 0; } break; + case SDL_TEXTINPUT: + { + // Check if there is space available in the key queue + if (CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE) + { + // Add character to the queue + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = event.text.text[0]; + CORE.Input.Keyboard.keyPressedQueueCount++; + } + + // Check if there is space available in the queue + if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) + { + // Add character to the queue + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = event.text.text[0]; + CORE.Input.Keyboard.charPressedQueueCount++; + } + } break; + // Check mouse events case SDL_MOUSEBUTTONDOWN: { From d99617d084daeed629733419dd781f5f02422f0a Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:47:58 -0300 Subject: [PATCH 048/790] [rcore] Fix `IsKeyPressedRepeat()` for `PLATFORM_DESKTOP_SDL` (#3605) * Fix IsKeyPressedRepeat() for PLATFORM_DESKTOP_SDL * Fix missing space --- src/platforms/rcore_desktop_sdl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index e684465c3..127c302b4 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -969,9 +969,6 @@ void PollInputEvents(void) CORE.Input.Keyboard.keyPressedQueueCount = 0; CORE.Input.Keyboard.charPressedQueueCount = 0; - // Reset key repeats - for (int i = 0; i < MAX_KEYBOARD_KEYS; i++) CORE.Input.Keyboard.keyRepeatInFrame[i] = 0; - // Reset mouse wheel CORE.Input.Mouse.currentWheelMove.x = 0; CORE.Input.Mouse.currentWheelMove.y = 0; @@ -1097,6 +1094,8 @@ void PollInputEvents(void) KeyboardKey key = ConvertScancodeToKey(event.key.keysym.scancode); if (key != KEY_NULL) CORE.Input.Keyboard.currentKeyState[key] = 1; + if (event.key.repeat) CORE.Input.Keyboard.keyRepeatInFrame[key] = 1; + // TODO: Put exitKey verification outside the switch? if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey]) { From 6b931801308d986bc81bc7eb6a989d99b4e52749 Mon Sep 17 00:00:00 2001 From: lesleyrs <19632758+lesleyrs@users.noreply.github.com> Date: Thu, 7 Dec 2023 19:49:49 +0100 Subject: [PATCH 049/790] Fix for free camera mode (#3603) * fix free and fp cam * revert --- src/rcamera.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcamera.h b/src/rcamera.h index 0232dd488..3fe151fa2 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -449,7 +449,7 @@ void UpdateCamera(Camera *camera, int mode) bool moveInWorldPlane = ((mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON)); bool rotateAroundTarget = ((mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); - bool lockView = ((mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); + bool lockView = ((mode == CAMERA_FREE) || (mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); bool rotateUp = false; if (mode == CAMERA_ORBITAL) From 8b33d1eeb952808d11bf017d34ef3fa1d5d7484e Mon Sep 17 00:00:00 2001 From: Kenneth M Date: Thu, 7 Dec 2023 12:50:36 -0600 Subject: [PATCH 050/790] Fix IsMouseButtonUp() (#3609) --- src/platforms/rcore_desktop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 0aca73134..0dfcacd81 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1739,7 +1739,8 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int // WARNING: GLFW could only return GLFW_PRESS (1) or GLFW_RELEASE (0) for now, // but future releases may add more actions (i.e. GLFW_REPEAT) CORE.Input.Mouse.currentButtonState[button] = action; - + CORE.Input.Touch.currentTouchState[button] = action; + #if defined(SUPPORT_GESTURES_SYSTEM) && defined(SUPPORT_MOUSE_GESTURES) // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; From ab9bddb3bd3b60c07f5c6583569d224ed9d31e72 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:53:02 -0300 Subject: [PATCH 051/790] [rcore] Fix `IsMouseButtonUp()` and add touch events for `PLATFORM_DESKTOP_SDL` (#3610) * Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL * Fix coding convention --- src/platforms/rcore_desktop_sdl.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 127c302b4..8cb0c1be8 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1138,6 +1138,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 1; + CORE.Input.Touch.currentTouchState[btn] = 1; touchAction = 1; gestureUpdate = true; @@ -1151,6 +1152,7 @@ void PollInputEvents(void) else if (btn == 1) btn = 2; CORE.Input.Mouse.currentButtonState[btn] = 0; + CORE.Input.Touch.currentTouchState[btn] = 0; touchAction = 0; gestureUpdate = true; @@ -1179,6 +1181,31 @@ void PollInputEvents(void) gestureUpdate = true; } break; + // Check touch events + // NOTE: These cases need to be reviewed on a real touch screen + case SDL_FINGERDOWN: + { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 1; + + touchAction = 1; + gestureUpdate = true; + } break; + case SDL_FINGERUP: + { + CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 0; + + touchAction = 0; + gestureUpdate = true; + } break; + case SDL_FINGERMOTION: + { + CORE.Input.Touch.position[event.tfinger.fingerId].x = (float)event.motion.x; + CORE.Input.Touch.position[event.tfinger.fingerId].y = (float)event.motion.y; + + touchAction = 2; + gestureUpdate = true; + } break; + // Check gamepad events case SDL_JOYAXISMOTION: { From a9ba51aa72cfc9c75c2230726a49e1d9065b3c01 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:53:27 -0300 Subject: [PATCH 052/790] [rcore] Fix `IsMouseButtonUp()` for `PLATFORM_WEB` and `PLATFORM_DRM` (#3611) * Fix IsMouseButtonUp() for PLATFORM_WEB * Fix IsMouseButtonUp() for PLATFORM_DRM --- src/platforms/rcore_drm.c | 1 + src/platforms/rcore_web.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index f51953a63..e9493d721 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -571,6 +571,7 @@ void PollInputEvents(void) { CORE.Input.Mouse.previousButtonState[i] = CORE.Input.Mouse.currentButtonState[i]; CORE.Input.Mouse.currentButtonState[i] = platform.currentButtonStateEvdev[i]; + CORE.Input.Touch.currentTouchState[i] = platform.currentButtonStateEvdev[i]; } // Register gamepads buttons events diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 4353f795c..ae210853b 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -1093,6 +1093,7 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int // WARNING: GLFW could only return GLFW_PRESS (1) or GLFW_RELEASE (0) for now, // but future releases may add more actions (i.e. GLFW_REPEAT) CORE.Input.Mouse.currentButtonState[button] = action; + CORE.Input.Touch.currentTouchState[button] = action; #if defined(SUPPORT_GESTURES_SYSTEM) && defined(SUPPORT_MOUSE_GESTURES) // Process mouse events as touches to be able to use mouse-gestures From 032cc497ca5aaca862dc926a93c2a45ed8017737 Mon Sep 17 00:00:00 2001 From: David Williams Date: Sat, 9 Dec 2023 10:33:12 -0800 Subject: [PATCH 053/790] Updating CMake version to 5.0 so libraries are correctly versioned (#3615) --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4335bda5c..919efeb4d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,7 +1,7 @@ # Setup the project and settings project(raylib C) -set(PROJECT_VERSION 4.5.0) -set(API_VERSION 450) +set(PROJECT_VERSION 5.0.0) +set(API_VERSION 500) include(GNUInstallDirs) include(JoinPaths) From 28bdaa2da6ca66306d89b75bdf727746effb11ad Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 11 Dec 2023 07:29:19 +0000 Subject: [PATCH 054/790] Update projects/CMake/CMakeLists.txt to raylib 5.0 (#3623) --- projects/CMake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt index cc606a4a2..ee258d604 100644 --- a/projects/CMake/CMakeLists.txt +++ b/projects/CMake/CMakeLists.txt @@ -5,7 +5,7 @@ project(example) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Dependencies -set(RAYLIB_VERSION 4.5.0) +set(RAYLIB_VERSION 5.0) find_package(raylib ${RAYLIB_VERSION} QUIET) # QUIET or REQUIRED if (NOT raylib_FOUND) # If there's none, fetch and build raylib include(FetchContent) @@ -40,4 +40,4 @@ if (APPLE) target_link_libraries(${PROJECT_NAME} "-framework IOKit") target_link_libraries(${PROJECT_NAME} "-framework Cocoa") target_link_libraries(${PROJECT_NAME} "-framework OpenGL") -endif() \ No newline at end of file +endif() From ed8a18ea6413d06a423ec8bb8b00daecf4ebc2f9 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 11 Dec 2023 04:57:51 -0300 Subject: [PATCH 055/790] [rcore] Fix real touch gestures for `PLATFORM_DESKTOP_SDL` (#3614) * Fix touch gestures for PLATFORM_DESKTOP_SDL * Complement note and optimization * Events optimization * Optimize gesture handling * Reverts previous commit and fixes GESTURE_DRAG to not trigger GESTURE_SWIPE* when it ends * Reapply previous gesture handling optimization also fixing GESTURE_DRAG to not trigger GESTURE_SWIPE* when it ends --- src/platforms/rcore_desktop_sdl.c | 37 ++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 8cb0c1be8..e1e6e4c9a 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -996,7 +996,7 @@ void PollInputEvents(void) CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE - bool gestureUpdate = false; // Flag to note gestures require to update + bool realTouch = false; // Flag to differentiate real touch gestures from mouse ones // Register previous keys states // NOTE: Android supports up to 260 keys @@ -1141,7 +1141,6 @@ void PollInputEvents(void) CORE.Input.Touch.currentTouchState[btn] = 1; touchAction = 1; - gestureUpdate = true; } break; case SDL_MOUSEBUTTONUP: { @@ -1155,7 +1154,6 @@ void PollInputEvents(void) CORE.Input.Touch.currentTouchState[btn] = 0; touchAction = 0; - gestureUpdate = true; } break; case SDL_MOUSEWHEEL: { @@ -1178,32 +1176,38 @@ void PollInputEvents(void) CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; touchAction = 2; - gestureUpdate = true; } break; // Check touch events // NOTE: These cases need to be reviewed on a real touch screen case SDL_FINGERDOWN: { - CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 1; + const int touchId = (int)event.tfinger.fingerId; + CORE.Input.Touch.currentTouchState[touchId] = 1; + CORE.Input.Touch.position[touchId].x = event.tfinger.x * CORE.Window.screen.width; + CORE.Input.Touch.position[touchId].y = event.tfinger.y * CORE.Window.screen.height; touchAction = 1; - gestureUpdate = true; + realTouch = true; } break; case SDL_FINGERUP: { - CORE.Input.Touch.currentTouchState[event.tfinger.fingerId] = 0; + const int touchId = (int)event.tfinger.fingerId; + CORE.Input.Touch.currentTouchState[touchId] = 0; + CORE.Input.Touch.position[touchId].x = event.tfinger.x * CORE.Window.screen.width; + CORE.Input.Touch.position[touchId].y = event.tfinger.y * CORE.Window.screen.height; touchAction = 0; - gestureUpdate = true; + realTouch = true; } break; case SDL_FINGERMOTION: { - CORE.Input.Touch.position[event.tfinger.fingerId].x = (float)event.motion.x; - CORE.Input.Touch.position[event.tfinger.fingerId].y = (float)event.motion.y; + const int touchId = (int)event.tfinger.fingerId; + CORE.Input.Touch.position[touchId].x = event.tfinger.x * CORE.Window.screen.width; + CORE.Input.Touch.position[touchId].y = event.tfinger.y * CORE.Window.screen.height; touchAction = 2; - gestureUpdate = true; + realTouch = true; } break; // Check gamepad events @@ -1228,7 +1232,7 @@ void PollInputEvents(void) } #if defined(SUPPORT_GESTURES_SYSTEM) - if (gestureUpdate) + if (touchAction > -1) { // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; @@ -1243,7 +1247,7 @@ void PollInputEvents(void) gestureEvent.pointCount = 1; // Register touch points position, only one point registered - if (touchAction == 2) gestureEvent.position[0] = CORE.Input.Touch.position[0]; + if (touchAction == 2 || realTouch) gestureEvent.position[0] = CORE.Input.Touch.position[0]; else gestureEvent.position[0] = GetMousePosition(); // Normalize gestureEvent.position[0] for CORE.Window.screen.width and CORE.Window.screen.height @@ -1252,6 +1256,8 @@ void PollInputEvents(void) // Gesture data is sent to gestures-system for processing ProcessGestureEvent(gestureEvent); + + touchAction = -1; } #endif } @@ -1404,6 +1410,11 @@ int InitPlatform(void) //if (platform.gamepadgamepad == NULL) TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); } + // Disable mouse events being interpreted as touch events + // NOTE: This is wanted because there are SDL_FINGER* events available which provide unique data + // Due to the way PollInputEvents() and rgestures.h are currently implemented, setting this won't break SUPPORT_MOUSE_GESTURES + SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0"); + SDL_EventState(SDL_DROPFILE, SDL_ENABLE); //---------------------------------------------------------------------------- From 44eeda247597b7d89b93612495c3b7f291604b61 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 11 Dec 2023 04:58:55 -0300 Subject: [PATCH 056/790] Optimize gesture handling for PLATFORM_DRM (#3616) --- src/platforms/rcore_drm.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index e9493d721..2fec53f58 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -612,7 +612,6 @@ void PollInputEvents(void) struct input_event event = { 0 }; int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE - bool gestureUpdate = false; // Flag to note gestures require to update // Try to read data from the mouse/touch/gesture and only continue if successful while (read(fd, &event, sizeof(event)) == (int)sizeof(event)) @@ -631,7 +630,6 @@ void PollInputEvents(void) CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; } if (event.code == REL_Y) @@ -645,7 +643,6 @@ void PollInputEvents(void) CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; } if (event.code == REL_WHEEL) platform.eventWheelMove.y += event.value; @@ -661,7 +658,6 @@ void PollInputEvents(void) CORE.Input.Touch.position[0].x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; } if (event.code == ABS_Y) @@ -670,7 +666,6 @@ void PollInputEvents(void) CORE.Input.Touch.position[0].y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; } // Multitouch movement @@ -706,7 +701,6 @@ void PollInputEvents(void) platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 0; touchAction = 0; // TOUCH_ACTION_UP - gestureUpdate = true; } if (event.value && !previousMouseLeftButtonState) @@ -714,7 +708,6 @@ void PollInputEvents(void) platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 1; touchAction = 1; // TOUCH_ACTION_DOWN - gestureUpdate = true; } } @@ -730,7 +723,6 @@ void PollInputEvents(void) if (event.value > 0) touchAction = 1; // TOUCH_ACTION_DOWN else touchAction = 0; // TOUCH_ACTION_UP - gestureUpdate = true; } if (event.code == BTN_RIGHT) platform.currentButtonStateEvdev[MOUSE_BUTTON_RIGHT] = event.value; @@ -759,7 +751,7 @@ void PollInputEvents(void) } #if defined(SUPPORT_GESTURES_SYSTEM) - if (gestureUpdate) + if (touchAction > -1) { GestureEvent gestureEvent = { 0 }; @@ -774,7 +766,7 @@ void PollInputEvents(void) ProcessGestureEvent(gestureEvent); - gestureUpdate = false; + touchAction = -1; } #endif } From 39457ace2f8048aa82d180040b1bce9ca59a6b74 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 11 Dec 2023 05:11:20 -0300 Subject: [PATCH 057/790] [rcore] Add `ToggleBorderlessWindowed()` implementation for `PLATFORM_WEB` (#3622) * Add ToggleBorderlessWindowed() for PLATFORM_WEB * Fix coding convention --- src/platforms/rcore_web.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index ae210853b..c322a1d52 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -211,7 +211,33 @@ void ToggleFullscreen(void) // Toggle borderless windowed mode void ToggleBorderlessWindowed(void) { - TRACELOG(LOG_WARNING, "ToggleBorderlessWindowed() not available on target platform"); + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + EM_ASM(document.exitFullscreen();); + + CORE.Window.fullscreen = false; + CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; + } + + if (!IsWindowState(FLAG_BORDERLESS_WINDOWED_MODE)) + { + // NOTE: 1. The setTimeouts handle the browser mode change delay + // 2. The style unset handles the possibility of a width="100%" like on the default shell.html file + EM_ASM( + setTimeout(function() + { + Module.requestFullscreen(true, true); + setTimeout(function() + { + canvas.style.width="unset"; + }, 100); + }, 100); + ); + + CORE.Window.flags |= FLAG_BORDERLESS_WINDOWED_MODE; + } + else CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; } // Set window state: maximized, if resizable From a2e45239c314f970ada62ef08bee72e6574d8808 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Mon, 11 Dec 2023 05:11:42 -0300 Subject: [PATCH 058/790] [rcore] Complement `SetWindowState()` and `ClearWindowState()` for `PLATFORM_WEB` (#3625) * Complement SetWindowState() and ClearWindowState() for PLATFORM_WEB * Add FLAG_WINDOW_RESIZABLE to SetWindowState() and ClearWindowState() for PLATFORM_WEB --- src/platforms/rcore_web.c | 206 +++++++++++++++++++++++++++++++++++++- 1 file changed, 204 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index c322a1d52..8ffceafdc 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -261,13 +261,215 @@ void RestoreWindow(void) // Set window configuration state using flags void SetWindowState(unsigned int flags) { - TRACELOG(LOG_WARNING, "SetWindowState() not available on target platform"); + // Check previous state and requested state to apply required changes + // NOTE: In most cases the functions already change the flags internally + + // State change: FLAG_VSYNC_HINT + if ((flags & FLAG_VSYNC_HINT) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_VSYNC_HINT) not available on target platform"); + } + + // State change: FLAG_BORDERLESS_WINDOWED_MODE + if (((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) != (flags & FLAG_BORDERLESS_WINDOWED_MODE)) && ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0)) + { + ToggleBorderlessWindowed(); // NOTE: Window state flag updated inside function + } + + // State change: FLAG_FULLSCREEN_MODE + if ((flags & FLAG_FULLSCREEN_MODE) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_FULLSCREEN_MODE) not available yet on target platform"); + } + + // State change: FLAG_WINDOW_RESIZABLE + if (((CORE.Window.flags & FLAG_WINDOW_RESIZABLE) != (flags & FLAG_WINDOW_RESIZABLE)) && ((flags & FLAG_WINDOW_RESIZABLE) > 0)) + { + glfwSetWindowAttrib(platform.handle, GLFW_RESIZABLE, GLFW_TRUE); + CORE.Window.flags |= FLAG_WINDOW_RESIZABLE; + } + + // State change: FLAG_WINDOW_UNDECORATED + if ((flags & FLAG_WINDOW_UNDECORATED) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_UNDECORATED) not available on target platform"); + } + + // State change: FLAG_WINDOW_HIDDEN + if ((flags & FLAG_WINDOW_HIDDEN) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_HIDDEN) not available on target platform"); + } + + // State change: FLAG_WINDOW_MINIMIZED + if ((flags & FLAG_WINDOW_MINIMIZED) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_MINIMIZED) not available on target platform"); + } + + // State change: FLAG_WINDOW_MAXIMIZED + if ((flags & FLAG_WINDOW_MAXIMIZED) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_MAXIMIZED) not available on target platform"); + } + + // State change: FLAG_WINDOW_UNFOCUSED + if ((flags & FLAG_WINDOW_UNFOCUSED) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_UNFOCUSED) not available on target platform"); + } + + // State change: FLAG_WINDOW_TOPMOST + if ((flags & FLAG_WINDOW_TOPMOST) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_TOPMOST) not available on target platform"); + } + + // State change: FLAG_WINDOW_ALWAYS_RUN + if ((flags & FLAG_WINDOW_ALWAYS_RUN) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_ALWAYS_RUN) not available on target platform"); + } + + // The following states can not be changed after window creation + // NOTE: Review for PLATFORM_WEB + + // State change: FLAG_WINDOW_TRANSPARENT + if ((flags & FLAG_WINDOW_TRANSPARENT) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_TRANSPARENT) not available on target platform"); + } + + // State change: FLAG_WINDOW_HIGHDPI + if ((flags & FLAG_WINDOW_HIGHDPI) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_HIGHDPI) not available on target platform"); + } + + // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH + if ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_WINDOW_MOUSE_PASSTHROUGH) not available on target platform"); + } + + // State change: FLAG_MSAA_4X_HINT + if ((flags & FLAG_MSAA_4X_HINT) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_MSAA_4X_HINT) not available on target platform"); + } + + // State change: FLAG_INTERLACED_HINT + if ((flags & FLAG_INTERLACED_HINT) > 0) + { + TRACELOG(LOG_WARNING, "SetWindowState(FLAG_INTERLACED_HINT) not available on target platform"); + } } // Clear window configuration state flags void ClearWindowState(unsigned int flags) { - TRACELOG(LOG_WARNING, "ClearWindowState() not available on target platform"); + // Check previous state and requested state to apply required changes + // NOTE: In most cases the functions already change the flags internally + + // State change: FLAG_VSYNC_HINT + if ((flags & FLAG_VSYNC_HINT) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_VSYNC_HINT) not available on target platform"); + } + + // State change: FLAG_BORDERLESS_WINDOWED_MODE + if (((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0) && ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0)) + { + ToggleBorderlessWindowed(); // NOTE: Window state flag updated inside function + } + + // State change: FLAG_FULLSCREEN_MODE + if ((flags & FLAG_FULLSCREEN_MODE) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_FULLSCREEN_MODE) not available yet on target platform"); + } + + // State change: FLAG_WINDOW_RESIZABLE + if (((CORE.Window.flags & FLAG_WINDOW_RESIZABLE) > 0) && ((flags & FLAG_WINDOW_RESIZABLE) > 0)) + { + glfwSetWindowAttrib(platform.handle, GLFW_RESIZABLE, GLFW_FALSE); + CORE.Window.flags &= ~FLAG_WINDOW_RESIZABLE; + } + + // State change: FLAG_WINDOW_HIDDEN + if ((flags & FLAG_WINDOW_HIDDEN) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_HIDDEN) not available on target platform"); + } + + // State change: FLAG_WINDOW_MINIMIZED + if ((flags & FLAG_WINDOW_MINIMIZED) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_MINIMIZED) not available on target platform"); + } + + // State change: FLAG_WINDOW_MAXIMIZED + if ((flags & FLAG_WINDOW_MAXIMIZED) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_MAXIMIZED) not available on target platform"); + } + + // State change: FLAG_WINDOW_UNDECORATED + if ((flags & FLAG_WINDOW_UNDECORATED) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_UNDECORATED) not available on target platform"); + } + + // State change: FLAG_WINDOW_UNFOCUSED + if ((flags & FLAG_WINDOW_UNFOCUSED) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_UNFOCUSED) not available on target platform"); + } + + // State change: FLAG_WINDOW_TOPMOST + if ((flags & FLAG_WINDOW_TOPMOST) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_TOPMOST) not available on target platform"); + } + + // State change: FLAG_WINDOW_ALWAYS_RUN + if ((flags & FLAG_WINDOW_ALWAYS_RUN) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_ALWAYS_RUN) not available on target platform"); + } + + // The following states can not be changed after window creation + // NOTE: Review for PLATFORM_WEB + + // State change: FLAG_WINDOW_TRANSPARENT + if ((flags & FLAG_WINDOW_TRANSPARENT) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_TRANSPARENT) not available on target platform"); + } + + // State change: FLAG_WINDOW_HIGHDPI + if ((flags & FLAG_WINDOW_HIGHDPI) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_HIGHDPI) not available on target platform"); + } + + // State change: FLAG_WINDOW_MOUSE_PASSTHROUGH + if ((flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_WINDOW_MOUSE_PASSTHROUGH) not available on target platform"); + } + + // State change: FLAG_MSAA_4X_HINT + if ((flags & FLAG_MSAA_4X_HINT) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_MSAA_4X_HINT) not available on target platform"); + } + + // State change: FLAG_INTERLACED_HINT + if ((flags & FLAG_INTERLACED_HINT) > 0) + { + TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_INTERLACED_HINT) not available on target platform"); + } } // Set icon for window From 31d3ed97c75b4492cea55b458459946f7c739938 Mon Sep 17 00:00:00 2001 From: riadbettole <118698087+riadbettole@users.noreply.github.com> Date: Mon, 11 Dec 2023 09:12:30 +0100 Subject: [PATCH 059/790] Update audio_raw_stream.c (#3624) AudioInputCallBack has this audioFrequency += 1.0f; audioFrequency -= 1.0f; cancels out each others --- examples/audio/audio_raw_stream.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/audio/audio_raw_stream.c b/examples/audio/audio_raw_stream.c index 6befa765a..b3173ab97 100644 --- a/examples/audio/audio_raw_stream.c +++ b/examples/audio/audio_raw_stream.c @@ -38,8 +38,7 @@ float sineIdx = 0.0f; void AudioInputCallback(void *buffer, unsigned int frames) { audioFrequency = frequency + (audioFrequency - frequency)*0.95f; - audioFrequency += 1.0f; - audioFrequency -= 1.0f; + float incr = audioFrequency/44100.0f; short *d = (short *)buffer; From 6f3c87a99969e92ada46e54258b1653994c24903 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 11 Dec 2023 09:21:30 +0100 Subject: [PATCH 060/790] Fix #3613 --- src/rtextures.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index 8742b0c9c..c78b0ebf4 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3706,7 +3706,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color // Draw text (default font) within an image (destination) void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color) { -#if defined(SUPPORT_MODULE_RTEXT) +#if defined(SUPPORT_MODULE_RTEXT) && defined(SUPPORT_DEFAULT_FONT) // Make sure default font is loaded to be used on image text drawing if (GetFontDefault().texture.id == 0) LoadFontDefault(); From c5ebdb8ba77afa5745eb01032cf1909b5a03bffa Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 11 Dec 2023 09:33:21 +0100 Subject: [PATCH 061/790] REVIEWED: Issue in sequence generation #3612 --- src/external/rprand.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/external/rprand.h b/src/external/rprand.h index c9b460cd6..7e27d980f 100644 --- a/src/external/rprand.h +++ b/src/external/rprand.h @@ -200,8 +200,7 @@ int *rprand_load_sequence(unsigned int count, int min, int max) for (unsigned int i = 0; i < count;) { - value = ((int)rprand_xoshiro()%(abs(max - min) + 1)) + min; - value_is_dup = false; + value = ((unsigned int)rprand_xoshiro()%(abs(max - min) + 1)) + min; for (int j = 0; j < i; j++) { @@ -217,6 +216,8 @@ int *rprand_load_sequence(unsigned int count, int min, int max) sequence[i] = value; i++; } + + value_is_dup = false; } return sequence; From 9322ad0f9bbc7ce1a7f94109dd89c5082ac483fe Mon Sep 17 00:00:00 2001 From: 2Bear Date: Wed, 13 Dec 2023 06:05:14 +0800 Subject: [PATCH 062/790] Ignore compiled dll binaries. (#3628) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 559f9f0d9..6ff0e2346 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ packages/ *.bc *.so *.so.* +*.dll # Ignore wasm data in examples/ examples/**/*.wasm From a57a0ecd96fd64c1202a2ba289e735fffcc54fd1 Mon Sep 17 00:00:00 2001 From: lipx <120847863+lipx1508@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:19:14 -0300 Subject: [PATCH 063/790] Update audio_stream_effects.c (#3618) * Update audio_stream_effects.c This may slightly improve performance and be more welcoming for new users despite being an more advanced feature. void * usually throws an error in most compilers and it would be better to just avoid it. Also added because booleans are, sometimes, not defined by . * Update audio_stream_effects.c --- examples/audio/audio_stream_effects.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/audio/audio_stream_effects.c b/examples/audio/audio_stream_effects.c index 219305057..2262d41f9 100644 --- a/examples/audio/audio_stream_effects.c +++ b/examples/audio/audio_stream_effects.c @@ -2,7 +2,7 @@ * * raylib [audio] example - Music stream processing effects * -* Example originally created with raylib 4.2, last time updated with raylib 4.2 +* Example originally created with raylib 4.2, last time updated with raylib 5.0 * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software @@ -13,7 +13,7 @@ #include "raylib.h" -#include // Required for: NULL +#include // Required for: NULL // Required delay effect variables static float *delayBuffer = NULL; @@ -149,13 +149,17 @@ static void AudioProcessEffectLPF(void *buffer, unsigned int frames) static const float cutoff = 70.0f / 44100.0f; // 70 Hz lowpass filter const float k = cutoff / (cutoff + 0.1591549431f); // RC filter formula + // Converts the buffer data before using it + float *bufferData = (float *)buffer; for (unsigned int i = 0; i < frames*2; i += 2) { - float l = ((float *)buffer)[i], r = ((float *)buffer)[i + 1]; + const float l = bufferData[i]; + const float r = bufferData[i + 1]; + low[0] += k * (l - low[0]); low[1] += k * (r - low[1]); - ((float *)buffer)[i] = low[0]; - ((float *)buffer)[i + 1] = low[1]; + bufferData[i] = low[0]; + bufferData[i + 1] = low[1]; } } @@ -176,4 +180,4 @@ static void AudioProcessEffectDelay(void *buffer, unsigned int frames) delayBuffer[delayWriteIndex++] = ((float *)buffer)[i + 1]; if (delayWriteIndex == delayBufferSize) delayWriteIndex = 0; } -} \ No newline at end of file +} From 6083d2b9f3a508c87bf88ceeb29e603b00a9a7e8 Mon Sep 17 00:00:00 2001 From: Benjamin Schmid Ties <76067254+benjibst@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:20:13 +0100 Subject: [PATCH 064/790] fixed coding style in function TextToFloat (#3627) * function to convert string to float * fix code to match coding conventions --- src/raylib.h | 1 + src/rtext.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index fd870c188..d5eafe7f3 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1481,6 +1481,7 @@ RLAPI const char *TextToUpper(const char *text); // Get upp RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) diff --git a/src/rtext.c b/src/rtext.c index 1ab45277a..a919fa4ad 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1421,6 +1421,28 @@ int TextToInteger(const char *text) return value*sign; } +float TextToFloat(const char *text) +{ + float value = 0.0f; + float sign = 1.0f; + + if ((text[0] == '+') || (text[0] == '-')) + { + if (text[0] == '-') sign = -1; + text++; + } + int i = 0; + for (; ((text[i] >= '0') && (text[i] <= '9')); ++i) value = value*10.0f + (float)(text[i] - '0'); + if (text[i++] != '.') return value*sign; + float divisor = 10.0f; + for (; ((text[i] >= '0') && (text[i] <= '9')); ++i) + { + value += ((float)(text[i] - '0'))/divisor; + divisor = divisor*10.0f; + } + return value; +} + #if defined(SUPPORT_TEXT_MANIPULATION) // Copy one string to another, returns bytes copied int TextCopy(char *dst, const char *src) From 222f6f787791af858da5416ebb528dab0e9ce5dc Mon Sep 17 00:00:00 2001 From: Romash <33938415+rmn20@users.noreply.github.com> Date: Wed, 13 Dec 2023 23:21:08 +0300 Subject: [PATCH 065/790] Fix box blur symmetry & simplify code (#3631) --- src/rtextures.c | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index c78b0ebf4..92efcfe06 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1959,29 +1959,24 @@ void ImageBlurGaussian(Image *image, int blurSize) { float avgG = 0.0f; float avgB = 0.0f; float avgAlpha = 0.0f; - int convolutionSize = blurSize+1; + int convolutionSize = blurSize; - for (int i = 0; i < blurSize+1; i++) + for (int i = 0; i < blurSize; i++) { avgR += pixelsCopy1[row*image->width + i].x; avgG += pixelsCopy1[row*image->width + i].y; avgB += pixelsCopy1[row*image->width + i].z; avgAlpha += pixelsCopy1[row*image->width + i].w; - } + } - pixelsCopy2[row*image->width].x = avgR/convolutionSize; - pixelsCopy2[row*image->width].y = avgG/convolutionSize; - pixelsCopy2[row*image->width].z = avgB/convolutionSize; - pixelsCopy2[row*image->width].w = avgAlpha/convolutionSize; - - for (int x = 1; x < image->width; x++) + for (int x = 0; x < image->width; x++) { - if (x-blurSize >= 0) + if (x-blurSize-1 >= 0) { - avgR -= pixelsCopy1[row*image->width + x-blurSize].x; - avgG -= pixelsCopy1[row*image->width + x-blurSize].y; - avgB -= pixelsCopy1[row*image->width + x-blurSize].z; - avgAlpha -= pixelsCopy1[row*image->width + x-blurSize].w; + avgR -= pixelsCopy1[row*image->width + x-blurSize-1].x; + avgG -= pixelsCopy1[row*image->width + x-blurSize-1].y; + avgB -= pixelsCopy1[row*image->width + x-blurSize-1].z; + avgAlpha -= pixelsCopy1[row*image->width + x-blurSize-1].w; convolutionSize--; } @@ -1999,7 +1994,7 @@ void ImageBlurGaussian(Image *image, int blurSize) { pixelsCopy2[row*image->width + x].z = avgB/convolutionSize; pixelsCopy2[row*image->width + x].w = avgAlpha/convolutionSize; } - } + } // Vertical motion blur for (int col = 0; col < image->width; col++) @@ -2008,9 +2003,9 @@ void ImageBlurGaussian(Image *image, int blurSize) { float avgG = 0.0f; float avgB = 0.0f; float avgAlpha = 0.0f; - int convolutionSize = blurSize+1; + int convolutionSize = blurSize; - for (int i = 0; i < blurSize+1; i++) + for (int i = 0; i < blurSize; i++) { avgR += pixelsCopy2[i*image->width + col].x; avgG += pixelsCopy2[i*image->width + col].y; @@ -2018,19 +2013,14 @@ void ImageBlurGaussian(Image *image, int blurSize) { avgAlpha += pixelsCopy2[i*image->width + col].w; } - pixelsCopy1[col].x = (unsigned char) (avgR/convolutionSize); - pixelsCopy1[col].y = (unsigned char) (avgG/convolutionSize); - pixelsCopy1[col].z = (unsigned char) (avgB/convolutionSize); - pixelsCopy1[col].w = (unsigned char) (avgAlpha/convolutionSize); - - for (int y = 1; y < image->height; y++) + for (int y = 0; y < image->height; y++) { - if (y-blurSize >= 0) + if (y-blurSize-1 >= 0) { - avgR -= pixelsCopy2[(y-blurSize)*image->width + col].x; - avgG -= pixelsCopy2[(y-blurSize)*image->width + col].y; - avgB -= pixelsCopy2[(y-blurSize)*image->width + col].z; - avgAlpha -= pixelsCopy2[(y-blurSize)*image->width + col].w; + avgR -= pixelsCopy2[(y-blurSize-1)*image->width + col].x; + avgG -= pixelsCopy2[(y-blurSize-1)*image->width + col].y; + avgB -= pixelsCopy2[(y-blurSize-1)*image->width + col].z; + avgAlpha -= pixelsCopy2[(y-blurSize-1)*image->width + col].w; convolutionSize--; } if (y+blurSize < image->height) From 387506faab0339dea6854dd79b80282d528428c8 Mon Sep 17 00:00:00 2001 From: Matthew Oros <32916949+orosmatthew@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:22:44 -0500 Subject: [PATCH 066/790] [rcore] Remove unused vScreenCenter (#3632) --- examples/core/core_vr_simulator.c | 1 - src/raylib.h | 1 - 2 files changed, 2 deletions(-) diff --git a/examples/core/core_vr_simulator.c b/examples/core/core_vr_simulator.c index fc2dee6b9..9acea1972 100644 --- a/examples/core/core_vr_simulator.c +++ b/examples/core/core_vr_simulator.c @@ -39,7 +39,6 @@ int main(void) .vResolution = 1200, // Vertical resolution in pixels .hScreenSize = 0.133793f, // Horizontal size in meters .vScreenSize = 0.0669f, // Vertical size in meters - .vScreenCenter = 0.04678f, // Screen center in meters .eyeToScreenDistance = 0.041f, // Distance between eye and display in meters .lensSeparationDistance = 0.07f, // Lens separation distance in meters .interpupillaryDistance = 0.07f, // IPD (distance between pupils) in meters diff --git a/src/raylib.h b/src/raylib.h index d5eafe7f3..206b26573 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -484,7 +484,6 @@ typedef struct VrDeviceInfo { int vResolution; // Vertical resolution in pixels float hScreenSize; // Horizontal size in meters float vScreenSize; // Vertical size in meters - float vScreenCenter; // Screen center in meters float eyeToScreenDistance; // Distance between eye and display in meters float lensSeparationDistance; // Lens separation distance in meters float interpupillaryDistance; // IPD (distance between pupils) in meters From cec2261e968bfc554d7b1639dd4d55ab4e2235e6 Mon Sep 17 00:00:00 2001 From: Matthew Oros <32916949+orosmatthew@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:24:24 -0500 Subject: [PATCH 067/790] [rcore] Flip VR screens (#3633) --- src/rcore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index a85b0971f..8691be304 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1192,8 +1192,8 @@ VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device) // NOTE: Camera movement might seem more natural if we model the head. // Our axis of rotation is the base of our head, so we might want to add // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions. - config.viewOffset[0] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f); - config.viewOffset[1] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f); + config.viewOffset[0] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f); + config.viewOffset[1] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f); // Compute eyes Viewports /* From 88db11fda4421c66a6043011b36a3f13494b98e5 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 14 Dec 2023 15:30:48 +0100 Subject: [PATCH 068/790] Update rtextures.c --- src/rtextures.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index c78b0ebf4..a7632f3d3 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -213,14 +213,14 @@ #define STBIR_MALLOC(size,c) ((void)(c), RL_MALLOC(size)) #define STBIR_FREE(ptr,c) ((void)(c), RL_FREE(ptr)) #define STB_IMAGE_RESIZE_IMPLEMENTATION -#include "external/stb_image_resize2.h" // Required for: stbir_resize_uint8_linear() [ImageResize()] +#include "external/stb_image_resize2.h" // Required for: stbir_resize_uint8_linear() [ImageResize()] #if defined(SUPPORT_FILEFORMAT_SVG) - #define NANOSVG_IMPLEMENTATION // Expands implementation - #include "external/nanosvg.h" + #define NANOSVG_IMPLEMENTATION // Expands implementation + #include "external/nanosvg.h" - #define NANOSVGRAST_IMPLEMENTATION - #include "external/nanosvgrast.h" + #define NANOSVGRAST_IMPLEMENTATION + #include "external/nanosvgrast.h" #endif //---------------------------------------------------------------------------------- From 38626dcffdf03b031491bdc6b6df97d9aee2a6e3 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 14 Dec 2023 15:32:53 +0100 Subject: [PATCH 069/790] REVIEWED: HighDPI support on Web platform #3372 -WIP- NOTE: The code is commented until the build system gets updated to latest emscripten. --- src/platforms/rcore_web.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 8ffceafdc..76e7dba3e 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -944,8 +944,13 @@ int InitPlatform(void) if ((CORE.Window.flags & FLAG_WINDOW_TOPMOST) > 0) glfwWindowHint(GLFW_FLOATING, GLFW_TRUE); else glfwWindowHint(GLFW_FLOATING, GLFW_FALSE); - // NOTE: Some GLFW flags are not supported on HTML5 - // e.g.: GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_SCALE_TO_MONITOR, GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_MOUSE_PASSTHROUGH + // NOTE: Some GLFW flags are not supported on HTML5 + // e.g.: GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_MOUSE_PASSTHROUGH + + // Scale content area based on the monitor content scale where window is placed on + // NOTE: This feature requires emscripten 3.1.51 + //if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_TRUE); + //else glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_FALSE); if (CORE.Window.flags & FLAG_MSAA_4X_HINT) { From 10c82595b0b239f34baf34ae0faa5bca9d5088c8 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 14 Dec 2023 16:55:33 -0300 Subject: [PATCH 070/790] Add GetMonitorWidth() and GetMonitorHeight() implementations for PLATFORM_WEB (#3636) --- src/platforms/rcore_web.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 76e7dba3e..57fd7656f 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -572,15 +572,17 @@ Vector2 GetMonitorPosition(int monitor) // Get selected monitor width (currently used by monitor) int GetMonitorWidth(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorWidth() not implemented on target platform"); - return 0; + int w = 0; + w = EM_ASM_INT( { return screen.width; }, 0); + return w; } // Get selected monitor height (currently used by monitor) int GetMonitorHeight(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorHeight() not implemented on target platform"); - return 0; + int h = 0; + h = EM_ASM_INT( { return screen.height; }, 0); + return h; } // Get selected monitor physical width in millimetres @@ -946,7 +948,7 @@ int InitPlatform(void) // NOTE: Some GLFW flags are not supported on HTML5 // e.g.: GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_MOUSE_PASSTHROUGH - + // Scale content area based on the monitor content scale where window is placed on // NOTE: This feature requires emscripten 3.1.51 //if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_TRUE); From 1e7b99562a398cf5a41fda557297a41f65aeb1f4 Mon Sep 17 00:00:00 2001 From: Braedon Lewis Date: Fri, 15 Dec 2023 10:23:35 -0500 Subject: [PATCH 071/790] Add new raylib-beef binding (#3640) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index 4cd22013d..c66c12808 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -7,6 +7,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | name | raylib version | language | license | repo | |:------------------:|:---------------:|:---------:|:----------:|-----------------------------------------------------------| | raylib | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | +| raylib-beef | **5.0** | [Beef](https://www.beeflang.org/) | MIT | https://github.com/Starpelly/raylib-beef | | raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo | | Raylib-cs | **4.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | | Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo | From 489f0b93f9cbb05af889a3412a8490d6640168c0 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Fri, 15 Dec 2023 12:24:45 -0300 Subject: [PATCH 072/790] [rcore] Add `GetWindowPosition()` implementation for `PLATFORM_WEB` and fixes #3636 style/format (#3637) * Add GetWindowPosition() implementation for PLATFORM_WEB and fixes #3636 style/format * Remove double space --- src/platforms/rcore_web.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 57fd7656f..6387420f9 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -572,17 +572,19 @@ Vector2 GetMonitorPosition(int monitor) // Get selected monitor width (currently used by monitor) int GetMonitorWidth(int monitor) { - int w = 0; - w = EM_ASM_INT( { return screen.width; }, 0); - return w; + // NOTE: Returned value is limited to the current monitor where the browser window is located + int width = 0; + width = EM_ASM_INT( { return screen.width; }, 0); + return width; } // Get selected monitor height (currently used by monitor) int GetMonitorHeight(int monitor) { - int h = 0; - h = EM_ASM_INT( { return screen.height; }, 0); - return h; + // NOTE: Returned value is limited to the current monitor where the browser window is located + int height = 0; + height = EM_ASM_INT( { return screen.height; }, 0); + return height; } // Get selected monitor physical width in millimetres @@ -616,8 +618,11 @@ const char *GetMonitorName(int monitor) // Get window position XY on monitor Vector2 GetWindowPosition(void) { - TRACELOG(LOG_WARNING, "GetWindowPosition() not implemented on target platform"); - return (Vector2){ 0, 0 }; + // NOTE: Returned position is relative to the current monitor where the browser window is located + Vector2 position = { 0, 0 }; + position.x = (float)EM_ASM_INT( { return window.screenX; }, 0); + position.y = (float)EM_ASM_INT( { return window.screenY; }, 0); + return position; } // Get window scale DPI factor for current monitor From 9bdc21798792a251ac7d8df828d13ef7b206519c Mon Sep 17 00:00:00 2001 From: devdad Date: Fri, 15 Dec 2023 17:13:44 +0100 Subject: [PATCH 073/790] basic PBR example (#3621) * basic pbr example pbr implementation includes rpbr.h and few shader files header only file, which self contain everything needed for pbr rendering. Few textures and one model of the car which is under free licence which is included inside basic_pbr.c example file currently supported shader versions are 120 and 330 , version 100 has small issue which I have to resolve * Unloading PBRMAterial I forgot unloading PBRMaterial * fix small issue with texOffset assigment. value was Vector4 at first but I found out it would be unclear for and users, so I change to have two Vector2 instead, but forgot to assign offset . * Changed size of textures and file name changed Changed size of textures from 2048x2048 to 1024x1024 and file name changed to shaders_basic_pbr.c , Added the function PBRModel PBRModelLoadFromMesh(Mesh mesh); but GenMeshPlane(2, 2.0, 3, 3) culdn't be used because it crash once GenMeshTangents() is used with that plane mesh --- .../shaders/resources/models/old_car_new.glb | Bin 0 -> 467788 bytes examples/shaders/resources/models/plane.glb | Bin 0 -> 1144 bytes examples/shaders/resources/old_car_d.png | Bin 0 -> 1684886 bytes examples/shaders/resources/old_car_e.png | Bin 0 -> 1775 bytes examples/shaders/resources/old_car_mra.png | Bin 0 -> 1136009 bytes examples/shaders/resources/old_car_n.png | Bin 0 -> 1287246 bytes examples/shaders/resources/road_a.png | Bin 0 -> 638390 bytes examples/shaders/resources/road_mra.png | Bin 0 -> 673099 bytes examples/shaders/resources/road_n.png | Bin 0 -> 660787 bytes .../shaders/resources/shaders/glsl100/pbr.fs | 156 ++++++ .../shaders/resources/shaders/glsl100/pbr.vs | 75 +++ .../shaders/resources/shaders/glsl120/pbr.fs | 156 ++++++ .../shaders/resources/shaders/glsl120/pbr.vs | 75 +++ .../shaders/resources/shaders/glsl330/pbr.fs | 159 ++++++ .../shaders/resources/shaders/glsl330/pbr.vs | 49 ++ examples/shaders/rpbr.h | 466 ++++++++++++++++++ examples/shaders/shaders_basic_pbr.c | 171 +++++++ 17 files changed, 1307 insertions(+) create mode 100644 examples/shaders/resources/models/old_car_new.glb create mode 100644 examples/shaders/resources/models/plane.glb create mode 100644 examples/shaders/resources/old_car_d.png create mode 100644 examples/shaders/resources/old_car_e.png create mode 100644 examples/shaders/resources/old_car_mra.png create mode 100644 examples/shaders/resources/old_car_n.png create mode 100644 examples/shaders/resources/road_a.png create mode 100644 examples/shaders/resources/road_mra.png create mode 100644 examples/shaders/resources/road_n.png create mode 100644 examples/shaders/resources/shaders/glsl100/pbr.fs create mode 100644 examples/shaders/resources/shaders/glsl100/pbr.vs create mode 100644 examples/shaders/resources/shaders/glsl120/pbr.fs create mode 100644 examples/shaders/resources/shaders/glsl120/pbr.vs create mode 100644 examples/shaders/resources/shaders/glsl330/pbr.fs create mode 100644 examples/shaders/resources/shaders/glsl330/pbr.vs create mode 100644 examples/shaders/rpbr.h create mode 100644 examples/shaders/shaders_basic_pbr.c diff --git a/examples/shaders/resources/models/old_car_new.glb b/examples/shaders/resources/models/old_car_new.glb new file mode 100644 index 0000000000000000000000000000000000000000..119995ca76a83cd1394a555de0511dbd87e683a4 GIT binary patch literal 467788 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/shaders/resources/models/plane.glb b/examples/shaders/resources/models/plane.glb new file mode 100644 index 0000000000000000000000000000000000000000..452e1c5bf2605578330a494a7f820faa38237374 GIT binary patch literal 1144 zcmb7E?QYsI6m`2j2)e&rmanlke=17Z#Kw{eqH0oARUsH^32fvT)+$2kBkYa#0(+=k zI{~60rQMGtz8~lKo)ahYMe_NS5c2e%kYDcz`8tlH0@6HZ8o~nROfZ#dsUU=Jk4g%e zx8?|GT`icHGSwPQ2|SqKU!$jf3rxD%k-Fvh3vV?8ikeOORo8*s-{{iK3QuM7H|`f2gx9g zENK*vzITTZx)hRb^rasq5PG=o|LDc>==#Bd&_@AWOnGMD!PbtKW*FsCl}aY-*^H@M z&VE|XOfFYaFrky@6)ODbdL0UxTnqFvz_HUOl<883x<&*?pYF~~cxGa4F>u@O`RH5$ zb#5H;749Z9%6c<8INIC)543lLM%l-ETT1H+`cq9l?sbRVk$t@f<#m^>!;@#thD^*g zo{Zp}f{EkV%$`=~;M%Lb!FfY-2Zyc`UvwIpeRQ|p>~@;waR2ST@XUcO6<2C&59Vd0v*+e!a`%)6{H!moxE;O_jBV^$u(L>wCO4HoNR_d#);HY9|DL IF?gMlzf2rHkpKVy literal 0 HcmV?d00001 diff --git a/examples/shaders/resources/old_car_d.png b/examples/shaders/resources/old_car_d.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b3c833d1c089ac8df5fd9e0aab87660d6d3f39 GIT binary patch literal 1684886 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
g_oYA2 zGoSxe7K=Bz_1f!%-DkP`>i0N0Jm=HD{^xnBT@Zk7)_2H)_N5y#sP&O32Cpgv%kmh{nmfM{Wo9Z%ARw2|22Av)RJieT)KXZ&wTMu zlbV+6&n$^a(EbPrjQWe94YM{~?0!;-zDA_5DG!ipG<^kuIuCdVOzjoKBdJ#cN;{ha zM&91X>c~*<0?urU?@1yHOk45 z`TqA_R zPK^0%L0=2&zA$Xpyq%&1VvILyR>2YG%@$SYOGmX0J{jW}@F1iZ z=(MoTfiz9jXh@tRsiP)E#)+`rLI3~*^wD-Dh=U7A6r>AyUl4P;M)7J)?j(1X`}>Fj z(}rm@N-bE1EMNh`;0T!*dB`&!pucp{7%~RfWZ`%lK?PMX2jNlucI1iOUH<3);$PHRxwx0yEbV=)Z8q8Q505BG=T{+bl{EB}{&gKvKC4W7OPweq18 zpct$Rfa84fxWTNAEL#|+0?Jz+3nFZ$iuup;oOs8%0D_{3D28zX1fiNTc|k-`jexzc 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

!31DJs+sDlW&f;(_k zj|hPr0$M7&r{}C@i7^D;-CwYkNE#>FQdwAK9Vet@u8#wKH{*$C0TVzRM6Rka<4iGP zuAl`1P?gejNB~2Ciqwh8g`p(IVIsEB7^JZ$*ht^*Kp6l7ZNMfdnR^F!xHo3NL4;4N z&+u(VHXG(m;^d2ek7>RK{Uu+1^A8zjOWyk2SGaTefYd+@P)9HW0C#AdpIOX|%he+k z!SH7UfoiQFpdsUCxLkFt{h2BNKifD^F(OV-!CaY&aeLX(sL;0=b4NvpDX?fN;vfVx z!gj2<8I{U7u4!^1P{|l$4~-YZlx$z1`7BD)0EMmhzhuX^IeIhUjrb3)Rt*(M!Dkxql;+ zElfRl3+0r%zx4On36WPHzs)#1Agf|+OEpFN0ZR#QB1{3-7Umt4f&H^Tp)C`ec*NyG zStRJ@hY)AzFtU|h`rTK#5gXb#+ch&V_O!-mVFBmQ4M_jmc+-EXj2 z9P-w+FF2wP&Q^gd_X0ztrx z$qQpR#7Q6umcc880FogVr~(2=0Rogch(X9u6(&JKp`mAtEii|oPyr910u(3_Y=A0| z1B41iF@GWqWXW(*Dht}WWnxW=k+#4l7oZZe@zTkgc(c#>?j15ptQl%%8w-+Jkigr= z*NGF{?Dn|R-DLSY|7SJ<+6pm%0Aqp0tvxmepTzo!`wFHl)R6^|F+%i6w#wEWj|=hy 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⪚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 z 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 O2|AVb7IZElnU+Fwg7FHuJ>@bBsX9LHy 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

S9s%df11_m5%qK+ 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

O|hSWs1 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

BNmbW{Xy0wF{uZ3t0In~oSFG(t@+eD-J2 z(+9A+L>@MjRgajF{`#Lm4lcp8rQE;Au&ZE7n~b=CpioX=`oza6k3CECnO~sp_ILvb zxCpW9DEkTALBPy^Ey&Ns!9fJvAJy$IfC7zy2+UJuINdQ1J1~$w5ZXxUSG3C|i}i{S z1+N8nqd3@HVKd{yNFHHvegs?81}Cd`{h-;Sn&H-g_TCxJr9`iF*4c zlgh6utLpiE+#PxR8J0mW!1LvV1# zP^QBRT=|K=#KBMhIo|%0|04P~{uawGzsV2%r~gF`4lmKxB`5dZ#_a*0`Rr?7`odS< z`uoSvT>9N-2UokSeIOmQZf@N{Y!9zqKDu}3?A+$L5L^g=V<2uyKus>Anx*>5Y_k-p zihB%@nh-%Hd8{eq*i!;7WNj5Ok&5Nq;!m_2Ucop|rB}Pm|C^QLm5i6xs1(g(=3MMXUReYFq(jcnK(uE>< zthKls#cIx0OSfY$;F?0)Ym=f!oxOV2YNbl4mWyH@!QFxRYdfTk~T%sBq2%@ z`*oBisB4HMf@^g=h{RgNRoo=F&Qg8t?rv5_@&qmr#j4hYXcHv_XDUu{m82qODwPmo zJJm>Eu@s0y6Puzbs++g;F-o6Y_Y|YnIm}TsByCb~i4?1iG%A`JtF^dRBxocOL(_Jt z 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 z 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 u!d`zee0XF_g`Z;9H49Y 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 H!eVpRWwVYittSWFu)hup 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 z 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�E2c5(*Ruq%N~4! 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ëmpPj^sdBj1@Cu z3?Rm8oM^lUg+;Bbj+JTYG`Su$>Lz+jzG?A(>=MfLedb&Zp z@U4rq!Az+VF%uTSK_mHC$QA4aJcAXG2q8g?U!!g34($Rf z1`-H1^YH1reCgYNg%9t%#o6^U^2s@SuLuBwIGjEGKKEa~!;^<^@cfmx_{`OB^62Fg zYJiImKc>bDCIwidUT7nDo@lSW3G3GxUjGsaC4TS@5}eB|2+G6rz}5DB-a7dl%O-Mj zd*Jyt^Z2>|g%Ar((-1^yV`WkYcfk1Dr=P}eVZXyJ*N}p9_rYD_-7oO9pZ{gFIi=}4 zY*cr5NL3VEOJxY+k=*Oo`>q4P&!lch-^)JML~@ zux~qFF79xWujxvm9bg|Im4RXX0O?OT{nno%e)|KCM<}lcx=kX8up0)Z;Yd=a8juU2 zZ>R`4!+3K*gELM>o*kp9557PB6#FO?Dzq2!YKSrXx&)AR-`zJPA$XNNlJUz#}n0*Fp#xO&^0n zn9m3ZxC4Qxks4ZFK7Gb}?|hfnzxoH6%ND`;9Z^9HUcUb;tWNH+=o7dD0XM;c&HYz7 zx%UW{!1}cxCVuTt^YMG%#tQ(H3;;d>5eT3G0C1=UFmMOKX%z6lZ_kM;RB`tEk=!(d zW+pZT&xzgTk!dIRGSV(*PWzdws}47(iv!oYhVdv|oC|kOM?Su6c{wCv8Cb*(T`(5m zh-Qt-I~#%394 zf^y7CHAheY{P$!GpnwDJkcyI`5XKR61(c|ToE;isRWijC)|u z;gvTj<4gLhC(Jh^x-{bHntZuKDzpxVb;I$^hfH_ZT+|mVhn5dEXSjDDEzGw>ohZw5 zDuJXUS}UeA#D;`nfT`g@5f7NncpIP!&76qAIYz@#u5HDG@del23h$k>{kQ+>n5V<) zt33Y9S2%n8b#fFWUU2jFk8%h*N=n?WPx6O9#}%3mWC0BgVgmaSI=~?X$PT%}$;!CK2|zu7D8v?2A!kDt zkSmN^2XWSCO4|y@(eW@+pFE?SKIFJajGE~8m+YH0v4tkgysQgEjHdROI3|Ty0T%>V ziG#w?lv$jO1C4QT#SPS;_snH#F)2tNNt$T(BPT8_7J+wX8t5#JP-=92knx zxN_^2esA0@11s$~RL3kZF{6HqNkGCmD}PEf(D5PL*kfwAMfjxAsiaCaMLm*z;!qac zO~O$P5FRxnofa-li84Y>IF9g=S^^tCM=Y?f=yz3s{Fc!Y#ewWriV2!(MTNhh#a z!l4g1P;QOZ;jsBEW4uQ@et?RRWkM(%xy#q@eT6Swf5hA@D1C$1z{fl!xRJzJ)6$la z69i=qa|NDpYy>B=vH_nvMj}Hro}4yp=D=MoY{SGT9fBeyaCAqlps~ROo-fwWbg%+$ zZ}|g%<$pl#7yQ{j{+|IaoYfmPrErrEln_CIGIJRh^sKp82TsN#>RU>6UgQWaSODhC z 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

jj_xh5s{edFKB2 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

V!5yk`eocsSpU!zy&Z61b`(P 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%0AbPtiX1Q{4Tf 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

l9z6aYvN4paz%=Aa7NVD_LX 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,l&2m**eq#y_)KnNf}AOyrfFof$K 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࿚=7k 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

@FrHz`|rX#c+rR#A{&{QJgajqg;gS7z@ zBF^@dg)(GMvL0Is)(BWZjS#2-7}qP7S{BWE|!4lxf$oHjXML3LUVc5zAG}{Opvl zzstI73BU0gCKoh6BErwp49I?#$6{fwYIng-YxY<7A%g?Yo+9aLLIsfjrNgw$!DBF^Pm<|1HX*K(Ah; z_~cJxp85#g@&ucq6wBz{R~gnV_1<-w(U@$6sF{SJl?WObt3^doiR73cwz6`C!|D#Y zN|cikIc|Wh@pXk?J4{iN#s!py>?%S6Vm zI6tNHg6@pT;*lXhJwYcHlOv`mAVhL9bW~Uw$Os_`CMv3t>|sEOgT+}xVT8qeg&7wZ zZyAOj)Ay8Es?9O&xF93gQ;1hz!fZ}pW1qO)A^nQlS&C|k#tzfXF_TSr<~hn={J+t? zc^htgoblBg6hHij;fr75{@d@8D;QUaq>vM!pb3(3)XzS_aBxgHKV&}*^wpR$XBNBL zbg^gMuTfXR*^+22DJynJ$aKP3GTJ8+2_F*xS$ae~Mjgf&Lhexv7DWKCm=qDsWD!&q zXAKxZHG)`-4rI+(BM6zS5e38urLS=H1kDLuE-4OA2;(s!8FEsJ@e~z97R440w^)(d zjIu^X4eCp57IFv_Br0EF)DT_q@czk01qvZrs7Dl4g{>+?9l2einh;x4)+0huQ@nnT zF_306+ke5VJ$d z33>ln?6`qAU<7ItiEe`N6(+1$1w-l;Ut2Jiby7BP*s|$1cac8`EbCqK*mmp;Q*dxlwORthx zDN*%-uHK{@Ut)6dI?*`Z4;Zo~M&%Ju00mpF}zIO8$dlgfb@ zG9znALqu~1YtgJALf=PHHZ-ND9Az@FIL#E<(1%PvDBcLhSv0{A2b^^Ppn|gr>z1VG z2oV&8EC`CKvN7AFsYd*jzxG#n7<9m^eVr7!evjMU7$i>a%R`O*ok^dFwl`;vy6U z1OWi;K^&ybeL%@6;GE!cLCgu^F(9E?QO$Ho5V0T$5bWdc00ab3l+~(xXb2!mRo4_{ z!F(}CRVf^35O9K~L=Fk(EGcJlR-#E51SBIEv=^RyCb72zho>L{sz3%T)E*3uuJ38a z9Yryt@6OPoCmr4+w!g*J?uT&f;j4-qBgWU{?1=50zFW{PZ=)(;l&EL4>6CSZK0wveJl$uF6 zIuVMvrp%GGtqE8}9bj0B(#n7Zj7E?p4^!TAU>sVaDfoulBG^cFiE_PWbJfvVAsdU= zL^E`ZSYk=^eL@vxRCtBC&#Y`gDG?FN+7wUW zh;y3t8;lo6gmU9yH-*BFn372Gj1cDp=}68o?$2147YVjy9L^Z*OZYsY(}w%iK8^Qy z=hzJA%w0o^;7N@8K<*O*9t0Yfu{oeXwvItF)9#F%g=|YY*Pw1pl1$K^z4k6;hNa)& zPPvZ{Jw+af#!?*~u=VAYi#++?j!K;u&5ZjQd9a6uhcN6mH z5>YIJ_V_*!%Zd@o;p8H2uVF*`zeZMi%>X*jValWS#0dHQ9)fqQoY4$;{w}p#n@#`Iie&G-I!ENSnl0q zb>kVz(?fIx_2y+3Pk)-TXFrEMTF`ZCR?ah;?cxBJBGYzB?hoML0iGEp9zR6RZoJ6$ zGgo;cuQ@BGB!nuiNI4<4r_GR4L17G=XA20zx0)Gib!>`|G*L*RijkQ>gQ3nPPAy_H zRUFvsGVR6;vzqhHyN9e71MBBM%5yJ&h}m-=;oze`%I&K!^6dVT{Mnl?^Yq4)PwI*f z=7A5G$dls@It_ej)w8U&S>^$od#;2vZI=<9@q{SFaF_Ppcd$cbZ|6FD=N>L@119IKPiogI1elof9;3Vy8?7OOtEr=rDj>*=Fzsa_>#XMsYjW z@EcFD+ic(~VKowT`x5o$1>EKqO?$#7nX;)EZC>G`TjI`7=*mDWN7UnMG*3QDsAkw^ zgS@qmzkCxnt+~H>fnonc)E+KxZnL?44Z1@ryTUt%7lEe6l{K5WXOuEWdpnqGPcdu8 z#7kFMK6nLL9g(IUH*(BA{)Z`F{v2Ur2RpP6Me?Tg1Ww<;-ToGZL}Yt|G}&RW!V0k2 zlcXSJXsjbQ9vO}(PEK&MUDkNgtv9G9HQP6yChuHETti_eghuEphmJh9DiJdw#KbTi zV_d`L?YF3gHSOM$xN?kXCXC7vQGpQ9=;>|4y7Ub4kj%q-Ps&gvOG+yw4Ybw+mP}1g zg&QgcC#ciV0el?7DsUy6>r=|*edbybcdk)?_778q#I?HP@{j%iNqg?U`Uc)X2EdYn!i`P# z|6~7ko;c|-zw;H2w=c6W4Q1t-n#l35|Eu(`e}Vq`M_Ii3D*c1oglAr)6h&i;XeMRo zF*r%Y)Dv^W7$v1hZ)<`$JOPo6QP3Q*^dw0vvPG>Wrig0B`4&u%=8{Z_)gEUOXPwfm z0)u9fv(#}#8WtQZmz>={$CMS)7_6UxD>y5l^FmA!b8trL23C_1GTK0@2{9S68lp4w z2!}f6fJ`|)EKgZWR*S(K|EDxv8iX}41;7kGMyL-Dg=jr@v6N(8<2zWeewcPGo78>cLppOF`EvuL~ z=?rT;G5Lpt=;-(e84@Qudn}%~gcJp#kD!hwS;`?|=BJ#ia(6W4s2+1#7Az!^xv zxvzO|HsyBdxzkJ-X1iQ`?<;Kn&i|3sgN|H4Q9w=*3P=qY4^)=dZ+wo)op+fWz4@?v z%)6iZ$2i&l5aomKU=H5lc=IA%h=g`cu{>vTew*U_5Z9iO@7!kN?rrR_X1N|%iD9xl zq&Pc+EQ}%oM9b=%2(LJV@xC$J>n7uOS`m)RjN`+0w+APk;2zV!xw?JxbWd2sht#sW`% z@MFC2p&y_>J3(@RL?!ks#Fa!3E-x^_prJx=#2A2E+pLjk1#`|c@%5{B%uNsh#6vxXjVi7fX7OLf&wCfWFeEuIb)2Vnh_BML7dPHJt=04 zbr^9Vil#^opjJ^7V=SnmYDfykCXyx!llkP!k?91&0EIx|grbJJf$j1#xo?O%XS#LH zX!I24s|Vx|2y5l&tY)1u>tRVZSlV-s4khjR5#4gd;^dh2Y{g(s(BXtQ%sE{J?ycbb zaKz$FQB|B2SaBqcJO+bvD2S4?VgUd_AzRcW1Vs^y2nH|;`Tad00Wc^*EU55kF^0$6 z3Xn(yA_hPdCD8d1S!$flaX^csHJ;8XHfLrSR@M>JU{j)qnWBrd*^o^JTVN!kSrI(0 zUlFa+i^canwTrCkP1e&f9{Pk|WMXjZ%oI20XklEWPF5feIkS5kL#NIhCiP%^5K z7!%o61mn1L_M4QcefT^`MWSY}eU(KqMQw#x$7wSoCC8*)(#wF4783@t)(mw)uL@Z) zCL=jA80cL^Gt9}x5(T2Juu`Bo5d_3#BqfT_(v}UeC^7AlQP)u(Kj7@?57SS_2!VRJ zVmaGn-CTgAU}mTTH6`Rs@Y@W&!DmIXlChjO4kw1*dx9}|%|u%u#txBBu;> zNdefb*sf*Ry~apebXe2n@GvE{)hQAN>|_HaaW?X(Em@BmCShPJ2+_~DRXSF6&8531 z6laM$vxcM=WuU7od{Z$jD-K@zLCnxHFDIN|eu}I2?i1}1tLd0D88etfUwd+}l-&aB zJ?AfegyE>87;Q6nN84<2SA=yrp$t8Pt2mE_RhJ3LvQ`HXbRD?qJ=c~!WnQtYN)BkT zR+#pJUA8Q3qO%6|4djSxJ2VFFHk;h@6JF$)h+%o*0`+Lh`q>){&e0wpk?-7MpPGwB zLF&NNQ*!OeF;Zm9i(}=5=>+FWjGvJd$`r5{3|%}Y=Rn)cxK%h#WP>|@^Iu^9`Oopp z2Y!Z6&R^w?)iLX^;NobDbiT$`9?_c9x4yyhwJ)KuL05h?8IRfkWKtL~B(n1$paKI1jRrN4 z)R2PGb!QMGZs-}y2o=a;$qMfHE=muRZJZbo!5TwO3B=+pnB=htL3{cb@wvp9Okqo+ zM#e=!X$yJ=$O1N#C6RD|5J*@NO10o05~}zd3Et3^9#AAFqI0ORw7#O-C~*A=!?fa7 zxkY_+fJuRK(=g3~aRv6$7~R-Li;}W3teh~|g2iN?zTP5-V{%F?21A))MnJNXa;Eep zX}pEvNzG++d7C4%LGTl{`cvd2;U*J?J%h%Gvlg>=30HgQT9S{{N@f_b+kUARoR`YaZ~tdGDKxEPRr zfgHX=$^&V#3EmNnA&DR{1B%gvh$EQ{Mv<5h1LLM(Ib?D>Cx;Evqqfl8x%zaGJ=XlG?N*y#!wZ8rDk$Ah#J5kMTxbJG^`+J)MdztlrxF& zh{)Q)o!_B<@FxA$C-D21@YkO~9=wOHk0^Kcx%{zD@Y>(`1yTU(0I^^a&BYz+o6pdF z`5So6h%M+tj}u4hYfgUqZ$8Xk2_HCS{op>;$3H;^Y_|Y1(ToUc=v8PC#x@gTA_mAR zXk36s)O)gKa#nKA3}VR`It`R5VshdvL6IHKC`FnBjzN_{4U!ex2V_WKGAHZ%1Woih zMF%BRmfS0CKBJ3)c@WB~WE3LFTiTr|))-Fdu}5jMYrrXS$OGr71Ae5pxE_ zd0ZGE4#c8HtfK-%l`dCg3?c@jP-`MP#pr+u%DFUXiZr@L720gcNx*orDhaSjvAIXB zC95G1J>Bx0oRwj`MK*>m^?*T*2ZVx*z@vQzqJYf~B%`9J3MM92SrBoQs$>f6uV|eHQi+3#Tz#?aSza;yDI0!LzblDN3Wyl%Hfsj_%#RH6~xU;!~85NlIz+nsC zLhUj^6FEhCU$M@KX1%1hB~d`Kq8X0DfM%tlz*u2QOWN3G{KoHKzH&y`0Am0^6;cPO zhuFfzq=&uxhtVd(m1kLQUq=q#M*G0M%TKc*J!y#a8`r4kC!9BqQEb_q-{N?0031b8XHY>BAQ1q0 zwBxLR1ro7)8QAmQKJR)fjRgAUdm@o*S!~~lo<>DT+ zEf^yd^%P%@NcIrb$f{k@u2&>=92~Y>zO=?VhXznFST|;Ie#Fo%IXQTTvbss>cj$*D z>+YNwYse090|4t5!XWgkg2kyPOLL`%n;gO`wqxw}4GD?N=IJH6~5_JGTAARATl3*H)W~R|X7LNE@W!yB zz!<0^=nw#qi88|k9LPhRWpC`qbzjErT#k*2D&i7FhT7eP7K-A3^dHMQp$v@t9Qx3 zQDe9_{xnq@F>1e#vkfjS*jV1CNWzi3O01q@kz0_Sxxa`2i2{*?W{Zu1F#~}DrNZ}T z_!t0B=L(X&%7Y?sWBm$8MZ;;%Y&b`jigx!J^=iqo?KytpQ&87zuHI#%zs=pr$B^7p z>56D72EWHj1(ywJJjD{peIy%2WQH@3hD|aB=bYA#X4T+gA{oI7c)Ma@JuxRVW=3X( z%{|aTQsyZl*3bn=66p&^HU%rANCuYzqL!))WGr9TgteYk&bZZz2fii%>-HRP9q$1J znQ8Jw@wnZm5rNjtsQPnGMiUM`^5eW)W}Y2Z)T=Y*OjudZNmFty?b2;T-kv7Zm260Z zILDE|8@3<@ho86TYEAZzb3euz*fa@L`8JMkZEP|i7y^SRHY=VIHg|F1jE%zwbQ}>j zHi^|HF-5Q*tC{U$!O(3Egi}pfpb-K$Yh|i zk?}CF&X%_`?5~a)Goh`wNOdF=m@F1x3kqp5;^>SgA_O-Ar*yHwh60}oqK$|uAQ<&z zF=U&lH4{Wg3QG-SW3kSoVt7Di6%!-1M9Hjk$z{!SdCbaKO1mNxKx-I;6FPRV(ZNzFxlL~r`%%z}^h$0vqo2jHHktHH(SerzU6GkkczD_wmz@MJu zS0|WwMlc0!pEz3?RKX=s3yJ~|g3$Gj!5UV&q;(KcR5J-!Zd@Z36`b6H&4yIXFfp={ zf{fzTU^QYfs4*n1F)7m0p(41rLh;P4$K-_3h+;9j8MeMJ1VpsAb0+lDG7d$;Khkl49f(7>vd0fLbB< z2~8P9&>$?#fVT$CJp@6;pc+XO7x7mOQ&R3-hQ1!D=LF{&9$ODrl3f-3Z;MPec&m<%R*qN#~N zQ4uhPm;5Ik74V1j{~Pa%5abvUeOv3H_YVwZstE?lRtaG6m#B zKO`jfcmlba@#WDJZ-g7?YcwRXt%*2}wIfK+Ep-$ju{lH@G&TD<;8Ws3R(ysTN~b_j zLdYDMj+i1(Im3+xi~|Hh52|22hyhK|pTqR$xT3C){n}cr6jx(I&SxpkHAJMuD7|4*aC%FuwkPWBP`U!61I}b( zE)XkNC-fbZMMZD}If432$Q7EDx@bv#qSp$~Yz8rqc?^*EJrjh-F#P?YfB+zXl8HpX zJzgdbHJ+>)MeqWJv8YA_B_J5UX?}bv8EgXa3Id8{Fklm8glHYse4j9v;ouaiNIRHZuJsC^Vfj&hFW2h5kF^D{3xl+W6rAPxo zN|N=&6iLPra}Oy{RW-ryQin{TYu2{FrXF%8Q-B#gN@r2ZaLQr*G@Hx!Xu>Iy2ULZ# z@&oKG{}N6XD4rY}vRUKx9E%}l#gGU_S!ia5L}8#UN+d!VJy{ZGY$S16@`m6l6Rx&he-3F@z%op=Arf()k1e)3(LLgw~s=_l(cyRI4*= zjKr$p7(bb51Q#DgONuQ(M*}w*bqqGP*h4Io|UaI zk}zWN*^!N98P}v7xjM|5`-anIL@{)j!xO6Yn)A^H(HKT~4O+92dU7@-Ti`|MH4{ZC zQ>0ukaG^tuW%s*Zqu<@8zqmzLl$aDjEL}fGOvyk=seo~0O;pSKq`JT^kJ-HUHsQ|e z#Pf5^*y7I4(9+zDR9gT;0MJBd-3?&oIcq!E}c_KO}5l zAT$kPMg$DwAyCGFgd!*is2F-z!u4m^81ErRcUc3F8RbWMWIdRh8zgTKvw&iZDQ2h~ zgEgefFVL^o_*cJzb+F1j>h}tg5|i(I9iJ?>*H5D<(_MQKKk-OqP!)RbaL%!s9}&|) zl?$v{AAkxVQr$Tl@jL^kQ=`1ew zU>vEaFmYg-S9mcPKcW!Bball2V#FH9Br7UHE=nY~=z7j+IU!ibISFTAGb<^9BjOBX zwK#!O4JKf_tB2(qljd1h4>P44DMqGZG1p zp+E)<;2!S>#XNq+_vWbqSOfzAC<$;F03bd(e#So9KY$?t1^^W>nh}KrfMVc%$5r%w zM>p_zlJscFqembEnePWd_&xAFR|fL?UcVm(Lx%SqKfV9kczlI0@V(y|%J+lt`^Wpg zC4JvM4DW|vFhD@a@cwO4^5Z>{(eHCM>GyGE6_7{!$$Sq~P&GWhd>Md@kO6)CYkm}! zaR>T3Q9}ZZfHi`spcqsfk0!66kX1=m7(_uWg>#@ni$$G6 z4yYPjDU_-t$)v)OLMG>dAWA|g@&G7F4P8zcRjjc75(cFyN>md$XXfe63X5Jyzb29bRn(1?3h!KOuhXIp&y77#&oUubdvM_kh%qUI+3>~6Mp_bjy zQ%4~I(OZ&&F$qz45G*~AZ2(co36{s)zWEtGy8oBiUBYn#HUk;L8bm-XEKI@dxBoSK z<5-`r815<4OW)y2{08SHaOcts+-;@=0V|2E&~vLAvl#6_Jm<8m0pa@UgrzSzt0#~n z_cymuXF#DI0*H{UBSwSa;d5?nOn9mt$XN--kpYQ`P*_e&q0E`yD375a0+`>&9ZFC& zC?FPc7Lqm8Bm#~M==?=($Ye_A$MoX~ zwm-$JJ4g}D0b?9S2gC@bDCoPEAz6&|7!h*l$rNN&^wIUSJiflp8bW%MU7SD!#2N}y z(9?rL1`rSgL;wLG#z@MEs;Uqp6on^*KvHmIRE1~_Lw zGB9GW)I2YwLlU>G+@w&%X&ICEUdCpiv?9o>X4jS zvP;syI0G1#Hq(ovGYzVWL&!W*#}^RsxI97A0yP!qWJb)yiReciz))jtT&vwiY$()U12OF%~buG zl!bflGR_q=>5Ohz)1{hnR3OqZ&58^W^}8QOKw-Xi%L1B|;nTu3Dyo_RB& zm@hEmaAN4z3#!!dpcGc3q~k;E`HGEqzRKl$uW^3qDO3%2pLzk)Et#y(ING~LizD=F z&SS?YMVw}u#W5lkCa)Qvyvg4EZ%}`==ewWyQI@$O@aD;(S5fL6$@;5~+_2wa08+W|oR%24G38q9s&s{&oc)^D`uIm|{ zM~01t)2J8?j4iY_KKvKUB#&etR{jF)qci%r&L!z3uZ z23!a@U`bEm1@M?GZ0ef9L|QR8r%Yu)fJJhw)B=XF3?vaUf&dZ&*??jn{cRYQT>>(L zFX-0;#c-EsGxyI0aSF{ALvL8b6}Eea>2LoHw(9GA_tMjxR};pe;!KWd``78d^vf*I zZt=`>ALH~(&l3&U@jlx&GfT%PTQq46rXYwT10H3h36G#;Z0gC`6OEz*20;-7Wj8-y zY4(Ur*o=?LjaUNvC>{lj93i5ptO0`{fB+fAU^Fw%5vPeH7Rv~e1wol)#cQVJF3M$` zM(T7zS6n2L*$fXD+(lFjqM#xVO;ALRa57>$kLj(YlT4O1n}9_Tlu?e9qR5Gaq9~g=u~O*x{?PY1wKebnB>}=rJq;Zlf_eB_2?jEX07{GJ z6srbdLedkG)WALvQ3N3a1tK7imMI_zRt=hjAQ5q%W(eP(AV5%)5wiwLjP%s0z*t9; zM`@O3pjN?$7E>6Mf&>h}EW?@2@1qZTdTKgaDguI_h zf(R%80TnQ^0_h1ZgGo&3=(Q)9nkx2eBty6L3`<*((-Kes=y@n{Vy z02w2K&B|OLn1YxSl_pdQ)_@^XNJdmpu^0TczzfMPYHni=SsNkNg7 zOh?udrJy&FN(@0gXphrGl!}ZaGLQa@n0f_e6o z2$eImse>Hp$T;VS7Ge@gD#(E%C#YxiDUzKfUAs&^IYG&stPFA0fn?00=iDmgcuH+7 zCUjJlU`2>S!e&ELI0kQ6xPs^eYZM;>IRPRpH6d6uC!!OQu{hIHr-)68=^+~7csj$Z zJS-Co50Lxc0Ws8p-Fd-6SO%jWarzC+BGT8{eHy{ue zw;3%Du+xjED>#p9Hcw938WO#;9CylLJtF%(Tvn=BlKM3(6EN#J_ThdldiNG*JDXHz zXK3HS_C-WtnuRQI>^=1m2&rT+mX+<%BxF^{k!mT_SvhsUa?LyA5ApB(1OEcg|K0x$ z`(OPIdJR;eTLA_Vpj+GM){Oq(Hrj#IaJqMs<@rFdIAt&^PU{jCkIjkgSRh(LYJncq zfHNEvn@suuI)IC~V90GIm7ZV=tU^-7Xhr~XA{*gOSuhM>L@{K4Pg0ir+z$&gA&LSuWjC88<}D4S8KjOVTiBmfiv_SYS`_MAWc0$X2y zouU}XeaC~h&KXoN$pS)xzo+A``nX;lz!(D<$U-8Mb5H3iMpjW(27#QxTSrkiMm`c# zK?;HMwqsBQ;~)#eA~GHebzRV{TTo?fl$5}m#Nd<=YU**qdZq7_M8W0=%DjR0LLwmo zrEwSwCI=D;?=5tRQ2HOKd7#PynGPPkFz#-)9J{cGRk-~B899{1jQ zhxvTLKt(Ca*eR3QCQ@vW5y~zz3?<8$sU+czA}(X&fJQ@~72`apA*Dd$HyETLwdZJB z6Dde31CX;)dW*M0*DETIy9F|2B8m|M0;&%UK`9DPn=?6Ps=A`<`iE9kCC)jFG4y>; z%o%S4QG+-o_i**%mkMN{JNz~E1Xx=t7a-oko* z#B}ySumgjR2zgGMPU-st&d!&d9Vmh;jAFZffowN3~8W`9&2G% zTNa(-vKmwke?KTf29*4JZ1)&OA_>nUAbuYDWxp3}Pk{V13Wa9}r z6EmcKzzD38V@0HJhD41pAewPvK!u79lLD0{$UT+{i?TL`-a6_|&AyN|UV zYiC5Sq%M&)alT%XQ$WXC_+^Xfgjf{Vpd=BDCQQzpRE{i$Rd5U{lxARca>~XcQDvdu zEs0@`Ssh{Qh!m$tX)v5p#zZ(dAf$n^22)KL_mPeD0jtW>mr=W**9p#JyTnd=!h;8QS%=JKyw6j2f1T1?c2Ih+iQJ7%KT4Ic%DZ^?-u18ElMhCcWp>YN$7N-WM1HD9& zFPQf|J}&UiqB(+sWH5b;iH5%LoEJ5U5@ICejE|WRpcP9|c)XSf8B-`__Vig1GFdYz zC0gg{RcNHgibWN~D4G%m$VO0A5D){_C@O+?7ULa7waIEZ&?jL$&UmMk2+Mj*`py^7 zd+*U-xj;Jvf(@K%!AV$C_5*#_5$6la-}pO(@Fp_ZAdfrDwN2ctAR!p?_e509_qo3+ z?}s5hevSYFq(`qZh76C5$H?DzKVZJ+PX2hb5(MRO)nEc5pxz3Z;U>_@A)4L@;&(vkB^fvzsJaKh$xxIP=3GAe;?a@@A+f|d7P#2_uUrq_dTis z^6xuy;`{$*9&aZ(lbuJWd$<(HzsJ5KpyY=p{J#zgC;}KD@%^A8_?U4h!SD!5{(J5Z zEEx*~6(Wk^5kycxRRP6_U>=_Zs+pt!79$P-Mailpqa;;Q5|UU_N|a>CnQR?>)jWI* zlQnL+0%w`;PMECM*waJe))rM+QZJWuWl3KYjMpcG)iKF7%u@5H9LAAV5RLTKV6x&c zQjN1&iOo71gNiN?~Ddzb*}^lj|ntJro7k4QR&mXozY>(G0?kq4k06;*1?{)ki+GBt`(p6Cm z-aBH7FT917hih1dj*- z5JUtkLRAH%Gl;P`luUk1UI5uB{Q#hhTqfgK%$0xT|MG7!KZAeZANUJQH#SJ!z_6P0 zum0cu3jfyM`dh4*YxXy0>}+q7%?LxLqDRG|7(@d`9f%{ULB!#$5OXFY_(lnoSW0rp zwEdbP1rUQVmXw5)5?Mh+zzBUvbVEcH42mL%00>$2kyCC^RZ_~RKKgz%GlU30S$g{Z zF$rLd!F$gzL}Id7n-MkSJaF^sh^>k6-q{jE!aG511F}MlB5G*QBB~J_oGmk1GsQy^ z0DPnL-CaumfNESa=p90QhxOu&^*nKW*fKwd!)4-VA)L-j)@=kJqexW5D5Wp)&av(y zDGJ8HxN^8Vxxsq4GGx3e&Uchqamf(vBlTyS$Rdae!uw&eAR@GOAOa&C8Oz#D$jPAy zSqv^mHe<_)D^OrrCWazWU_j+j6h?8X2#`ep5CugZn$wJ=711aeFd|r#Ects14@3b` zI@_b!QMpJc2IxRk06|D(og)adm~l)|5daX!T6=7?2$uU&u$MQ93?!@6wxH$FK$rtU ziSP)j)Pp67BhWHd7@LlyhMW>M4G4+~L>o~Qr9g#8djz9`WM$zjC5Da*WYeMI0U^;a zi9&(0#_WoE-)a&bb(=#pa5bcEC z?J)7@Tue$&#n=k23WT&E7oI2MU3^+Fn43JkaD3MnT$`_{hrrR~63?xV8N!-F<7pOw zrHML01}kgVs;vcrTWQ)(=bq{YU_M&Dzz;L0W1XAW%1#49`P0y$RR-7YEH70cr# z>uQRP85h?qP7{Pc*xDeDDr)O-=f^BkKykS9M31n{2E|hLfj(!dvLIT+-A=JNFplS} z#@lQj9MQb{7TaM>wwCu+n`kqk)ETmhSTi64tXz+ZV4_mw%s@p7hAOS-ho0$)vhbN# zn;CnDZ&P(=oa|p=J#(C1yvok;>(s*zU)_I#@yR)xYfEuq!u7YmNb}$=`kexOQ?vg zpa(0SJNoOaKlyVUY;RB!xw2SMFIU*b>pb`6zk@wH;hmR$g#P?Cm9IE$Jgu`_7AWhQ z!^@vw<#*}E1@+<#r@~_FF|lAU9p8N78qIlyJ^W2ZRZE*k$Tw~=o802y13$y7*FS;p z&d3vk>y~I^Wzvd(iSR+&!XcLDvJSUj1(xsQXIW?Uu(q1MBq)UA0(Wu&Txw74q1TNF2m9DGNx%SYd1m6ieH#5d#u4#yNb7 zSOj&E)v%y3p0Em33>d#bdQ^jdxo;TO1$$=3k@uWgLp2(+y!SOS;6|6QML}}Ul6-^s z6`GgmGNZ5DAsAungD(Odi2&+}6re2$rI(BoC5b`4k7K5o$InqfQL#XxNhb_>P6zNl z(p52>0%M>70)}Hm;`@^F!GN3r1K@y+=myEQWb-bf+b9MrcQC9_-QoQZKtMBU5^6wH zcnpI|M9dMw9zw>*9mLEKX4w1;VrK}4kF(a~(a3{>oS3gnF)`nyTgn%Ll2_Yaf-$NWIU^R1zf-{5@mJ|veMxt81p~d`z~}@c z!b&X}i&M{vn%ayArsmX?*jzG*Ats@dnkKIx&kzS4E5sxkW)8>a^t6;^HpA!5P_ zITq9>w<+ud$#aqwR(m&Sijs7Gm)M@thd>@W8h4IRa=RSkQ%}`8G(>66kg*%xHef(n1E* zfB>3+2%;HsLIe=Vl-OZHvAjiR_L28b%sDQ5T z`Cb}P4T1qlfPC)_#YM0gvVl}Ru3?Y}VgTMZCSW4~WCay4ijcUV10sg^(twL=M#l4| zWJ(dNKBgK}6wS)At6ANA4*SlG)$jZ|10B{o9!31otl!`9e++U~AQM7H0OuTnur`7y zOv{Wo9@TVP=Bq$lJ8+6>AZ0-!bhe{&CF9P}qa-untdO&^E=yDtnHfF5XE&u0#^Z&~0Z-0gV-v8{MXM3{C zf9ZezKjU|Q`*+#h*=q=8-@jsvrWYgb)y8FpsW1D9%_OWn;W=M2RutMJcTiv?pbQ zcS?wnzK61WoC(l%ffy5|v4ElLd%`-A>mKkJt;y;M1|$pd`~herIpt(!aAYbctXBnX zE7)^kIc_;${ThWWh<*SRT@EZ4mXk9$Tb3NRmYAkElbDS==BJrFC}IW8N}GDTu{f^~ zA>qh?3mEMCm~BOPj0AY|NOVaB<$Iy3sJ@?(&sgC7e_#d$Kv1F>I%}{Bmdx51=B~tP zLPe-jph+Fc*!Ta5iXxi7FMlt;kEnxwZ_NFDb&r`00N?ZY{i6-}ky*YM1~4cIfc$&z zSNXkR5DXx|S{DQiKU9B!n|_CrxW=H=WSX3@wjdWHjCF_;)Cg)Fm=co`WqZK&kGa&}9FV`rU*9#%UgsC#Mvs_R|37i-qJE6&e#+Fn@NZo=dd~34H zy4qmNM6#_36N|(|w3&7^VsdtjUoX*mf>t~9PRYjLe918Mr~xmAXdT%KH{N-TqU$hC z$z=Hjj>@al^^}7u^Tx&&ySAY+o+JS&4R#q(HBe2_I51j1z^BAYE;3Y(`{hMWiVcQh zP3sJH03k4$FR1SxvbcDK>g*mntJ^Ggp5|I_>54Jse8JT({URo<5lxK0_Pfxn=|+1@ zzWKK}dHIKFFMo`+Ur~20J4YvM9G!B-CdTK7P;HQtVvI*t3ohKfgRKkVq$Gz(sTRLH zW&hyYy!*muczb_~@nXT=;Q?w5NfTO^#Jou}e}JYr;li`TnDE`4Rauf%nY{ZNIS0Dk z9Xi)gug|FZIqSN_ot|>z%YTc-r6=j^2zU2eWGYJF;L^(+>_3Ogjw%nOrVLy)%w@F_*l654LsJe=~p`x&nt(-VX1<}lj z-EH128m83*QK9W4i>^n+vi2h+C`ES{iEDeTy-Qn~f$Bgg14tqCIV*vmMIM56NQWxluIC&r1?e6NXkF3nR_ePvQQu|7&E>)_!$2JIlsiRazM20d>WL%v% z=Y#^Qm0vYRyhD^c4wnDVQYX>7|K=}z`d$b7(zR>|f9JTq0OS8Vb-U*Hx4%g}et?Do z%(xjN0F!td{6N_us)B$?4z;zZyaM)CvndSW7~(dZ01O9oAQ!;^WS|TT1UDnV6>L+( zi^YsA0pR!>qcb$g-jW+Fz#uTHL6{R5hT{s%E2=>Z1-Te=LsJ7oC^?=QPyUvf4ap_CY!1>@{KLU^>y#)g(PW)5zcDi(&!2v0=H3~5HmhKFH@CeIly z7zn}>LO2j9Q%NXB%)aQW`;pS`*0)?M4`b zOY6XlD##YhQXx$nL`Le0)tuxOfbmlhaM|i6cs0Nd3DP3ZD8iKlM~Uj z1rsI!ho+;3s8LV|X_86j2E1n%$Vi~fRqvdRgfLh>v}O(#|$DWec!)! z0=PSEn;6Fc0x-5);VDRTAVYxp7I5nMJg&yaUyLq;3Cs;C7G&%$IVM1EA$(Oh5@WCAlr7X(P+ zWvn@ljxJ>?!8Q`j6nU>eI0Qi#0EQuik;V)_al@#%24v12a6w=c;EHojnme4637juS z&`J!R$bv+s8-i4Yl5?!Wxy2g^jAqbfVFqDA3-p3&uuTFJB~_{kA1jL(kPI`Y%>&zU zTHt9UF)-Jb3-zpQ;8B{h_H)MEb3%t}LvTbx{e|;l8plIGW^CI+UkcI!u|ohP!nc%k zf!C3i4Nx(2oP>b60vU`Lu8~yvMy4}*)OS;hrHgt7CN5hbuoPtFhvl*924L-D7RiWLE zN5d7nX3lQG>qzZmG9PHmSq^4%G20n0<_{SXJRHw?=^Z8Xx=mHXyi|s!p>0~a*pUgE zX5`7{l+X1QmLA||pZNUibL#z%@Sk09bOg`t-XqnXAwiDd z!PS}}1w(U}PA!Y|5AX`h)nk4#E3EB^mCsS`Se0N=Uyx^+_cddC^_11q3u3V(&wm3; zk6HC+EEzbt{3&;y{eb7kACN=TW7ik3Ye_@dsR8vr&wpXN>X>)IPt%fTsqmLS`B%WX4?tYEPCyX^y`zz973E3cm?O0e) zKpT20yLy-TZlqlZFPZ#wONQpVALKuEMrSY&NIN>yB5m zC%D7Bp0X^k_Kw-h&sffvoZdZRu8s#g(dU*+;HC9^uo*cyPUFB2>1yFApqaCQxoBF&~dppM4AcL_P zS(Hj4p&OkD-Sj>Hx;5XSF=t^Lw$_1+LkPn)LTbrrAhW%(cf*j0F&9b-+%(O}q~&hL zxi>tuM+_kv0z)_HbSf7zCv1jEH;hXN2htnmx}m?YgcKavbGCMm!7{HT9>z%6ejUib z5qAUJ_W!sZW2=Uiz;7Bi@MD7(=nxgVd8(@+8Nz5|ho`Bn324FB7@1UC+Pq+nv9q4* zn4pc8i=tIx-?s zVXi_916GXeX`0_j5CR0qG7+Hi3i2h*kQq}#wg6USpG}Hg;c{GS6v3HoII+S!66<7u zGkT);%mPsyid`X9u!N!~3^sY7p(AX|bALw511Jvf)alqRca6nH6 z2V2JB2k^Bsnnt~@3o0Xl_@m>$;>qmyIIBM=UyHT`po2LJ32A>jyDkX0~ge{R%|7fo3d})Uus-KrkHk5jA$0fGUSZXbVs%U<`9Ag!ZK7KL=Xr8 z(3KsPM2;Xl5CIYhih&Fg!kE5p0zhUMhMR#w0Kzac1YjU@swFUCX5fwh!^rN)9T6CY zCWpc@C3-h7a5s`U$sGg24cF^31}d721$SXC!VCk_{!Uu}Lc%?fEKya#3_M{j@QhNz znASQ16XxKlp~(q%2r~kvJ`G`zL~=)MN6c45O4KG}vko5<*0hjkZ63OlKmIC(Jq9?xE*z-5I{^sD>`A}mFZBcFxNeB!8t;zre+9pF z9LBp~h<8W4GiFdLQcx`uRQ@;cYgUTAgPz4r7>P>788I4!zoQEd>_*+D>i8|X4h)l6 zH%>7F835_Pn3Gkq6)G{6YwuPAbp3WKgk#uk>qjFNSI8X@69=DGriwJ8sV3ewaxDlC zu&I^`=nV^0@W#Co+B;3~)PN-_Q214#FLZ;)VFU^==Q=V`tbW0)q2SkrfC7Lx#(AY_ zGfv_l5+Om;62lG$%#1IJnIQ!cm1LDRcO-A9wZ{w)=)kHMPz2ck1G8%h5R=o(&EB~2 zO(ynDY!ddL5z^s2FUe7edk^MhpP?GJ4HEN&%Ww&K+Lr^#g}GyHATT**hDrNz9M<3A z&$oks8b)&M_qzf!qt?nW476=K*<}sOdC%9L1iJx1litMo0%{0P<1Zrr)i_Q;GAI?s z;z&V_^`!qwvV=KQ2N$GVU<4UdI$Gzmj=T#_9#hCrQmW!?n*Q(-cY$(8Q$yTzZARfK0tyyAGs|`v$373b zlPVd$?04n5g+D&($L*`&1DQQy!GYot>vgcl=P{3H|9{XQeBM{+{@fyC(ji$vKg)FZ>^E`C^o^RLU)-bX(ygBvo-a)r(CDxbEF4mqMI@xXa z-)Dt#`l=NZ{im0F&seR~rnk)cckIlsS9N}^*;DfMqD`2r7{k$b$Br$rUEg;0?VcB} z&z^Q?zn!|NIM*5^<+*Vtf9zC|$a&kG@2Ng5{C|CNT9rj-XgkA%l&8-uqW!uuW*eUV zWOG}q`)KCmDK7<9^D-)UF7{X~_xNVf?wcNy>rDc`U7c`jl{16Hah21{VoP3D-sF85 zQ5t$n{py}~$yXopoVZc$>teX&@cid@-{kzuk!gQA;hMjG(o;o-FXHES>B+u2`t#(? zq>JBU@9VuTtlT64)Fa-oaGrZ~j$Q6&ckAn`w|U%twnl2!WUVl{drTAjx)*75?|M1y z@l99jGq0ZRStoBlqkrQk0ftYWM!Lrr`u$#^{C1V=?Jvvs+hiv5Dlja0IzcrzC|2b5 zy@za*~No#)PL@i6cTfUin|G8fg>>Lb_1CDLVyIm+V`Niw1 zZyz3BHoL~ebilx6+P2dB+y6#{ex7_^Zob*aO-(9s9FaRW@1Og;a@I4$m^pLLt&Wh6 zU?|BA{(kp@>FLj#Ctr4z&Sv3mP|-cL=*;5m*UMy+_9`%_c+ToE2f~WV%t{(r75M=Kb^YCw!#lurI-6{%5und8Fp3^08J!#js_vH zmqveJq+}p(-DO{5!VI%mq0GB5#xSW1T3MAd%bg+}v$1i`uC7z@-xBpbUjJNLUoZY| zD%`azna|SpzktejW7phY2UoV8{xv(jDu_<`nHg;CSY8zKdlY>?Vn^;2lh5C2HKf!7-l@9Q4Z{I)8sHy{?7)v@g&uqT{_Ve5GLq>09_)#P?&c6lxcg1Exxd0W=W-aPkH-u zG_g$XxNvce*J&`0@kFqM4~@SN{epIbHIa`|_eWj9>=Xp?9>^A*OEy=0IaCxlAC{VrN=d3$kMZFEzoLHpbR`~0NuHU!FBn_+%`vs3NyK&;YtDcuG$E6bx2kg}j~ z-tl?}@01o$W)v-#G-{btO5V7lxChGLK8lcnhIA zI=olT=US{SD8MYN%Di`XqF+SBf6qG!j{ETFQLpgf63b!_)lwzRZ9+G9!6DL1-nKnXfcYEbOhNy(_drRVC66MNfqfs$56lxc@@eOzyF z`|~~PdFszOwiN1q>8~8;s*6Q5;P$2Xd;z6ae+#V=LDht86#vcz@5Q~7YB^j>6@-CW zoK-w<-FC6-5bt89GbO=ubM|z3=3>u#afisXS-ky; z4$ndPXa3Hdx2qzGm*}9B-Hh4FxT-&iXS4p{J*(c`OLf5yT+#RAI>&~gxg$kazHd&d ze($RKl6kihIUmQhur_q8-_ZRr{}6~e@TLG#x5SC6~dscMQ>?G^NE`w|p`I z)|bDjybVlw#w==WnAG3K1FrG@w78U~ilgU^Fp~0@ zv9F$L&5q$dQ$76dE3#zJo*+zNjeT9wuS*Bs_O2bY7dSkn0aKRmS+WVcRBPh$4@YWy zPwp3TZ;&Y5av!OX4+U1z6c2WQzgtEg!vQ~6o}5fQO25sKOyIqUCQe$z2=#yE;7$EU z5F?dZM_HGk`eg)^S00X~Swr4qQ|qxnZi_gv#EhvoR|;)vTafU=k^WXSY?V*a=!YY( z%m{EHd1l8LD_ar+HlDCz|E;!BaD@ylvB$N7e1MmrV5z!6d(=wRk<rURi@u3# zTlUcG`1`6-`eFsfCqDq%yg6(Ss2|5^tDh8U>L(O2tz12&_a5*%eQ2Gm5O^MJAoTP{ z>h>M~%n?O>k*S*`VxbK?pwdYZNG?Eb%`%sQ@fRS#t`X zOg+?g3g6Wm>bfG$v@UlIv zlrz&yug5=gyL7(qIOyILQv5H6B+Dx=&D#FuQJeVvftkYNQGY;WNN9~;wSL2uAFPn~n=?F$AG^km`j0V*^v#TXo{4TB=yDFyzbA8Yhr1|;IPX zW8L`M4V1bH$OfpMKN`8RL3I|K_K&O-=H~9z66|}wJoS}Nx)+liH&pa7;;F3W)rm`? z_pTt|h}^2QmXdoxR_ZHH{vu_cq)&v=XE8{C0&% zi51G`^CQJCBpI`UoXaep&Za<-5)Kg{&0zeKc6-O6CRgv`M#9n;a7u*d?O*YJ(Lp$N49IeMbTa__(Hyv$T5RS7AGvUS-oo+#teuu72Po;+{t z>r?ZB$?4JIumm@PVS7)lbfz(M45;f*#@lXQ2r%@pVNx;gT;z?3ku*|yc#C+0T@4Fx zk$3_hEcW2~K=&6E5n-_6CM3L(L|O@21Av@HaT=QQRhbxIKLZmmV$8kD7U6ooCSLh_ zrJSxJ%YlyHn#TC$=X@If-TY5izMVhN_s}A5alzZbpnt%_E8F);)1Y~*pnmy70Umx6 z=A(&hj!(=G#JbTq7x&PC>#@6zXq1jW|3_xjb}y_XMg_6GlOL+!Sz`j&ulgyxm#Tr1 zJ})bIt2$GD_~MfZKvuZvh`2F`8w3vf_;EQ+7U%J~y&lDH1wytaf8Z+|;g@_|!=ZLB zPD~d;!aqV;=^%^>>;GYwTGU0$bNs5kjgL3@C9RdEo`l}A3KyKS@w0hE4e#=MbNS9| zcf}UlYhubRHjXk^IKe0>pTQhkaF-Ob>V)qNprIovrQBDKEta;vcOC%n1@HqaHAMxpG z$ym)uPQ={7mxwM3efP@tSK3T%z7@9YJw9LYz4)|CVDS>Z;& zt6QAn66-rMdP1!Ism zKAUK1uigLqH2q^z<{5$YGmbsx&Vje$UT^rZ`yqFkgYg)z|rk89zOYlKz)%PpC`&D3;Lfh4GcCUvQy96 z{)kPy@&9&5>|pk9#nU75N2P-eJ^jx`7x-70*^x#dpL_lF{?^5I@2#T$_~{uNaZWlVME>Tk6t}-h-T$DR#v0_?&t?p)e_2`~2x7cepXRh{RaGnJ zro7-cnv+!$&3>plvN-NjLl~FVCkEx7RqoZRX8vM!(lO?>n@(51f#LaRu4TliXTrvy zg^?Fu2C*!#CrToH8r{-#Zs6n#IG7%Dme#BLUuVmjt6>4kJ4*Q4TqUL7#GDhgj*iK) zG+~INg7y3PRv-rK+}>QAMzQ|HlERrc`t2t$9dt);1zSA{)k2bN>rk-@((&3$f^S(% z_A>`~Nb)k`tnI&e!C9X+ZM!BJxAAuchH683WuA?dT!>$V6f^+E>ks)8Y}RFSgf}6j z%5oA+vI322{3Vy|mFISNo*7fwwJms@hS^&nw^%}U!519YYp+~7wkXrpOn17$;xxyB zON~LGM1A23{Fjl}w=7Zl(1tIT7KqT_t)ewX6l0DWNAU?VKFye(4HE(nQ`RPR|Adgk z0$x{v+G-obu{H z_$bZ`V5sfPf>o97s|lSYB#ceuW0z#Nsg^qfrN&z-byn=&gyS523TS*%!PjC8y!LUp zJg8qRHNx^<3zm)IAi=bPc*#&oxmAV)epM!Q5O{V4clr7C7&NKV)OR#k_^>5aP?&fT z%~EBdh(Rr~qGHlPD9LpnM8^)tO)Cc5;~V}=*U-YEX|5D=G$dizRGZJ1GVK5*0#H&VmG4LTw<_#=4Ge?MNA*WUx*Kj;%ho7 zr9r_#wUpW6L;_S%TzdVSBqz(eTmcoN=FU*oTe^A@+f@!`qG|%yfloCpjLz(muCFza zxFR9%lOC{R3C~ACVt3&31$k%=ml@`hYg#z1ey{f-k!E90)uw|+iAF50F?G`Jj5|FI zDQq;h7dt7*71W~5{Z07yZWP7j?e*KKu8V&hqrN+zih<7XM&f;+ek<@@E{==2lJ|hLYYsUA2;9tq@MHT+9viI_cCtXTors<28iQHcK z`JAiJEy+|lv@M`V%!OuMZ@R#+2%V-jlf(Q$sBVBrH=_YVH6*P$bB$6&6QVIENi!2_ za3GdB9IBIfn~}oPotY!try)#|Yhl?=4WO!PWjN8F2;Pb3Nan4=exU!QLBolQ63=DC z`Z{F9q~mfJU!4)AY-ztDIjS%Ykrs6X+#_^zb>YR3)T-4xJ~%b0uO~b!H%(Sl5!-QRc`yENDTO=agm57D39v=tC4% z`A-h0W*>(>#d9RgTt+%y=O_(yDsie$Gob4UJ8`#DG$hfyTQ$|>#B6Z~@xL_wQ$&(r zEET3RlhH)KOOs79F)+JHFASxN*dTL5JGf+xQUwEY{U4=n>nb(ilrKG7yX4aAERyPwB=Az%BMf9;cCjMu& zj0nL~tXLEo)bg}1DVq{SoE{oWV$#e)(^A~mT$jo}Hz~-ZP%&qlf+-QD0!j7CX`g;9 zK=1ycHkPGpVWXCVR9;cKE7?0)dN+!HAnta<7kDZ$kgqL}{Dm~Dfw$eq)8bNJ$7<9D z-!d$%!2SAGlBVmL%~*&JYN?6gd!@}$^>($Xep;y_WkkTyO_6&U!SGitSdi_FElFwG zM8VU6;gb*mcoWFrm7I4m>C|sGHu$;!lhEX!?qK1SeP?RjpJLuSqNfHgiY++?ye+;C zb62GX1UC2GCA7G<4pFs#D|(PhCs3>@9KCq`?0=m?mZOUsNQg+ZunDkI*$wiAa=?*~ z%sTUaPY?x9Mdz?#oq%2tBIE2_8A&6VftUUP%^<+WJ<-dE+l7yyB8lkX7sR_X`O&7o zt>5BCeJs$xpcd~z)*YqG2u?z^xG+jgx^k)4WE7oNAwg{Jzh|Z>jhuIdXiGGfKMJI{(j5`Ss zFPbc(NW3^1;KP*QW&$GqRH#uN*e2CQ3Tb1*HYJjvXJ7+!dt@IB;qKVNA$+Pa*XLeV ztF+t;Mak@bV84*Im=64VyAxdMYt)0;cgxgZ_s!_dsFcX=O}|KG4M$tXZvHK3esp}1 z{jzC73B8Y|wn@^TN%Q!(O;jQ>B1xQYvlbgXq&tR^OEUABK^^?bv^e!Rxw)zj~2 zrK19O)@m#b7&>;Ct4$)78fPv@UfJOjC$0HlQ^4P8@hjkvf`GZANTx2Zl4Uqd4C{x6 z9MDRAaVe-M$4;)1yAN&c9ETiQnr!-q) z^S6gK)k!yW%HYzNgHUUY0Ky9(nMQ#a;XKz2W0S#v#U#^V_jO77K26Yr@yStyA@dnj zZ;v(b*RGMmN-0ICJUaT~>*490PVq0_ZT!#{OvaJsJk5Oq;$JIez*@L`<9ZOJCLr)I zu8L}TaH$jE8u9Y=^@?5lRDX~7)js*gh~9mNUrqGN%wel=jy2DG<`DW&)$-4aWoc(9 zDxl_ZTSX!27x66v$;~{c`RiYoA2}3$0E@6O7Fw*CYLszBLGy_m3UJE$3+$1aa-(PN zq=^r=SBd#hQEMDQvF+cPz1 z2ZTp5F=Ife@CkPA8ZCZKprc!#AqFa?jAKPq`C#y7b3QC6m|dims?9hZGO{<5^J@Ia zlqSmW3);*5C4#V{KIn>0>nklAr<|mnIG#7Zn1ny)Q8k43t`!>eXE~Y=A zbHDnjaYM3?iBQ1%05~kpjP{0mvgS3@;OBhww{i^g#;v0V;XxL$oe*6|K$&rdkn(fr zCveSNokKC|OMyD*D<^}L)y=?~0Va804DYpi$9s`%TgLevExFHpQpamia~URA#f_Nu zt|hBcQux49_~q$}X7@<$l|xxq-0Tvl7YhqrZYJJ#TqzlJogjn6TJ1!UOPLd>=p+O* zTl5V}IG4=Wlao6IXD$t4kHW-#KDAv>V}BRgLd>Uh`dSe!m@kigaGMeY0N)utf1{$B z0y||M1>Uw9O0Z`Xfpt(C!Ag^{loltZwg%@6TgOKa$T>x(fx*YJqy*DDwj%EXut*Ms z|5F5eie^ier&dOa*y;4do%ia1Uxn>Rt~Q+Mv|sW)SSle&N_0p z^N_4W>LcGg?%<@Wmy9=hL6s6UJ~(bie2p?0vBG@uHb^dcmGi7Gp!2y0j`gdN&UC<9 z6Tg6z?TZwG`)ufrqcTyQ-tM=~zNUxR)|g9cHl+RxxgDGAvl1tBHe_5N8$YPkC=?%8 zGpU{`sLj6e>jjXI@PjEr#NzVS4*}ghQ9agZH_Wb7AQC&pj3L^T!HuoFK1}z%5lo%$ zRU>N**leL1S1D|%cQ*DryNzur!@?U@Z|N80eXwkS#=Mat@rHIZCp1STvcrg-l;~LR zI1YPH5eohekLxEz4n5Vh2V|PLu+JgI;h1(Cyx=ne{)QeBx^K{kq2vXO;K4Q+0T&sT z_Dp7)N|KN~wXKEW!<%RyI3vyY4V=m+Ye_TCF7!5LIn$Un-h{-Y!epYjs*E{bro*oh z-?RK|0ZGg8Hz0>$bok*^T%M4AzXXDz&%F8|YKWH37Wjr!?p-C)Uzpec>ODyLj+WnKTx&}*m+?(7|!x~yW zCf{qAoo?Muca}R-SdQ;pS_&z>r-#m?gX5U(@Jj>QF5VCP0#;qP_`%Yc@FRw(dfZM6dpiA=VlV~9A?^wg%8rpsRgB6yZv5g7#S$3H!#3QHRmT_d-)W}`enop zqO27qGIQQZ9wbxT#_iC2wE@FGv-@sC8XqSBCD@n~JITy%v~x?NOU8I;3KJyG?PG z7jlcTeqqbAcD2@ss*yCFJrDUxdyz@hr?1N{9)2B2!Hnwif4XWfaLt73$>185Mw>#^ zzE28W*^Ub}#!R{YfFhmMgabD$6NV>t^7S+~h$P4qed}P2y^^&OE z_%lue%X|v-w_Aoc7WPtnv>rdr%32#7gGE1L0Z>?SeDFxjGGyncn7Jds0WX1N9QNt_ znrgStjXRo`4cV=m$rLcipGPX~99rmhO#3*Ctb%K=jVmd?wbVOzLVI%dXKVFriffna z;al|GKQxtjP4c!-k|%k8-E_ly`#5{p+x+IfZMf7WOJU{6^xRI5^wg(8X}{4-VN(Om zg&iP+FGq%?0DK>(1XxcT;yqpIK)?!Z8Zjz_I&bgQ54NB{QEW_B{~=pM#T7(%t{l!I zQLiS*o_gf*tO{(OuvDbbe}b>yF+;9(LWd&pDO}t|i;mZxrLkV}&wQE7?azXW%~rDF zqsYwUP^}A9c?+HH;Z5D!lJ%2Vj+r#$Ti3k$n#j}qi-Nnqn);M{2zi8p2?`%98y1h4 z9cHY2O^+ZO6yB;idK63t3$k|`OTb_YC{W_WGE;v|A4EbW6~+|lMs9{o2R-WR!?WQ{ zjK9+i{`?VE=^A>(uq7HPr_3YQLKX>Xk^Rpk0~%Yy@%Bdspoi}o)y8L||M2yuJEi_E zopHV{z|w9Wd+AM2mw87O8L;j8@}-J>1%uH}L0Dt-GeU&``eGO8@Y%Dd+PgBNsI-=b zhwA-qrYIxETq>6_RV9?f0VpNFP>S>r`MkriJihP81L{%f-l^Vc8!hS0neaJYa$VAj zqA$h@h=Wz|+(CfFo8y&|(%362_f*~c;_j|8a*3> z0HbcUBGv9&h%5N={6ELuE&5Lb&HPWcio0T5PS0??v&rJ9?o~1N8bh z^q^w6-eirhG7~z9H&X(s4!2ilw?-b-9p^fXu&e~^EFzDY(o$@#7vEA&h9ut2&y<|4 zz!$krBbOpHJuF2@d{+6PB;jhRfTw9c#F`Lk&aD!TUlL#oJOS~0)l~IJde9WqzP8*k zfjF^un?r<}3f@>a)S4`)hwM{C?#aG@ss-x5ty+NgS07Y9LEGXBYF? z)4e8g-bAfHZ-(#^1B~@$KeUVr3W4G4C>GjgsALFyM!y~jbbW@*Uipc9Uf>y;J%>|& z70IYt#t}bY%39&_ z`%Z=4eB?2VRvp{!sOjV+<{>SV%fD#*KI<&LGiU{5%S%W_jkUhw`I(~hZIMwq10 z-4A*YkKqCU*sj+85mXI^6w-z`n>Gby1N0A)S2#HNo8V_dfA&zbNz4f{LaZN8_5b4u z%BDHP=O3RRLsO3a$|_TReIeTp-G8_j2q)X!%a=-+>3M6Uo??SwT%2;hfW#eJwS|lP z*AQw+Jf>Pt+e)f`LD_2}y(vjau=6EW5R!1qJ)nP zPZ>msmqgSxm+BZ*b(?rXhm9D!Sa*A|A&t~9f zU&5k)oS|n~$v?u6@)D1$O3ofJtr}Kn#5tdSi9T1E?i|w)dy8Ng$)6{!7ytQm-T9DB z>KMAK)dSI=r0U3?6?aA7f7cN+JAYhp3S`}a^WY+UsN4HKwLpE7YS zn>6*7dRS2Q>w2rI3wDm?HzPkCia=BK*Al }SbtM{g0c3=9(e=nUg@r8>N!+`6rk~7EDYm%8C@RHMZ!U65agW6-w*)Tk8~6c4eBvj0M!pCqt`&wNOX}z+Phy z$+u~cF+UHukTnx=3VJIV$>EqwEav0N!&ULIc2! zFX4EBpFFym;7ub3eLpt?ag@f|(}oIojz#n&7%mgm;0T7T^_-agH`HEDTJ^$rC9#KM zHQj*BNTKhMEDMQ6@2#r17}*irG@IY@{U(at(tCe#m1eQm>u;rJPcOH7Wu9?PX4IAm z|J3tUk!y%DNp#LP^UAH#l|dpbE@V$2$k8ORrv5&INr9Ae%80X*(FZ2k#TUVW8s}domZf(0Jx|Frq-!5+k(h<)mV-cc6NjklMk?D-Es1CDUs*nW zbKC`--e>~A)mqZky*1M9;X)Qksk1b*DO?HzjN8o>+sB+oq?nayvu@#OG@s^DmslA+ znPA6k4m$uv?+NC0rL#A9`LP+siLTQq zo1EtST%70AR*{Gh%{+?-;;2XK}jC())=n*nlRf`u0Qqzt_<7(r08h7wSw6;BVzZvsNQH zf_x-}VC= z9~$0)&dz~no@)n#o;$tw&KrpAm`Y3^Pd^AQC&7^|3rk~)^VvedPtA?epdfUn&>`W8doHrXjkUjEl*?6@iHbLB$jT_}D#W*8xn=+ES_tJ1X`IL>qvLSmJJ#AFMDKq7C@)NiFJR~`IOuwvZ z14?Tcc7|UWYwt{=*WljLv}cmhUy>NL-Gz{B#!Obkac73=%>I{s1VR&@I^D_&g>$(qo@ICWM5QLhzT1jDv7>f$OUNsk-1V$^#5P zVQwcJKU0ZMt=dEVm_`DyDU~2IRStK2QY_GJNLqaog>` zT+hQ5(L|BFq(%L|!?wFZV$?Quwl#FyPPH5x5ioF+tdTxa+9zr}vPrm0}v`F|< z^y1FZ=OZP?v!&_X%Y=~5>op1n4;fe&$l^JVCG!2mEUL`Imq~l)*civE*?P=$(4a)< zp-bs(q{DICzX;J06CF62hGOa2h|=x~(dJ1ZqZezHICZh(yG|ilZS-;RXN)Pag^QPzVcZ$X!7Ss2XD(pmUNz1;S*NYOPj3;Tc8YapgLryiIlHmOwX1 zl^fT+6{7+hGsfAnuxn6bPSx7$b@jiUXBdZwBC$S91`I4a=5_?2I~gxIT+>;@@W`)> zCe0?>OCC=VX=^OUEc$hdpT;Tfnf^&v6S!70j<%5Cud+^+&Pkcm!VAZ}vIqMhqQnrV zpi}uxl4$XH|5aezaHo&)-8|vkZoR3xn{)g5v8y<9H&(Rb&TE2S#O%fEH>fee%;#Sh z^L`jD4#?^CtB^@i+b#He^$el)Dha*9!C(8NZXOiLLy6EnqnPo7pg^5YcgrLUDpKod zR}Da%LKqv&QUL=Axxg&Y2=hXmh1bJWLkNJC`#Kc3F!pb0crqz*l4ru+F!-gMQOZQk ze(S=wwRJ&U=3RGMe)VpvyW7xJN92@KQE&?Vn>~@N3yq^NMnvuN%+xN4< z!Rx9_jmZT&j!03&$RRVa>rKtx9RPVFYqO)KB8|41k~mAi-P2qJy+4r-&T^3nu_1Ri zREqF<5b({^yDRy9g5hMa!~hJdEx>Iiz9a-8DVCu!5Ufv;ZpL7axeG(aJhGkCJPXMs zeW}O9^kNwN(&lDh;(kpxhU&fo>;;z6Jfrd>rW4oyD8+w|pUhc3cN#EzESRLA$D>tV zfA>RoXXv>1sCQz8bN}*sot2B(rMWggQvW3e;4Kcm#dhzvBVs!DA`(BIZaeHXO214G z(=ulUvF4!7bmwGQ43K#;1HkM3!U@A@_h_l?G#N#F4TK3v!5crzsZm$yYoveaLi~N$ zAsce+mldIQYGZ40CVt=`zgm5!mKKfvbVfdxoTONq9@x|T61zz3pd=PFs#fCi%fdd25Rfx;~xYRX~vabT}1+j^8q@IPBi#9L+}cNFPbQhy)q+^Zhg5Qy_oU z=}eEQZ#ypwGs3xRwH}Gz$X+Uv7ZZ7~xQ}@Lxw%}v^&ZqhyN~Fk$z_Wc&e(qQ>CT^b z-Gz})A8E2FhTVG`ZE#!t&X6ztLH<1l#$Jq$!F3=+#JZyvCmPS0A{@^W&vuV+=J*>s zGu>x7nrxh8lu)0RpO8Fx$n^I!i5R)Mm3yEIMNT7N#N%5$Wa^dgt6@X^vW*}s)Yxb6{j-y6fm-n9On6IQu!zdBknr$MLjrvE9Dv%<%%R{?gw|Js~EMrGo`_BXrCwWs<6a z3X`26vDKf`q9%#k3kSOPz?Wx;Q;l*xTrd8EH(Jf%dg5e~*)yTr zw-grd{H*WhJi2+_@4Pf~{^Ky7v{peH|9g&Q{nQkGx-KoCGGMiP-vPHIWH4NM1yNk6byv0P z$(A@#jSOTEP+Wu-LeVbqfSbX z<6_P*LQ8wxkNG;n7U@yq_s<>ra;%~JzgpetPZ@K< zJeJFf9}G6xY&kc1-Nq$Sa*37W$4)gC8Y_;Z;07ayS#5Ig1a3qtX{{I}@ZQ<}5?-KK z!VNe95a|Jsq|z_-z%0cyBIj4_zw=jK|aT7NeW3T zgp+ZQn(gV6bBT;e*GK;7c*hNg&Wjpcwh_GBzfe>dD$E{bgkBcN&k>{<5BF4g& z_mU`(1{~i(eGnQEPL1}*u_+s$-?=X!zmq!BV=ky1nx$S0hfRX$h^!V|fO4P@kxK^$ zbx;?6RHFWgm=euiVW_*WFN4osgonc6r&;PLyYX4y0!B_R9*WI>@0~LCc|E?cKEAzE zy&WySr}SK`>(#%khueyW)1n1p4|W|`j#vh&nO6DC zPP<0gs&>Cwu83(I15O`AG70BV@)cISQwF@>jQsh%%kVAbci~yEoCyEdI)(2mck73& z90+IhU$?xvHwGt^70V@`^`*mD{D(^xMflAv`tJLVQvC4gm(~-Cyo8Ec)}*;kioB(( zYc|QeF9)Zsp3LI{I!Q)!U{StP_;PP;6xM+fkLEs10rx`0h~DB`550?zUo)J&IsCw- zDBQ*!KmO!2YsoM!EAe6FO2pVH_GiG9?Q5zO*FtoG5LsbAtjN~og~$;OmA5FTuVXH3 zp9W&-bN(0i;v4|Fab?uIfbVZ!G>(+LCK&BucNf3;NuxeTLq7fWq*)$LcY^VNTAmt^ zUk>9X1*L#U)rfoW z-p!HE)d4Y+V5OC9&)JT}0oN6R>g522bj}G5S%0gMFT`2~YX2e9?3?3__w0w()JyGoU=As%Dd)$wyU+YncwShCq1FE& z!Xw%XH$N70{uG1|Nx`YE8p3xU#a-H3>^c@R&h3_x3!{3btyjd# z;|}DDg!zf+b#}+6l#>USzDQ?fMauv%CNJgz?LP34JH9RHVSzu(ZwA&r=cZ+5!w6%*4XF*WT<#zi7Q(iWsc+ox6@DvJVOp^wu~UV z48tq@5^#&Cc-s7K$<^zXQ0a%AqE#pHJHI{zSDyS=oS(nh3ua}J>gGJ$LY)qKx{Q65 zz47u*kNT^3cjgt23TM^rEhDXfKyCNuxfCScN9EmGC>K^zNzANwfX;D4ti3fy%Z6u- zV}<|8njG*4zwTTx&s!w$L9IfA6%%}XLcFoq2`#v2uA*~Ur>ssy=J?}RLk~1Gyzehz z2pUphc!fSC(z9%KUFx-vd z5!X*e!WUbM$Gr$=eUQIGGkjK+8bht?xh@=QMgi@NfCU8 z?1#>)7dmsie3D{6I@r_8tq%{J?i^Sp`+o3p_S{OB4&U4V6Z+(lh&gJzlAhZoMph`J zcyDNwkF=JR+h2?o+=Y-O^xA2lM&2N%&1li^d$>-b(7J=!cmliCnjE&mAA1 z$voM+LDZXl{9VFVNr;BXYk$*aCnmdT4bw?R6(| zLhHH@WiGnCLagB-5J;aQvq9J!A|D{Mu(Kuh=L*;Xqwv2conx!vu2sT6-fG>}y|2-u z+S_?8k@sV``g3VKyYMXoIblY@bNp4>Jg2cMJoHb~uTN7YV+O0yCDKw!6Y>74vs>H7 zl26b6<4sAv3uHwSH9W8)YwF@(SifQ}52f_=ceEX@3Z5drD#ZDAAl9Y~Juxt|fLN0t z7g_|-+v!W^{2mwWxBf`&9JUw6s?=9R_FTIf*ffiVrL=veu&`4&q+t!oe~S-h{Lg>5 z6p?)v$<0%H>x#GGq&Kkw0yYk&oS7`OroJqfnM>isSfw#k|_ggsl+P^BouGAQGP9?0@bx-re# zM-_fLKc)+eI_O`iy?xl55?-s=8{R=FTl(4XG9V5$)eU|kBp;?Cv0tmH>flTAcG$`2 zjl*}Eo6TN@tE^{jLc5L4GkkS=t&~|TPTgVt<=L;qRrjyQ(c`ybNGYdJ?Yf^)*tio9 zSi@C3FI^dwy|c0XcEGS`gi&!<-S2eqqd%kEO0%|y=V6S&g5vW(cA;f0YtO)cR2v+e zmcO#Nxbe-M1LgU@GDe&~57`|N)tySwA9>DjvKn|+e#EjOXke;xk6m1t$Qv(?-H4Ij zo_^@0ZFQtyy<=UF5?jjG{GZ6@ZS;HA!sK7-SC^7Igy)vu2OKlG^0(O+d1x>(v4%6f z)jPv)e>^txXPY0Ch-LgPmG55uAY-)BbLPB5mDT6NMxog3?rrstZbki|VRVY3sY3!~JG-2rW}-a$+6M^{xa zUmv)M8$bRWD5XOJnt%a~Kj`;(Qbg>1p{||iVYX&^c>sFn?&gB25^38!{5m9sqs!C{ zNRZ9HR9urTN9Wn)y_r5eA+#bqm)QT@N{G~w&Qz6!$S{*%68H%C!#O)51`7zv0~|8} z03qj*WW*LZ_I0&;NnrRJDdr=(TCbMu_pVE&UtTv|no|r_1M5j?=hS103f~U=6s+Hp}eoSwx|Imqx zdvvJ@7xNFf+8P;EygN z`=ciF2{jm)xnp3Cy5!nUs%4@e)nDlSvkpS0UAKTQ;%vzlU%<1|aj-N-@$vDVe`yF> zJd3yTeo-ky=~kr%)>b=7=yWGOJM+>Gnn~!}C_&>RmDxqPKgkfksbKaQVi+c_btvP0 zWUx<|l{>s0b?CQVPo%^C^Ea@Y?{302O@J`EC1M?FV@5w~h#@UD!=uM=lVr zBd|FEHppxBXms$a*L=I{g>Q=RlyOx2-+umwF)AiTI^7m_``sJ$V^513z1vnRmhT=H zl$jv zSw9#iKfF)hY(Hz{Tj48_`)8LlOElNc&TL;;yy};BJfXmrg?s<_DcYkPeCwP<9uo+P zq2Qh7`S}=lj3a>|A3xFPmAi)@RtH%Zlj^^YtO}j}RXTj~gH7yj?s}rq`?co7_a3LN z)wqr1i!1*Fk3ew0H?Q(J^#%N{-e-qG0C#mw%4B66@hvO)j)CXre9z1$j90O5x$91v zjPlfVw@BP2H87H(0fiAtHF1E9ff>1~psEtU9T(If3q4W>`XC=H{`=w2Dhpf*BOKvI zp5R{)|Fyu!Ts#npeaAi3BB6M@=E+kYTX;@r&*~t2{H}3`;YX3DUi8Z=30b;PqTszR zrrwHNIhOC-^IvRTkQFTP8L}2p_1!`eT_L5FZimMU7MT})%>0h|l3|Sp2#^B;=9D(7 zW{XVLgwYjZwjqkDKknQKatB#WnZSk0HGdpV;VIaH=i$H^g(LX)V zs~tnYybAah0Dve=GmYcIB{+st^n-kC&C92peu{%F>>0}YpoORL6`TU#$R(J;kHd?| zHxu@eo^l12=*Lnkr3fOJ0mO(KmLOoI*7|2Wa7*}_%nv~fz?s&+KLo#eRzv{@t?6O_ zrj8oPXatQ0fsfv!nU?FjLsLpPwymXX!^$-fvkdzqmq*D$C95YP0U3Y>S{NYF8h^!k zO8N8fLm+HGK?=PRrYNw%(KmL49re4w*WBg3@R_T;*l-7qkXOVb?84~=hi44}7pn*u zbyuOb^60_q21~dMAAn2n6#PAS1zIF=4MahWUTI4g=sNbh(1>&7dmjkR@67F#HZzSh zpwI}~5)+{z)B%_{K~M-Fh8pVL6y$ei{he$1>;>+{`Q6jpYPh6~P(Ykjr79HzFefE| z46DRN=L2xTSi?$@#CX6kV@k!tl>dLG%KyL1Lf`^xaQJ|AM&u4^0W99xdnUZzqq!k*mR=b za3Vjy<-OWB9hR$6rW3u1JPqHJ$rBpUtJnd&jQ>5v(5J8~@I_<+OZ*b!v*;_Z!j{N2 zWCC+|34V_9ZG`v0i})@0Jn|v@!}y3U)PLowf9-X*WO+Kq!O$!OmqS1|#(9J&1eiEM z2_3eT58LH?30Lrl$W-rqAZ*>ule-$~NNup!v?`Wjg1ChhG2$Y#L;tROu+V?z{r+8B z{*5>34zYkt<8MA~FShnr;a4J4d`4Wt5#=iK0)7YH2lwC-`rWWbc3`J?fDbS1(KR-z z8@KoDpFH88T=T_8xdIFL77O2VOrDgu@_l4Xgf*>FVgNFQH4Onr1aPqX+`PI`XRnCh zw%jT2O=b6{OxJpPS@Krd&Fp&cBe~kc(w}erdl3+>0r|Uc6EDS&tnArWj0PML0veVS ztaRQO+>|F8{;_=ST$Ai##56Sg+5UX7YIl|9Rd_Q z5Jj+%b`OOKFI?oq@WW~GCq z*pRj9<^=Z(cf`aOA|@I-OA|lcRh!t8k$dQ8u}g4GBtqvB5n3WV>5>g?Wtw@PV{M3! zay9GYES_gM0mVxi9Wh7T6%~`ly=#3>OKfdYWOP3%a#=0!>AGPJIdLtrD;S)@1mp)?E5dsc!1Gxs@Q75-gLnMsw3i-oXFmWMz86jg$RTy&&ToH$c+kvlheu#SY z6{eu9;alO?0k1!RGcjB#PBzwoJd!ev5FsfVfhdzs-jh7ZxLXE_2V<*8=PnIR?$DG) z3=v8oc^xMO-8ft!83c~t_rM8kvjKxBbs4n2y?~Jj|7Ng91tKiYhxy-XC*XwCHw-C;YoOmoT0&cxCRIKb^LMn-!B~1KD+NneQ zkVoLV@q5TI1pFJ3zl4wQFC&I;L5Ga^r)NCgmP>bySWtnL(893UyFsAckmy#>LfU$M z;OGY3F6+T3^U(ONssuS~gLw^%hB|JN@wib^=}sucR5U5Tl*eA>u>u3MMF*h|2k-Gr z5x5KmSE9fcOyC2QPtsZ<8 z`I^J{-dFwX&cFy17tcy85{rM}IVTkkGhGr%>Vt9&OZVFTtzIwV43yK%==2R^AsWGG zs{RRz7(N8zg7%2JS9lSo@STXjWf;KlCGs@fhJ`TVGlUtt3-6LhM4cSTfV;Q^CqQ9P zBnV@`1<8(ri_b|1G$XfbTZVfuz&^a604$Ly1Yv}U%NRos4SXTWoiJQu@_ruAkdT)c zi{Dg1^VnpP+Fr2tM86|tlDKRo43trhleVsyIa8}Ni zF*h1$0s#UQgIMF^j;&6WHK#@TF7_VNvZPM4ODEn5G0_Hwz#*V)_DDnUI!ZqX?VGn; ztY{H^Z%Y)|6e=SK)K)?Xe@U3n--w%0E!{GEu!*dYr*yG*}ecAWE%9cA^oK z=%^4AVuVOER0&5&L3ao%^ab=Y(*AlRt=RHK7oC9!R*Re0wMIJ$2@c?rGQd;t0a(;T z2OycWMcPMsxESFAe8(Xu?@HW*uRr0D*I>q%34{C&SIX}vsPnFYI!RbW8r});*RQ74 zv)urMH-bP9Ti|tjhc)D{BsuMEr0d^bisx;EpIep((Ibi<9Jt|pF*0vpph`879af;w zk=q)4x?6iRoWej zk#Yx5a2s0URrn%o!;B&@Cmh2eWr{m8!Wf+ZxeyG13vdA2K(!|b)o@41PJ7C@n)MeR zAD9OQVdkPS2T95-vI2MHypR%7S0P}ow&5dW0H%PWQ0SN9dp;;jpgJKFqzA!)1P2h1 zTh+}S1qRCKKHzKVgtmCIJ8g5OoB6!?}F3Tg}g$qsTmA zKmZ|w1l$QA0dQI=9jxKhnF_^+z!W$U>rg;m?|uvviXI{2Obj2e1X*Oq+0SI?)CK(9 zlj1N6Q+O2a2nZb_b>9(i+z|xdC2cXn2}Ib%J6I7Ha7=DtM%;l=iPxQ=1t}1-J5H>l zMTP?InI6v(CzDMOAwu>jiI}0qU<&KX;s6nG2O%0Y2nJsf3sSH^4!Bce0Zwwx3hX0i=ME6*azYGYVA;!GS6K8vL&yaSl~Wb6<#68zVSU=UF&`SthtyadneH zf_u)T!6bY2A|VJ4Ye;a)xfqRZ>g(6_xgI{h9v8E6*#1TQZ=om5FVcj#u;ysz`h3jv z7tBS_>jF*gZbWV2cU;gAVWMWMdxQeQq3b!m^f>p2snMi z0HNM5E=)Ew$g9MMk1!xrp9IAVWTftsf>R^Gx%L}c!ZDsP6HUY}{&q`YbN)%sK%b*}@Silsvall{!CkhHK9>HA- zW0ay;@HH%u8?X-U0aF>FwC>=@B+=n?AcRf*wg{nK&deJjLt)z?!wLo_#-!jv23bRa zecC{q>a1Ymj+v8DJ-hz^NG$a?oHJcjJ>V3CKRpWwBK12)&H{(r(i)9If|}F8w7NP5 zfC80y3_m8W6xYt8qLK9j)9FBz!03m#UWy;E>MF3EzcAO4enAgvX(11Exvt}Jc=wJ?dPDM`6)j{c|o&Ea8 z$DevY%CekyLJbnhNd*iXF|-g2ebc_D_ler@W*5S%7BK9aAH6WZ3%1S4*DozM#%U!;X^c!Aq^3x@{HjC1$&t4`vxoc!CUx9nec!R-T_d! z3s0^2zE5ln@s|OE5d!Z_C}Cu|LvE3gcMZfj>BykGldubq!DnH*VHX@x>;2wbN$Bj% z02!9T%t=mhg5bQ(n84@Z7`7iq)=pqIEIxoI41arwUjjus*J+u=)kID1_6R_xzf?5&YT)|5+Xzg7{TExL}7FyOip>+ zX(Qj~1R*+)4|K341jib7oGw^Yto6wGsd3D0p2+nK5HtfI%LWLuVA{_3Kh3ONt zAP1ZT?!YzS!qW`U?I0cFyoyQ+al|ii>%+Vncxlc1oV)Nv;mL+aV4c9}gb3=~6f80m z*6^}(HFJr{7?B#h?cg4~01m(-Ah1)t#{&CKmk?)n#cU*GN+d5qz){6vVr;FM8GA;C zXdFz4;F)EMz+NE1GBJrXd*lWIFZ2pfon+Ku#n`|Wz-oaNLJN_s6vZ-2p+FImkeuFe zNKS$PD(nZkjX-M@Iv9-+GLXPn z(>v?C;njI7VE1WhIRFsA>VBG#w#SdnXdj{ZC7K_T?jK{eAtn?z5~Vt!aiX9~j0glFJVw}o0zwqp zZzh7)&z6BkP$0b?`TQ7u5d^x;ImbZ>Eq5MgtxQ3wL8Z4{fxhy8e(!B0JkU#1-yyMo zg#|?Tj_1K(@-}?wO}%n|r?LNKiqBZ@BjsIX{byy-5W#`BQUh?_z>)huTnUj^P$ zCtv}2$e{%RfpZtg0YSk99H-)ZpZ&JFT+5N??@$Ft(;*{1I3WrX}+*xp%_{qp0 zgzs~{&~WWjOohY3FHHElmQM}*7nxn<*@o{r<@SW{Z~1|asQ8Kx_5?=~E{xC_TT2Gx z5cY+Ceo_b52_pwi+bupKO%XnC_T-5l6yK4t@qHpgU~Gtn@}Riirmi(K`}%)DxDOm} z$op{nOiEycL*cnvGVv|YRnhWqaFX%qz-z)3_TU?x%Qv7$l*vtKq2aw1hRyT7kCz(fWvKPx?-~A;t63OI|}PU zI^@YUv6RMFmq$HD=1IaO<~C(b*~SCIjFXXa%xz=34_6_<%j6a_hz!oH6;IE}9c9Ao zDqF&@T<2Fl%e6=O*d?~0&HU1*`P9f%L1<^(QjWll)tX|M(*{292vJ!l+_^2R;YDM4 z7wu3eYvKX=2%#k;G8n%#2u`mo0?{|Q@Bb?&tpdkWo=jXCNya3TK^zlA=$)pJon=Oq z-~gTBg$|;k;fZl`vfy=q~-9n18q4AID%gVc|Ao+ zEv&aWy1+Og5!=EUF|s`SW1r~#1smVBN~J47a+;DuLj zad^t=&}Lf)V=0xB2X%{N^}ox4rE77sl-yx*C@Gbe6u~ z)Bo1lFG3MI&^MsBY-W@k>ghMI6fB^EW)u_xo45z3Z+ewl!!nx=gg^p2BWY68`fwry zW2`F+yy9GLVZCvidtIPz3*I7CIls+}k%_UTtcO58k#b%D^!}ZIH=&h$te|{VV1VHK&=2((TR!F}RPov2b2R~g;c`PB(IhnS5Z#RLn%6oVW|P~0pqs$@6A zam|>qHlJdvAj_dUDt_8X7MbJ!k@5{${v`#60UC&JQAepjG-dsA zOREGFH2_z{1w0@MGnm2&%wP+S;1ISULW6h60Kf`A)i-pg?W_|CA{!j)YT0iIOT2+? zq=7Yvcu@9{7LM@&8l`IA2smh&V8T%McL-fhjc5 z*TzN#+DhgLumz7m3x+pH!4Vh(|#&@ud06gzX!t z+`KD0t#?Laq970&ViXkwC!mUkEZWBK^+f|p5T+gT*3BiDyCZ}ans_1beozl+gRHo9 z6V1$~Oec)n#0hO83}n6%h;SS@Raz$r0Q`IKlYnKc;V^M9vJE(=LV=L!Guem{OY{@e zV59`B;6?~wl!5hdzQ_iL4DtQ~bCHTla+pwYZa#qtC>|80EZ@AmC z;Xc{xP2dUG=&XD`l>vVRz8^u1XEV##?6cF+t8X0)aut3##4pI+W3J9Tpx0prPbJwk zDN3T9(~c|+y$aie203C4T!9s)B=8H2+qg3nh1r^G1_gGVYXb`z`kQ~wPKa1eNj ziicJNyo9gKeCs`!AkMo6ci;zaa`hG1;q5|xN6Y^^#TY>y1LfTSff7iO$U6@O=CA{= zY;cnT99G*yA-$mkP+I}eK@SDiLWaOQ69WEldXC7O_3{w#b9r_FA}>A%PVAW0bPMG- zk>7}X78V%=bsTz;jXld2t_VGT3>_f!M%NR91XI_dQyu86p|v#NDwpjvn5aa-ip|Mu zjnF6)@ivNkvxD@wQ(UZQ8w@A8+WvA_wXfyo!fu!zPmi99pSdvp>mTa>h{Cu=3>U`x zL}=n!Qlk_kGlvV#J>dh#Joz$7kr9-N6SxUp)gbIX!Ad{~o)hCzd@iwAyK;)&ao>gm z{3d)5t|Fg?pTS>*0RK8%4!Z6BF_;OjW?hdA>Ky`{bJM)qP@u$wCr?`h7d3ESB2)0_ zKNGnCTlh1`5k4{RoL7ZAkdRm5Is5?MLJnaYt|R+!giqi-@E%yf62Ap2WC}g}1}u;S zN#z@j8^KpInH5KT6j_S=I^0Drz!Cl|T*dFfZ3yt|$Q<^eg%S4f1LQgcn7|6XjZcsT z`aFII?!t%QqsUEciLc-#bd6s?S|ob7K$*#_iM8`c5N+XoFG0tZz%{s$yWRM25B@J- zkxAo^5%wfryuG-5VZJ?|6SiZcc|3NAIuD3RTPRACrBhjoS}9SwAX~-6E#TcwUX|sY zCAl@ro?0(r1yUqA9fIS*%LJfx5nCcZig>2Zv1K`MFR`OM53dOY za^k?bXq*TOK^x)%matE05hE&NCJoqVg4a8@0c15y*kvB|mVN zzj}oof4a!?tqpsNkoKBw$_?m6oe`wR2j`jGTI5(neHmCgA(HoD#$pdI$g41iVfcOuj#!> zKK;=8Zt#*!b_~H(ObJ0-YrEM;4v$v#7 z2m=W4Vio4DJ}Op^VCNdRIVL(V&dIyXj~#dLoa7&(zmBi)NAX`kj$j8OvcUhWa)N#< zeg&>Ory4@^;C}ADlCwtykRt8cP$UZ`W9Od?_L~rdb*-H}Lig}*AABwH#UQ^44Zc8T z_$Tm)W|(42{BsEC690Al!^je5kn!8#=qaoafdJ11`J(&R4J=xpxlp*i>#t3uab6Jr zHTWoe1a2dr!>_<2c*1`T_7DSb@Q!d3PO$(D;Zyh?%#d3(s`@kdHoC&su!Sdd1ug!K z_$hLV7}NK0GUuN2_t8&EeI0*mR1^(nq{{GH}3o{8m9ha?dUzT~t zx&(169_CsEABtwTVkLN(ss{_(?2I0I_u`X4)6*|_y!BiA`7^JEgSj>0o+KN#KtKd> zwv;ZiddPn7I~$t*>Rdud}A0xh{iF5v4RKkt0YN)8INPJj{_4I8jiem!!1 zn~z`O1A7b&%P(ifP~HG)tOZ~Tf>O~5I26N29(PUy{{Rkaj64ZRSqE;nh%i6G6QTey zK*17LP$O!Mwby^^lS4jNO)GUFRpw}cEw~P^!ewaBs>>-DaQ2ZeU?5Hs?sgmvc;&g> zrD`14l#QI4g-3LFxyUdN=^mIpyGko)KP_tsUMw2`7DQlIj9)(SRhP zLjo5@Gz&#o3nP*t!3cpk)UPzwTI2*Pe2E2Y#52VJE*PA^8ouj?1f^R#7 z$h!s$`0xqe`^oAAJ8ui@9j*Q;xNFTpL?D-6yQE)>h!4D;>W zrMy^`(Ta)SxcEfN3)w#><)Y{(;qP1iLn2Sj2s?UOO1UZff%mi|_t7L2$&JN}NY=a# zX*6A`gtnWyyIaw0a;KE-z&@eH#LROl>c(l{wbStOetB^&pI;95E~S6+$o|87gaOlJv6vN!mu!6E>X9vS4ltERaB+EjmBOQd`hR;ZzCxQG1FA+JzR$}vn&M;!*fsbGm=l?DZ&or2+PD9l+M{M^2;qr*@suKQ)CMk z&|@GcIAoA1G2jFIB2wM-6me(-wgE&S!>LDm{3;Da)ZMcBn zfX^agaQj>i+mLcc!ST8+t|y*6@1%} zKJfX^&JX8#=OgQFhHb75{L&tG2HrpZ^Dl+JGV&AC{OInazd9N39uCLtTozMbA=?^5 zkmRj0t|hNQl||AW3v2!=w22pna#8vR|0;(vi#>i)d>+ zHs$3p+>x?#QN6U|icow!k=x!P$~10mHS=~R(JUj2ZMS@?zhUxqZQ2PAM#-oWK&H6! z!Z9x{`0ynjy~4#gBT$tPWJ6ll&dvaPFpca45TY{$rVzk4eguR77|VfG07#JJ{LDph zI_P1jOk;yB7~w^b%yf-G6kI85N+NbJ&=^g@TSj9m za1{jf+_ZMO(RU^|2*=7H+#QLIfWrYiT6fjeax{l@hDpazjr*>SmVra5zivZ@le!bH zW|)C&ir~U}%GciHf7tWc9X@$!T9{6qN#bHl5TY}w?G+EYejcnsZz zEPgLah8CWJPs3dt05L4VnzkbxlYs`Ag5V=ECARdADGWrx0v_-=;R9Lrm%eJGpKx{Q ztKOgAwjFF6xdU796mB@k)9jp*Zc-EnKSmp5LP!ionFAyzDH@Ri2^7sR!Dh%YZfL|G zfeyLgZuqg7Fx;bi?6v9qZc96yT=><+V~fXE-?>`y?_Od7`!|~REdJ`L{NBgrKc1B9 z>-hKt>F2jcX>?zjVgyDNQIbTHBwlg^moZooC*u}1gy?a*#J=2K=Tl_Pq!BYO!NjLx zJ0f?AHY%zk^6H_UCLy%5%gwlkdo(TqU0EcChGvERDS-I3sAoR;`o@%3eT~ z=y-itwhVFl*OTB8#{#2}dq$YTxY3BQcgzWf)agb74q`~g4HrDH5?)ZOun!9uU<;@g za|e1>fhV5pz_ox2a0x~jKzOgbS2oN_qj*n-jov1u>muK$q{WmB=FmTcyKl>!%2GQXXp1=ts z7j6;ZYqxRbR!5mJwzv@tPh37hoUR}lI|OGU1o%4YsAVgD<_HCMO}|MDFe$kTU;?2o|rf4=6( z{B34F1m3X_R)OLK-aTlXmm()M^72lE!xXN<^$iCmz%is+v^nzn5J<3wt+O%o$U6+@ z!(Hdu`40vDdN~I_O9%3Z23GxY#uq1BVOVxSXgFZuNIR$jPNKHrS1Px&9d75>6K;~G4xe7bON#V^kpF7T1Nh%qVx zWs{>OG$YY@=|kM!W#$CK&qlVk%F(N{@A!w0-2T|h|G{L{5MNqemLgYn?lf3H1RNJ= z5I}JQse_2S$W?kk?>^ERaX(pXQSt>2pli^p8Nt7AW%EJBFL#V%x(JK33Ph+>B_6vV7@hr=Z5W;6?85sa))5Mx$$|(M=Uf~Zpa}AMTeg|5i0AP4O2dYpUV#jOg1WmM_8Zj^wGl&M}*5THG0Lj zIW$ISVQt_@U?S{fPJ|gmNY%a7rFB$}GTZcey5vKWYhKvCL}=|EgDX_zK##zD`rL%@Y~L{4Z=D0?9W>5fBKi^!yO zQV0=ga+qW>4|YNBO@s9!1aZj{Vvw#xmKY=`;^H7p9bg16NFjm*Tx$Ty5%5BG93%rs zi$lub2;gMHD?unvai@R_w~Qaid`zf-2n)CdkJoXK3?2S(?9Kq6gWtL4pLiZx-Yy6z zzXcFjgTwFp99M6^oVOQ4m0WzsK>%khECUKS?+yq==jF%|>_Y;B_H`=}oleMaXasf- z_LMdCDDvgh0C@ess`&3fvmyMTkZU)98JymKSCwUmZM+v&Fb7q7M?rWyA@|XHaZnJD z`=|hw4HvrRKN-QeztFXRscD5ehPfV5HdTPm9YLiYO3nv+BEpLB#bvKkpU-#F&|?nS zDV_qenY)MevCpQ`%yo5#c2}a>;z*^5d;7VeOt!Go*hQO|%+@kY?G-pdrfTa`+nwkb z#FDz;(M3hJ-Lp$CvC$#h+PpK0kf!eLcu5jORz7~V>^>JJ&p&c>+rz5&KlpzA3o0CE ze%*Nj9#d{4PEPraZCc^kjXXfjgTP2|Uic9GF0*oez#V=B{)O#w^unBjy+8h*;j-&d zY4Z^N73YtOFA#@-DimBGpf!nJU!s^Gxm~+u^XO6vvcmq)KKqB#@AT@weo1#=M*nde zzUJmPTsZuK*8~;i3AEia`Q|BsvxOg!{kMaeR2C9ee5F zNm!wg^~d;UGymeRahPfE1h(;O$T7OWzYUJ@S1C^=e>#S{a`H0&yD7hEZ12E?(IC;j zkJBgoyYI@sewFck*fX$=%m|Oe5q7)bbVuhWo{Z=`X8sy-gguTeC=q{&w8#Ese&YuJ zqsJJ(gUP3{9Rw!7Lf&OL;ooq6_-i;(LLn%!iwOQAwD1umLyPR{~sp$Oa0|Zz9f&{J<6H??BEamh31DZ^5^DU_=k}nxyXOZc<%JCp5FRBkMI6f zy)q1U5J;mn9LoV3dl}$ zKG-r3EQ|nAXn=?b=9`UN!7*VP*)_UAa(Xy$<}g5k9hf<0G=@6~#92lhc1MC?@_H|i zz|fFJLUl6~DlrZjus~75#!PIrJGcm*vBHT^oB=M^z-4h<5Ri=uOM!f@qe`g%QV^jH zWXGIVP^X8iTy=Jx(}ot7nbU1z#uxO03jx$Qt^N3b0>YWT`U^HJ(X$LcIaid^)c4;E zmX$|T&b=*^zX3l004WeasV;?*pcooRLQDjwfGHysNK*GHm4g(pmRJbjEeIAVL=Pf# zIR(?sRGo=Ra5{>@1W}{IRqz0~iwMl?z$18-=aqm5a6E#e;FTvO0I1@y1a}n7SqmNr ziWz;zpa+9n@bANaA$$`R13UsB1|B}uB*1NG;9q^7kSp`-or~&f{-Ng{iuLc+r+tS) zoI%Kn8qT`}0y!`?G~j&Y;BPBa-l45-Ko6Yl2GG8lTM}S|vLOVNVGuHOz(ZgU+8g>d z4*oU{t~}HXz{A!$L(ows?qA%EaAfQclSsy5`A5RaA;i z=9W&I(?<5EvWwlen2OzP{Bv2eiL4kWvZlF3=}cDZur1(jO4s5Cu0C~evnafxead}u}Rb_5f| zK~R9ni9>Hqk+{V7XilcXK)FrimB<1<4j(ZtJioa0$mBOJOy7(B!>vg~{)JCW>$@0m zKoJ2FxsV&_f(vWBs3vAn*X_Lv$G7&!8KXPb69)|on81?RF75ZQwG(!xMRzE7(K(Y3 zLtvfY3BpmxugcwydCT!thQG(4pc@p3fAX|jZ(aB$9lx1)hvrl0lT3dQ`Ds9~J=cNx z9rB~{tP%%a>rnjD^nzVxoYIa=CM-^1i}3(H3n!fRu!04v1NNV#>1Z) z?f>}JmEV=`{?wRK? zm)TDiKHrwow(Hi{ZYtuq9MeqNpk(7znvAHEMLmh24n&_#X@)K}h)91Tc_KSe#}rQ2 z>ZC?r5T5Rt)u$B^jx!%Oo)nG@p+e4zK?rAofI*N4;=;DhI?%vg%Xqea4xvqukW%Y2 zj3^t7c>`rsC^Vr~CV+qk#K2G>@_b-Y_}WAe77&~i5M$dhSW$Nid80WkHSmvfTe!D{ z7am=3(lWw+X4!H_*blUc6Xj?^D2z%;=!#hAw#W{r5O@v5SqqQB6yiBbYXpO4V_f~L z+Cu_|2vfijKoD3s1zMrqcwGqu|0__J1&87U;doBp6Zg>$&y++;p!f{W1VN_QniMFI z*R+vQ=uUAa#JFnPurKP-^TeggDcV7oRb|=OJQ!UQ1Z_A_T}8PQT>_$@f=G24&y`+l zZ6GZm1>YDO2NVZt3egM`90tcTE+oYO=)s)F0>3Q${gH2S(AwGK1EAH%t3aT<-I4VH zrp}-KJkQ>vTt=X_a(R2C(7*Dy2VZ}}Bd@`Xw;c%*MBb^;LN-j%!n+0n76 z9xen%SV8|b`4G8w;h4iy@EaTbjXGGs8ZN-?`_s=93dFM^m=5NUY7j?Y^)|&68aRaO zuzij}6QRHgng?ix5Fzlu3dhcu0Hd~Q-rR?5)&Sf`Xm8W{7w~ur8M;VTHBahB0i33h z;GrCP+m%VfY81>TJDN|#lIz3?EN(JsVyCLHq^0E&idxR%K^zOt(mAnq9$A|gmmnr4 zWzeQGZRwA2d?M0!9GE>`iljJBmd(~@ZTO7K3*G9q?UmhYe^22r?>WaxV?5^cb)sLx zM42SkXY&9lpoJ{_$_II2mxIE6Fo(Yg{~{y-arX=cD(FYx3DRFlJD*)$>>SX%b&GgP zc?1)h*Un^KKrkof+mHBh%sZ|#zi|(ijs{dXfF-;ZSik4a=jZ>YCrIryC?mZ9R<2-XpC`dtsZP;0S`eR4`>)pmKPr`1{%Ta>_ zarqYWF>u`Cm*`qDgf&geUXd$Hx3=8r?6FgyE=BwnQ9YXPVZsG4=Qk8Qe*L|lj&}1g zawAeyuqa7zS3w|CQMFvU2|I}OKJ&rzM-C5u|B1eTn^RXeC_+FQfbVnuIbaIc;a3~J z(`heL?)`ON|DaC(nyvC)$0$RRxvaN~9-MlaXNh=mAh@|CFD6CARFYyN(GU-pCyd3* z!aPO>Jq;?!Cc*$glp=O2gL_d?kBykjD1&lR>L=hAeOehKhiaCv7)ii8tGIJlx#<8=7$X>MAw{k^^Tb#`Uc=|Lmzh!mhtRjAz-M8W2wNP%64oPe zE$hO?%Cn&bf#T%AYnMrxCZcotyVyNWBh0xpC*H*;SOZH&Asb<&G>~Z4XfM7S#(5sR zldT|{>BB0CHsfrk(b$N(&IVJpwTGQ(g5D~G4zd#jt)pAV7@S7IDBuo;2wG~vxFFzy z1>A8kP{#sZ4R-@qDo_}m4BNt9*(kIA&{w36R>0vU_#a>A8(v}DMHN#NoOdJy?!iY- z`OZ&5!^1d}5tMfttmNp>a$mGoLgpMixh`JBcceZL6DTZ)C%Zu#|C^<$}S`&WjN>rb39gg#K7^&ZosD z*$x_OLT*y@d7pNFUG(S6t=GbMtJ@xQ^6|aZk1Ya&uzz8S8i&tO0!GHO^H`sfLy&Yb-$V=C_cuH?fsvawfb=9dGE*^RxSI=?t&CZEeG(F zam`soB79i*#=CF|8Fs+2^%p)^zVI~#8kT!>fkmJQ?|F^>GGBa*($UQ54)K8@a}BP3 zj;oLJ$~B%mgd4DeJ=kZt&8hON6Je?}X5aUPUn2by3JQC01erHNm1hUAzrc;JPqV+x zKzqFK=+j7SNdVh5=g5oj%0ABwymSX2iS1AN;tw=if4Q5#w7Xgy_lp(B@SVzj&lqU- z8c%~C5?aBG^_sj}h8|+*56Hdulsv>!)#FS!WocH{npG1x8W0+bqB5%Bfw*=AN-G|i ztEUuK3!N0SxQNUJDfFm|J1R(nDq&L+XDYmJ8&Ud9bC#Pz0|WT$vlKm{PJ+S%z!AY( zjz%JwoDmCNI7yjIP=yA`lw%~&7Su6t$2+8|rZ>L73p~9#Y#|>LzJKbCx1u?w%~) zG2M36*cDA(q{EAQ$ppY4fC(amTD=sj%Tok|V2FTVAk|fHsz>GoD2js_2*ohL0|>bx zI~1~$GgXNJ1Qgcr!P?k-a<^go>14O>Mpl}zSTJwFM0OeuO zL00cv2f#t`3G0p_ppNk_L2y=u>+#Jiy{q~;cAqT;?13m=wdU&W^DzZha1Fi)7hqZ~ z{yMdC3m%6(xXtTBYTSKN+d(d%hlMaR5Y|$+d^_uPD<$=uCh4S>VQ@~bJ-lAS-xgHf ztmN0h-#!OJ*n~J<^S1K(PFkEmgx*ktD5j|5hB%UOLSOx6amFLNr|*VI*Faes5=%<<7wpA!ul7@zZi5e zVeLzX{r|YxVe5odq=$VtQX1uPXMhDL7`URT<^kZ@TMQFkz0CI6WJnQA5Y93Pbv6Lt z&ejR45Plx{L)dj7BrbiH zF2OGR!z&CsY)29ttndv-*ucRfSB^PqSvgHZV~{~Gp&d}eRsenEwH8JC?h)ob$(e97$L#2uq&h)pW0lem@`qBKETZ#sh9AF zn$;hJ|7`okEmtJ4dykz1enHuSr)nH`-_Q&NI%JK^e{>ao-{Gwv%XUXSp;@J#EBi^ z6az=W0^-m>11n+!84PuZxT1y%lJG!qq{TQe%nr;mR2U;ZH8RUF9G9C4+<(6JMkII5g(vrOnI?yyE`b-yIW zH7CkcV8jYikcM6W~}kx!M&Fugl#Q-jBZgaj+u4HLB>SbDLRFf+q!WP^}&hI z0E!p@o9b|&a;CpfJ>9xo%R{7KR&zgq<3dsFtb(XJQt%Aakis>{@KE{x0uG1p4E!)O z4uaHg=^*b+*`EmC@jMtzzq_oNIZyQvva}h?1uuU#1MGJe(^h;BTk`IfwOslz&$~Ye#AgvvE-L$_yw*yDKbC~ z0D!^7nPzN5vO5XaPMNQ`bi%T=fWm1@8kwCyB6kckUV(n(m5!?`ZbC4ILI(rPMl^7{<5J6o%+4{Xkau`q z`GT_R+!GeglN}#B!r{_f9E$t?YoA zWIUU%vaFyim_Ul!uH+#2G@Et0yDf*KB=w0)hX@`Tk-lAyxYEJ|=7PheJx&X)sfbJ( z5tGJZE5Qj6=P*D|Q3|LtPauGiV7ASna3K)o+=N=2<@%;9n&1Ww&DnT^LZKE6W1I)s z>*zL=4F|wRC}_Yz1#wuT0=sC7W=zlwBOwubLQk(KL?=(6Dv(-46&XQj0vTusnJ{9| zM@}MXM1-(mM&E{eAP@zGCLn7Htabj&79Ng^C!kq~fWqV$p5&XqN3Bsn_Z0XaYxgnD+Gh>ZqOS&M6GRb|y`DJ2Hi%relp zBVjOUiXR7Ese3?x4CZJpimo>b3gVkLMy-aZ+W;;YM8GMAf;lDNK*Sx%V5ES8817gi zXJUaBd=zG+o*on;G`JERcW}cSidX)Z_{zRZg4~Nt?jMU ze{EBx>MLvgJN&`Vv3Kub)iL{q-=-kElOPU-bzmJ(=Us!~WZ_eDG6Wt7wKj?LWvBp2 zmFhB(x2e=sYS82|T!0rgEY%K<-~@Kz-u=^10`aVUtFRWbppc9c_K8sUj01v#d;OKO=jIW}V30Q+D|Z|mf{1sjZr(Ju z9Cb^|;J8akXm((gC5i;mqf#WZ)r8`1?j<2j@a#EC+NPXZDx$`?^0CqB%*sF+({_`a z5JMRy{B6QNNb+iIN7f`IiA}1Z(wgtR-ld%TwGOozvhVMkK;c{{fH~46FhLxaIj=O=hhBa?r`NgdGdPg))G&g za&HG87$dU4aGa30#T7LBo+U zD%T3iY2jgDn+*tfAW$L1hz2C$1(_lXbdJnmf@M4-1yx)Lh1f%+1$8uHhAXa6u!s(b zVUZFbff5ukiVz_yCoLC8)&fxA5KcB2`2qqKphx!b5f*qv3bMczKvsAL**G1+1Qp^) zY8aKtlA!c~uHb@i+;z>l$}^zu4~JCWvH(sBJbs&K*hnwv#(SazhhuQq5)L7ZXy#7G zaKiQycc_G`U=$%5y>Z;r8nkpB#n9IX)#@ang6vyK8V1Pf_d=u66d77eI}#2FDl3bTpIN@waM4kvCp&`CRt}gH*RK^_+kaTnUC5CLnkq3m6!AL$3%>rxb1(4$?5f zT`*^>mP3PkuX%|nMHn1&hCopUqjxTWyrovxci{u@!?1uQ2o+w9MZ*K)ydy9`aDM0u zT)FWOb>Isa?^r16WW@mIU4sbsBDW(`@ONScK-fft5f-oqTN@1f0EZhPnEOFsfZ2u+ zP=Te8An@C`4+Y4n3vbv7Siqye3=RbW>8YR*GI(|!v+gyTvj|0kireWR$z(Sg1%mEJ z?hOP9D#gu3aM2<7)I1;4XU~b1@dz@Wu*P-fR@76{ZhfFJ&gZ8^(So1l@&y&uQ_ zY5a%^6bj9PGDAk(#~^hz-_plkMTaxzB(S!fk4s34ASBP(K$3NAR5jX+en zPvgVNS|9=_82sD#ucCjM3H>hr^!pj%5(wN<{!a(&uV_blAqr{~p&a~Z=vysm(WvGV z9e)D7ZvMxY{^*{hme#;rR#^vJ4x|ug3-3CAZEe~yimrMe2AL#pgiHuXF;H4X6(Z|3 z6Yx37*x8aMX>-cWthvMh2_MlJI5-k;K_U*OuBwbPW`QQ4!kE)t{?H}=X$1s)Qw6As zu>;VY6|RX+1ROWK4wg{?F2L{1{+HN{0uHF0O~^DzPv!0-7m!4ZqyhsH5Ft9TBPh}n z3NBEHBP7NK11Y#-Eg^wGOB{$$0wEAH{Xi~=P@Kam_tpv(Rfji_4);lm|%L%V?3hrD~#L1u#K+ftaRgaXWIs;8r_?ZJB%GA*TgI+3+ zXoC*wa6`y22v&F^gRy^|3xQ=O&M8|2qXY=pijbHDiZV2`0)eK$NHx>&f(f2&CB!HT;CExUkX( z=Ilr4~R|+b}R0h=t_1BTg_d_8A}$ zP58+@{@6`c4V^Ix`GC+9@{gVJyS)s-+L1-DpNS&I?|n_)*BCSB#Kqij9373Qx-?rP zKWKw&VU7DJZb8%>24v#i^!OB0qB0vu5F2`9v641QH3XD)C%EE{ zD-N1yot1M(SO^Ocxo=M&6)aKagiIJH;DJ0xmS;H(jtjwXWdu(QTfA)eKFvTU%tz)u zruarEbV9`@e`-U}+BRe&6p~S36ns-WwEpbW+f|&qLJC|y;qk~z+l)q0ybv-T2p!TA z2U;V6N325xZSfv5Ko(SB8No7Q6pu1!SW6}Z@m4i66^pSix$)9$Ym-8ABrdu3Z%CDd z;~U|BgWymwLBSjhQ@pCe%7&#~0;agtF|Olb1sB9|a3{kc{1Z;65Ks_>W;2;C{?wA? z0nb-o#E=>C6r2(ikq5ST61)e#2MR1-H_qjxhV`6-H70!Z<1T#NDIa|4{*wQ{9sUP_ zWk(9cg7GdvfI+y^BJZLzGFZa|_TXg*b^YoA$^eWSs5mPGv=+7;bF$M2{!qI2z8#SJ zuk?rC$3ZqEfc$l9g(FZv?vuUAA`0zk&XYzOv1l^p&`dzfa?Lc-D#s(L2!J3mCe*z{ z5v4OnJ-S%QMugEUO>EM5bGk$N%piXbezA=q22#UVu-Q+vDh)rk!}j7+}UB6@i@!_ z+S2wsb{+IwduJ!Cxp2zi6ZBieHT#i2IPzl4-G-AjKl~b#33s319$Xs9BRYo;)?moS ze&PaaxEEM;Gy^$ck-h8Wj#n?EfvY`7`>bGR2cL5Xt{5iV5>9J7p$T-31ojr_G0d6l zaB0ohaiig4;fYhooL*$FBSCkU_Zlbr?3}VxP9r7Kbi_j>({J(^SiLW*73WOjfgl__PWVaemBZG@fkAW>XB~p8b>vQD6cKmam82|tVkAK57}qq*aQTwlT*kXc z5{cbBglOrcu^6(sIiXfyJKRNqD3~ED-g|+k=FHd2WBw1P&`j8xlGgZ0=m?H2(1I6a zf;l>(EluHK$E!$%}96$28cptMW67McBM9&cN|M8jm8k{FK=*$9aX zvO{dKfuNKVR0&&1CO23u5jFvciWEYqhTcGM9HO9!(vUlv0nb>AgHMpc7;xce;1u!} zqC_VeVGRZXhB!qjf;e=jB905LXd;{t);MITHM@aeAoL9y=?Z>}p(RaW!YmPb)M@J6 z*Md{w04_Kr@cP#^=!V9#fk6-AwBSO9P&Y7GIza1;k!8b?k#^a0wwx0u31xyNLM8-o zq@ht5af4Zve>dm=EWkkNB{fLrc+ntADu|owTp)UHSSALhmZlP3Yb6J74F+f-2&I99 zaz?6K9alyt0D^`}1g+kqOKpJWj0LI50XHaE#_OeWNCFee$Q45k00jplMLGc!LXn}j zdj^Wb%)OU#!F=ZVb0HL55#A621&-mv@Lg~MD^Sh@R}faa>^L!zS70D~bz%V@KH+;m zNxd&0YWV*h32|^%!V=VYHz61cBk~hyaq3 zxCikl?jb^POod`jvdZhMz;UH@3~&dtSV-am;<$Mcj&{kvq?3PN?YVv_ajQ{ED%kiF zW&FW3r&-djVZu1amNdo?A>()8B8|Wa1N5*5M@m$la7N{}a}}NntRD1&{YUWE0C|HN z?a0;*o;KuZO2h$&aGw{6Lu7u6D=~4q&=%giWDC+^@e3c|+6pNUX*ynQ5STkB!VG{B=CI{7!b)is7Z6frIr8W+TRYrtc*MCgrSBM! zBK{;yl)W!-^8z<7v3-v;CC!;+x>NcoU%1ATH|YupqhOKF2^oZ0&y7d8a*x@HyiF-| znd=ASIUl&q730?r_%)cq`yDYdz!{md5nAea*O@5R8~Kgu{WG7~;aB;qGydcE*#BS& z-`?|q1x5LWp002bN&Cc}m|24xEx#+}pK$ph!3$FG!mAVhBa_=v|LJF%)pI$$pb`c| z8ANbeL`+OU@qz5#2=3AdU$@1b!lzbfAO!jmM*`?la+2K{yE}U0)Q5H4m*BxynZ_|? zq!<)3Tmc=S7~3tEcUZbN-T(d|E-w{)LY@(w+~b)LA+Rpo6)puPcUd(=#aHaKTx?;R z(?d`~LlEvd3uP{71DUC#Fg3Jg6=C=h-T9YfO6*`Dp5TrMC}yB|qKxEB>&O-w&`61> zLl1^23Mxo|f`A$UM96?sBBqFAkpu-SqR_1Hz!(ULG~;y2-juc{Re~pu3Lc?B3S?X$ z6Egh_bEYGGi=JZOTDfEpAx|hR20`#Zfnoqb88bH<-Zv0!BlA`(BGLLQL@)s4T%}il z039T!3G`0cpx7JSgDj{+KpG<4I^bl5tcZo2p}_-^Yoq3ZF6aV9(TukE9;{%wS(TPu zage6OqIfZJN1K4VCbeLWw34x7r7viK2*F5-8I6%))5D991c?;GN^R8@P{$k!QV-u# zb3YCRqe@qSQX4u~9X&P10tK4-F<=0}BVgRvV=2U%T!_vZUQ<94Ckv60tMEvhD)#m zBgD-zfH&+0AdsMk9k7j+?L)YGC-6Bqg7}a|Snl(y@V3E0KsHM%?_c{55CJx>0vjP4 zoKDC}M&p=jNHfw+80U;jD2##a9=Q&W5Hohj*sy{F=P=;#0pZkn zEU>K{8^VL&Uxa@Ee~&mp96#qmEg&+OlLIOR1e;`7xf2=MFX(Sek;6mffjC+Z@a2bZ04if;7965O6R^J3 z+pKwk|Jv45JMj;G&k2oiP`EHsl#|G5K=Xdq==eh_}L@PiFrpoQeO((oUu z9836eFLH8+A9r9lJ-b0lE} zZxDxurhx@vfzI*F7_f*c>3~vb7IaD+FvlEH6=?|&2u1*?6|5N`2SUITfOmMLImI&; zcy)ro#WfckoFYW{+=Ri<376s00(VR*b*7eLN^O7;oaGMpCfo?@obdj2ZFld*!4=!3 zDDF_uMA)Sa^b_JG^d{XgSxG{U#2x}=j*V;yGokPBN$t(sQy?|WMsSLTCgR;_r{L0b zLU7L+(QY2n(j!Syz#LITA!Tr)RB~2*dpZz+eU2Z^apFLH)dSUY9H0wobr+kRiT>Bu>OR5N@8W2=c0;p%9GH zDzk>uM1$liv8-Sqa<0KyhZ`xA1mD2~8HLVmYGpBP=_dLY-T&|6>tYm8Och)GkDK;) z=??iAAMsO00cZxg$T%mhXq_QIfkSkkrbh-&11GSf+*Ly2dwN7zZR3g<4}c5sNPV>eoarS|_ofeAm12lfQ7=_p*mU3yS$}x-zxn!4j+DbZ9ZI}@ zae4FN@mPXfT!p7sj%1cbb`S_zth6J$v};)4Fz@TPY;ot>EA){ZiB1^kBGV-?LqoIV z(lJD6&`O5bKZYX^SaA6sm$v~JL1il z3o3X&)h*)L5Go`gWQcf#bXKs=L9mS^2Y?|0z}dRt0HPG9F|1VE1G3;+oeIH~40{4z zIesGqL;*0xu!0mYfqLu=5qSi8Q`1$PpiCe?aOcioqySQH)UPH8tij>;eU7U)V9vva zfxM%2avDw=c8qru8s}!iN{GO_B?FM*A_O>vYj6cV1rq>5?FP_7;J&D)KMs?+yxuTa z?0@k?zqP z5O>KZc*d2%L1>_D8Mep+j0}ODCE~Of>F%-0+=C|bk)C!<%wUWKJHP{0cra{}z(DR> z4Q;u}GxfIG<9F&Dh<(DgwTm>q2MHWI{1MiWpytNacDZos!Kw|>_PdDYw< zyR>b$TUI&592QPia>(vT(?ptL7-YpAe1U+5GctiV4xwWX?kFI%YbqdYkfYa}MRiv* zKoJ7iSt3FJJ)4Y!{;V(16{Zo70Hr>sE4;z){;kQSz3oqYy!)nwpKBZ7xR5e9-5Kkj z1`6Mw_-mSfw=0u&C|Qq-QU1$*nl5ku*Sl5xwcB|t5}gvlx+4T6qArco8-s9p!tqF- z$WGC?6gwU@M>&v~QedZ<&WKSR9ST#J%wTD{l&M(866P3)Kz0sbe~Ts1|AZQomag$h zz)Fmf^^o(D9I*y(2*y)eTpk&n?L7u3HdxQWHeX-ZYPndrq|91M3xyfjK1E5$vh%I1 z`#X|j@$!e_@E5b_X~qMLxB@f|EzJypyh5BoQ9~!#itLEs5QV6C00F@aaU|l-7|=p+ zED!`4kchQ7XhI_HG)qdv6$-f}D1(q1x)#Y4L%{>|j18s~rR_-#7U>3XVx|69)bO*B zji$ppisNg_b}eo#v;~`RbBnbi#`Q=m%o}{<1!u3}@=zaQ05DL>1X_+7p1a6uqyb$p zD!(?NjSP_#a3{c3qcO~JfjKtdQ|Ks}I47TCOBx}~u|0G_JK`fnNV_zNAe1G+px{oE zFdK4|iF(XxVWJm;Ho1%;c7-9>TxfE$gRR8Ymb~%CO|7^$B7r_Zp%GNbj)Pf^QV9;@ zhMSYXHl8G@IS&^wN}Ya05Fs>JRaD9X5lvixzY_Ta4PAr)5mlPtlGMj3>$wIg2J3p% z2(5T>F7yPyf3fk?n1I}T-zH^>?> zlAw-ea3!ktqln~F4br-Tg7KO%5&xCvjs;*UMo7s_I$f-aM6WdN@%2DQKF>MW-K$SD37U0-wE#cpUQ1?MaTDY(+g zdFvk&H2*I1pP0%I35;T*Bw;K+I%L^O|J_HM)p54NECNxH3?tqkjtc7BJE1ff%p#*% zGEtQvvcK;~u7@j`j=nq7Zre|LZ`UL*p;KA7xCLRLI1}Mw0Ta}@?pU{)G=FzjE(Ldu zUD7DJzrOpT^oIu`x%k}ywvogzGFSG5Wo8)H}7A(+5yn|Cb zA_02P`XU;L9mmdTOADPK5g9nmJg1vl^wn`4SnqT5agG{RBh!L6tnX435qhO48Zbwk zFc2JZJRqm!ZM4B1i}a^huFT0E2@s&rB%;D0Y?BvYq(I8`>>#RZ3nro>ZAojhSu-*Y7LIJ6Ko69b%rBByYB3)$hUApYX_Q zFympP%2-i&Mf{PXuHQ%)m69Fek^ z3~3!@Ei?gd=tUexqfsQ%WQt(Q9LY|<$x|ArhQQgcA@V@?x`Tt(^_#gAYH;rL&`~=F z2pAH{;5D|;;4Knf+2Q5jPo{EJ6er60;Y6L{tP6V9`uBR@Pvr-_|A}LMXbkj5aI$mf z_(vxG)RU7xcB8p@_fBw+0ZHN+%7{m1nUgiA%0cHQv2(5lFD6}RW`VWIFsNjtZ`)m6hQc4&( z8CW-H#^$63U4y_JT_J}QuojHAgE=(pPMM9!5rvByzhgPD3Ww{pjZHH&CuV;M#Ql|?C}B{?R#^b12UK)k#U#mxkTq=M9kIt} z42g7`WHga@iDGaU21L;TpWp{@3JTl!A$dd^9CSo4VOv-?ZCX5eIRzoAmu!fz_QqTr z!mJT7jx(v4M7#+g6eSn~1jPy>G)e%25sE;m>Z#OGga+J^h(jI`!$1WMxKoTGWH1O| z^-~V_5Qn0a%9 z$!q^0*@$9f-UtyUAoYBdhXsLq@X=Gg^OLn)+IgrLz(L=c9RS3M!e`(xb5(Hx=iPxx z;e{y+;R*~8K_Adfbq2xss(}EN;0qb%@CbYsPT>HafEOSDppf9+8+HQ_C^c^op`)t( z3em~XJII&iv@7)!%Gpoq+uU(r(>Kaa6af6qghw5S%u(Tz@`4j4 z@Ho5&I;4jsrER1XK|#DABk~L$&~5W?HhwzFT5YwGnd-K(ETteC(E2hdqxfK%S<<6! z^1p~-kq@!fX^;{3-`DV?+HnEy_S~6pae}VMM}!077J0;spcG-5=@v{naE=!AOKwk? zKmd!VyngJsJtmASwkT7iAjX#t<*OV5x0SEy`R8v@l+}a=K?I}erSYKB1aMJz1ckm} z&^o2&Yz$=6S2S?o982e|B(Kgh>T2HqJ{3iU+9V5CB6y%UQ7Cm!3W~=IwBOz|zge0? z{Qa;N&I3ms3#<*HTK_`GWTTBlxWNxD{3opZkQqT(Iwix-pWRu1=*jYdFZl5qDXn&_Wg3&n983Vb+l~PEB#%Th>90WBO zNy-IhUt}D-m*DBW+&YK|Z2L^Ki?JkM|EJJDNM1M~Vn)i`+vnCbiqY11 zlpkUP%?>n}!wLhm#;OegQG5Ww6LJJCrJ;4EfG{|s7)Y&c5yLy^357I4moP&H6!JDD zpi8IKlHJGbp&9Q5(&%V2QPD^#vNTr;#AvvK2LMxwgCkY8EkgnEdZ!c+0NZ$E3zS+k zTpR?62)N=Iak67g?G$#l7HkzDaJH%pg1akCP@@2ICpZj*BP`2Yt>Cx|LIr}tWaPyi z(q*3f@<=ZQ!dHj+t8f>dTJwFMs00q@p`ujB=^YAD2IU6KcvnGS4BYLAybGbVAMgsE zfE^fM3jV;|05bI>n@Rwi&@ zgx^Gd9{+nH(NXhpAUmzdKJAqBdF-2!@0av=g)Sp} z>*POpdhZrWKBXkwX!Qq!{$&xQFz@J;*Vf#sc>wMa_Wu9%0NF4>lx*w?6XnI8*4Q$% zuMPk2FBlO9c1H3Rt0}ob{HZJu5YDYg}2_B($A7=2)N?la8LQVCExZU zx}sO61#oaDs4D78fJv_dG$BWm7(uW^E|?;qEm9raS_1%bzDW1M3uQL%x^qfi4%DnP z^`H)c9#AGwAP7SZ%qbWs5+UrK@V=9#aoL&pwlO!(!(k4g<#UleubqYy>TEUi!Yc#E zAo7F4PZa(AS<|soBJM{T{@tze|9HBMzuAwop^*vWfEU~-=oGTc7JRUgGAXxvKS^zI zT^;MCt++M!<;dcQgB_+F<1yS*sVTVit(gb2HMAuN$SO2!R3EWnbmrp)LE znvT$5CSg7ZCHFCvBr(stiKnStG7rVq#$qBSOiZkpmVyVG>cWpga2hZGR1hI&RN!nk zGp)*=W1&&JL4;Z#jzvnw1gT9&q^kV{$nc8dN{uF<4vIHH;^6xWyR)S&Wx7NMWJwzE z260Mvc2)s*ByoJeXD;x>hM`cK;GsMy6bj@w3$JGAVfHXpfV3*feaG{)3!U?@QR<)> z81E#AV~WkVtC-UU3?lCmNaRSl8)>O{t2F>`C=1!0EB@_34({*{7b(4f*XJPJA%pCHeOL)?+)<$6ajnW4})V181c*a3;`}u zz8h8e>C6nga8cO8_t3{^zLr6dpOf%ZF0VK)lx!!)x=|62g9Q;l3=b*kl@G`N@?$R5ohQxGUE1jwiolw2*~H--mr zniF=`3>~>;oZ^BO1=Y-5W}Sog>9&Yd;L)WV5=Tb zH%=N{E~A%m24Ud7aQ2m>3oIgyp^4&584}`E&wl9c7L0iB3LI?qP;o?a4II2pO`|%^4uy zVYbF*xRO?^gmw#Gx z6bQIL!3_-SXd+4QLIY_+R^qzuqacPjgHRwk8G_I(AyZl;5rq-Vhy{Tt1joQ52s)yM z8v?l{47ia595Hf7>F`3D5SB>73VH}LJZ-e10V$A?DL4)#;{^$rBZ5FQ)`4H0(5`qN z+-`U-(ynQiTn@~Q3;W!LTT3uXPca1CaKRM{2o6@OXx)&AOz;s;ptOmS$P>yO8PGsG zK!$=8$^=!IqEkX9AA%7I-e8Vyp)EG%R7x|Y4c@0lBuGz*v8o+DBp&4N`E-x_cVSlrm&aYYn&fPLY=f`1)maYN2a5L4Gd zwwKJd=nN8)@qkRwgbNY@gbGL_J6jxHAVUlOWy)`S6-2=m7U1v)KgZrZn1O$V%EOd* zDip+d5ex$FDm2C`6MESGit=>6LSb`*24WQ|J*Wu*-7Eumvu*$b%z!Ec1gu~e!rM9~ z0sNs<&)>fY*m)apf90P|nWVaYb0P9y0gQps>8@jc2tJ1IA#?1XKo@Wqxg=c0e+m8o z{tX1^{u9Q(f&U%rBGKc+4GhtDQS zNgV-Pv4}Vp@%zPv6xR5fH2@_N{mq)aWhk&BH&~(s28gxo&2z$SxY%;*4Qkn(45tk} zoHRJ(2u3HY8kT|#^etTi;{?9%n2&!N1aD9vRFfM469T9c95O-ZA|aySMuc7%KtLUo zNvLg?Hez@Vk`bX#I7~WldO( z``7{sI5qfe?)uj2$TwdS(Oe zNFhf?rD^btJEBNKZV(8H8Yv=sjKVk&1JeNkR}x?}5gKS=j;zspm_Z~LRG~n@1T$Rt ze9K~rG+Zp~C${d=2I4VWaH;T8!)=hlc#1ju&b~8Q;T8~FS#9G&fKsqE5&`J3mav2L zj3hfgEXflvVuLoUcku~~Wa~pmSx#M4Q&Lm{ZBTSeyXM-12D5-fHtp6(ddF2Mo!Fkviz&8W`@3a~KgK6Q$z>OIbsZk`}4Nw@J z!}d$LBIj!W!hK|3^=$fma^BjmL{5LOJkohgYE4c#3bq1(8gHPZuBXeX6KZT#BfINwQ7W>oC5DfnWsS|?BV48%B zP5HQSx5XoO0DW|HZ)o4);teCLNs`;)1&-ED@%%l*Ii*z`S5^1<6jr^{_I6@W`U+*ZG?gw=Him;AP@v0!gmP+9%S<#6!0L7{TeCMu?7$v?Ei;jpAg-9T!A^RzMMP*~l9fq;sKB?j?pot5Bc= zg&qdHsd`G4uwDvjK}ayi3=Fw~-K7lZ3JK%}uMJJh42!6f11dBlGC-XuY4M(>rybFV zP4EdaA_W}@BkBNN2!-5|<}@RWICzU_9VM%DIK^A6AO-DfrAzu;4X3% zD>wjzBDc1=5p05^YL7RR2CODF|K zNHB-?ZLt2UMSQB~vX9@-UAj=RN+-g~&c6b}!O=BkS++_;=u^ zglCC6@L6mLN(x}akK%t1`^#{G?xAydg(#kzwOf=e_uTNB$nnBsbkCAV47GpBuBa$MAGv_8WLX;7cc;b0fd3D z2HCI{{hWhUkVste$mcgy?fw44UTtIo+czKp?3L5ETLrfP!n?Im~JW zMu16OIl?3Gm~sUBum`8kABOKg|6~RDl<@C3y5#r4C@c#k5913xC=lcO+ko8laMu&9u&Y8oRBd=A!I^93#qUU zcxE;rj%6^U&^YFl5f9LkAoRpJUKJ%L00$IvOlSc|loSxBsp%n{t|sXel9Lqe z>c>xD!CV=Q5lCn&ObQKR;NXa$rI1DY=!GV6F(a|62kup|paE83K()lXw_XEKfz>@I zz%i`w#?T}&(iZ3`jwW!3ctbiO8-ucdE6{!kM^sn=@cV1*|Ka1j4m0t*stGkx^VQn@ zx1I5t@}jeAxRWv#h`i(BN?a3-X7}x3<`e)F{QjMQt1i}AK;=um&E%i}gEK%2YdD50 zun#?iYAYPU3GBkX*XstLU@)E)0xGZ;wvEKw1BC=Flymip1p>@K&Zz*M?*ovafNXXG zmaklEj|>qwr{f}ieq$g41WJSbI{ZDwV9$9Cdli{t0**TfT!+ts!6nS02ou*+jRR>H zTx1yJ&c2*ZEsSN&HBW!_yPo)w$(%2&c}5WVLCR0$TQrX#9X3 z2}%Ne_>&?6`er;Y*-)cBmpzp?_Qu+}as4a-6nj(G#j6d!2?N#`@8)!}4H-~n1xx(shPr)~qw?OK#{M^TV<6q$nGVB6y1YPyF zw$Dc$fM13G8#HjOb}(v`Ie6iAVLkBdoJqqCCrwE$+=33ad3^p8)9!~p_0mrsPMNB_ zRDOQD{9nKJ(!a4xE0#V^^v2)?M_8FVa!F&7kQ&kKE)?9YB$XliH2b>fsvwDyu|UeG zF^M#)l7m()oloB6V^^351}DJGxG=J6$nYy$=#)6)i`#tj5l`RB)=SA8U*K0FNAN5F zzaiv37ve3L!|H%%Gv8p$oY4tzCDR+{(F#X}<4B|6HTG}N0r-Gyun9fEh(r)bcm|`a zAcA94EK(v4Dp)`iHMAfr$PiF4#~Vb6Ymxvo3ZNrx#^&Tm7?47lP(XU5;0fIjqZOb4 zxS)y(NpbL=V5nmNAR7s!5eh_PfC;Y18h45!jsjrdf*ZPEf5pCmP=u`;ctQn%ODpyh z)1FsbP%bzlkkNueQe2=#3t^2!d?Xfp2j8cxu!b^$HR8Ax>!;E(#t0IgC(G9e97>S8U5GceBCQQ^Rh8G{ADl|3B z9>E??+gh!vwh@OO6xEI}b3K7AFp&vNp+JN0BOMY5$`I+5mIp>H#N-&38_b`t7%JcL z9SngxLUI%e?;aFk+nE$HUr{(;IT$E(h6I+i?N1A<4X(iK{kkwK?zQV9r$+Rw(z3z(jiAPrZb-0 zV$$--7k}dBU7WXJU{%wLxO)qc|ayES8OK z!bQl&vJjJp!PjdVW!iXLQ-Ty_v@!ckxe_2i7r3?LH*WHS*AU^j0E<9$zwn&$8<+Uh z7MEL|Q%>QJ!v*XUyU#s#``(T={VcDlmco=c{{I(7VSnJ6BSI1GHoOW0{D$)^T%7UD z$g`O-p@stx;qJ&QBjObBDvZoF2qEEfG{7CqfvSNsBNe29gs+G*WJWonY-1hcnhpI{J-m?#}Nf>P%ra9SYZ8BYL2#z+zr6yk_e zCx`$Y7=TA8NQVJZTM7i43;}^s@Qg)t!Nj@hw8E$uY>l{J)mLR8E3#$*bD@PI#SN5&=XKy-YC7xWQqi*iWXM@A$eTgX9;a<^DuOoT*Sv3?w8v;(q4dd5h5Oe08( zuX;Vff~@DFxg!NJlTpA+G1S$?Hx#xCCTCs?H3UHhsa7!nWF-sH5J9C%It38i$)JS} zTo@e$R}6yUjyZeqbAe&2OpY6V_8J#e@4$((of)^e0oyQv>j1J7nF?Df*FfMREZ`2T zq1njJPV1Sp5AGFg_5nCo4qG6==)u({TNXV&)yvP#x#~Q1Gs6$B#h4p?M&Mc%@`+0u}%k@ZOPc>iI7Y=-?Et!6mo>?M8O?9z1csZU7aVv3Z4+FcTD# z(S(Ok7V^L~0Gnvuz>#?Pl{fJ$cOBW(b~sNuiuHU5O0K7h;D&$;PHnkuIAjRh=)%k_ zT$;)^UDnw&Jhv_f<`d_1?nkTX2e$id{?o7_Aad1d7X@taQakM2Z*P$H>ta>!FX zd&VQz2@6mbb4DTX+xSX&o_?Qg?A(?QQg{B~BsV+v@$>ufH&?PaS4`u?dW?mz7KVnO zP5h#B1=jbUwxTi$Yv*y854>Nv4MW4S<>y{vF=c!ACv^A&UH_Ngd&+yA`RRY$`PUqU zCx>{f5+aCO6dg@h2)Gw>@g!0*`+=1*oWL{i1pFfWGB1BScW>$N!hwCwYo(*Kh+qMr0Y+qo1a6;jJaF|2k3Rz! z;2%N|ejRRa@%WVYkGyZm?_7}!hYeYHwP1n9H*{v_n9^nhtO3PZbi^`5YK1vI#S%I} zS}4d2$t1%A8c0rD5f<3S#3_ag0$KfU084Prpn*Rn;E){25Exb4;*%B3xwvHS76a_u zjQF9OOtssA)pR=$o1cjuVS26KtE5XkcZ;#SDfnvESnZsq*6() z;-6_2lU9RoQTj3t>MBN1XpoaSzZ&+P*f%&AD8DLxh`f9|tVd6pt?^4U|GHiOcKOp& zK6z5)#=^%XH@iR6Dwi|!h8CuQXBIsDN+oJcpb!KF6w5Fm3W8Hhwcb!!HSi|*Z3K`F z1pwL9;I9kK27S;#A=G8S>(8d6sk{;7?4cF9&6Q`rl~A|8pa0+-MOFMH{qC^4xO?x{uAL9XoNZJ!3ti1OT2oGlV9b=1*SWcy9b9>@|{UI!XBY0 zVo=~JaZZ@A+fqKy7bcus;j!!NCTPIn0^AIIe#(U@zcKJViT635Zb^}e;2SPlyM+vl z$9TjCBtyg%&)_rxTCAf$h%{4jq4adySfL+ioJP<>SXD)QA-9l;f`b&Y5Cn$+ag+Wf zq)ZuU9C5atXA>xQoL>WnDa6RA0Ft?s=>v-fnc<)r1zKETfGO%&O9oHG?TxOFR5^br zP8MW_bodm>*ovWWTG*8{-_SQ&+&6;2M=Q}bKopAc#aAidEfR@aknlAk$Q+r$K)iCY~ur3=uV+v7wLc##3(zIOK2fCNGA4h56ei@;L4C~4!h10vIoQ{84IXT z9N93PI{=h3azMc71P~BM3^Fbxp#;PcK^-lK(n5)hM$ENUvD3f+7@@^s1+K!nd8y^c z7yN&w{Qdn(`-^-Go`TbcoX8E*Q3_>69`Fes84Oo|b!`e)ju|s)$}lnv3=N~OiezDF znA0moSU0Q%ha>ngkt9MVh+?wo{rp_v$Heglog+?@ol#ba58mUwH@SDfXRgS{U*hU( z{H~rq^O*jM#1G0a#|;GJt-Om*;s5j;A9#lPQbMW;0+-l525{-ljUp;fMZk%kn_hPQW2oI`&bHVN)eY55XUom z7rq1edRW6R;2%bxg;qQnpFZ^K1w_oH-Amiy(&PTqBLCGb$FpDB;_;)OcqxDUQ;`yQ zw&!C@_A^?b0r?8iaDE$ljyYF=8ex;O_d>23FmnI2K=_grxZ~ON@_PHx`w`fj)5y&U z$AuYO4ZP4W3Xd6|O1zl301-}LAErk0z#}6YvsMv8;)%kafRh*ag)O?wlldpE@Po!* z6W59V^!)VyejF4tjqcpoQ$7eCGIkI~*?=f^nuUO(BB)z4q(Z$uriDeKyq)gQr)4$3p^?z8RO zbBndyQWYb{z-N2j&V30MEf6Uht6{Fv0oC!NGaQBPy>(P7Bdd z-aT+doy&K?aN*sJKJdOfTsR;r%UXZG53fQ4Ks;LpaK8T2?;`}X7N$;eiV+n5Y9oOA z{qg`0EdwCu4((K&udIwz^pLZdKuHt`f+A3Q_{WexTzB(*0Ij>b(iLvyJa#@k)NYct zWHRkPeATSp$I-`>p=mc%qgu?)KPW;$G zVdkh16=y@Ew6K%;{<{!3*a%`zVp66H2LoTx8A!^+Mc2^IIgrA zRR%>`RPaI?kSI27r8i~eS`YzDkjRkPcch*zP3F!MECP=~gaJm5U*K0i27#Hf{tixF zU~x%KVR$|sw3H4pqJdC47zxS}UM?J6Vy|H@p&i#h%U$O~k?jB-3;=u#F2k;J&~Vga zjtDh!z_>!4IKvCJ#2^c%9UO{O!S;Z3SjJ{Z!V_6Q zkV4t$^j0EFSvy+;(RjIqhUh#o@OTf-XXcE8IIZz$A~@THWy2k#1&Npvdpyv0#Eb;W z8U|uP4VS72R4S2aqb(Lo1P~-q1QF&nC}ki}&K9>AtiY+RwPOl1(CW+#;JBiWIyT^U zC_=MF6oDX6FvkPFg`SY7q)UiV)_4bs47lKq_vlCtNCd(9A-1CzWOTr#5E?=d3%D5K zxPexW2ND1jP)hB@7aeh2D1ZZa3$=}#SL#2GJ6RA%lp=UWjG^`n!O5Ay`H0aV9OS8> zIp4VmEtG~%n8Iyg0oP1EIMOsM68+Loc3DQISV0__V2ALtun#>t$17xRw3K;3REn385K8PyOFwS4NTR8Yz=6R3Tl?Sr<5&5!SK?!&A;>E#2S_;J z_q{|smiHXXIHwbs3)nN1UqKr}ixwUT4qt@df6Bk|$%oKY_+1|9X zypw#h-F;-S!)-`#1-4mbe)SN2jqn~;+bplLe3p}*?SXIF<=KeFjXXwz1j>zp9~EBB z{fXiEcQfQ&fe5HLp+TBKm$ z0V%kGReAdiOIU35Y7%JKggd1LK@HCs7^sjsOvz58Yzgy`ZDWzR6G)H(YFrsOG)^X% zr6QFSbYjKByXQD$w4bgg;LC*JN5iBE)2()NsJ#wsE-kAPmV{(agO#^EX zs-JN7ZVsgu#0!>5OM+n$7gS(lpNxcClmp5W1jiH7pi|P4VuUFku?%Z);x-E0A)6CX z&`9w@ZX`g;A%UngJoRTR4FJwR~%gO8A?}$>I5@-!66d{0y>WqMUediby z0Eembw}b&^hb~61x>!4FXIEGY3fsxWC-FoXWk-jR?r&(84RQf|uY6pm@M8 zK?kqEKskon_>=e+<HPJ6)i)Chav)OiD16E}hPdZBiayzdQu6mX-@B2P2ggBWm=e{lMtOgl ze(g!Q73~w+?#%x8?doR^jshy&mG__g+min!lF>nQye5mua0RZw797Bn@CfV(2`Mo` zm&a6l=_?Z5MG~0+!rIeNB|U1AAk{N2wFs<%&%xj1_3<%y3_)-PvGF-8h!+6p&-!rGF!vTv-|=$x)MSJEo1uMUVod!4;Vk(--)Ce3 zaQ3e}*yss(Ef5kohF^pAc|NF5z83usu{9nbIKc@cp&IWo;vy&jfktov^C*IVAc;Dx zghCiyleE3Q+}UTdyZ{SW!QDFGBSK+@YccO-rrMUR_|k5<$(_f_zjuXy&1lRMD&h!X7hNMOj)g@X7px#NJ~(6N|8Mm8Ri1kc-zAoO zv>$vb_l`)y`#Qc;iA#6|deC~)Pr<->{3-tElrOY=I`Mqr>V(xda4C>J!%KU7@O^Lz z8n_Feg6qm`$$L*(MF6-12xP@U2eQGM03l+9b{iZLIim%42#A6Z3hf%!^g=MA;erPU zNPz%z=wS^BBJL2dfVD`*6c;Q&AdYN1-N+V%Ob0ueiGvV?{md2R7_xJs#EuuYI8mmK zE0QVB5NM^g3=##daGJoRVH8eg$W7*s4w#WgY=#$1V2L-lV#nAB1vjm?I5Qu#7<~s591y5yz@CkP8V~p%GH`bEH%@ zkpL)A7#)i&0)JSUW;kuvSyx@yieS(!BuQNh%F#INik=FPYc?-EtMgk0sXq#Nv#R>5 zRt2cC|4ZPcA=Fr=3-1oN&?WYdLBY-xX`ENQDG)XyRT%*auSUDzQ2%;0!WMM?Kl0Lw<(QSg#7y*)jdnZz(3@kS?NGDZ0{kStuyUC$X+{%eQ zzqa4l={}zO(;zk)7n=6F_Ux}@dv57_!3-^U!Gpw^FvAlBlgk>ivp^;^!j*b%luWzN zHFyM`fakgK3OA3Kf2*&*d1Nb|ycQo@>j!6CJAy;}2E0(aBb|c40RSub440nb(lwsC z%s&)fHdruw4?9=5J>$uSS%MegQ&mghu%o@psel8&PxucYf+aDe!~GUeps}IA^=AtG2m7|4%#3Q3{iCBwV{Rw#%q)TNu)U%C?f>C zLk%DCQ&3#ULe7YS6P0Fy6=c92REUJpf{%tMjZqRALPG&_EMSf}2*r^=2jbE&T-?t>IecY9-sk(`2)mq1Ww=p{=3hE!33PQirvAi|OO1a` zv4VWY7frwTpndP<{9ei}P*FgfDFl%Q6ef-;oiGVB5S)oH1z?O}U4rCsJQ>qGNFU^Q zv|FP+=`wFLtDWT14rsKv7xHO7IVq>J@RX!Tb^?@)Mbd^;Tm%5!2zmnnAc8n1lnp%? zp<3Z}TX)29JtG^<#)3h}Xe3!B4hRUg!6T`$c63uvM^Rjyh9$aU~B znsA1LpkU{&^RgNwoOL{KBr^!2bYO)9Vbd$fXeJ2R6;NCacU%xh6RNln0>HR&lo5dV zdKmz#+w@iIC2tgf3*@tTGTTgC)N4mCxN~I@S3B!b(vv39)m^qEZA-kAI4!&s`U7TH zg`36yp2{sWBSRSXgWejNDgFxjI6P{+fE=hiOP*twp|F?v+GhQs{Y=mWBrq7D2MapP zv%S}bSz|A@<1w7(sRp^jqr2WcF@5EeV~AcFL{by7f7AB(c*n1uYA*IjU`y@L8Y${h z5V?Zv1b@jUgXKB9>X)m}3OkG!c?srljpd_!;YGTaSzi)syL963y_mmo7WtH>*SOOl zf?R+Z9Km+&oixH0DD?OpcIN!Pksq7#LS##6w+N>^*YM#R$Y(%m(%@u5nxFv};QNJt zGxKjHC(ek8=#&Nxkf9|P%7Sjf97rUiox&c&5otuW*#a|$KyH{Q!4YRHM5oCNZS}kj zRmiL}7U*D1tc8i=LWZ4=M~2E)sn0_MgfwN^^0YCHgvb-nIY$kb1$D+2bCzpjL)RgJ z2s)uvvM_`n$Us zM@sK?(u5MRj614yGf0#I4I+fPSusplUZ9`QwuDQRL~$fwcPS^(l9!0kCYTeq@E#F> z*q{-cU_ioEG(=?qZUjLgf+{YkGgnMV^)Xb~f}w`7+UkwBU}xW2203F80}?2u_H_WS zAvy&>;fCQN@;I* zOb4148Wc33nSLZW@5%hj1<6Q(8BEJqj!jh>%y7ZthRlK0$;BWE_{Hf7k6hsv>`E-C z;~B2QCD?%hIjJnKHSEFx_yh2N3S{^*&++74n1l0M3xB7n0EvUMfMX%p*;h)9&@pAf;pcx#XvFpk_8p(+F>$dK>D#4T@80wh79W&oY9D~NsDxyGzw+EKi-B&{O)6*hS8Z9}c&-I=+>zIB zL=d?F7vS5`5Aw~wlg~}*AyEoa5E07R7SWZaLb*D~E2f_=_W71ija;`En#1d8z&S`?wo{7~B5OjlkGeWyz<2scTJz~|zAR>Z9 zD)5c!_Og*vYN$c+f+!M^LQ!nP#&Gb>v_L?qd#F3vJWGFF*U||BP%4K(!38rKuab=5 z8FMn;44TqJ7(#17rL+K=P@z{!Vxnj*n^Xs>VuBm*kqA_!uMAQUp-~#hkn1+Ou`w`i zR8*dULxHBGM;0gjJbPHZ62e{YE+MClf1#1jpu2cxdD}&?l{R-Q&d4#vzG&+i%SX1BoI4b6I`uDkis+F56ZE8ItK697iy^FXP z#3kt3WS4Yl%6`y3`DL-e6iN5OJoAmkS-IciZlJUT!L<$!xZ#Et5WIjOEr&+QeB;R7h9%4jTf(hZIru!+ zv_MRnXNn4f&~HIYGtxu4OFKgw#x*72 zYXV4vtuZC;V=JVfg0Hb9vcel^36AGNBecTOmExEXrKawofIAAs5kSunLxviy$kl9c zm_f}4B7zCQK`G!Hx#a}am*p=D{~eemzG(b(;zJ6T;Zi~hX`Aa)7VtE_Kaz!6;~83$ zv?q(*vZS0MhJ6F9Sbv`Ny4vE)+S%jlxwXy7r`bM*83-kbt-S2v88R+-oiOue%Y!=g zEOO-PAu~mcQ@9lQ+yxFG3S%RWWq;h{R>OkMi1RK(YS=qwa#DS5-u*?u0tkJLq^_U`V7HnG57G_5?k@zi<(QM5MsVIC@VEQ2 z$(v>#&J_fE$ut^)-`l@Q-!pbB1(oXn!&FjYZlB%$mM*wN6 z(M%!>9uNUo1A-6GU|JP5T=EdnG4BuT^>Slox8r!J__wj}Z83w}(v?OQ@2?(@GNB}K_KnI6HTTgA1zVBxv(=ONsVP*xs zQ4OdDPzqWD-6#esHLC!_S=v~kk_AAV1bFR+q`;YaYX>nfQb2_Oc{2}Fzg2YwtDmsJ z`E(FR1*t9sBT;dMhNe&)G0cdHJ7W=1@7mtnZA0=d1w?5;oRdsx5CED2fdVE32#}!; z2426LD-o#U7C_HNGz7f<^l+t~{s;zTior-2cJuKwsr=He-Y^N?g%p}hBho4ta-6BZ z5PTLHitG`NM4t-!c;S}uSrPa0Qjy2D!^h@4cbylCd^U7Pgx@K?3_2s+n9&Y;FbZ0! zT!MS{m8--u!^G8z6dd;?ah0==CPOTz(eK8Xoe@^WFE);N<6Ix;OSrflZjbuPplj6+ zr)HM@apyPnLpSFLOiyuPxQK&8Vs*^zyUd=#=lGIU;o|{D;RGJDuA`kIuPI-I2~3cT zC;S){{1Nv@&7Te$k(PeSRrt=p--fNgtT4IFO}N%UUq}21es-V7Pw`BK5}P3Z&w2i4 zJ50|n2qRHhIzWLQOlVJ-32_R6;h3hdJt1apEqDRODW?fBE(yCZ3OAgbnK=RjBw?lG z8U~;+!j-@lbTEa{xebpBPi=?~lzK}o5^LvXHReu)h4Dg9QlbzF$(bkt7yxb+0xV$; zSy{ruacGxSFh@Xz2x`?(ogoeF%XEo;$_UeroFSnRQNk%UV>Q8A@`56S1{b^`28zHj zG^oRRa36?M0yrWTSZ5l*NiYG+n9wLLjLu15B1op+pg0)};1Du^MGQhjAl7+?T0MQ0>fwKN9C zSB<|n0Tqb#r<@=Dw^9S(Kn>C(bWQ-T zQcgWgU>{zA=3F;`+vidZ3I;><5IR^vhC$dhdWa84QK@Ennce>ag>&cY(1Nl7e<;q@ z=53>nY*5bKp&FwI&Ur+Bh)ui){;n{o7Jq>PfSrvoJ4UbELH0H5h>Mp)8NX=$wOLSu zQf<8A~YJrI~S~@jdtCeg{9) za#d5wG2w!_tihd9^(%^SDG)b;(~VG^P|q#_oFO=k8+Uj)Ylzovh&2`9;8G<7ozWo> zpg^p}tUzIxHZU;c<8gB8A$rc(7?*hmWGqp!o? z5w?V<-~_f{4qe~`PMn#u3IG`f7#x8v(82-+FvlP(xz0h!Svm#O=>t34+*oi_D9SxY z3x`6HGg-n?C;9>gfqxS|4gdq3C=G*vgBronNP*yFp`79~WKvU2f*5HFk7$nx(^IBG zSz?6=h=3r%Qn8K(LPjz`nBY6LXfD8j1>!DVkls<*C|Jz`85fG8jtix#e+H?u3IP4t zzI+0yE{L41R|Gf2kO+0XKm&gX{seT&%0W5l2}hI{BGVm~umzWp3ot4xWeSf&4&LIA z!U@{obNF?*1&_lvG%&!UumcGWp=Z5Axrp9GK8k$9vFxlh2g5v`)7_{c6FLxb=6P|3 zh`9^6pf24FCe9;!y!u}M!mivEZU_+)d=L_R5m)?mZ8e1vJ`4Zrn>>9JcEEY7_-!~u zzBs&ue~0WQEJ@DgyY8$g8edMu^{b1>j6*}&fc zoq*4)^1rQ~y}zNx3c&fJN6zB?Z~%8;TEjoNT5>gTOM;9_L;KWV_mW>4Fv*Sityb^G ze9*h7LN+v#0|pGJ;tdW%i&uha4~}ce{_pg%lW-Aha997(ihxs1k$> z<2nA=qFSC>i4t1$>Guns%mNJ3=uu z_|!&~b=Hf@!fXuTbP`5UbG@=x-s?!#JCU`vkEQrz8h4gpifYCORM9Ces0dkNB<`CZ zyLe1p6f2a{H)*0%f8UgEXymq!C3y^zQ6VI!_aR4iW+5)^)LJy$w)VNH?}x$j_X%7Z zxeSjcK6j0~(1LR_@|v(cg9cyF2_JT(hX$qrXbluD!neW+%od!!x-d^q`~;b-WM)GKGQMVpBLG#$KHYBA!7Zuy$x5zfmNw-<(?_Td)NI z*q}jqMnMBPV&L`1AVG=P0KdWR2n{bMn8O!g7j82gz&F5}GU6jBKEXPQ0+cPRKu^Dh zMSUj?u!hSp!WZB+%Wq?G#Cl1&f-mTIdgH|6bWCC}M0z+j#sUgm4LwEx6K-V?5Gf!6 zCZ1Yv)R+6*o$v+x2uZL71rFfr@gs)MV=c%zosc6a@W&4Mp_gC={uP#ke$W!ZOkMu! zs{s(9N!(WMZZUBJ=fU7iGZJ_wA_p$tCaj@*y*iCA$-EruXVZNou7^ss2jcyAr2shO zx4Qcf+5r5$^Sds7qbI0Z?W5uDbGR+7EfhMDZfd*-?aepYc8(F)`BnWWI;Asngb}RI`^u^{bVlr`Adq_w` zMi|g7(NU7(dlKg5<~9GeTRbuf<|sU)+-ms^*ao3MSim#H_pn;>xG@iq;DU42Nd$)m zZYVu`D=0ok5;Wq=i6DSakOo$e01%!Lz9{rYvxO*ro1;0qve~q#<*4K0z-JfS=?T(w z`V-FYHGcZOq6Na{9=u*x1i&|RZRPbQLq8im%@FIaKsZ*(w-7KrA+c*+%JEt%$bw5>i0Q}q*9mqL9P63F}Z;V`h9Wz2#vn*N}jJm09 zAdF{=tzLzH2L2oXjQn?cK4JVsEkmRM=o|)gB!CMz4kAbakcbM}vy<8OdfoHJbsVAa zh_i3(MB0cuO%ZT|vA*&isfF<;H4m8u0Qhd<-w*(SU07`hMhJ>KBD9r*2o$t{vTJPH z#+WYQ2F&1h9P!C z3#+r;0NVR?1E|`Oz^q1C`}$J&a!?JshYbIUG+&T6uJ_+uj-11{!(WFZ=%B9?J>YnO zglnyRl`Y}hOismr78+!`l#4E?fI$vem2~kISH=yaG;aj{Qiomb3kX7MPBFw%7+MKN z5)8x$iW|8g6A&+Vw7fL6tx-QX`Xn17jyt1*Q3Mx?Fr44mAkc^EtP2B3W@*`5`!axpFK2&2-NlGX`Dc=CdIIkEeX(MhLK>T2ob3sf;$c>G9r#Q ztkm5;gw9=7fm@xPjxwxba_=QwTS#M`gRBFKiHNFND3XTYtpzDEcYksX*-ONQ;z1-B zgAlfHC-ekR5jyX~ii^_d%%4O0wW8#eOw`|N!kW~1%1A)fgG)n9Ca!vY$!qKItTf*y zwt#z*EuFakjz^WFz^P(zc!}{MPlE!e&|D)PU_B@Y0MNj(u&kr08`T~Oc@+wDBDXsd z%#nG$scH%)On9I0D}pr0hY9<{vtddyTo>-V#=UMcl=5T3DV5m<;Af(Vor9BO?0v0`3gX6cEHwXLHn~Mgr?X{n><{U38kdfJ04OhPSQ8PpG(00}wyg&|{y9 zz*gk{6FD(tql$X!;Ow#i-`JIbA%*{r@Fyc^oia{0bh{^Ls)WV@Jzg5Y9jG2fIqL=C zb^m8$dF|PHOu^6erxZl!oOaDtL3KlIZ4K`=e)y1&t@zGYA(JNb%C_^BfPumcz*mTY zoaYB)yc6J{bRD;69B%XI2{|I12b~Zi&N~l2VedB5LwBEE4G*mkfI|d%vl;+Epn2PQ zH4cHM=bMiCkqb;VN`ZIaQq^U5Xkh^-umh8G1^1zv`*L<=`0{M&4sOD4!tVL9osCN{ z+nC|)0c$q=K0SIjA#WSeNSz{^Yu?n^h@3+U-wS^R9-$I`z;Fi})HIf0rlpd?rTL)n zSx+JG9nRFqViAWNaH=sK>bQZOQ;b;yNT>+`z|}_;AO>8qf&>!ct=aCtGO|#n_(0k9 zvQ<2bMNf_gqC+Mr7zP@#2CFC1R;RJllJUOgYtvZ^fj1aJ2YCxF9u86u5QMFa!6<~U zR7Jl&z?~_zx=x&R14`GE6juavBWQ0>Kyd|y?%au2m(dl%>pcPmi71R4K1JCi>k4B_ zbX3V3-4AlX!X|Oc#L*4`x-1tZCgoVmo_l~vQ87Phhhu0UY672r=d> zQ2r5x(HRcZlKKpGRtz-25hQ5tW3&X&b3#Ca&^n_tI&+~soD6_`nMRmA%!%61*;x0B z*lcd;k@MjHpVYnwGw@#_ubpXYyVJ7m`Fi84Vjn(X#|$w@PdNV^xpP{VK|Ek!8?knW z;$%6)V0T9Z0BTdS%?N#iZHVoZ%;2aH8?l(>pqJQM!a6T|qms>0#2haSMrlY@|5-Lj zCJv<@Q7dD|H@f)ah~N)uBs>srvZkmuGV5L~Y2|HzK5!2TD$C-0en8K(&9EA z2{$B3keuF&-)=Msokw%&8^1S!AWAaRt~J4yR)RL$=8cEoMG%(&3EU7cg@Ocv05pa= zA|mF7kZ291xCGsr62vWrSX?|LRLP@=dC8+DvELcwLXek&eBR5a%djisBmAKT5~whN zt37{bho6M4N*n-B$dvdVilLixUkgqKaVU61fDUi!a0pz*^G23tL^CMtV@hmjUO_&E zMAXjDAs5(wiOK63PyyUQ877FbD?Fm?8KQ%Qlvi7fM~FuRnd=CEhagF1CY!m z_?kOBUg+WK9h$=K8p7S&T}TEsqR_m3I{FF`R?s*fUU6Z;_nz|2ha7g?X*gJ+Z~_^G zhYzo@f9H0KXQqDNZyq*IfW(Q$bzvz?oeYutz^lFR4uUguY@aYWg66(g${)NB zz*|%S3cNY$#sGZTDnPO^`DvwG)CUBug*N6j90sGr1DYiJQrox&c%!zCOSO;DH?gKl?C_t$N>qY7Nx7?W)WIAwod?%07ZESsKru<67*epQXe$loH=1%7 zGQ&0>6`t52LO67=g^XuopY@hC03>47?k9m@fK(w~AYz~y z99~77I7MH=m#_`aS%5Uy1>_dA=k6b8m5G519haOv1;NuVn*EXF2g!f0$ae|f8ysL? zXaZL+lD0{Q9If#Q0x^=EBB&BKUSJAdsT~DQAXcRaIopUEsYO?H*#SoYC|=jgTQO?& zoNaubU9G$+)JTz&hUmNj?S{pKg>rR33qxQ5B8c-9!ylmERE%Nt;&IcY+BC(BNU|qqq+f(6pA8J)octDbJ(CX=ejpC5^)2= zB33Yn4S66L5`@N)f{Ju%Z72m2mM9T7+$n`31i_RH4OsOshbnt$(4W5)x=9*+5NgeX zwU|yD83Tvr9C6?8CoKJ?Nj{v*`JAC(Y>aiO*9i#qG8mwY!n$QWfHBA!hbe%aBm4+t z@VXGrstRcRc&s0xE;|TokPSw+RN7CYNFgh3XvCoySt&h0oS=}Mkf6boZuGEIhSps? zEMpjzjN!#q5HBtzi%6M??vBzXBh<_T8aJv*Gr2G*K>%__?sY8M_|iPL=wu~`&z;ic zVWzfp1~qq&0@~&vhE76pIgD{g<<^M=v5DNf!`BqpgNv{Qb0;>$$nJ(Jzan#FN>{Dl zv+X;`fNW^Kp1=Ywf>M8wgck^SBnpi1JTWr?nZeU|!j!Xs2=X*`r@GA5@mLi^xjf^s zIR|sRFeY3+Rl;||PP8cP|I+$>AAgUAf64XhZQACRuuJUmkt+>hLV@HIXV^uIOQ&GC z@X;E?%Fx1fxKU4S2DyfO)M=DUGj1!v2_Q~aLuINoM!UkCae`}AF@pu{C>X;63{gZd z0q6<{Y_V2G$Bm|AZRp4t7-lrkoe*KV1~GI^YR)CXPULdJs@Y z0@9!@)}w~RGt#GGh#*wgSrI`C0tnd&fN?8V&VNwzeu4`CAOc2M5sYhrVsx*Pl?EJ6LEtfX6z1?atQ-+6;|p|x zD;MuEgCeye&2izTl7!9)%EiPalZ5pIVcGCs6n?qzR|?As7li*93jDt!=-Jxw2=dk= zZ3zNQo$X^T-s0I62?ix7URX_-C7J|*yO4$5z*gof0izUdM7*H(PVNNkpfpon?dTyo z;~QTrfyg@xzH;1&#O1uzhI3cfP>izReRW(!SWt$i+P5Z|}=Nb^>(-Qe{s$SiuDoM93R07~S!V z1SDW!0ogF2OIjaqz$2xK?yCh zOemCqsVBvSmf$8*G%tl-Vk1J6!_2pidXlZ zy7Dk8B@dy)UDHxzf@ts*f)oU&MMy>F+FYGWUL2}Ed&oDR2n)Ci7vT}(q~mYza^tMB zM0lTE$9I(5E}Rhk!lHz{`y=66RUqo_hv|C*WzgTkoq87Bx5&92ZLDYlT=yYgE|k$PMd2T=U^67P;F{AR9md zpfga?HWVfWEnv7~9o|B$f!jz?x{-E9CwL@4H%H;smJ`LSK08hZ7XaC4^nF7yN9sMK zTS$*N1yE32*$i>JVc?1ts6T*h))XrmFu`l3mzJ8?H2@O?GVH;0WH4q%R}euQrvjG3 zT1n1K(MVI6I6ye79ISBEundUfg4FV|UI`$ENj3KiUMsSbaG@ZD_d^S+PJh|BH>a2Od1Th4yw9InIXVSYBFu@3*LZG91&0qg5ipt{Vp|!fI~JEFh(aE3T~K!Qy>{qu!sd@ zp4}xRqF@chFh!IsP{>AcBvxI%vwA+m8;pMeeeg^60QKMsVT0Km>dFME8gSf)qEo;( zHeiGLtZ(L#%f{e_jgOc5T=_YQo7Lq|h{DA+(NQ685-&Ghi@I~E%YZ^t*GOGx0I<4J zc>|0!5FjuNxWfP~9jH<|iV!9!jMelSl-Lk5qasdF0E|F$zZ22Yw&_IEh!k&_;n8u4 zGvDvh{JKbS(@rT+95rG9!3$BK1*I4XiqK@WZqThvm-MiS$1N^FKn%Mhmeqqo)NCzA zkfI^xG5EyAr_OFC_w0K1|5{hJ)`e48!587Svm3arq&g;!fhS}{GfhSV00J+-ZM>rh z=Eyx*;~l;QkDwV|Kt78(o?r)k6l)PfBTQkRl{0Ax0gl8M*!^xBe*!xq8rLGbupPNN z#hqhgDYy|l5&t;;Q|jMrI*cC7!(^gy`t)!zVAnPOPthOu@p}T_p1O}fZu2a7BZ7fD zI1b6#286yQj(`SIWr%jLRo5f9Gc4)1Xc{Jt8V)MBP%`2~CwE+%5;J2Wfj|o>Q$VM9 zA@odof+4V+ky@HUtW3(K;?QpMD0o64&H-Lk5`OeLf)V(CzwKVR?65Cz=h(ZSS!YAcxfg?2Qcn+u7mtncfv1R%fB)5 z8f<6Y4>l(i5L9U4L(YHV{0qi++3ST=GT8mzl@1U(Oc2;w@SYR)mgKzOZW?P$5*@fjw%=qYFz5w1XH?!ZVe6h!xhFOyk$5{Awqr&&&z!gH>1w}Aolv(Ioy#7!M&RL_1ANhp?D_4yM*WAId~q9 zd2h$}cKr2$NAKY8ak&87_ynv5{x=LiQHo>WfI*>p1-KIcC=sfXBcPSd3)tCqylND$ zd96SQNWc;}78s&O$6d^Dr+3jt-k`6`Z=eNoJ~00P*1tfz zVf)GkagB|@C+D}kkw&YnXDmz6PyScte#G_ z^6Q~D%D1iVD%GQ~k+G^RcHh`rcL3N-UNyK@0*oQxLfNQ9=wK~00atJjrvhRtl^!!8 z#KtU3Fm0kGa#tioin`=FMQ1;g(r61P#c;ujkBfPblDkFTCM=>4s^X6m~%) z4Dhqikp&ZU3K<_TMScyN)#%6$K7j%Ib?C?qamDl*R+qSy=mLHZJ^_UgI1dU8Gk)h5 z-#E}kCc*%Vkv?F;cBXg6@MjwSE0K@n;6(8xxR%jOi^eASCAZ67Zg~DbYWQ==CC4Dc z?}v*p0fl4Z8_@S>6|4vmx^s;JDiy4vabAurg~llmr6wF5aj0#5-Ed=YM$l@n7m$J% zf+J1<5t5S%IQ4ELfdo=w1a|_&0?-L9hyze}m>dPI4#2oEt1Adlu&OqIB91Gvk&kpR zC|Y&q>r-kquI~bZpUnU?h2YffFvURN9-In6Ne=${N*7j_qm!Khy0hI74FVKL9QO@L z7DtUxwOnzykBVo4mit0BdLjY_7@|X+nE>E(@DE`dN)q4AGB2Mp{hLjh1^bmdO?N53 zx8a#YHcEhq1cKoS7be2R%=bCJBz#O>uN2BQF4HC=;PlR7#q^Zvhy+gNbRz~B5tp_M zjcC$R)G01{BtCc9Ijhp zSa9BjD3QIx`c(X*j6gf^wMYD=1E$n&003;kWw;6Ln{@*)XwGsa1QM);Z6`U&Xcgxz zU;>|nBiR1R6=Q)slvaRs`99u-ojtBpt@}H07d``DgyTBIiGNP`TMa{^J<)zo`^Sbn zD+P7OYb-w*UiB6-h>;9y5JMajiV=hW8Hy1`ilY&0$Qu#xH7GO+Fd9fT@0?snjvGO+ z=%Xn`C#57XMTN285EYD|h++kl{sBd;H+%d>0Q5~oAs*~H%KZ~V0UU-mbR;&Jtl=yP ztWfJ=-|*;iR&upeQeX=aMzD>-{7@YO0TZMUguoe|!$$0{0#f~}ZB_w-oUN=7=eR{8 zyDMCg*Q*|`=r^oBYspQW4U|}WfK2NU1_ihqaM^jq=~px(GG&!Hg8?vUh-6{O>UC)A&8iS;*FABHH4T|JZ*LH!(*`QW1ur$art**e9R=| z6!Gq1CN1Xem_z)j({}AN zb?^7!C1@QRNi&yAVRlQm`kWj8hH2~f3R`1oMI0%JGZnHUN^Z&U#J~dn4ft#4r*5eW zo3bimObcb7*QR`aK{}xktYxjZAT8}k5rnK>CUkBR-Aj~Qtc$YK!xkt|vsVU^;Wix9 zf`6-j2S&r-qB4DJf%*w|CfsTW8E-bE<=%;K#2J;v4xviSAp}9dc{jisy2Rcg1S;OH z8h}j|pofgNt^x!&a8@P+BiNa^C5#BPU@B$pc zK5vEx=mU_TfV^qvFXwH={aXvm8*q&xx8Oy19=-sFFok)wzl8U8JT3m>G#ngsJ}X|_ z1)z8hUISM3V+>bD!3xD`1yK-6<+!^+p+FIcIFz$GGzQ7hfM(1|fY3rNWQC5BoMUav ztnW&z#afEf!02cofJBObL4(U%alI7uLCpFuZ@wMs6AKvRv$pkE^GCd)kx|Whlm|tw zyS1|dy0&rj2E6_R5EzAcuH8lr7Sh*`lzRP2-7JG{dJA>4m|0y$mE99)ACNgWZiE-T z;DHPQ>}=FBLIOqf&YY7d1h?Rt%BaCCn?{x)NS=!vtn!qC7PH`lfCFHT7lI&0s>6^R z5%+c|gZWX=<0%@G#yoA}!BU6Vj^=Blg@Z&~%OvIF)+~vLn3rBc@%7C2F3Rt{2R&qA z74SfC6efNqGZTq{$0DDdkrHvn6z;&}F5UMY6SDlTFSL)d1j|UN_mbibCTPJ6jD$n% z0GlyiGu>vm!d>VZFzgc6@%{yI8v^KAW>*i7uLzl!rtAp^nFvK_A&#t-A^w4_aaH2u zX~#mNW!Y#Xij*MY(Ns%8j2W@(#bts{9Lw@yca+g+9W<)X#}w~+aS-Q7_&JAyd_>;bO#Yg_ejq5RfEVZe`(%lwvLfCQnY0Y5AJ z66^p@c0Miq8tejqVDLpJBN~k4vNi0dRu_#UjtjKL2ZS8ZOi{O9{dQ!YWnXz@X-928 zs9fiWbH>7SO`G5~<b1|X1X2Qk|e8~rlo z`3#eXT0-Ej_Z|`+I{eMJMjrV~aI>~bpV#djwqOcP`-A)ZPY;Ho1HAr7(e37y~(z1r0>OM;S{aLzuLZ zgCM3Z=5#^{ctSFL?H%iN@95k53K#IR*<^+AV3#$3ovjVfv!o;C3{rI%gbi$3Y;Shy zb%V21Hq7_DQ4kH)`mb9K8%HVUoDGArnP@uO&1(wre##BXbOk`TZz`rTGKgm*j+u3; z&v|ARXtn82iFG&*pu9`N!7`eT5}1YdIWvHr??Z}7~5|MxK&=h~l-M0*QG8AK?{cGSKcYj+}N}`WSmJ!y!1#t1qT-4DVa<4Y$cN)Hw_sw_Gk< zaSE)+^Zd`ZK9u-1308e%rEOrR$lmBj!A?V~Q3`Ytx-5-rr<$;(HW|d-n2fG5cn~jJ zt?Q&;crryX_8h?04IzghtFb-A37Li<{EeQ!;?N5TX_&y@SNlJe_+4-hPVsNVKPX!e z1Up8*89vB}wD<<|q-0(fazEkPO`0Q{7=%3qeTIBbe!ScrBaDIc9H^!&o7hxM91DW`fu&S9w*4&(NTbU|=6=s1Q z<+h`s>eBL5aMrO5Q#}#sk~D+wX6sOKYw&`LL;?5UQV!i*iZs$CM`T($D5rRbO$dfZ z++YN1ro{OG{8{)W=TAmxHrm?9>JLzPTzQM5w!Lkl&?f)r3_XaG=~c>k z3ka654;}2oE6}`IHvp==K5Upwz2E}E+TTJa6{&ro63ClLs0(i$!dDJ*Rs~29@Hf$# zkGu>mY@bcnMz{*wu)`nT;{T1_&1GlZ*}OqgK`;OhP%x)ta76Jy1QQap^`4AS0#?6O zTPdIs1Z=~RQ%HhBXc!A)AO+e?gy5Lr>n6~pR=ZG&;Esa}(x47d>SN%QCqn?`O;D(B z)3^8l2=z4Htm&I?aPiYdL%ULUk~b`g8rjA-)|@vlrns!bTf_cfO^}3?G^Cm`A|Do_Fx+WC};FbaSTiVp)n?-NYu&74mBX5aZ3cq zQ!7SHqHc~kLBNgTNWcn1M1|}G2N1ywFIYlAoVIdhEBM4lTR2irs0xI-#ae9 z?r@DvCG&s$B>%U^=0Cm50uJC3q`Iq6`=n6IXCH@)+_}QhlC6fcX8aVT;mJqg0B*t! zxC;VX03`VOm)Ti!PYDH&m~cH(jH?Cl|67*-G?r&Vuw4(5!?CN0_b`SSqKLaVN)%Tk z1YC-4iDrpeKyf38D2iuHA`$njqL2}BDUw&p(Af~%qc%vypZ@*VzYQnn(bc5dsn+BMEaX5z29HoL1YBK9tym+sXi2 z11yO_+lVUJHod`{&{s|KSg-&E9U(%C8>uiC;v1_xyAlhBQ$DfJF0@YO9Sx1&!5H6l_*|}aFfHkb)0(9^Qyac>iH-J!^t9q>y@X84mFy1nZhYZaS zsYk#6ZLQUv&^kT=#_I5NFw~(lXg1iwaYNm|W&_R-8n%%JX}KS&t7G7df(sqzK{!|N zuvvCILV&;k0GYGmq{5_dWhJ*}zE%QOkRdaOY$KX;4(8IVLqZ*I5mSoLf;0eHh=m-X zp)-aCgdhYM(0FkOjAGaYmxYJp<)G4@%;SNFt+kBEy45z=?a_xA6-l0r7Yo0y;aT7` zuvRV@?=kkAd%}Vm^@j}ma0yP}HjjSb=-&5SKe~3(HPdkN^kluhGe5jYoPO+>|G@Z} z1Ag7OzRNGn+27z*jLJ7c0~g>aXjv5QE}6pG$wGgDCthKG0+-+#T!Pzh9S&gu-*C)R zcRB1}!Nf={<2DYrlwN-3Lix9w{6xbx$+vpjjm)BfnoE|r+7rtb*Nz9v+7Kqrf-pwe z7GF1Ubiq?ZJO?KbW$J_|cXoWXA{N!a=YUc$K0$*zDDoH=stoYBJLZhP$AcQmmZno0Z*8b9T9X>B{|lK6C~n5 z2BP!VjUR~{56Jl@Vj>RaNr|ACz~~ZWl+w8&Ac%q^1p%gF7BNk%0r3eAnjLhMHu%cI z8W|jQvf_e7r3_$C3=vFm!<;Ca zQ&|fisN{J>418uyEVSlEjOd615s7%jjAn%t!o>ZkE2piPby;L<;OffyPKHeO*mvGf zj3KmIWMM*cZ|d2~45m3O-EL~hQ7#QhJRk@qBL$r7NI;=D6o3LdEjI)IbmIAqYJ^%E zzA1n1M8Sn1WWx&<(1!UgdBtKl3FTgAv!o*u%rvR%oJ9%KkZ1e!CH9UAed5VNa1h`w z6xam?5daSeFd_vLh-A167tWgsfEy@bN+0;m9XwT0W-tKMX#xn&I|&Zm$m%lIqBp99 zmYqqG`8&K1fH@(s6~K9jkhfC>NZ!^Ofb%veOK54GEzYDmM<{R^_MwOHhTQ<9#_aX% zw~CPKas2J(?>xlI=x;04=fQU?K&+bXHR`_uJGGobjI0#?iIo3B@s|$EbZd$=vP{0? zIuQqtWXBwjc)-A5tb>K%V2(p{)DR~MV<9R@7&dHO*=U#Vph{~LM+FIF!;MhXqd=dZ z@8pRI2R(7K-PhS@bO3$uYy80d)HWTA&H91OSfGQSU5;R9=>%Sv8{jONosHt%a-Ky- z-NXH(nSQqGyMu4|C+QrSXY>0g7|1#PPdyM)Hxp>634{mKl5@tEl@gpTy)|l9WnAF* zc@YS>(3$V`^fR9r7CA-CN-J!sv|cO@LnAIK9>9bKFp7YnBf%+w5*Q0&NMsZg5X321 z7JTp+RWGfYKKdYjSA03M;5v@7#-zzfR2=u^NK^P%q?UCSxEE-YXgqGTaI2DkE`!4f zyyu8-xvuX&d>{S`G>Kt6_`;kN2>0-Y={C*u+YkBnLufhb=<5BE8&>=wf@)A#eJJOUTtHMnPd=jSPkfjA~K2_MNF_+LBa_lKt2i#y%u ztTp0o@h1iiLDuF$cx}ll(7WIgAyQ7IJx0LILoUI@0|A1G<0^=Xj6tTwqI-#Y)G@dm z1wal4pOzRYTcu=SL_}QCB3#Mo5b3o@KwN|3B3^_YZ=;vfri>P(aqYxQ!41?2C>byl z`U$!5Muj!aE)iF8ZyXrg#&=%U^WTo62vYPkUE=KF7B%0knkXlv|Hvw z=pl73f=4fEE*b+KC5gw0X!7hSA#F1OBqW(4C6uMikxQ8tWMDgTc!1$7Ef80Y?G(SZ zdhcA9Z8rV4iJp2h=QOAnIKzPZnUye&BB5B7=uFJ`XF-ZayQyykM}R4 zh~I4JTaQ^amz=DfD9%7y1=}$(iNO#zQ$U>pDtI*_gHVho3NID@Md3fX-^Kf zu_X$}UL63=#f(e|V1?)Q$PLp0=iPwDxjSJI**3E9u7p5nA@UA_^N?YTKwwr?|3jUE z0<_S=>dm_WR074>g2tsVbCP35RE!5jZDjIW1bKLQhPv$cYYiLOf*Hh?1L2a>fhLM$ zwJz1^RKBT|zqw~$PcDZ|Dz4jz)F^g?)G<5(ftiqn3;~J|rJAEH*(oDZ$Q_M9Rp_69 z8X2-8(1F#Mv1Sl@cRCHZm0tZw%CYeL0dmUrKyYFq3vIn!6yz#v%dRFjK&V5RNb4`4K4Ea9UG0q({yq;#3pRFWrYWSZGWelr4tpMe0 z|2ZI@r3+Ut`8>|pQb2;64eOSP5uND>`ao(+n~s*;C%vHH5VfBdnHN84^%OVvB;A0T zv>}VwC~dL%OqT^;A&n6dqtG^_hEZt?7Dz2^!l|57VH7|FBBG+i)L2Ln%Wew|c|y#E zqK-u)NlAPm@r3h!HjtbiB(PF03`~s!P)P9X5#M^9XAi-lo1u^5FN2YkFohY6*z>F& zfqmvs*c+*Uk?mt{%&qL+YdIM(Cn}>dtjVV=pW{P!;A`RQ;TF6Ici|NFU<*EWi>)=Q z84(bQQJ`562lDg}V`&xNmx6^74;%K-zYi=piLXc?CAZyW#W-Hk# zF{+A+M3ErDi)@d6VI5khASv4z*iT_^WY;`-i6SOAOlVWE62h@&H<=g4ARY)Q5~^H| zd!q!bpJWk@y(6M?$30~g^I$%Rn=7iJHC$u@J4Q#oC)&73l;UnC4M>b5kP5DZ0);Xn z0uv<$JfVdkB*}xT5s03lIKiFb)~HVdy|rD&LYM~Ku@JPlPA-eKHl|b-(UOdiBB9Z= z%9Cip)N>PBwIJGf?1D#4v9zcDfknK$a92x(y_NoQ#~_kS^USsf`GynOT`d8EAT^+m zI0g*D#F!afksHLJbq`q+85)8UBGO?7CVHW8S<0=pAv3jdVU%Fu#>6K%Cyl3AV-i$= z*x7*0m*L97rygA-Ixf;fgY*DRi?_r%Aw$C3;#=l}_)!S+&h7*m)sBK>ba%8a#7QEa z*z>!3H~5F|+VM0T?P#n0fW@MFL-X2BSPl8H)3R725XUmWHR1mO z8UAcMM>2FlopwbNnJ9}Hu|?Ef7@rYM|7PL(cWPy`h`1Egvp!2>DG zDCEt&$8S*|0C5lwcQ9qkYv>PDaLCjNmv=BMFdyko86p$j9Ot=tWka|xe5swJyozLp z2Mf^mU?4m+1j@jpC%nAF3U=yQ_mzl#5w1hC(GB3q+700RSDiouGdKo=Q(^8nbTEM> zILL#^C{-2%ejiyg0l9AL%hL@vjD9s?OF#jw`_>JzOaQ=y};*Df*%*-GUP@D{{vuw%m@gu&Y zn*MZDTHCWw;5wmJIkOEHu@xv1(R0&``PEOY_|W?0-S%bj0mCKMH%ZU4P@Z^_N1unk z3m=E4;A`O)+=4@R^n`0KF?Ji@ataygllVWYx+Fe}kLJxv^E`%m7DO@>k%R;7Knb$d z$}-SFYdS$D*eb`2t^&s@1{0T7+=+wpXy);ix?5Hi=Tfg1MS9H8B9?`McK{-=owawP zwWN;A%outsx(2sFbzT_61{J08$iztQ8R=9IKfQ9^xVfkph!GrBies*^T4jRA;^yiNLBzx@dLgK&I5Mh5b+s__*m(9( zf(6%DEU!c8Y}y44-s}}wiLD)V4Xg$gwW8_qRop#x0^-st7$3OF7&9{l}>s>O+% zg$N>002ss@LNK|AoMg|^2q?v&;DSfgz%bF+Bxc3cZEs}05(eT(2r((I23Da#Tt(fj zGd{4^ouqBBU49=@k4Ke&8HlRJbLP;x@gPPJb2E6U)^i2CK>nNa( z!IBDC3k1lRvI3M=AmIgtX%I6X(kVJ)D^d!cnfhctprtn@+`lfioK@gakk_LW`dgvF zrJA|OFoK+GvO7X^Hu?gLb+bDBF{P^*7!uD-z$(C^zb93KvJ_aDB>lLf#H(CWo+5=KwTL5`wdnSWk$gQqn^FK#4G2 zAtQ*Yv_`A+JqAQHur63&Y6M{^-~^))R)Qp^#)wOzS$4K+5pNZZU}8Oi)_AXh)F zd}RF(wpKsH_%f%T#o=1y0~2^Zd>(!luER&+BJ9G6^VDY{lP8Fi9h5l1CY0lUKb-#O zv46z6Q6@nsXdb#|ZtkWu>;3~O1nspREny?m*gfWz{Lp&5$Gb9y_BFPE(B!o4# z@BoCPbsC)0!lefRk~E5r>pPf|)xs zf+L~?l_q+UeDx$W7j-e(*yrOO6`5^`3@#xhS6fPnzRn(1S}VP|O{EPmZJL-%G@TQd z`p8|{)|2QXCp5uOsG*jF5#Z`d@POdKg$iV|Qc2MXWHNXX8uFzaN32K)kSRh62s8>p zDU#>J$v94oIA|v}G4_`sb%ki1hZh5VP;j?!X=Eok!9{3s5TJnpYY{L-4evpaEx_BP zauT?fN`k`>ROn;T)=px?ZDKixuybOf^711TDVI-tIF_an6Q4=xhVq3`Pq)IO%Wl|FauR_+#L~oM(+e=X2fIGJ?tVEPW;|U8K*m~ zg~ohO!pZo>6mu_I(L{ZJ-z2p8*wUbDXC-9g7n~0WotMIqunh{TC@|o2s!%dk6SS|v zqY!HB9~VYP;G|{k#6oT{AwqC)T0xwLSoqUPu7{Qu_c%&E(62*{G8T(9bClzKl-5H2mrmg@cWDM#ok1 ze-GyMBMq!!ggJDu$rX@u8Zr%Jp@0f2e`|S+3<)By|0##?W&z>=fPbY_fb1+Y%I_CC zl{YL55b(%+7i+L3Dp)1#t1~gC!fD_O!kvQiuaf?=V#B>fEYtD5g;qEhO$G|pdUVKy zPz}z?&IBA>?&BS8RJE#Nf*I;)#1+-#P2HPeFh6z>$!ljx;8RVRFJ>d6`HE)Dz z{eJ$NR2N49WTPp*6ujP-B*gJ*+*g+W20bZPZ-MG6=s5>KH_0<~y;1*t!;pNr&y%cY zSz)!t7d!iS7tnJ|r~5+`^!(AzX`})I2+`Ob*&ado(y-~n)B~Y)*@Z>qL`W_zE;2?1 z<9Nb6GZlJlhJY%`ND9yh*)RvNL=>hBX`>2)Cjf_NA`(c3L534f z_xN7lkSy?XijzkT-*cDCiw!vg=Nvu=SK#w-Tq~w#u#HAWudR&gV7SpH()tg+v_AUK zs-wKXMdz`Gg9h$`!TaC~@B-Y1kHTZ{`15FDoFINiZ&~ecBlsEAuPYDh#3mk~Nrm&;=*?3Zw7EUDq(dkWx!fdc~Krt~mZ(c-G2t+$0O zD5erYHIz7N zCZEo83Zb}-@L1xhWFjK2Wn+dJpeIaFg@_p@Xhgxl+~P$mif<9_sYK1u-A2hxakuLe zE(|W&Q&+@f;-1}_wT&W^&f2v#i?XwmPt9eSyOIQVDS`{7Q1z)XaK{1y1r7p>%j|b<<3aJNpwt`Y_=L{;`M{`j z0CeE=)fvMXoWZ~V)__AxF%~1*x3+3YGMfazJc~082!vMR%HlK~;;^D#F!B=d-v_07HX0^HCHVCf=D}K8{elYXM%t;zo+NZ4 z??2WhcB|O_AP1r?MUFXX^;RguPB`=&3(qd~@>0kdk$vIXp&rcj<|T`X%jjA?CRmv_ zNzd^345A@fycQ1m>q!QOx^dVDoN7lYge8*58EYz=HX$q674R5WxEEZ6M#T$3F~imp zbkwfb>5O@?nTIEieO^GwBK7&Fz=%i8F+&C%B%qKTcX4Ojb-68ip`>XZmQA=YdTQwf zHCaq#9_)(c6B~y?=1CXpERtqZ$!a$PmzuI;!(D6@O_Rl9A_WSJo6RLNIWa^8#L329 z;Rya-m3k|WR! z3TdVLkHT2apF=&?X6bOn;7~S%L4iUC0)2qOS)BcrPDjnCY;+8BXK4`WfWn|a-BmoB zZHx?7*XXA7{`qcV^%&tnE0Owhos7K>`z7cBgH2Zf;J$0>dZg~PuOU3776m!fv24Xr zdO+#ChSnVyAJhTRu9DrP-ZpbbpirN$%49AOg#h9>V7MZ}1O$rI+-ddE#2B6Z$e&5< z9M_tp85CzI_gsi-X_=5d_>-#-~o$oB9j8@m@|NvM+*}gnU*pxdjAkk&J^h8&^+35x`Nw zKnz!Ov-l`s0V$XvzyuRK5+dfHsG5yL#0*cU;{gPUxFC<8%GEXFBsA_~CA+qw5fc!^ zLGcbN_&^Y}g+Mmy+e>IsH9t`sg|>K>?08csDvcLYyWWJWV`)l0ve0;$mOK{Iu@o7P zkw%z|rE7;I-hqh+R*)1i+{unZf#j$`VF-{>XIuDDB%UsYztUvhp}_%M$= zh;`-F16E}@-Z9YFV+A_XDI~l)UALRIDxJG; z!Y{$M!MB1Jkn=ma&zg$!&Y@6^_gq!>z!9N9a;C5QDa4T|giX?)gJd?aF>ZENmLY%% zh#+Uv5fuT;%xXz70}Rl@WFs4p3t2JVDgrzPk03X!^E{#fqA*Zlh~igS1>o9UzIKn7 zX1uzgw>5!V09=5}1Mgq4oZf) zkQOt@5Jd#fNP<>8f(xMgOBOAsQ{V1&B8Ewp&{}E-ipHyJndUqQNeJo_lZo=utZ3E_ zvWrOB!U=H@5%t~VkFInp`JTscuiWe0PBpZ#q0E1A)>&K^+-I3SMt)cdSPQ4R{eNl%_Og zWkqrWsu9rIjZr}G4o2un4bmWhk%ZzdQ5s1$OLk#uDN7cns(_cijh-4`=25i0C8J?*4!C&EQP4J->0>;%P zFB^{qw&Aea@eA0803B>sVIPG6C4)?#p|uEMi5kRKybkU$Ikme8};Ag zxop5%`H~ReQNXxAs@&|?yu@#QfLnFr3=K@+2DI?I4{LljrUkvhwv8`U!E7St!n+7wJo2@Opli?|w%xggP9 z-3%GTwaAv4N#3?Lsm{$zq!cq`MA{t4X;74KF~!}Khv187z+|8ZYY}m2@!iB$CW|Q& z1(j!Z30-`P&CSG9JUg8bQnXBc9ixdhgm&S`pj#?U*#=Qv=+OpMV4<*Cgz2N0**#V-X854>i5S0=rjw$oo;rM5o-+S2lWMJ-i4Q#|hZps)BwePli zAJI0n&lPTDhN3R&$erNrDU%5e>2suyy=iLW~y?bvGf&6V0;Y0v-;7%nrFQEXi4VU3&EsHy> z^qzP&^q3*R9Bfmb@vU1p9efr}AikR{Fb5u>yRAfqOdJRi1euXWniI6eBCSB?B;i7G z9-Z=@mPO{hifr?R5orj*V}?7;^3ADXS%_a=Z9{Xm$b%jXmv?|Qso;E7K)~NZiS0u{ zR|5n3Wj-^4KnD);;O8QcAcLN-mZ3oF1ZNc(;iSWrokWBZ$Rjeco2bH^&`=;a9w`k; zh(hKp;Cwb<3K?b(7Wt_P;uQ`(K-1R~v2(|B7~zy3e2(Yd!wax=wy@;d$khdXgPh6Y z{Ach_67Yts87-pG8p3jI=Ato_TqLFtIJHT;-pS#39{U(3OP%E8qfgR2yBP!=QinQ8 zAmV~6oiP*!h|0QP32hKa2?@jkBii6X3<$Uql^AhD1R~9dIeMY=AVGI00ca+8n6bf`d~yD z!AK(F=o)J|Zg9YnYD<@%K9gp|z&MZ;?ZDkrloCxXr{J+@DNb?|H!O%LM2p^pbs2N; z1iPcmoIV5>rY`d&v&+_Q`Gd!J1U&O-*-MM?7{otBh|P8v`_-4QWzOCCr2X$!Nlx8(j_^+=K+P`=_L+nR7W;1MpRa&4SSS>wW%ONjX>~ z4+KS~ctN&EBh6UvCaOlh`!ai90NsIA;0tp`N1PjuD;K9sGCP^6(}F@P*x6=I_}l3| z*~TyNoC6nmo3W|pDKOcfrJqMf1?2lr(czq4XW?x?xc?fhF+u@-D912s`3LKZZm2|xndfr--_$B`^d z9CZ}@KG}cieD4MR-@BBJaw~zaJtR84AorO{91o#(5zzwTtJBtL znl^`!)LXZi+huZT@lk!Wq+Vj)D#-}q7z$C4ga<4T3dL~6L5xzcLNmb~$ry|fBNUR+ zw+Ki<8f>F&wmDI-0EH+>Bxckx!67z|(;^5yqKQthf`AG-LLoRo!Er}in3k5n$k6x@ z^2Aj0grYQ7aB~Tukx(!bOGp+M5a_A|Rsh3_IH;4s4UD2>MKYEMAcnVRRO4KrgB~3z zQ$`4mDvB`T5fgGk8b%OD6!F^MPcSC{naa^e1Xmm|YHeKAfh^catCd6IEJrM$9ocIY zl7b;rK9P{Yg)!mz*HSRwRS#v`JrW8e*oi>I}%VT`g2Su*B2rV_ObaB8w8>&&o*&RZ3P0dQOp zHsH<}WD(b?VJlFwFN_96aVMQ1GbElSktuW&S@hux_+Vk;O;p*5o}S*b zB!GJoGLn~~t|FcJsOzGJb>Rn{J$v;aef;j&1L*m%8F>n9FNF0=`L+X+A=yh%cQYs zBe^(0E=d&ES&SRMaTMxP}nn?$V$t} znyz7rk864r#~pPPBLo5{Oc(5dJG+rPk!5793_|0ykiq?o8=%h3!26U?-efo;XHjj> z^dQvEz_)##U;YMu8TLS63GeB-cF4Wv{9*q%T!H@s>1QRJxPuHD@ogk}X()l_bZiap zkdc@;7_pwwSP9EL){#qhnJDu$QW%uBk}Qo{o4L^xNr;&OvB4Zsnt+1`+`tHe4@5oy|9KR;4J`|EVP-dqGPb^i4s&C3|bJuGB`mIrBTE&M+$8sh_qsKqeaAg8ncWO zn~V~C+f)=Ugb`g6210`?2uyHAoY@+2EZ~A>iqS_91d=mEr1lEbu`0U=#UP`BMsPtu zoFLeMflVNSQiLH;KpdP#2$dEk0)_=l=?xdA0bpHfWw0O(F7)698L`5u#S{-!EvMSb zJw#`4vJ#8}NUgeZV#dJ|n#m0XaIAq23iFIdybztVq&R7$6GFxUol^oS5h5vKo+igZ zN6Rh_O~Ua$nfe8$-7JfR?^z7^*bF_zm z3-FU7{}dzuz-c1M$beLm8)PU#N|c^B0q{3WeiqQT)(7Cb;m00I>UqURIr>{y0jjp3 z^VNkk;nC~to{**l|I$sy2k!)YerVIfB%wGM$d{%9+rwcmUhW&mGZ0B5Wg% zVXu(~qQbN`;5i-%<{^mVCQMxn8<~tYI3<)IBB&6e6QDB!oGJxw2C^_)!wzxIvnxc{ zUJ}-v1-AJm6|W<50=Lipb%Y3mvC1^yMsa#$Dmc7Y#Y=p{z^x$h`Y>>~`+DZG!Y4t_ z3i+ox^b5!UaLxfR5SVXFyDx08lOwR9lkJ?r2$$dzup#{k6tKGIYVMrF#;0C_40`rh zK=*nb;8(DO@TPRKy6~B^spRs8ce0$j_re=8k>c6WcmyssXham07&mSRgGia+MxQCp z6rKiE3JhK?7jP#U69c1z2nt0Rg{pd0#|i}IfxUq?a6I8OQ!Ka9vf82z^UURValDBui$a4E5q7=)9Cq?EvoP+JWvIAS%u<^+G38pBR*hy#D%IX?RyQq2N= z^cG_G^T)prz7Oug{}VZeKjYjB6SC4|Mkh{a7L-7VG$Rs85plAT8;(1MDSH`fnI(cz zAa1-u6udSwa&WSPkQ53CnM(E>004|uK>%q$mcJNBfTE}n9S`*NhCm3wNz=Q^_UMp- z7K|Zn%mZ81PZ!8IlmrT0eNseYaOoBvTwL20g=k2|4HY^8!5c65mI_qYD7<5C))y zOuyOIFo1fpEFBmmM%J?>p@qL-{s|-yHLHZn!e%W?}^cEC%N3D7MBVmMwzmdLR{IL*tA^OvGc; zbo%({U$f#V^nc%SXS6MqMx#1rvO=PG0zsUHl$&xInwh6b6{{dZCw#nM&dEJ4G??Qc z{x{%<+;LDrsXlWc3dv|7IxdJ290QLOhEJwYV1k!#p1^edtfwvfG^!C8jjmSmL1capVUGEJ|tqwR>C`si*Gmx)h` z!~qNlC^XL8D3PNHmlM}#40Gl)-g}B}S{ya}+%&9(qbX+OQ*c(ouwg7_Sc1bm5yu+m zc3u%oaOlpqQS!5@q6SdsQ&3Q_y8SM%k5#o=06iPj-#t6Laia-B-1ssXfB~on9nSgy z{ke_}*Wp!=bF9q_V|Bg(+l1pVuKj&tP&p_c(Mm! z5RNBg;pU9bWiC5A4Y4N*wV@UhXWLjTm~53^a-VGy1POigs;6w>d8?Zp-LsUT_e=F?&3Z&*QBMfhrJ!pCSI=}M*Keo#Z zc8smevPHN*nhVIkjzRf1i~j=+KNrH!y8YaAJe`Bj09K9(F;jFhDiYGrJ1OKD_lA^} zNz3kvCSi&@sg_L>5JP>#C4dot7Np*^UYCWjR1X}+`a~0{^{n6w3SD9qy*Qmfl_+K- z_L(45qKnii@T^2~RuDr3BjpWmMCx(?0jrNN5e#A~tyO2HI&TyVjl6g+_Ac_Rwd0w8B+&Vl+3&su&17#T1CR#;(dVG2qv zFm9-82hy_gi-5fG_&X@Q!2pnj9BcZnRtq2-v5Wzhj6j6qm{M9;g5zL<0zw2%0D^J~ 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

&B_hXk-n z>`z%O;1OYjzDhVH%xN~^A$m*{)Q|~r3$8M3!3IP)fEL~&{T0}S9k^fGHh~S$!wPTk z0W!Q@A`T7;BV@obV)zmPlq?7!cn6M`iR2LkOE3Tk;3Oj(IYB_mdnXkh2+q*a2%DKE zG76<{$36UkYRhOs9ML8;qa6y8V1bXx>*$=YfC*&M3380q_!v3F-$%zM&fo+vC%I;{ zTD@jLQC4TCNDsp$1f9$6G0{&5W z+1OK-ctko-JmP^|<2~HR0@=`rLl)?v!+XT2$0W#3vtn&TN(>7!h=HSm1_F!|)1Kf+ z1cd=NQXo_?B4y|h&=Fd}l6(vX6*&WNfC$1mR#@-aRK0mywJ ztv13>x$l$SFmaTk_13YvR8*@wF(2RC9bAK8aoLVzV+G zbJBDz)h7KNQsVJV_MmClE!Yhn!?;r>9OFVDzBnd5+s^pzYQ4EAoY%CsRUn0RfDVx;8exskx2K5||i`^_xR4!NJn zdKMpxbV7C_hyb`JFkEp*9P~-ZhJfG>32DF}L&T*V;{YzDu=2BD$YEK*TO{BBkg;@j zA%r4iE6j-{^FW0dW{_|opmw%FfLvD9gc&rL5mv>ai2!aO01|O4V0uFU#T_?X%l$hD zh*L+mVA&))23E_E$pZ>O+}$Oj23_v3{p54atw|L)^TZecP{0Amo)sO#QJ~wEY8QM2hRmH=pxWX}lRtM^|K^80p3{n?K&<@>+j)DzUlm`O>?a1Na=u#e zvBZz%9KC^SDgdq^EQAp(5-Xbz`mb&UZfDw_4Okgb`CE_x9ozyy;7zDX$@sV!2MM;G zv{Rj5g0BjnEjS{Av5Nfa3-o~qPzu|XFTz*g0(^H@7jxU);VAMYcnpg*68t*+UW*I$ zZSo7mZ;=ux;TZ35C3J-Q*fv9j3gIr?Lt6Ygej7I)k4X(;+;Idh1w693VysmEzaP^6 zZ!-Y@tr)Fq1Fb^3OCn?y9d`majJc zU8+nqCpaNMMl(SWgJMNdTfxbb#oPfBd;=1E9Imo7?kuo|=2^n85+9%!2pxKe zE{TrTh@L^8eFIxZ#yIdbcmx6e4QvVn+y=#;g`1e-AT`{DHKfomphew45_|04t=U8WCoMBQ&9g zI1UOL@F{r-5Dc#Ye83D%P(h+@2gi!5;^0&(K@x%!GhS}nOH=HEx)jtA*j#up5FByX z>G`4iSnuNwb9x~31|}KFIYn0w0{{(#f!HDDD{NfEBDI{;~c1&t9>IXT$mgAD}}bdB8g)L&8?%3cMiJ1aVXehA5RF83qC%NI-?Q z2Pc9m0Vq6S3}gW%DkQQJglyQ7n9iAA12O``=J>K$H8n(}g^1r1`HP!Aast{CGI9b( z5CG`lGV%jC|Ned79&+B(-A-v(HL`wShyX*y#S@;L^WF{#c9c(G4SGyC#@{3Cx8Vir zGM>F&V7G*p{2V&RD(1>6aZ{)(Sil3wqo)IAp05RZ^;a#qO3;R5WS9k$7gn368v$o0VKJO%6ya+GBa~`>WkJ*fa zqYG&mN9|eD?TzrsnpbN7N-f_t{YXtr+?x9dCNP+PW*mR84R?qB8^|ih*69eS#O$k% z9Ib8T<%UVcD=x>zGTWr$^$Y&yDUWA(c7-5}T@tK}Xq;5sUvMk?r?&I;TJA2m+Q=Q3 zH~T>b!EuO+2&u|d@Qqd%gB*3q)P&S@#H^K=(_x&7zci6&r_5H)ATn55$!Q(yz;lv6 z7xZzqee)hoB7N}Xc!;g&BGA%Ue&$Gg6uvr^VI|L8wvCxwzAepCSO;KEwA`yJWPnOQ zp2SpF&?5rQ5D^6fK!GRvY)T7`8?p`t3K7b99zfAzBO_&;e2&LsKm;OU(1Rc&96S|B zy<$BCVhgK+r*smif?^3E1}JF`0s(Y?YIfb8H&DI`T)y*#agpkMt*7+h6d_g`=90?6Sn4-_&Qu-fZ|!44(Em*v4=h zK*bUYh@HBaF+Db#$|s((cIrvED8!g1sxPnU*krXMe|~O3!9l|{=-!o1_i{Ar~g`oiDoqtsMa)8^?wA~ z93KRp_jKJ*;!^Dc@kgXU!VN1mro|RxTnF5L9p^ydy-cPp7QpeBrB>M zaU78EX_m`x-+V83fIP9^9YD(6(-&v{`&{eEzxh*#3Y2R-HG*?qybO&Y!;^Pat|dab zMVxYPE}-S;@{#W`$ptufK-m*P1gC6+f%p+#hHBv8ylW{fD0SVx+L_rmGqKV&k?l064>qL*kC70iEq|bgN{-q5) zL`FmfM>-TVKuzq5ebdA0Y#S@QtKGS2D)17#18?AuIk--^%;=Et0r3G9aD;Tkb@T-! zQYE;7U&R)rui%gI8oz+Q3y+b9SWAwDnPh+lpP+Y;4=|8T`~a)53OKX%Gm!BbrpO8( zK*7if67D1rM}%xR1i?xM&IC_nN5BOf2ZN!^hdhAejw^M*jnI*lDqtOMIA}|~heEX^ zIyeSFaDfFZ@Ju#*>iS2Qe5ICOiBe$#0~o8nxz6uC&^UKc6IT!saL`N_K+uFK5|D%! zw?`ds#YI>TU10n=L!5|>fyDE>MkG7WxVu%<^!3oJkNY3j1W`;E=b06X|)kRp$`(U;3&2N zgP=rUCWyB}f=VFr!b2{va|#pqZY|&4%>V34zF4LIB(Q`jR7i#%2S)gUAwnv@{s=le zp#z~NDYf7|wKEtQqyj+)f>Svv=axOgj9{3ef=$p47g8q7aOf4J5a!O2Q@llbd<`5< z@eWla;Td;iA5455n~*;~a8vw?5hp4#AT9jSUSBxWE~C*cWL;7BGOW93$m%BP**E3w z%l_xrcox1+*uy?bewKI%eS~DugNg6J;PxAm9-uFf?~)$k73~kuk2w}DoWNZWcm}$2 z3Z~)%==a#X%ESp75w?!u2M#`X{= z6~~440_~E!*SPY6Pp*Iv`QSZ5#6#37G307hUA_qG-W>BI>wd#5nmn`^bYmDKss;5) zbpokNa*~<5nMrSXUG;j)mLa>Jh+ z%g-;^Q2U{&Psz`eW5a}yipJEk z0%lat;FVrVKa1d{1FN?n0A3>*iO}PM1Q>7%*SjK)frC=MLc|U6VlY8U2xx>XIhtSS zEJa`C93x&iOGm8HJlNcGLY?SoFz;m=!m-mf!>QzjStShOy_lGWfohaLx5jgX82Rg+ z&`@jYdW}|DEvvzXrHrG+=`abk^>h%R!^X;{^3VjQA{lY%w$u3Uti4(b=DcDoCTutO z3KtQ@#8nAF`W19YE0#=FW@Aib$R5qF4w`Dw;IpOOSkvok;lZ%wN{X_=_w>jm16c(% zvPlY^@Ymw-%Us;5c`orPybO;k9w}?aTE&|EtAp@cE1HhWFgOU`M-s&EZHx$L+17LL zj62}xIQRiM*Misi3VcQQoNLjInXsf95rHyt1DD|)$nY4Sq2G0Tt#t1XPUGS8nM29* z%6C?@QQnUsBQ+_KJ1WH;121iWJwQWs2#@JnWQ=5}kU3gY8x4q(1c%4M{c|Ru1U!-y zIhR1g%cmIZK%&^VkOTy$2qXt%Fc6YsM#^s35J{2jZi$)W!pg~!ELfIYW6H|KgJ^XY zFQkPAX^|s*$#MmWQHMkjJmKZ8B;grcLMr&Q3>h)VxWRw~e2NGx0VLoZZV+IA0Riuk z72=5FE6O4O9om6m4P}i$4F+65V1_HQfk(ulLzbXmh=GBTJ1}&>9gmO*8Bh2M?+V-f z3Ynu05eGVa1>ijd!UPNw?wC7oE+lQ$S%hLfZ|sO z?nJ?h7a&HD+0=zrH6!Mt1VMTPSm5{Jlo(76nITD;m?QDeR@GhDA{dm) zE6w1rDr!EV3E3~KxF3gCVF?vaxK+=?81688NZw=oDR`IaO+t${Xpi=UUATsCa7yNMNj?E)DuC??Aga8SV&N=H`nf&q3bfJ*a(4&r8*xFULX4`P71 zlU73QlF!i2x{6|A0XMvcfMf&=)FEMlIH)mN+JNT3pnjO-*|~&dl}Ha+T{68&L@RQF z8a2#7kPM0^q);As1>gw+t}eK^cm%+szkI~21HVx53FPbem!kZA4{c}6f3VHp-m?sR zF=WRC3Ao}FDI)?Pj_bKjlmZo+5kmsCV}Rp{=m0^9h6qJ4K_l9dGd@EDv4VlTEX9*R ziv^@Ydwd0gT!BOsq$+@mIg$WSWC81LKXA&tk~h{+lHr-~Hu^=iS9)o3un{KEvlN@C zkaMhHuy?lfUwctMfEVz6d=Gs9FOhzPa7s9UPoX#9p6IJ+%P=F%2}|;ve23;W76%;c zu|0xKxCFPs0f1xJ9~iaNml-8`*vv42>xXaAK5~5qvFCFBd$VqP{6Gwyi9geS9LG1C z*=*P_=HBMM@B3&NCX)M#+(*bQLWK<@w~{1xuAiKdqGH5|9LZ6VE6F)hsZ>9I!}sxc zKR)00`}KN0|D1bkHm~tysC0g+tH!-Oe8(;QT3ko8OWWus6~zlwRfb zVfe#E|C_(!kM0!w?c8}U7uEIO_OI%D)a~+*s_c&C*OojIAtUWCZksx_RwfEM5C|5GQ zaX>U>t^20bWq^-(TNxE$IiwB)I5Be7cr=p7ZIE4{|o#x}E6}T1G3**AIYO zP6Kj>0c&bs+Bn|MyA+VtB*xTvk1Iyx3{4B^&(?Y9#Y_3|F)^>yAnSW zDX_y_AgwKGLW}1MZq;fI)1n^YpmA^Rl7ol?kAf0E{jR}T=c{jUj5du)GPxg>&1GK|;ZyomTyt+J5T zZew`CR2BKVj{KKZv^^4TpcL{tjtKGkgngtgNJBuJjb)Cv@tQNT&M2A3o9(HK*@?@C zG{dh|uQZ$4e&lbBiG6dEL6#y7Nx{xWklxw`xcwjQ3!b1N7%*y!Vk|$O1RqRc)k5Y@ zCM|#9=LW2YV_wE@JN))J z@Beh=zw~*!9!9e9*|GR}*d8>DbS0YQVw$}*ANmqOc9q@0A!FSF&!#dGA*zDgFJZnz zIiD?L=g_lhaEEcv+2pTYB=LIIj_oz@RZ0NWbF+@GcK+6PRx!sr4Cc<$9AqXP_C-0Q z&p00zkr~#3=(c^4gP4c4Pbj5KD93YMrC#pCxEP6f^w%BT1LG7{@Hiv0rw~OvSEA4r zL#ia*KxL;2yh8CcLv#qRjKkRKx(TlGwvcJ>5$XCZN@i4A93@Y zO0m?-Q~V!{helt~^)aoVkz~|6RL&%vBD9YC<-Wyc+Cwt#HGlAkh0e3YrC=Qsj?y<0 z@P;7!HIc>%7@T@LEXvz`?9FMx1rRvW#AEDW8kp-uy)`!qv!K%v=6U(rJLgRlpb~3> z&#E;!IAu?YeE)6a=^e7!l>UvXeyt z&8PCXEVCW8_5tMGT~rXxcxhq^kC_#nxr35)=1H2LwIv{{;GQ(Qv7_7_N{$cqr7}FV zQqk0CP?uXwluwW>vwGLJqP_x~vwQR3aJJM%uHZw7u5^Xva=q3osm$XNcjb_I;MYhb zNStM+&pZ>+z06jUp9L=hg6kRBf{~m#D&7;uf@i|cXptJECb8N^Moj+J?;bwAuMY;J z+SlOu*eVRt$*s%Q(XaJA_E`f&6qtyZk`4vC1Bh8hsE!FpsQ*FqpcMW2`o zJWn!#2Bs6BpPTYC_3-SIKKgssYngjU6@L;|v7do%#9kPUT_L{cFe`Zwso#zT`dcBXj94xAv z{Gs1J{LV27(=Sf@oR9jO#PFMzUNLAge(8PlTMYgbSnkDERFkQB`)u*^v3Gul1*Clkh|K4b!{ECkDM9HG zA)k_W2JY##)=-lTss=ifGfYKaSi*a zsr$j^H!ZXXd$aKGQ>wUCQK$n_?ziV&Ppiar%l%`>b=9-N4?cdFSGuq(qAe3s!^h^N zd9tN;ZlfoaQ ztWxB82OM9lzx;%rw;Cv*b6|z}oe#h9oj6DzR31}g4MbWq_W`+kEqk0D<@!eJ(nLQ; zY`pB_jK^WrvG#yts1ZZAG?CH`@%29TFlP{?KLRK86|S-Ri9GEBjnSonhMY z(r@STx#ND$W}Li@1&ZC|&}u#>T;O~*xO0GD)+#2yVWIoI(qpJCJzOiA=PTaP+@)#g zNASEmUCgq~Hg$=7$y9Q`iB zeCHLS_Enk&=9c}UvHu{8+&}MgLeAw@7@r>$Isa+n`AIYRI9zue)-aE(R@G}}cB2Yi zH0(o994mtngHzgC1P$xNvc)8%jCd)87=*pRS{drT3 z$#Wqf3A$kU8kg9zyjL#buMmxC!M}TErALt;mek5$qDX|BHugb6K9$!1wYd^KE zYZ-w>yinXOW#3*MaaHxJFXo3~S&rE+2`M{QVRK^X4v1;k(=TsLI#P4?;i$``v&~bi zyOaB#0-YK|Zr89cP{#MtMUBu$=s0$dxD@4rWv1;2# z>UL+9a|&}R;L~O(98lR3HrlQ4;AhmMdVF%Lg}o8^3{mjhrm_mwhlaWWb(*sCO`XW# zGu4``w4jqrg;d3iwBQ;Y6j;Fu;7f!FgvN@voCi>kO!=p~eYo1D*KzoX^yX~AGz#*` zo^DQVO##|OXU&pw4S34je@dGDbr<8B^gmrwcXohIVfaw zbJ4V=!U?9{1~g_rFl$ZHkAoMrlHpH=*`j(=*n@moquPCznSh);gcShG#yW&;oo{wk zy&(LI>c%4WG>_!GGWoSGBL+nx5Y~4hBQIuXyM(_)+ijwZK|BXUdVL;F#?}j+obrhj z=TV;yKUaSB0O(3&F#EQzs-8^uo%y5nuiq{bDda}a1L4I(_OZ9Xx-wX2f>uYJ2_s1{ z81>@-iw`9M@DRanKakbjzO#mBvy;r7gzl9vB7tHry zMlBE3|E*LRAV%-TJ&Eguq{)JnnqL13%#NKsM&0q?**|!Zi2IkHo)}Vlqq7b44SrYT z!;b`~qntQ6E1PX0Pw`4jrKUaoR7(llS_TiRl=QU$HAZqs2}xIV~|VTyDllw*XK!864vldXhhmrum3D>iTIPVYa3j)N-u&5lnKb1ZXO zH14ZKi6d7-#ltLjKbvY8o6-Zka+(2=cDG&wSAdUN*+lw4^Ay=u_HsffQZoGJBbKn~ zUSjuHd%(Dbdi6koS;p1jS;_h{Fd_EsKGtTz3ir`!7tixZ6=ze`YcXFd|B=lOSh}3E zPx^1^`X;A+q8s~wBEQ&sWGrf%Y6M=$4~qyMk=>^L6HwJKof(q)-0+X<{UPteo<&7= zlh4}Ydh(CPzm^rpg?T>Q@bO{K?p=1C6D`bF!^>yMPB~l*R+DJF^6tVY`G8SS6(G@^|=0gkgXOMI&0px zovV*9*6n(qoe^0r(%W9S{r4uviT19+Q$Ne6E0c0f1>H3@mqUZon4fW~zU`(6W|u#@Z{3t?^%U8R`s{dDOe`UtHOZD|M)gSaAH~C0OLpiK<;g#w@nrt;+Na)mH zb9nee_|=-m&gbvXp6DrFVahE%s5*4(#Fu|;58!VfvSulu49RKeBxUxb+Y~%?Qorph z7el}5rJ(();kQhW&BSiB6~Dxt&xX2QKZ8Ns?pqRcJEcJC8tdR8T#yvoG1ZfT}z8nsyEz4?^UoY;au|OECA5t>A&u<;D ze;5K4n3sR~bGzx;5DWhc$AzrFm~%?~%nNu0bD`!L^hH&$Sf$X@my>wA6DIxx(2lZK zGAK>zv@Xm$#<+P*(Zl=GaG@k7ldO3|X5K)EZ@DwqE!Mz1A>tHs`}y5K8k!Q96bBTZ zi8Ct}&5=Z=(CP_p{B+U~m#uMjIj2ep%@wz#Z-}=AQQY1sanMu!Iq!DGE@TijkpRlMaP(P^!8#4(aS?aw~e+mdKO8%^@+t|Tjl4+j^?%zr2jgt#GRA!qWlKj`vcZFN#uP@co)~%UtPv3 zOV~7tCOu^%X|M_@E_J=Y&;g*Vw^oq`s{+`+j8Vp5v3HvQB~nf8L-T+BD%@DnezJdJ zw)Jn_;LOacZI-_lJ>L~Q3O@EIUN|L>C@w8qOwAb{@R#bPgGGs+eN5~;=G>)Q*5L(w zH3WJPX)wv2NMIm9V#P?aR_ymw+bcqs^0g7&$=LU;ITKL*NM;xBsF@1Imv^hZna5Fv z{M{>wdgi-{y1yRVGp%&jv^Z_DIw~c*W0FNB=@jHdq=7v^%=;X7Jt5;lK$t=~X8rbq z7cYv+P-O!mYw7Fqa;rmH*6>C0=o8P!cY2?B$JT5MOuy!XZ}-7Yj@>WD|NHoD>L0&B zq=JbA)flV25T2-+_y_;y-IbHL-95Fklb81AZv0&{`^pHI%XsLq<@?7#hoLQb81k|{ zV7x)R`^0y+{HQ|3{fo@iiv5>5L8*OgP+A6;Y(Z=PY45q*f8X=2@;CDB8T2?+!->tD z`~1@B{c*<&fU}>}y}uCp_IyFpubqWNwDFFtkfXwL*QTtCi);<+cSp-7$kbTVMhIKO z8PptF^bUa^vY$5M9OyPR64=(cBqGv7{GreTuxXD|Jm)@jNf_E0w@;29hg_=gu*n`t zN!G;=0)_JVH(hi%K$@ZsHBowb8wm6Z^^Mh-N8TS6w84h1Vs}&$HdikA$b9w@Dpd?* z!6wNx%58?KQhSFu^xcJh_Y-pOh|i|v+hX?v!Y?KE^Xns#+Q zx^_J})w<+WR}QORoSPw1oD4_B`?23M6^Xk+Gxu%5>paX?ovS0Rb^9zLvu2&`uFHN^ zsy6<5Ag$@GsfwJbzt?{|^oeht*0<&$Tgk5qU4^)=?9Yv?MLqt{Cxf2d=AJ>w`H6KF zh|AL+Ae&Kp+D;mN2{X?V2(A%w4l{aGNq)8hyDKdX1CgYMW-W&9x^+gzVY1_8YOi}o z+jD-9<>PbR-OhjTI)$rWm;jCB?~Dh?=FW;3r>uuiTs6KppUbtqNV!$ytn2=3$HxD1hzB0gG1gRbi~V z#vWxpU(im9aiD~^CmFl;fx|{#F}>8l1B$$|G>VsnqK}yn>VuvXSywOCDCd4Mv&f@W8Tj|~RI4aEiPo72Pff6GLsu&K?BU)a}e7=QLX zQReSy2t)s+zmI7rQa$KHu)k*0t!3*pw3WumA>$5GcEvg32r7~Y^c;6!-M zQYBM%d+t*I`G{e`s79_t%LEk5jiqRyh)kxOHQm$VgxekOffiul4&6|C`S#BhsK~PF z&b4A3Nc5D-0O>VjpA^@wNRccSm378ds=1#%eJx(;Msbr7@kFKW%#igH(xEM_>mX}E zNGNub6+((L;*>`5hh**)aKKJyn#4LFA)H8EXV*0vo*WR22$AYEpXj+5(Ffr`e?M5? zcZ|Q_-Un6ZoMf3qoeo}lW*!vYWNfJ8o58Mx*J(F`*iQoaJnac@Uq0vZG!1-B>i&eg zXnY~ii$9uK6|-in+{vb1>MedG?!8MnaEws9o?RnIIdhg7{GP0GP z2g7D|QP^n0D`9=chX$0xE%}ig7T?qWx3;Vay1HY9*3w!ElnKNii{(WlwsRLFn#@2Nvq!T zG7s-BTC{!gat>u0D^-~Z-+18vY&h5rSc8lV1hjsgDg*c}WiB&0YT%*M#xm;3eCBaU zoS~1IOlBcYdZKAbzZd!`s-OGMGHX1;AE#PfUnV?%?stauA01TZ)UrE!>)!pWMYi)* z_l}_+MgXa0OQa=TU98t+c4gBI$f*_Q9(^}bA`Mnc8VR-$wJH%!QQvF~e5TE5E&K5Y zGM9wCA@g-1*`wv>Q-6ZZS&6gx+TduWV7k7S@i$4GJ@D>9$)jX|{%jR90);jQ7ywD2 zJ#f7arXSKozl*ibccKWpb_2rZehJ`3`X1Mp4Ts`S`_Z>9!Z@J0%Riz|7?$!>|L59o zKL%bSp04|DU%kT7C?|KI&kL4UvoAr}IK?2ekIst{{bEv>+h;5;YAv3O?!^xuSSF@@ z#Q9s}=duwlE-=m;oEe4&M}@mMj?o6GvI?44BXjOXR#5Nbiyd+gcS)Oc&sRH@9&u;)d?F@v2C6w6ZaZ|; zh16}z_<-!h&rT%?>Xn)3_H&vTiQfHvKDI zk-N7ZqVHFs9mwQ|)}k%>;Bq^*`f0d629Y+0;F@`|n;4iFIdUwBBk_a~#S!}M6(y}A zalx6fy|$`$jx^UH+%0Ck@q?1ltNj`I2GygVy%I*rE}Aj3%oBrYfF-v7hy z{X@Bq9!ZaPlj2U>yxa0TCD)S$u7wU~cixkHa<9hs(bdhP_E}Bh@0a11+{Q~bc!Px5 zl{L3?IG%lLyo&rXrGurx%Cg**RWB4PLJ9@F4~yj<634GW)p3f4cqa!cPS>S$)129< zD95nW``udW%#x!6v*f*q!}<4To@;%3Fk(0?)vDpYWc_wM+2`*%?rU>c*z8ZfZ!YP9 zhLOrL0=8%WUjJ>oWqx*`#TdZNy+>nJ7*O6J_q9#xs?>eU_>JH%^`!8twnxGgltPrn zO3;6F4y%njx`w})T(tWsyIIf+51!-_S)DWY2!HaH(kXvYSa2khwKFfioyM^oOxa&f zZ>`D%jKS-MlYkXzKjJv#!GdDS_M{}Lz@u&&)42x^&r4{w8mV^4Smmr`#!?BX55r%w zBob6-vAW&)9BsqLU!4gpIFPhwc5BvNa}>&0So&O3P)O><5k1qrHHGUbPRIA_E!LTu zH;qFEKEZR1vOiybqTXh?Bvx9*F%t?A-lJ`UB1=HgW0>jE~j z8IKPD@i{kxc*p6GCLlxii{v`$D%S;DbvocdLx7?bg&5U9k;E$Ph;V*_YO5TrQ(995tP?5wKx1k?aXKBZ-o!l`%-cpkrs>0 zM`3IYB^&~Y5J(>Dt%|%!ZAu5xPUHaHW;EPg?LP9|ejYMiE>Dj62Qs0;5z=(qez5s1CoYsVr*HKi$}66~ z{~2+x{|u=zC41CsHDYY`aX(gsXgoiCHg5)|>eogMiKLR#JQ~s7*s%vfcUI#FhAQ+i zEn89OGJt7ObM^#%4P?+d5!$o3>5h2Z-Di$qCA>$V@eU;62B>_#p}u{KLgzXAUv?X!S4)AtnRD zL0|Q)#iS_9&Bw@f(6d-9Cy7)!5XT%{eYgL{)o>HRK-Gr_-4aPqpx#Vr zG9M!T^z{uZLlotXheJx;ImQkOW!yT#e85%w*VJ z)+lX!@b&>P3_hL7u^c?a>tvvb1x#7YQ99wNTq(t7UYy37v8LaKCMaw!3Uqi*u6F4G4bl?Q zI+q_Jv31k!n%iOaA1@K7rXwk^AnhYla)QAy$9p4Y)z+v}?RG1eEDT6xE$}ME|KmBC zNXDtSGNuh~TIhi?{7qDf(C28`Z|MUW_NUs(d=E)tJ9plv4ie82Lhat-#9?xpSxwTT z!T%^9*QoPJF~?zE##73spO#Nq%&wPAll0R0FICE$NXct(-$!|6$m2Lc3k*A`H7b5l z+02SSwI;fU8+T*s!L#mhlc*>~MIB)^(Yy2KluWCL*X?YPg&{@g-4JJx?F{CaaE^m-Q4=4NdDn9%ZTCM8Gj)w9~K{k|(CDz3St7X>#Tqh>9oiXtaw9%!d zM_N6}Dh-|~BFktm-uJ`UF+fPB+$4v(WFmQzCg|u42Th|~ZHfMy<{8kg)Mo~w>d=cg zhcA`|SlsY2=f>)dW`BvNw4p7<#>+3mB@t;8UddvO?6Cy{tnRqv=qwf*PO&%R}*iv#WRH(uZAmxYa3O0*}_aC+`5i4r7wX2SxlvP^qDa<0A|c^*OJ1z0bB1L`!H{533$ zU!G9^j%i-)W6h20V{5?<_|RLknG06=T!7+lD@dtj_!pH3>wbPY0%;pd0jsKzl45?C za@V~4o_9l^e&+F7%bs*U5G2XUd3N6Drc+UC7AW&Av_5$ao92)j45b&7ML|jM)J3jr zaEailsb3J$~2wimFWu@S|?qs zyx#Q@txn{-G6^(qr36$+JR`FQVomfafEfTOe5%KPGHqGZkX4|!ZDAsl&~ry@0DN71 zP10#mDJ}oHcA!z$a`I^YAxfYu>YAOBCAPv8+Kn}ZM5xqPAZrqNmy?fi(p&=cJghMV zP3$$=pmPS*uRxzuEgQ;*XDd%>Vzl=uh8#WNXdc2ykGOceN^H%Ws-O9+I?gFP)5BDg zVib>aZc?6MD-{N~muHCj*DmTAwL{UHT=@5FO@!a~o&BE~r&=nfOtfVQE{|;@pvnJP zrICUn2pkiZGHiaYaW)6jE~8wbhAq)y6K>3}sL>wLJj7%KncG9T#rH91aKO#Mpau=)AVgX%eRfvM*HdOpuzZ&EEpRPG@uYqEM2g$kb% z?IQ$NN%E9v&V?lCc8ZDc!(#tX))GFx-;D1Pl~rG+%5ZI$2m59MdG&%8KKd71JA{)i zPN(>V3b)NNhWI6sw;LgqyfoH{VmnPK1Yhnv;WbGr=6(*eqya3*yLA}}{>A)6@_1oi z+-MKQ)o`CRBC+0RG?HeR}OcH6GCRBX2=j?PJJ_$5q+O#G3o5&eu%t(U7 znBpB;UI8aAt|;HFQoxfR;d5F;T+J8mq{sR98l(9HWBHi_{A!*rD^!mjJPjY5ipu)v zBM>CGk)t?&zd|YL;6~J6n}7?#|2===2^I%%jZFS|hz23BCO5aWZ&WZPgV}`um14Y) zEH52@UcNzI%LMbxX?=LvPcRQJg<<>s-m?5h&hX{<>Fl(ZaBq?41zXxFS6=xq8>a9~ z(DxDXesBLiDuDg(c(wiH$c zjuF~}y5aQ}hfl#i^an;(B>AOfpRs&#mApD+D@8n#Z9-SGlp~tH?jFeKsR3VjP(7}^ zWXI=Qk6V+ZB44G7(J)`8vMd?W&sPfaKnDn}?sT|Ujz@oJ#c()_2TEf^lfkY%bRGue z_TX7G;s7(oeK5qOex<;rt3{wii1YLCGwhGeLghUnZl}` z_$nh@YRPMO@S0LDlVMGw5H8HqCnPzhm4ME`Mo0QzPDt{xZe;W2?a39K4Dt%#8O&gw zZAt-gml_d*H}l`nW)|;gO3^UdhM6DC2@FhM71OMgFFeqJ|M6IJ z-dq8H|C1P)MlOC~*O4M0l8Px%0-BjkF8@Bxyakt@WJO3IJqawQU4z(}RM-2k$mpD4 zxL6;5D2WBwU|1njoG^So-pc4Ze$=t}+ zflS?u*!v%fviVbEioYwpKDqo+?8-mAm2&dCnlxAQ2juXnlbWdPxzFLi8@XP;c6rkk z-H&rMoV7G550$eS(vq~yy<2Z#WL2=+U+bA06|;6UDYJ~bz6!Fw$%JNxunUMJYoDJa z2|zQlCP4#{Iuj#n4OpU|TpT{*liWE!=hnc;M#ggR zi}~J>%cv+zjow_{P}41zQ?BBpRARK{7s*La)y5?I8qyV8@71i^qHBHD)edgjJeZCjc(49TeX>CT zJzh_}7nBV);_h6hw9wIQ;%EHJu3|PRUm(Hg;S7iKyw3jLWi`y~(bvX*l`a&c*X=e; z^=tR27DajSvqQ!0Eya!EluS;yh-hiy$;G!I@_@tVLzC+3ps0-^A^a?}KAn z%*ehYPpeG5tt0$1OXiyM+I67_kTKIR1?vl_@@6YSnI-&K3gPAZBYb0Lk@vqmWiJF5 z54Pfn=E1}bPxm&&CIc$`27b0&rQ)YmXOkF8m=};) z(qCdI0*jCDY3p$&p84=ovIzJ1kmpb^kym(NU-0Oi%ng@$_f#jR9ri?ja_r*{sKtr_ z*q7`2;u>lF9(5JO3MHRTCqnq5MW7>tD#=uA$;K8w3CE3cdeWW@}#!)ONYeDt9z{i5wOG>|WR zSf#*=5Y#)Q8x2G&V6n$ccL$(DaU5(*w9YZNC!!m4O#BWvhtf+9WGatx)v0ch9tVP{ zhM0fwHX1zzK5&g4AflkyZk&}kwPLvvS%+z)8kv?_)2IBT0@qm0sYXml{iwnRy2dP( zdC*|Gw2CJzgEZK)`b@02LX@U{lAV9@c_MWOzl9226QJWx8iG#(1 zzVUMsSquCwT!{wuxUD)-5-Ukmd@f5*FEvN17vePwRCkq2LOsQ{JX+=}F+u~ya~ zz=W7#P8&tD73&ugqLG}%S9Bo#gvNB_40(BfCoq*+&Tx>W_tD^2!mP?iFz6j8UGcIk zDoO37C{%FZD}zNh;ZyQYz1K1~KF$0+jcRo5?n=Fo{26AN00-q9STNEP{xVQEb|?w* zHzH-f86}-^oa6}xL;Ybq>$a&cs9E{wzt)G`WhTO_`_&W6cUn*3o{x?lXlCP3Hb=uN zV-4;R)-3VdKsUVivhPf(9Q$I!m-|Wn7(ojnAU+n1HfclTd*&2Mg*__luasZVN{2AF z_h1|xDZ(sxR?J>LPo#|$Fm*K!tR$wDhS-_}S=&8D+N<#?b31vxvI)1ZT zJ&nU&p0lsjXEB3`y>imsvJcQ}ZK9gY4q#CfxIE>z43jAfBr>G|@V)`e?D|JmqJS$o zmzSgy0Jm)0SNjkE>dpsA0bwZ6Cgmdam&-wmBTv-aWY3!g=z&16@(m8YfuV=la$qNIlpMJDtHG_0e$jJzvrWF&;p?liCy ze>fJG$-3qHz^O5*IiGjkc$I&;yuqVkgkAPmj)V7Q@;CJGZ-m`bNQ_z@7x@hfq)+>b z73DkUy}C_SU4Xcl77g^@Ii9-*Q+$R8XBRxYqS8>JK7q#!$mMln2D~KMrsf{jw8Imn zO_6toc6ry20C$}cP2A<-CEAWnUe7%@o%wVh@KjwmAazSOv80J#WmfOU@P8MWO$fc* z7FklJHzXN%-oON8(C^qi*+Rc-ZIjztCW8}->aS?987_)TzEztXm^W2&)&@iA@1H_N zkf9Ae5yYNU4Mz7(Rv1Dc@x|l$mQX}}?%pN(PcYv;}?aK`gVU^0u>avZ5~n}yY) z(JJeOuYagDaoE0{$#b-wnhQTmcQ#_a(4I+2vj*1Zsrct1`>Qst++|PkI1yds_TS{x zuYH#5k;bNE>B#WFlD58SaRwKIP!+%xOViZF+^DVJzu}dW(nMnix z{)IEM4+?&bP8X3l36fX+!PETo4Dz>i@tXYEWHCNgDTvnf>*66(RI83}hI`~SK5Zk% zIJn&jcsDPL)v-ti^n>=f+o(?kPoe6@6LZ#i?v}fZ^^dR-dxz&nqNaC^o=a1*B%BEn zI^KDGd1=VWpLcWeDGK@Q*YP73qvf`gQzKmh80A7{j^yQ-6m_Lq^I#{JPeJ;`jl9YM zf#QDG$_HT#{@Hv$ZiI_Q3_;?Px}Ni=|@uuUg8XC1a&ndk(wwQ&qCnf+mCn| zpyUbE`u*}D&C$6}z}W~?7e})ww~4hTVt6(Sl+yS;DsvnIjUbj#pA;@cQh{k+3M-c` z{BtmzJ?3B>%+i2Ot^{%4yTB=TU}-HUnm@TLTZ7A~OomVP^Cw2oSdN1k%{>z(6CLzK{p^HkrL}XNO_d3HZMHVhW?43;4S>n_!VkJPZJ9fg2yq5!!H^Rsa|5< z<%7lZ=&fcFd;3)`WoXq}xLe#XiugEIrK2 zX(fP>v{P`(u^7-FLq2%k=j8X>AUD=|$uv~D>Q`|W?i6zt>-VP{AGzf`msveD1N7&+ z2O}jZORd@`0qpBe)qN>UrX2(!1OQpa&627P(8dwwy_3SBeL8?T&+|#-chXW?03*Nf zvq`O2LT@BRx`Pq^%UpAtGCG|0go*D0FyBC${g(Ol{%-@{<{ZCC#)=4*&hR`brM+}} z_GsZPub5N5aX{7><2S&K930NV^ac9d`~)%WtywwrJoO_5!ugipz$D(y3v#-_^7i_; zb$Tap8U7q+Tr8@uU156NI?pL{f0a#-VjOpMr3k_H)}&- z+nbn$$TO(BxSmZD8W8iuM3!{SzmV~2`q`9?`~#r}l|hZvNfT$A^K|4L>Zz%09mcr}~C`J04P#oP$yJkv0Ga4c~7}A>M&4 zCl@ye#82|!i}TIukyay_TJ50ZcvJqV-F!tAS4n*_6TGh%RgE@ko;-`J)U?H0EpQ(e za8(A?%Z_1kBB-d1WAR5rIjyMXb@6v=TuUBGuEX3x*3(I{3pV{s1EtUX7gS15IpRH{ zw&^h2O7(XIIncX>JQ^A5d%hTnCeAmR%apNxjqHl>_A~{l`+F`#9?2SJN!@wr1pWJ` z5pw@BRNWe4Us_4P*>{zl?3qqle&pZf9ah03^OB7>8Ua)NJ_j3(%Myq@tK`O4T7ftl z+J`g=mg`_`lAiP5(J_+`gIGJ}zwDzcJDXO$(S69Jg2`TE+n}d}tfSkla_9xcHUo;@ zIp65TA6Tw;9H<}oP5fCFZr3%>r?Rc*$%ycCS(xtqmtTWzZyhao>_52PEa|>CnW5YV zj(9a}uYTEkp`&q9+F(F**48W~DIce86VWPMI~v&fOaO7_HFI%6T`^Z~0|!iG8NkX* z6z&P0Wp^#^>s|iN1vvC&Ka)fl{&5>x`bq-uBteZ3NSoGhJn68S6tdg5` zYK+_(2tSFBN?Az>@jhM0qV}lED8~Se`qQ#f%Q9vU&*j#qJgnMp&8nb{uS(d-Dqfw*ZQ6RpYBdNBEewt+aY?o~;pVPqIV-eCh*uA{-*>(CWXMM)e;mk50X1seMJH4 zL`KFpv5=`+C9m6Gj8&v$BBA=zc=<(;A-^8)i~3aNN0TTHAkmBKW0LW@f|tgs);x$7 zMF-|EPN~lGVaqMFlof-nL2OHY=(1fwyNzX#5l{||OECta$5xPUIv$ttJqHgIoq{q- zZ?)$1nmk?k8C-pYb!KLRegU6y0uPc}7(9GF7IHqQ^WB70ZRypsDLDKPzc|~7UA`5z z@4aPMX39#dm{tM34P{esERce#T_f62*YImIWnqFm zotMG~f-)w7XtScU7122hykaKHop*jb(e^zOd@Xcgg+9`w3^$uD{GLjMK-aVK|1_^j zw7(zOb^rZV_9rg*;E9`?|v*5-B<};pg%>leW_cW5@ zY~SQZ=Ei3+)tswCpJ`NjI9qDTO7rar5EbI|ccZL0whUOZ z2l(%&0T~s~ihr}F*qe#om3@z}Wy?+B;4S|#RB**O&rafT)myNk<8hJEfki;x3b)KW zQ?*8oxCkB|$9JO=OlE?X(v%MoYI{r;EBqK=w@GFL!cE^z1_0G&8y`_7^T#KTVR2ib zZV7xPM(>m1tA8=+aSI2>$^zGKF!WdGQ1$V1g^yDbM_0G69h=@0#`2;n#E(dNAhkGC zLhu$s33G}pn)cS~qHC~#d0PCrl7KRwhkrC=$yo+1y=S}+ghL=? zB%CD6xOJ_;W)T{b9u|6SQB?vLgMmgGjmA@b2GAdzC&O zV$lW-Sk>UWkF6u(&u+za)ujRb(Zgu@EEXg0-fR)Oe)9oaXL-I4p9@->w9y*E$|9=e zNJm5l|7`FT;X}`xUW2LVo22{QS^*!Np|4O0D3wCun~qLz%{P26+Fn-oJ;M7}ArT&@ z4?G(3i>y(Sv0616Kd7$bbrukn~CBWa7DG9RX}t`ZBmQV z3*fQ}(Q+yumufQ-L&}@R__qelUwtTg!1?&VXA4DML9cQ3lEp88yt5J-%L>z2(!Te0 zua4T(L0*T2M%`!+;R-^4dWOcCJ7e}O7lJVyf8M&N?wSJs%UG>zYiZ-Bnp9SR4VF4<&D)3uYS7O|Lw=t=v6Ud-~sFd zWX+7^R3y%Xr3eZZAuCgz+aI$Loq2){k9RF>{$=3Lmwv=FZ8}cAvBFk@u4KF=$TrDJ z)e~ObHq+}Je5gJIAl$BBnWgRyug9dZP_!$DJ~Lt>@A(-0656`z%M3}Dd0@fuX;k%T z^}Bq{gI5e(cN*qI?F!zoJ*Efb9h+>e?qIqUmDN{!Uya%-D1(}W@$7^v;Y#MTVr zi{%-^RKy%Sfj5qdLJMprvjC!kgZ)qfHj8k!QNABhJ4r~@iUi9GVo!~Ob|>e=P+ey) zh9V5RV^cFmZ-%2c)Kln=2Kd(`nH+NWSe9M70l$!sN5nDTQ^K*;_^fk284C8Le8h41<|VI3qt}$* zMP2nQfrYE%`xx9$l4(p!$sg5weoQR=iYi~4puBq!Z&R5mq*nK?__rG zZx8Z86^4m^o;nSMhOdhPUBsgR=lx%Il@8XZ)by#QdFw9Q2 zn-{ZGp?}1%PyaBab#y>#Yywkg;RF_-$PvCx^&(t?1U2;oF#HwRLV5_;6sh3|-a=l3 zOZXem;?IC0D-dK330hd;H3&Y%Yczo45m9^&R%iweqO77{g%hR^(2DDTF( zY(8cz9IV(LxD4WS$~rWOHerG6gaxZdtW7OE;)X!TSpkCa(%he)5n#SfYlLHNxK|Z8 zX~ZnC*Ya5CdR{o@l_dx`$2IS*bJf_IlN{|a#{+f4(S)^{=N_`rvzjoQvbkh_z|oXr z=eS~X;PN5sb4JEo*&WCO<2mCVU@HJT7wMeJsFpB*&?-N8$_EYF)59a^1nH3oOV$GQ zCf$PBlC(}$>1fd_X>Zu13Ja%NoDzF~00aG;MJq{_-Wqe8==*L)Kb;v2K zkH|eKv5Jh0VTshFKvr}~zs6d{?jhbYnIVUqMrLbV?%7Nn%-HFeH~^>kf=*FmUwBm0 zSLA_^7-v3lfH<{*u(blXv}AkAe1p3^hf}Vca@pBgv2lniLqjyWb&eyx$F+>C6XD`R z=E9<8sL_^DW+!v4$Bd24q=SK1GY`j%d%rSIxN@3s$Dk{-9mdYqk~QbHbAOxFH7>kI zdx8$E8C`-ER}+htlQAceB_+Hmc*Fvkl|>+&%eY8Vu6H!LVsGmcZE6*7^}!%$^5PafD5C<*y9C(;i?gsiJbc(|kzt!WsXcn0Z)1OE<`b9^4)7LU#D5twULhk4)L{vr6$y}Y z9V#3Q{${0z6+KLl5kAHPERhN}u{k7U9eR8YdIs7t$V&OzL`MP{L`e}c0kTuL{KzAE zqnnX7$ZMnnf;Ot#|RF`1RA7xbipEx8<^v|vNF9zR2d+0$hCpM*{O$2aA5t3m>P;yIl=*c}=!8XHC$Y&P#>)C$y zp?z(w`;DgWNst_7$e7%q18su~p(n0LAN4pTen}+5h)|&h1EEJtJ0}gOAQ5qhIH-U^ z0zrTZQ83^frfv-c3=$IX$+?#{qKfpCv_8~0D994lpf0tKHGCRWY2X96jRout{FuCn zZIbs%r{oEY7;1(?R&%y%E{Ck zJIWu12|hYQX37Y(G;#mMsTt4S~ex0b`kEv2C@wwfh|~f zj)ex_f(@4|!ejN>z$-Jx>v+JydmV)2zUcjaEzd#3mmtu>2yVkRUL%Ku5p4O%yUIiK z2;W9tM&8B2=lB7<0GFTwg%-aEiY{P^0buL!alC>a0p|FJm?KxwXR!C-w)hef+(#m| z58KED4BmtRuE8(kFT$tr3bJwHJ`Uc)5p2N{-oqWg3tM!rva{f$yL>xEny$&dc-GdQ z)fbk5hG)#}h5oeh{R3T|aNy7|d)BGY+fuKg+k_+7LO0LFD)j{!$lScLj1 zhd%_W zX~j-YoYIfjyv5ocgr`}mFh>jbP_Uxal|EpCJ8%|M#sLsaFh@bl9-vUi5HlWdM=1im zBTxYfR{HyAq`(ZH=q7HwwMHX6b5xStkd@%zxO~rcss*Y@`4*f``Cy%cNLTT~f*0c74NQa<5Ep4$eimf-N3Oi2ZU*ZDu<^GiC*X;_cHE0vxX|O4oz$f)It+E9x-i+ z&gqzJghb424%EsAJvs5bGhS!BAPFhb^z3G?tr(w{Ddy*F%M2MR=2I%Co?}DNpN0#z zNmi;u#GejOV}=4#7Gn-07amaOGOxT?%M%unFsE5z5mBUOQSnB@LExiHHjh~s$e`y= zw6Z4v;7?q-%#QLWW54EPjTK!W<|N&o?;P6V)6c7TF7mJng-AT$xB zSTh;V*cNiF{0=Qk=kHGZzbH~CW@G-^CrTm}BHV?qvIrdZta@~D#=001aTon(_TsDi z;o-$N>EhUObLmV6?049*Jj3^GW z#7Ctdwe+DT;CfaziU1|8naPS(FyKN4DGS@u!Ej+vd`$IQh<6%$kYlgWJ0FO5RnN|!KQ~G+%IK8N-(^K3UUG2JAeetDIHQ_ zfS2H>olhU|+^P83*H^5BU%x0nbj1H^*Z*>07g{910s|EoO4d6UX66hHGR99Kf)>z} z;2Cjfae*Ubz{hZI5NTnI56HYQgj9%O10t}F3vvoA(%^luQ4H2#QnFX2*&Gz6^SX4& zZIN6UKPr3%8QH=e&t(a3unZkGLZ-OEA;XGXSR;oeX-+@JKWW_`dc1gla{A||c}Z9D zXw=Xn!gzxanLK9Qh&MenRCh#I#E3)4#No_ukp@l31|rC;)OnYM4M!BOpaX>w^u+=2 z;v4h;x>0rl8G59FEm%Vy6JCT3{2Ry^`2lCY`_Qtyo6suz69TZ%b;)!0&8##7vOpP8fR6- zH9Ug%;RNo%Hf+Nc*y=eI4lCb-3i$!}7JR1!*I!_ytS0?wYL~2!DCR z2Hfbm+EEE#Y50|DcoClE?v~|&(>>i2>=uiC>d#XB5cZd;4ylc>f;m+pf*O@mJ3(kW zP--D$f+B(@BoS)}ctxy{OYj2x1SHImgw&be_eQE$UnVAJD&6Mem;6f?CY@crAZ#x9 z=o^2<SOES-vIL4~XsB^X$2kSp>D3&#UlsHS`*(aw1_ zp>S_N;bOz#zHvNK!Q}W(X$vBCbXwWK$V?_%>>5Dh-K!2@cc1(g$1Oru|P5X z1%%#s+_K)YX{bKI@Ej7si(V3*6#CK}Xf$Jd@`QFpz|KD74muEY0EL!u=F>;G6BiK9 zL+H!4f>Pw^OBeqe6g;p#u=5Ba1aKT`5J5^`xzUGw<~Y~56)@_IVF@@ zTN*qe307D{FJLRYf(h&q=J@NG2Du+B!3qw+2KpeEJTTY0Cgcv@8&*1;We)Dgwvt6-5ejYMxBL>UT z#56;MB_ZRH08&Fw7Wfh3Pr{WUf9@{kx`KJlcP~5WccZ^6jDSLRl*+mF8NSTcP{T50 z1f)k3WGvt#v_=!ArP4R!*HOjy@d_~ntVdGm-k*`7n2`ykkaE`eH54cek21$9da2+n=ioAes;}QQTJSIMbLwFY%f#5CN z!bc2CQpPFP! z-J47YXx>VCEBY0M3bk@7h?bK8aF6loiY%n23Kf$vAxo#;J3ABgIkI;a&j^ioQK~vz zJYjX}gR=(fF5{I9E`9Q``f9>}Hnop}s>;-KZ>a~F&5jEl^@+aK%fU*kIt-nxqcIT2 z^SdqkLUcZM#Jw?B27YVIFDbha;5w|GneyC$gF?`}2?o3HE<6H-+wiy~eD4Bq3<1fQ zp$Y-&a{71SI{?0kttX@BtKNUM|BMg%ke0!asAObg&1H;VuLipoR%N zjEvz3CZGnwy}-AHSokQ0LNb2}FTxn!fsOLh8;sylf%spCJ&150PKw@=QawN5chBH( z7%0380}{#az)Ps%Eqn+L*I){#Fo#n(MZOC?tY8BBa33GTkMxX9ezhgRrjY}8U;!_} z4n9SI3L@M>5@`op!Ppra4g%MVAMg2k&7fozjsS#_EP%E*65@C`*KP&WA;59q!=3oj2d@&pDMMnl zJYckB_F_7%Svzex-2Pn`?*G*^{*|mX?tE_%l7tb%|BQ(rZvLey(b(vj4lJHwr|0s0 z*g*VeZ{b2zTo55T2GP9XA4&Re_O*EBAAigmymf(_57<5i#Rmuk;&jTUvN1<`Iw58%!4qPr00>VDI5}WY+0&EpoUaIg6$Fe>2+Rb9=m@~~ z9N}p#2e^LkyL$3+dTx)N3%nQBe1Q1$^n+A1Xh;Ob#@t%t{g%xo7dpoN*MtAqARGry zDo!irHSHd2$9Sa3zYhO&>28_Jv_0=S7d46$`hJ179Nd=&CJ6^Ev2TSw(n111-%!kv z3?)|EgtJ7N++?{$!aS{D>wH01th75QEip=4N+>t7*hD3tAi5=3Pl3t;I)mOEx+&&1N zAJqK<5;=gPkC7$SobWvD7CRrZwNI0&mgtE3D!QcID-Cyg^k10iN9OUrcgZfoI{F?O z@av#1?~7Nc;A^l%-i0w-ffnw=3g1Hh(Vm~#!xkb(o}J}3hk>I_UYheu+x+Vz**@dY z^f?F;2^o~61xq^M9Ry179;C2>DtP%QB=|!sA0a>6N{4rxDf_x8<_U62h>*#GTd@@k zwqOMv;*jtqY@c!S$s7+5kOU*Vf;k)!Yp58up+}6;ff5J6S_CAL6?@=)7-^aLMJxZ1KYP|s+fic|?%5*z9@ zyaFX25)Yw*&%hdd7ak#kWYj@m6W@UfF?b9KQT*d)B!+C_9aRrY0G@?Ss9_Dpuz)#w z5yo(g7;*%L+=n+wt5T%Vqluj82l9x{@Rpp(3z8GsvpTY|p=}xeF}w&Lfq5x8xcL<7 zCPD{)7WT13UZDeKWXQrW!G*rZgno-IvbaE+o|*oO`_xVd>>A^WU1fbhK0){>d<$+t zf)PyMHk?8Y3FO?8Zbg}D$;>>2UHBi|6$qxsVZq8t*7MOyr!yW~K2tEmC;# z38jxX00>Nxk2o{oHbl4%kML!ArVVmjyp933@c;w*Y_=abV6Tyw*iOvW_>B>_iW$?v ztOTO2I6-(=oQhJ$Qw6Zr>B0^zo@13Q_m6TY*~$uyMeqf_VdUAs<2{QF`x3spW*G7q0ei9yUv=x z814o%alPkQ_{%LP!bf3J)~glVg%fxkzCeFW_(hJ6c?f%nJkWOx%BB-0R1LK<8fa=N zNAFS_TG1#{;inJ?7tu|^9G378z@$9P6}5qR=| zr)kn72!wKqf}OMApB9AQ&Te_iF>nZFSOqhzWQ0`^px9z856ofG8Pu603ob z>GS%WA8V8fwgz?v2IZt--^qefg!=&0kc+M~@F!^L%$ZN?0-qbWiT|}q26y&E0U^3oL3Re& zI5>j^JMug{f^QaeSg>Lm(TI1rAuXb?z@=1?&p^u5i7*F;7Jo153|IIa=tJZYzQhvR z;JfG&@9_W=WQor4XU}?~(ZLDUA7X z?7<`0#{U?6fc{myMp`uE9b}T>6_Sz5*c5J;O4c=)!A0!z_&r7ozM*{e6WArx(2TA} ze=hr7!oDJ;CFvI9eSQc&q1fIT3#vARhY(>&JVifVh)@;gunAK_U0%NgOTr8Irw9rA zHS7qUL2n>Hf=%3^hkLMv?BMIrz^Vp%3j%Nl4xxf8#n!J%6hFfn%wYuyQ8HLo-5*0{S@F(<7-<|4tQfwrL_ZIt zj8k$HebHnI91ban-BOLfxu9)07gt?UsKzLhsw6!O23X-0%*wQHAi)ki=XCB#WF#c) zG4h_uE6JbB%qy7(E)Kk~Vl?qO+aha@Mi7uCl92$%xWNZ-FEBnAcw5007(0)J4l0-y z|1FmHNTGpDT|r>S&YTfVF49F(U{R5Uoo-{NKe@1CXNHYfKP(>o zlP!nBlPH9z4XFh2Nms#&J<)Pb%FYrB0FbiZpaCl%$}t%XY7iKnJQwJn#8n7S%J)th zcrm^*@Z_3glv^tIZ|5=P@&;UcHI3!2Q({PGVzKfJU$diA~2*iLpso3H;gAk1t zD7Ieb^g>9Wh$2t}Pc6_UsKEe0WKeLjz*BBdI0y2t`Tt(<@)?S0QnVD|DIf3rgi)T5 zRUyzY5Kz9KbfqoM(|$t!ZJh2UEa8PEy%Qv{yui|B^!R_%$N%-bk|8jviHXvx+pP}G1^I`5UC4FVX&BaS7!0-6x;qNbCh5fWhw zuJAVeD-HjYAbxJ1S4JcJ>DT$$inf@N1I)nS6lRcMA2#9lI5)^kNy2Hz@>dvo!W#84 zp+_&Hj(!Lg)rhcwF|vSld>v7^ORQlFuV9C?f)2g_HF_JH!#cbS>i~X?^ss@C;U02~ zUoV)JU1UA8G*X2!%#jZ7u`N6y4@vJbTp@2Ue4FJG|1>GVZN5C_pKdvQ0UCH*_$3Ug zf?4n2As@ZZzj=Z24*Gz0P7@HNt&sajqWaOL{=x71Z`{xicXgEAf7``K`0mTncKlo|Um5vTa5#b<#;}PW z!UE~=1+>Mg5PXCfehe$*d3=h$kIaxMey!-60UG22{u+QhM*cds4O(fC8E5J3mn2jxCW=lFT)!0SsZ*1PT(3`hj-zf63H`Ilvy4~ zrBQemtU)eA!|*0~43}96Hlx4D>RGyQ14Lv5b>LYHFQk<2>A%Sj3nes@Jq;#!7dyj&zz}n4q*+pz+r_OtRW8y zkMAk;XFrM_qcePk%-|+$Bj1EKNeaifpOt4=qBp!kXV`$%xH2qpC+(AZEYMtF8d&QH zMSsykI2U&hum>N7SD=Fn;5;eN!nff|*a$zw4@nLQbA}7#4f++U4Qz|~oaGU#HR?^S z9&zb_#tR=A1;{kOtMD=$!8gwVpYFq>5+it;m^gvMZ^GYm%D?pnWbznyBEWCLUx2ML z1vuM{I8p#96;2Spw-(-Buhx4_*~WzJk>;9(#l9zGEP0w}m4g^v#@nb%CWGooO%SEY zwa>}s1XM6#9-}R2iR~sGUuS-h1%{A{u;W#J2YWV?qG~I&;y{DqdmTk*07E>=(}(X zAPNzO?9_rwv6QOP)jLsQwn&XDQh}beFr~%?mWUU{8p;R(T4)N}^7GD#u!mnmtRQ>_ zxCj&cKCVFD}I$1}-@>722?0S1R9Z@dD7DO8|{lM@yQf}~<#^Z;yt z7JUb1#FnriRoH+}kqgAFY+LT{M($t>!Uq1ij;)n10^2K4PBt)QE&H>9ZwP-8XN8(Du4xK5IW;g z&4ZdAs-Drn^a6Dx)>JF1hlCD|&=J>R9X{^i$Fpdp*kTxj#HW|!HD3>AMgH_zuIbzVn)Vb#kF%>jTL%F(ufyoZHDl)vw{YIm6vi(z%U4ozzWO@U|s-nM4wEa3}su&5}QCP z6b!VS2Ql`e@k-S&;*073|JsuR3N{NtN1z7U%v0XrIITP-{XEF-&0bV zcmj4_$vFj>-oI-;;avi;df1-0UUg-4^vYT{Er4F25(O5gt-gtIkyhyqBX&rxubCF`= zmuQ*bD?H$jpoclkiLXJ%Gt%NK_!4p*zlMJTIYk1#NgiNMcnAL|`YIgZ9kPl106N7p zypMbVK02@xK8Su38N*xH522S}2H=6*!MBOq_z%J+a%7mWB`ok2>>z&(0E01h70V?k z_!9ADfV>Br_y~^S2ri=Ah~o~1chDgxgpXq*tcP^g`-}{~o5i=eIlz+62^8&fpandK zi*tF!WvVXvhZQaIDl&%wM(71}1KGd_!Z%UFx6%JDnn2+yvJdaV^Y{kbBJAOU-A5HR zU>ErDS8a~Ou@@{u$J88j_uf2GYPZ&}P<7 zkZsVS>CT6EduU69@;+RKOW-^$Ea5qPkNh4IDA`WZ1$-Ub!HoQfZb2_>W-h{dkB;G_ zT*%HrI0op;Ek#%r^JoOsQyNXmiNLpt^^Y)=psV9>41mZvP1PfTpvZuN1P~mPW*m2t zj)V7WGFs7^=t4EJpQ&byH|gd&tx)yVIK~BGLAR#OHu1piDAp~^+!NL!E2@^mmYAtp zdPVlxGN!dJ7UWFrUaM?pZ-UUX3@nPoM3%2nG zwFTVq4jmyivP2*&EWnW#|BU4Yd`I2!1Y?*Y`?v!zM{N--U;;2^)~$BTj%1#h*j&Am4!qyWlW_%g6%Huz@(b zf9CM=nA@rpO!|oDAkjhAZ&H zFn==PzJkI4N1B_~9FR{3gv~ym|5dq<>-ZE23X!_!1xc4B^M&)9?`P5xF-eD}yp9DRFVhvpv_3 zSzC(c|1tdUkO2X3!Ooe*5v*(oB(U#oW+^E6Q+x80!Rh!UnUOphdQa!9!vLJyaL7-l z7pz>xAb($LGVp|GIk;d;$~aGdqhgwsBayRD*{M&&)KeKYm4l0vI~0nP!iIAmND|6; zSXnhGu1;MBFUBBVJ_)*#w)3*Bf`LA{#7l|m^nyWz2s{bF0t~|6lIb5HK1m>yfRbec ztY|oS5+9>a$G4y_V*+-*1MZVELCOPpS{xMQd%J~YRuf?;#{OMVAlAPD+J(oJ-Pd=39Y3qEyU(z^d=7xZ1)o^FC)g12$Oo`D*c!U6*9LxjsP zDOzEjX@`6hIlwMq7hwc-X;`yIm~8mgOW4529?3VS@vFjP>;ZBB--RDQ7sy{k{vbSn zxA75NgYRbBd&l+ivCHyKtSi&6` z!3uFi;WqL%au+sWu8d#-_mNj&3=d(1JjU-5KZ;kdhxaf+0!#=7Z;*E3%diJ85H2AD zsfS4Y3Mt?i0F%JNFrEy? z2?)FcfA1;(=QlvGn&1F{li&>qP#3cT0VNnjyg>&<@PHt3X*%9wJY`MD_z}KNUL!j6 zj*6_g_{x1$4Y0~VA4?s{18KYV3B$2-gSn%|D6v>08q3UL!Z;%pw(=O_dKBwjBhfY0 zbW`MrZZMZHp0BR~h4$xcp6rT`|;X`sH^raE-fWHXOkjL;LA;BrM2=w1U9UK{>&w!II zpquCpe(`LLVpX(%jl2q%VP&krdx48^4VHMq7N{b>0nZ|zf_F=r_W(|dHT(k9a73QL zGsGGW(bw_Mz+2Ffj**%$f)8N=KMVrL^flo*;vRna%vI*|*a*Le_wWo{L?2*#=sMmq z%wd5i_y~Ce(X$*ye*hl}8Tm>4v&ehcw)vL%BKvZhjw&uB?jap^7Zjd@Zxeb{skV@H zbQ>N3Faf7XG3eKni|3}afWaIFxDK0e2=~uLqD%9e0$o8eo3L4PYV?sVF&x7q;x+6G zu!jgd#-~Ul^049>C=BOgj>e4@8y)-l>Yo~a^B2SE7WEavn4q}usOMnH^$ji@A_5zQ zHmZkv9Nrv$tJ`^JbULEiWo`1#&g33-$Ly0lcf`i8!>_~dhu;m?h%6(EiZ*e1#3WG$Q$_V;5SVk9YXIO$ zo3SA9&es5wfpb%qbMf8yRC$J#4W5EyeGj|&`$gi<2ki5c5YkvUFUw;uQ1|a`nwJq6 z00`d$es&)Hd%U#Ccg9Q$cY9MdI_Tj#T!a2x_~brB=n2MVX2bAHELu`#h$Kf>bO|Pe6H*N~ z(7VVs>Ucl~q(ufoMhE0J1Uw+%6~2!@07bTu3Cv*&o4_eyj#uP2L6Hr7jK2qScpE!} zA6&>!yqDw3zuEBra2p9X3ysDCcHw16uz)W?S6s9Y3qRd1T!j1BSIH3ek@w-pU48@k zRY5Vx?~BHDSt5UA&kl9?3UV72yoCY(8*q(~u)l;Pm_r5Mf&n&>y8z~Ji2ika6TgbQ zhfD&G;6wZ|ei;^!kqOcxkMIp-178Bj8_4t682chJf{gS4>|(zOd*}jgVwaI`BZ~L< zMdTDdKq9my^035z1K&k&h^L7p{1oJjxX=wZG{P40EOLyG@N4k)S#hDS;R7;)4dem# z*I|NXYS4ZzZ?EjxKp6f07}dN0(HP0K#;m~ zoo5*dZlFwviX^HE7msnxI4GIl#6jHsOc2vhM5npr%ZrKwf}*AeH8xcogx@B-|?CqdvC z46Z^2?+`Qjv-mfWxA0^5HFyyp!4j@R4_82-gE@4lVcX&tAtGNxUSW70H{?Fv;Wu1* z(la9W@pXI~5tt#V&;beTkrSN4m*8XWH;fO0e~i4_SvE3uN?vn5sNKarhRvXcP4p9x zF=5yvE7qK;s?!EDik!>Bzg&D^Kw)++h+LobYA6~S4D_jXoDP|_2mxC$&nyD|3OdJc z!-#A|#dcs5or4!hFp%L$XpFzv^6!i`4&=3pZ~vGtCd9WSu2Wy69g((qf5h#(xRJrY z6-#vcEG~wVW__FWntuEnyVL*6mj5WnpWxN_*6(cKz_0g`1?!#9-KdAWGF^PQ;rW$!@fbDBmz>%<#>VWdmF5| z98W$?}8pEm)l!5C~6!-4g&qxlaemeg!KV#VbX@%JBl{ z`A%D~a%nGzDYWN2km`Ju!jt}+QFfM(Kj|=}b9N|YTX|ZLrya9mz1oui9;LW9W!t{D z$N043NtEB0GWVX$()5&HjdDLvRy9~TESAIMyfS+VSmWRUI>zRU$sazbkcyGh^o$ZA zQJs(ifD7kj4F7@iM}!1T1S6J3Qc51cAU){-NFq2A@PIo`nbGH60s{y`d7m7w02;?j zlC6q(CY?*?d=!2d(DN`k!5tPnTJq9uzWNFVrv>krpf9)kin9U70ubR4j!RThAR=4H zl<5Likgy5@vkE(=n_-u+fzFXrbc3{sH24Wjs51hxiwxBJXhWXBf)t=7#uDvVkdBch zHi4!Tt!DCD_p8}A7np793R zKxWty*@wI2UBY8{A8*kSJj4oJl_z3=V=~AX7BI%Yip=m0i)wtp54CjMjk8oiaK(R5y3L;k1Z;}$-oXWWkoFb?A zEjWP{)CDW`ZRp^4!Cktw)V-YS{Z<~49aU_GW)hGHHI}gvxuD*e;FIDK^u$6>#E7&G zhlC^KLWu=V@kss@Cio*PVe9xKe1+e@KE&R~=4c>pqR!Z{o~EYO0yip%R=mVk1Tw6O zT|7Jq#Q{!>N%Sdr6%L*TF;b4lD`ZTVkjBU@!YPeVwWST;Iy{0SSc49<;4x-Ei7EEL zx%FrXyKtu{{RTFQ_mwCDN3iYu3m<@yTJWcD@CEq0;qAy6;!^-3Rf>2}K~*Tj7z%(Y z80z4`RFD*CRg*|^B4i;2BH%fLi-5RDJ}aOh1#<}C4oVj9p#fI`3{h81^Ti3@`70M} zUm3%ado3Rt{XOKTSzN^W5wqe)DUE^Q87iu8!iwq@7{Nm@s%JnTi$6dVrbLGs1jwc4 zp~CM#MRfs`VSolPSSS7%a*FSQk~)BRiaY%^*n_uVfL$1n3>98MhQAs3 zEIbd2bTGmV=5PUCC>3AVVL)!fEBF>%JcrG$kO>}<`|z9iWvEFX!Plu9IK)RVB_+5E zkKuE~DSk}92Eb21X6WGrF2EL48HYA<6CQxWMj^57;Sk0oa6zuY%M7osSQ@hlJ!x)E zA|`Sk#tjD{fjd6H7BWYa>Uq3_JsulxPoRPme(%7@pL%67w3M1T2!#c83Omq&m#JP@ zF^ZgLwk$&pXGw+WHp^Y?uah(8RBMpoG5$=+8?;CX1X9DlH|8$}Mo_c8`G>uG-R9FRh3PY9|$)imm9B&^1s7}#2 zLZWU=(spg8hE_0j0cnM+apZtiWopi6ibDV`kAG1E5p-2|r=7OEp~!S+xB_Ti9sJXq z)$&!I_HYe+!w6PwFv6_cW3}9f&`v`HT40@fQ0S)gtPbN8X5LQGAQ2j7GQ$gX(-aG8 z{DfRiV!+$v8&t3O2yHzZQWN%Rt_~|n_4MPl4{OF!TOIP1r)Yk*PLTe0t%jRJ$G&0T zv0JbSEPA>wN^bG>rJ$}J>2@53CKM7Bx0@oNHAlI;STfRI5M1@;8T9X&%Lyx?@=f>?#vVX&`GnSBfE^5?dUlAdvoL|o8@Q1bAA z@gAZ?frC<`{sMC0+TGwz?%)A&Ksx*oMr4maBqg{*ROCrgkMtmTOBi8boA3dNpb!g= zwnKI}*nnnSpurUHF~xeaV-3kj0v&llGAyt?hU@S}_&h8DxF|~P5j+XM3a=s`m3%Oc zs*5|VD+ER(Lk!pfw8YEm$zy>mkp>5jkiek$5n}KFo<j`gXd=E=L%Vp%Z+Tc&nN*t8LJwie!O+7ac&g0RBly+%TCc+Y@=e}%7Y@O> zLY{)B_)QT9=N(GtJZirGuOI%k6+a~q_-=SFctrM$TRb8WHzebU;Fak`6&f@ZjmXfx zc;x~l04>wz9NJJJ_yIr#5?07DarCm(d1x^ML32&mpe^Uj2w*r6U{%J9l>MdTBtz9- z5oB2ie@76Y4qAGogCo3yCFYO_BM2@qVq;M!_GqZ;GCc^k1TO`Q*JZ#DH7rk>7@uYZ zz}#bd5TOGw1RNJkEJ48bka2;G2qbibk%h2v{>Kfy(kTD(9AW^(DWZ6QzTCwP2=E$Q z6msrVeS#HXQT?ao&pq-i@jiY=b3$6cF}^63l3#~Iq%S`NM&YGE2ZwM0-{;{~KKv=3 zT=Qz??kg;IG+Ve$_!!b5d$fT^bWZ5-SJD5lX+zi~S+Sts84Nzeu6JSOx<9;qRJ-2)&ftZ=SLAmstv_~LMUDTmGJcaeu z=7$5-%Z`X^?9Rq29$bdN3oKFA4id`M06S>`$FmOYo^N7NWL*=j^(G z341{z|K(4!YjKFiHt-j3Fl7GD39{xHcx;?EoP)yaa8_Qo9h}1pu!g&^opP7%^a6p$7uyUvFyQCVBd0Ks9TagG%lw*anYm$!oB*(c z9h_hW1Ns<_aRVVWFyedU5N^OHuuE7lrm9lVgQE(2EY*U+JXyVK2spAQ8RH=Yq=);Y z2H(Ol>1oD2Ix;?H-?CL0SuWuwUf9?;1E4LXLk<2s?8(mre?o^3jGJF<+dIf1v4ItX z&@2Fkn}iYBLkpD3{FlfZ$kW&d;giS`j_|w4lW2y|k{ufICH|PSgImaJ#Dsp1!!3Hq z>OPEUgdQ3=gEd?SD_Vus=@+R;PI|DaLDE2&;tg65xC5`1X<{N}@p>A*73pA2%xDkS z;mtbJ0$jinRYN~BZ^o#kVA1{%0tf&dW~&`bl-=kRUD-~T2oNY0lp0sIPx zX#;8Ym6nYwMXru7PcaN)JTdaiN4y+=@0#Dco%@VI!LB%~%#041wU+swE4+cuI}!n@ zDop@;K!m^b^jTGJ(3ue=km^c@UtuNrv^@eNEXoPzH|1CEnV+z_Q=PXFb9S(YBT%a9 z=^$@q?tR3V$*gUuYVfr^Bg83V_%JQLOXUlp11-q|hp?jkJao{|E?|j)y%%|0AV!JW z_ztea0i45kISM}|9CIR^+~?KEn`U^-@i|N!@`v!6%RAn zsW40)b_L`F-b$LOVj8OIPnzVa)-yYDtVRyPU(TbJCWLfQdhoegEy;a&SrN*fdl%ynF<4{%Pa?Y`p2* z5E?LWFOaChL(_sny~Tim3JUHeR#eLZ6xiB~#8qLePliz5=+D9*fj@UO7Z%BRF4AV& z@?IT`{8KMM=D)PyLCcAg6K@{#>LKZvpIUI5x!>^d@-BQ=DI&9lUFpmYfHlNw;>Z>W z9JG)jVm)J`&&V&c3z!u0mINbSmN7sE*rH1q5d%<#rks2axb=};;d&PY+=xymn6Y-A zY`BzZ*hQEwZ`_7eqBFWk>%@dav_mt&F+m|XDgf>%gu2*Ih{aq%kfPyHHXINH@KSO^ zz$$AOAmtb+4}M=@OQp$Djrjth&eccdOwTEZPgD*lVIr+lJ%AGcO8aFR>@D6LbpVg` zbXeJRRHkfNVVW~0;HAxALU1JG;97#gMm9!Jc)xQ9c=^~gN$dh5EI7_IP6Lh77$FlQ z;+P==L9qp*G=dknpd0ka8Qeq#&X5rf@DT>&E)2*D?!tg>IXs7F5m+T;iELp}8KNgC zVL%5P80w-~kI5Agguz&h2cK!TU1jMZGZ$L;3|uFCfUt#!1=Mi^?o5N{6jh^xW)_ZE zzz9I9ZA0sdfK`gpDtF;uyi0dUTJc+58rTSbv1Nc0e$zzwd-65yC@X*hhXFoN(kC8P zwC)7K9wswebyX*L8a8kb*06vTjOf#7f;+I9`nV|u)e&66d*D}v5f0!n^gNS!GVy8U zen&UJFvU~!q?XgbQ!S_W;nVQj;g{fLcnZD)Zo~ZoV{zh4@1NSK5rKbjY5>5L7$;3r zbqg#1)SR8w{f+gWu^KvI0Xlc{*YnU^Z5XuG-klUm<1IrFJ*4s&0IPc{=w&E+Ff$IH zTumJ^WN7NnT75lM^80#qgJxp+RnDmZI?FOiGgQ4)6wthLYKJgII{D0qsv&|}?}?@o zyw(vP$~kq~6%Fr59GJ$=0_cnz%BRg^qL9_XB06=(wA1Q?I_j8q}w!ZLGx00_c!_j&Fv zEcn(4BcD3qCl6Q{+d#O12xo8tPrwS2@T*FO_rNQ~^Kk?(7@B#|@awQb59pNc4k!nQ zILKJ233CClBzOiC&WpYA5Uljt>#&D=@c9PYa|y3N!b2g%2>245Z&Cgs@H!HJnSrf@ zKpT)AA~LNHjX>4QAymf!4fJ4B%46!u>-IQ%3O;)}c13YIowYnne>=aNL6|kE2nxI6 z?ux}Le5XWmPGDPdjW(bqPVy2Y*ueSJpLbCL{az_GDw@Sh)X0l-8aRP%NpbFRrAV!S z0(_6~-ziUOwlLMSrA~+rhI_SJ1RN;&@iLD>YwhGZD+*8nnKY&TT80ND!Q&z9r<`W7 zMmy2jGd+Mu(-f=-sixd8Lad7~eet-zjjmJTZ_kzTPZzL<+l7oQ)Hxh2%U@fkyGkxs zfrju#Ny@wquh&(qwj{tEcn1D6uS3gMO7az+^;Fu%?AsuS%o zFsjt`cd{IR<;8(wW%;}LRhYW@I}q5;A}S74^Y0x=J+kKSU48pkhY{vuc&SE| zky@t4fea%OSv2gxr&NmeCG~lLZNZRRdAlD`GCj&|1L=*I_e- z3>B&6hCT{Ocm=KjC9*vd0w0D^&^Yau0E!7siC6Gb@K3_G!{32V!w296cvxq%IMe%Q z{5kNu;Sa(O2Vm-a&9kQ039e$K=m4;albOq$NEn@dRp25ssfIzpkkr1I3qED{ml;o} zLo7H9Eq5X1<1_7_y0+Ezwc2)269N`I(uabrPhxIszb}$|U<7$o0V?{NwQN!JCCq1HsEGA8M)4LGRt3Hal}`?*5)@HBkriukWMz1Emg>@YCnU;yFU@AK_<01zI$K_^@mhou^Q z;IH1GS5AQ9)L$6C>pqK~PhI1uPFM(I1Xwvqx^<5kTnbYq5{@xpso3il}#Z+tcnq9cu?#Uh5yy(IM|aqeyfYa%6VDY z&dnK+-y)7}DWCrz3ttGxSMyq4rt~%3tQo-Uie|{%{XdOEW;lW#&LNg;2Q6>?y`mfY z>=rig9NdJ@S3+veCOC_Rspt%It?(Lr5`G)}GCYKj!}q}{Jb)!Qv4$qA>RE522;T)i z>@2_>6boPoRpoV=sF(s$GgC_#w<02@P;x4bec}0;8H+ltk2=+pk#h3V9+9%LKwk}D zjCz->05|&Ac|M8;0$RXsNt{= zzy$WO0AQ~mWt%CcD6LFohm9|7Ep5+g{7;nbjf z9b7onzA{L-fFa#Hh1f<AcF91_xQFwuXbDr4q_zbn-Y1T?KvH{NOs7A2@C+{v_g9g z98P=+`xj&e#P#H*B1Q0PWj@RH5|f0fk>_j5$bVi`3bxT z3HnlX)!`Vj&Yp`Q~lZS`wb}XG?MHp#ESqdElCk44whEXpB((sHO zuM=$e&vYb3AdLL-3BP*4^=cQ<7%A|h*VwdNR3rZ_{f?>rS)~SztBY~&bo6=5aHiH% zlDrRK0S}-r&uCQ?Yl<%3RC}EOeRU#|syB*lc^RLB6}0esp@9Qu;rxhlAC8~{V=mQy z`511&q6Bk#IE9B5fLCM1xi}uAFr+nQV_&SqeaQn}zzui>sOVpoa0bt0zUKi%z6KIY zr-gUMMO`Ib-Ep~ceTdTupHv>gvtacFL?)@URjZK+9mtm@UWl!<81wTmNc(oUR)J-K za&;A5Iv2cJo<-_(G?5YX9p8dfourCfts(%S`e&~eFTa%uG}*aQs<(`HBnb`*=I0g! z_+lyKX^^WrT1{W-`72y`U;m_q1UD!=gjcl3;08Q``)~j~JcP$nC%8i__f3g2!9hyut$>w2l>|V!E)I?u?ug;kaV!Fc6-<$2+)KIanR*n<0aEm1Q;0}L3=>4k z$TTbvBSFX`60z|Lj(JBNF>oy4fuJy=jwoI(k4@8GKm`}P!dNSSOsI;!I0Qt1LhD`` zGpE7ySXEv?1W!mH3L=<*Ac_Zq;Ug+D3o1iVrg2<}3W`yK463-|<(ZOD1Hophe`)4K z^Ttre1qK-L4unu}T%Mpow7A+Ga#d*&v>2Q$CQ$*+Fv6mQNt}>y!Kr7PXQ8-E+Uy2O zH7^r!zz%>y6z2qIO#F_>4dzmHZQc*B!yRbmSxx*S@MqyJJP898q-{t*1kB6If|pbQ z1WYESnbR~CB0!#!|2UJJfsez#75T7DA`(!$myee9rq zZ4BvQr*CwBd$gZM5XXfBqs=_f;m!8XEEzM5f(zm-AR8N{X|c#o8I&`p3G5@A%wdCB z$i-3YO*pImg4AGqvH65Z<*aS`&tP*cDJm}bE)`>o%(9pJ`OAcF)77jKV zd#>*!y14OO?+MT9@NGxqb4Y+S!tc1x@3=D`Ui{%#I6L6gr#L(2^Uz$8fB9v)26c)~ zoMSQtD4P1FJeT|M2u|QO0DT!kRz49joE6P}1$SXxRI4@g@U8Gd@x2{_z!R{9Uxf&N zAAB(8k z{MYZnNLuh)Us%9v!Y71l;Jj;bzPj@F#Q7?UK?h6dE7E~9s{jz|pXek5yJivt%R+40 z!*XhY&qWLU+M>j7AAU(;oDS~5C*b?wW9 zPtWwQDL^ZN3Kohn2?>~@^i9Ay81cYGSH7iS7E1pd7zw--fqgFoVSpaK2*3x73&kM9 zq4GG;6a)VM%oUOgjm9B7S14IF(>h|Xfd3WzBk=QZSRZV2JGI85rO|Ql5L8pro$Gd! z0ze=-3t@y!(H5rmBTd9927_T*-M+8DKcoD8HT(iLg|2-I990w%I_0?FEkRQOY|eK9 zUcH-BVGCRMw_po@4jzq!y*%gwW{iRgV}OY40a8FfGU{X@gF9}xF$&`d0gV`p#?I-K z#xVg9diXbmJEQz}9_|Qm0MCp72HOIGZJ3DFiDfP<$2xq|jPWc(;B90{6{aL$Bdlsv zVUGG>1y)co2>k)(bf8=m^MEiz6NOp5_FP|KiQxQf;wOY>@&B|PFBbU=55mRhw&rY| zaxc%Azb>-xG`S4P9UnZIWSW+(5S1us#sl$?gC+Nk2pS1OD};aw_(hU7$w4ojhhBZ* za>Mgaj()k+pXm9x%ctR=gO-*e4g4TnGf-F?>jyk_#^PzdW6h5r^J{^d#TDIw1Mmn& zP$$9wcOey9SK$=c(t0;T!O;0M&lfU!Aq<{V(8P@00}yaL7&=Abm-VaTsAqHr7+$kw9Mt*tU9MtHS3sFO&V3r=dzsCV`o6 zzHqYFIOyEvx20BE@qws@NOR69#*r{`W4*kRAhX0A~I(X5i;!I$Wbbp zHqKSzV6cCe*&4AFD|lRrsig|&n1ofC%&Rp-Lm~D#0PvCHMl|fY$jA z_>Y7W5a*He$3Wfa!*7bX213NLmEIxf>VLrK067}N~M}iEiC7UfV2l=!}%HaaEa@dS9iTawXn=0W!UA0%W2V$9i!RxPX-X zQ{CNXJ?wxZyaNbO-A|3-KrB6j(8%PeiQrUeDB>_Va-J?;^ABrOwiZR;CyRsr_rn7I z3T%W>Shnv&2czHbsX5xPP<)KNi;rcw311@v$OZo;pWhg-%c2Nhvnb@B}7@SlVKDb=8zm;pO@8jfa0 z<5f&>8T6ga{%|qtp+5r~__yIq*jhPO9S=dJl|*z;>}?<=qJc9S>I5MhfH`3#0rz+U zwmUY;YDEjFH_J?LdGGk@CMenx38}^WT z#!FVpm!nzASKW#e_Ph-|hg=-|x~QV0+rQRD2d!awnt zgA3A{|KE_M^YMnqLgcrwIQVaJ1Ac2tA@RHo3j0#;mpU;7gRQDE+?;eg#_id3XkH!rgZ{uKz9gH^Jf9!8wOmCW@|lsXze!i_B!G z_8h|mJXfse-_-OJ1-XL8ewbpzy~IF6vCkZ+1+6L?L#7;*SHth-D6F^VEcW`jQUWva z+SLfZwZ*@jw4;BPiTvY5rz(VRoI7L=9TDzNkbCcJP#Fwx2;Tsof%~wmF%96G;hU!x z{Xb3|F~y`Q5G8ybLCFQ9em=K+uHcd$;TT9jC9|p|SJ&W$w;Vrds>)}6y5Xna!Nd96 z@Y4cqy>x;d_4QvF%YY$%im%6U+zrbiFJN#62d5FtSsM-PBYWr)<_rbneoIKs%f`h8 z*=U>-;Y0}t_(;xdl+^Og!VikvpLXaH8aRKq!^ecm>+-J0V}@;naYmmIKx!oj;`}_W+D*S8h^Rr4+%e% zDA3yxhwCGM|EKuYksp1Q(~%4tcwTvbrZGapD)PP1!3nJ3*jYLo_;vUj!V7Q@9KIE_ z^!&$QfH&X|?}?uShvuD4vI~+BGbckyZg~?Z*?&Fue(oIdlAv%1_u-;E>wS4W0C~IG zH7r5+&WC*GIS&^6_ziZM&zZd0 zd9~v%yr=G@t5tF8q94Jk#a=xH^5r!^%H=ZnmzOMCYsk+}Rfb=9XZrdG%DWJ`qDl4+ z7(^WG3W}z1MRvhkOZRU0l&mNOdjJw_rtFRiHl;JBSO`+dwP=c$Ex<8E7~iHFOA)bB z?xO*lw%ltDO!Y4N6+ouH1wRPi0KW`gt9l5&Wrtd~A<;_(xZ(~>N*cD}jw>1^%Mm6c* zjYv%=;@4q-XJ7#x^i2COf|NGA`}gtPOYI+r7kDcX{mWP@J9wjG;aoFX zBjJV{Kx$aa-;Gk@lNMgg72>OxTc%_K$QAWaryDpknby!$c zYPES&R=4T#0y;AQ3d>pNct!*d;5dM|cWyCk`n{(u>IJK`E)A9x3AB!7 zf--_DZ9<&OB_=e-45JP0pbH!KjW`;U%c+ZPobzUQzHj$nVqw;JtqFWTocTlWLkbDZ z0QQk?$zx?uE(C!Ldw3vR6WlQ8LO3t=*LDTkds!%kdH~KUGbV2q1kPRM_L9*_l{s&+ zF4){d>?AFl9YIjTmD~}HHh@iW(WrR5xMz^?lKX<=V_^)cM4q|EF~DZnR{Z@GjPQE+~% zO9PJsF9(jnzN7~vf6s~jTRhqz;P42%6uWFILaEa2P1rxDd3YHXRq1B|MX7jumv?~k z!XN~EX>XO6z}?47Ccp}Q2Cl(-h`bB&xdHd~rdzD90*eart_i%kl5)Ny2_SWQsu~tE z3uv#%ng_zn%mN25WPK5iK>(ecU&8c!_u+@&_rbFeDq4#j{2crSJYDp>7vX6*2Zb9| zYa>CR6<1Mi17;g_K+Skf~H;0}S)menm>IeEm;^9dtK$!@8f zBt*CY7x2F78$g*!`BnkIIq$d+HqZ#bMHwoK^1?g|0x!Y6^26uh03MX&bcGYR32(wH z0Chd9Q8wdQ<=UDgENiYkDqw84xS>LZVOsG`VOL&Dt{5H}dXQ-hhZ#wbyh}a@hcA|z zpo@YkHo#HE8&H;lD=vs33uKEp$fOhl{*_r|q?k!h!IG#NX{`>%WlnkcHG`` zD7-3UxB*Kzg|5b;sEoDri99XvZLI4mlD|wmcl^ z&k5Gc4xAv6(SYbW>xm9WkM!_Buif;0X6Ln^=}JF%Ey44{4S#6lhcbu&Xy$Cmuiqf% zTI39nFGF3J2hkATofr!F8oP$|of&Qw}JOQA5 zMJ0eB&^WIszZ6-5%yIyjS=}`U0Qd?Z8tU2dyGO3e6iM$emRZYYM*=;>%3xmEsEn_^ zyn7ZPDJy=h1f0O|*&>x7eR(59$^^cse9h$Pz$=q^?RKE83m=C?9bK0dA-vrPF*tyx zTv}(xOD)p`umOX3h0+`0N8!H-AA?^3g^$DUBl3==-frVS<=?3!GD4h{Qj3Dt>8&0R zqyo}IDN2UahZnt=-2zhubPHO#=9MY={Y$W|*nfTp+`5t~F2f*fLE!?d@T3KJIDZpC z-~@ys9bAJ24lC%GmJ+)xrpOM)`bOdN+P)|VSBrtYGatiP?~PsA6X7v@5)54UR_BRp zWZ}j=cJM2O>R|`D7`qV;;G^&=JP(m8MW$79fL+ID;B4R!99{(qgLQ;McoBe?;4=`* zS10foehpGFnVy6<;BP>HLtv`P@01T6aI#`Kasyr}FV!lLGoRW5d=Qo}z!^M%0dB+l z;ZyJmEP<-h)k4T0gjbwZ!va1%(h32zsCN!e!V6%9o#UNLfUe{wK7=JDeOx$ox*Z8l zBa0DHlF|40h-45Pf^aj_4mF|s%lCLB=-$Tt|A*j*0p`_SYCar**I+2kG?maHR3pKq zDx*FL0UMwP$res9p1mZlxt%x?vJoIcD;ygi+;ck8D+|-)m94N|Q3o&QRl51({=IB^ai3#sV3bQc2_~h0_YG!pYEj z*u*E)R4(coSV(0%m9y1&S~YHKEtE`F90rFGSIBII$Nl1gEHfG*dnQ86v@HjU8W>wV z1=Prn2ShRFM#D1~q=xgz`*tiNZ?4!oW`uwV+1ML7ZB#e1eyz#3;%NAYq^WlXos{69 zg@GS-{t*1X3Kk9%M&;{E6iuA3aA9o__^OM8&i1{-pL76?@v+xq)_T<+hK z2Ht=-p`A_OK66IrI@971;aaWhS?6=%?PQ8N`Lcp)g`W6F;k)72-~c`kUm#ND>I6=_ zr1}f$#vJ z2PKl?@Nim6P3j8DBlsfRqDU>TE-=Cc43Gq^;c*tz>akw-J1|MGa~d!w<3U;o#Wd$O$(p9)%n5;u#J&*mq72SO(YKmHr?n|nbvAHbtTJF-yscd^9dDMwcIG?^ z95~Sk5ivTauizqtcQ0j-9l~SkLydr8@LJD-)4^ldI7ty92nLpUtbFVRLc{nNM#Q1V z?Mt8C2Y8OF^38t?{>SiRwLU{tWGC4>8Di0@6Li%%fq~9+;%ekiYwfiHY$L>s3#U6y z3%h0GI3!^YF>^EHGJOQapcGl~6UfX=y4-fYYoV)WrUjW=O2D%AHc%r!l!hrZQ}04S7md|AVgu9%_rvh-!VglCdesZ| ziC=t6c6b4SH{oxC&dWc~J@h#EJ6WushTje^;-JKiwBY`V8~4G!6b;zxEAzDyfi?S% z1LMO3Pi+~L_g-)`(i+b^q!085jG517nvQ1ROmIPjwBiQb6+W$8Tk@jvw6JtqN4-oI zTg)(-YZ_PU9#^vfMUbmlfRqrwgi63wmd-CI4}@l(@d0{89e@tHsydLq>>Pl$fZg@o zR|1wg&(PF4yw(*qU{VdE79$Gvc91y>&{rZaS?dM{GGhUHtDf;mC18h`F`<*MKqcTg z(E1+Ssr4(NGGf(ZC{bUp)DaxOA#97X(bW36_&WwyD|4v~R1RJqV!qm4dkB96J_f%H zei~NrW5l@{S+9vtG}1osT4aD%1EUa~#RYnkgB!5ntj8WAp{Tk8(LhKU1dpiEB@{G* z;!6-xi)8Ya+%gEhLlO>6gLH(9!{a@djfBg@ga&BJLqT8 zo2K!mDQG0G@rF6vcS=Fy?jjGwKNuJ@uVjB#4S+E@JzTI!0=4W=);nJTC`qNF#)RysZ^z{-nl6g)1z!vbMQ(L zR4UhN{k2S@qY5An2AvmGD4554?wB;;P{)~0* zL#CCOnrZf11EFkWBz%RE%yg=4s2~u8wyK!58kY-~TTb4`>M0Tof$c+@hGswv1oT}8 zo)fI$N#+9lBK+Rjnm3`%wXz{FLayb6XhF)6T6+?QP|Ho!3bg@-irE7}n6kuy2n~#| z6Edvl+5&{qFecpat|Vaq*BRMjRqv*8**dgjhweTM)5Gx zf$Y&1ZAb&V0Z&u|DbqR`fa}V8fB?>+88~zIX_u#_Lk^EcA``YosL;is?J`y-dJQj9=gG_7OZ#Zj+9Wi4AS#ZUD zqOh*PoJ-{u;a+5bTh7Y321hU|D?_Ix=!y^w)mhxFh=M9Un>-CvP(c+bv%DGsTyQW) z1aZ^}0*VM;&LUS3oh^;eMD7dEfdgM>m4N?V1VFx4H)60VMZTLEg5Rg?&t8o#4343N z9$Gj8skRyZZY+>5Um^fM3Eu&~00KgUTwM*U!N?Z~=o(r^*hC%)Tj7-^|8x;362rW!A zUBMFqM1i~HpD;frJmYdrx&2o8!uA{p3Y@|b(qT8ruYntv5a8JT@t$rkD+3T%85>B- z76xbU;_3@yRFO3XY2(2Jp$=LM9+wulBMyp#00ZtSz83K0Bs>VXgpJ26EvU-UScup` z5NvT_QB~H~D~`K~Y-r5!@RWL5Srer3XlV8xQ#PF%2SN}`2#FwdI?#+5GIbGEPp1>6 z#)wl!DY%d!l$yhcXBTyF+;DRznsin&n7>4En9d*w0^(J5tBoeOw7_=9?Hj!BNfL~E za*rG`^z3?KWPKe;ctSG1f2VW&08dTRZ&Ll{pN>prO1vGXK5{D?5qyd*Ns!BS2CIbS zbpp-ht58lpAK|&2GeK8X?Fk#MP!#&I^AJV`XM|qLwSZFh8eoK6V<1(ZJ^+CY1sz)q zvs6pNR6ArS3afz^<7%iXJ6dm+a0Qiw&+=`g=1uV!!nCg2P|fvf?v9juoP`vvoWGE; zRg=siqnYe%1WlsXEIoaGd7s@q7aRr}aKU>XZxJOgX@yfK39h6}fT);o+QUe8bW4Wp zJYn=Bcbo^2MS_v7V@gPL%G&lv2@5Se05{sipp~eq7Q~5=DwgTTM|RLU2rLsWDW=aU zH&>y(K631IP6s<7lr-N3S>KXWM_zn1Yln*m9bnGKds?V~PYmu+(B+7%#b3z}v)3PZJ^%hn_D6n3s#U`M70q7t= zbUJV+z+KS5&x{Q4;t|&pOHgR{bRbJiN*c_L;}KaSia1_eaHEg}GYk-b-E?ec$O8-z zG0;TVGdeyZ5s8Sf>#>nV#0oP2#%QFB8Vv-&%cJpz9JmMjf-Uq}Asu5b^ixc7gpn&n zev@)rZF)la3SG`;8-RSZ=}jx5l&_u)#hKO5@IL|qRtsj=AnginKm@N&y?5LvU+EkS zhhz9DcoseeKMmK3cvFpcZ#i3%4j92&wkz&CdCzX7Q34!f#3_O*!3m%colurfah!>m z6P*YKlwh0Oz52%G z(7i)Oyur6Ye?9oi>bdimH*ym?@fRHcw+6qI=At15SK)RaF+pVSes;iX2k4pfiNz7w zxf@757W^VgNE}B$Ftw#GPmxPHeB7~KF)n4d<(~U$l-9`FbO{&S(F_3)6mo-ui9~-z z;`stZ7mf^ap6z+OQ9vD+NsJ=i1aROOdmk)_x8Mml3VhahAH3h>i-FA@Zf$*7(i-2| za^L9__mpLjvq&7gSMM}D2g9r|!nCG=6#om3CDa|vMIB^|4?#S5a)~{m^{q%!Ip2F5 z<*Xw_EQVHiJa~`n1%ti%WyBJnjB-Z_(G7{Pz{hqG&7$Xwc;qrcV3&!-F)RSMA&xjb zY|9%v7JSG688VX1MQCAwEP%A`BfdA;H5@HPdI?y_G(bZbiEhFMh=TarzqAHLL zfjx9^3yit!;1`)kY-?1C25hQpCdja!@sSy{V72%_RXr1gNeXN=6@2RX*j22~#D1_T z2b4`>rgg({;lj(|O;vgEnxKr7Muw?L5FnREN)2B?*}pGJs)1AxKdB)6;sn!KdSD9d z@hf;gy08v;sgeYxT8<#HJ7`fpHY+II)N{!wda57x(?HdBW|Hb@QKYUJ(ye|Ccg3rQ7 z;IlBo8^Q%#gMH-o5#0u3E;tf!Si|px);Sao0G$02Q}Bzq)>j8OQg>ciW!taVW|r)I zl^njixTG*D`sMN8d*!rc?Yst;;KCanj~z`s6*(1lExq9ol!fyKXv>q4Bcb23H@wip z-T53iX#qlZ40-^T0*>#IGdcwrj5h<113cz1a`J)||j$J40WdFcl6F(kVC1ER`eSsr_ii0?S;Ue}N;EK^Ir%&)*NAkog&Y8S_ zje)OFJQ}MfxqS|=LMyo?uf2VM9fF8n6y_kwSCeFj;3M?LeUT`Bu;EnM1{$D4Gq&f# z*aR*b9<8{DJeB;7PA&q6qwf-*$?|AV2lpI=*5z*SFRc6w-oK^GGJpgQ)h~%RopX32 zdn0o5oX=&yu5#jR#23h5Z16+nhH~b7UU&u~bS|Cvxa9R9x6BVs_5&etil3=mtT=(| zTe8_}BG(quU1xF5cZ^}%Mk5jVu+X`XvgnAl<1f6KGBOg{t(| z!s&f=MPtxRL!vS>HtxW_6faD08&UCnjS90rE4Q&&_Gb$jsFk~K&pr~OPb1XsN zGIC}dLYCsK7u*PmMMe@1DuloYVPp_?Lc?H;K)@Twl~J1jxms>?&_ib5@+0sA3a(r% z05TE61$sa7;cSg?SNSwt!n5!`=RJ?Y?Js!p!x!YA0vYpP(G_PMKfB;HxLX(@A}ruj z@N;ki-<=s9aZCUj>KX-y@b|%cj4iB$4#PWkhnMRAF#NbvsaV)AaKZP&sqz8g#Auwx zX`MD9nLw$-sAOj+?3I1Sg~8biTL<-kceo%ewD5_mYrqNo9{4}Ob*>hy0NWLJJl9~8 zKmaW%@R9-2)wam|D=XwzePAJ+jP%fDmda@CoerY0Q64ocoShJb!5O>^&VVJ%7-j0l zE;?CbG?4aWh%E{FghHRt1w+6=1cSb3Y!HErI|769z<6|tDD07z(_`XezOUz70&gle z8m<{1Z~5hh=U@pN*k_&-u0fNzyW&AhSLT6zoyQPpg;BTwFZ8b+JT6Kz0BFT?GnN=* zuAT@w5Z<*|ol;0}36G$GYndRt=K^tDNYGW1SiS`=09X{79l$bq#n=)c!r_+hab6H2 zNTKpOFYMIEkd40MVZ)-_{t{$X2SC8;B>CywFqPb5N8b;hRh;ys62vgBp#xB z#tWjeYT0J|Hvs@=f{Q^&deif(kz@oMB&s?=@s=<&1k7=D6A8jX-Bq>@1C4ls!6mz= z7b>h`#}dn>`Q=89Tzrq4W5J?t<*(j`5nixJMnf_?}}& zuzk|dO56HnW*0efKg}{O^g^voEb;8pWK?_z;zlFH1js1dU%4&)SY#2w&;SVLGQvyX zLgP4LN7yKu)fIQ#F+rK9yiQZE-Au;L+aL>kOmeH`^pyLC8mAduun{~Hmt3wGw$S;9 z1N%mn8^7paE6+Fd@JuGUAF5>aSCt!y7aMZRy+*bTx7;4993l(nymMS6$~c%r3C>en zzivXqgSCB8q!FHg_ZB2ZgF1Ezf;`#U1J!2az~rI(DU8aI6FVHaA$gIc9|#8=W*OFg zo&@o5;@ij8>`B`YudaI=k%$AJCj!C9qR4^S2RreWqqUqIA?Bw$8IuPQS$gRC!YNND zo=@af?~S~2;qN)7bzg`y2YzrnkK<_PjR^?s@PxF)6>b2o;K+*Dqo>FUF39ItMrS4H zHt-QRF6&BDEpfcg$b{;Er!NM;SofFcANY(?srt@qR=|XlPNA93`*RZgRLq0p;+TH~ z*C0$Q$;T-}>j*a0@&kYgQ1)nD8tGxI6mRsfgl3A8S4c&}YKu#LQ>NW}C9zwJw_;y! z7N&6zE1x-Vn!4PS3+hdNFYMaY~iR@z#$74f*A@Z>bR4ftegq~F5v)Lyu{52b)lUQZ>I{$ z=mUSv`2iPJd!9Jw^G6&YpeM+E{AYr`fPDf!Q-Ha@=PuXZV925jE;xS*yt(|VcLEm> z;ft^;sVPsFT447SlsJ-W;8lwDzlJ{n&%>qCmH-ui>AwnpIfts0;NTZt#^Jzy7#bFb zv^{O2SrbpuhzqpPk}^AIAK6CS8J28!Y*&yqnzl$Nn&D@`xKjRO_%8VGaJ8VIpqwdR z$Sl5gH0{;$-+D=EcNBCwZZ+V7>bwFQ4vi57R{#Wcf}@p$uxvwCq)Zl4NQ$DcPyiHF zT2SH5NDHT#10@RIzU6m0eIcvZ^=zPpg|j-NjWwmp;2a#j1H@Sh{UKe83O67-G7_C$ zIEJO;!u>;X}$ z0|ySmrf9BPFt`C7~lpRKwn%54cOO50>%=49)3HV5_x#W^%YGZJ2(cR zVG$V18}X8rPm^(kQ9H4bKF3Ojx;ygx&)p>aD^GiAXQrx{Tz( zdzUP(jR%p#0o_J$QDLL8@g_ML8faZY<8B?`D%l%zL~wT%K_r-)y;bC$!%BDsTSQVdz78(k0s zg)Y0Bh+sl?`W89o@=f+TTLfV{DWIYbH{h1ZE-;86IqOVtUf8nS zqwvHAjEjzig>m34aLtH`9u5XMa(^I%KnsrzzzosgLU7(#iQqBuP)R|^zTc6B^_rcF zS==w&RuCBv)$n}o7~_THDbbG1`Jvdr*C*uX?hN&I@DXRqU)!s5Yzn? z;X17A%v_TzY#Ot+X>AQJMJ~Y-!vX1r`JEMg$F*~`w5;Y`IE~cgWJL8&_h5~Th~aA(3PbVkgkN8A{h{1`?CiiuDuTfp z{t z;Lc$p);t`BO38vaw;u4p156nm5!i8ik0=SEgRnefFIb^o?#i5?&U3;Sj_HJJkYLQX zkU-(Uxh{mm8a8Z&3=Ru8bzW6^__iHKTb|gm99d?PvI{ITsp0XwyWp}6o^vp;gaZ+E zx`aR%AadWB3uR7o=$ut1C7#?N!q~7`uxq(kGYUP#x2XegH4a{8g$!C~5v~;Z@;J3d zIDoFMn3d!@7m7lKqv8NMfdv3o(|^D6_#c7zE>ofv&f!hCL8KpeJ#n(;pv6m`4bV0O zWk|G{1#FC=MNaWOamZ_7XSfxO(GW$O2_L64xWWJASqca4Tfv|+an*z@9TQPESIaJu zCJ_-&psoffIfsjvf>@V3sQK2^;%Q$0xDAX|~k)-Mw2LKf~p$vu~mt+)wUB`Y?PdiIf} zqi_14SR?1XTb3rcMjpBNfI=@G9UG+&9!!GK?K~KWkR3SO0=a>egi*N+3CRo99K(4csdd7^ zMo{cfLr+RMkE&V23hi(Q{k!UZyFo9>5l@h5I-2JQ3#4avkNulSU<^Tq`m3B^<$Fp?7!)uY$tiEJ%{5igG*E!oBLU zC=;1;dNMCdS9+-{EnJtlN32-ndTM`GJyBd44C{ndB6v|KXSZXHPs`_ps-Sb0 zIdd+G(I|#G7_kG$TJ`70mAmF9CuL{`Xvw{R2gs{Yg>|E?qN4r6%0 z;Ts;>y>YDkapQf?F3<_liJ1me1Q`kWkFGX9bmP@Ogg{V|NyZn}1(E{(H0^J2@H*XR zSPJoJ_zB`;ks%m9`DEJhxd6u&Uu~Z zb6=}J-fZE9>Oh9WUGoR}8G2<$c8iri9r3Jx@-eo*ZLbtQY}4|8DJbq^Vt;pgdL-mt z8#4ToqxIBXGONqq?IHxg{@-)0SefAAsgAM6SqG7*z$;rU%Q{7V=udH`w1DZKk5%1b zoaZWh$>hEVP43N4vwq|UseFnyReh3IF~htn@_F4>mRBaYdt8nZyYGns)2jd=GtUU` zj_0d4EI#?NDp&bj+z~I}E~j$MSpS;HmGLeVeb9GBfI6n-=gLUvJ>1Fe!`wifGq2Tf z8N4?X&hMp%lX?$49WVRWof*M0+unH(IUJL#cole)VcK+Rz6o-lUc5r7W~)Zw z%=|~mH|;i4D=1axawqrv*XwJ|w90bd^12sFn7*2Z<+;JyZ}NP?kcGG~XwPLnc3i7I z%+t4!N2!RC`bfXF&ntk^3kio$M-IvU(yZKr$l}o0>!hn~K3j=A{q0P~d8VB9iv5in z-DBj4bAS|i1O4H2flWvQ@XVJI3ZJQQ+Jh&!Z;?*i;S{456Ns?jL`Y_C9xR8mizj;t zVu~TNw7#aJy@+@-(1b!kVG^2A`uKGx3Sy3Ck5GWN+k(~4gC*RB0*yYul6xpK7W__I zv+rzduU_t0QCS*C_)i7hj^axOqAig*+tO0^27x){f*4P)bd5NI#ihoB4sL7bB9*6- zv9L>;as>}iL-tfoCP9O#Ojv}1bR2t4+t-_=^ciHXKyYTNKt~;K6l=vZzj$?Y)^%0W zte;Hhg%CkTw@_PUV`{!UrcVv(?r}bk9Kn_hji$x7J4Jd)e7@Ndqi2piC)C%C``Nzc zOJ_DLM18DSb17^Kfo$wys&ehGzrjg!TprznSI2rz$?M!4q>~22@VNwW)KoZw?0|mc zHX~Yz`2!p*k&gWcY3PxKx zZi5(aZ5dobG_wbNbp&_xlWWavW0{){zV0j^D*Ep4@|=ima}UQy{(85yILg$0yHefd zfhaqx!jq=LKbcd-@AXK0U+E3z$%yVhR~yHmSb%(HU`}t{PiOu6&+M`A`!zp>owtm~ zJ@u=YD>#+1;`A|>fwSCpNm^;YUWP#{5m-Dgd=i5fR6bmt=0-npMK+riwiTOM) z`yZSw>hRXu7mxFJS)ExGFXC-@3@;VDUoi`34NK|a=+0pIOaNS7){ERoIAYTLBR2xm z&;0jueJJ7K+UJYv( z+FU3+{r7>6;bm3ObraslrC%N=>S!-~<#YR3a4LQUg2AEPVhF-1GL%B&3`B&-JG1`f z?B9eK7vgd`f$Ot(%B5DwD!Z|422FvGx@StXJP0XPb{hf8yN&M}icj(#_zc-;OMQ{( z^!dJY@-Tw#z4%#_c^KUjHf_0w;4W(1S3aA5ce#^HfGs%ic`kss9Zv!~>5S!|Dp%q(LM2x(`P`j}%# zxH;D8p-fz`k0h;sL08*z$wUVx=n-jzNMo#8&o8mH8>v9Krhp^3K8R3{7+j?^`K|2Rp+5oM4#Bd)DNdeVTeDNJFloqD%&P3k7kKeor zDb_6IvWe4D>nW?ctZq*;+440P+pW<=VwYHfrp3DGNrzEs#>(hJgC+bLU!($7p!o`Jv^?n0j~lD;yj>ctoo^`$>v zDDrQWWd=ts!6ZBQ?2^*#l$@K$ltSpaQt@M}8S&4ZY&&*4{how-3L)Pe&95jiAnZ$+ zavC?9JKQwTGOLKGQMAC|{__&VtNS@`=(0aHn@nAD%UrZEu5Uxm&4P*{Mp-Z3)dn2z zdp@lCo@Rh*=5KHj869}_sZU&v<%6B43UX9@GmAU4^#wWNA?K>){msWpiUVfu$F7SY0_Thdj|IWEkBz^uyw5js3jIZ`==CuYFa`pw|&V zj`zow9zpP>ndug3nRzbVJkJ0&gYcYdw^mDvy>f<6QLpr~NUp2IoxHn9P0h7fk=GUA zaIu%O8?3m2t2YQ>u=arG#?qrqcB_1&oSx}OW<5M(&?paAy0rxoN-vT;MMlOwB$_O< zL+16UyM3A`v?065zxk7u``<~d`vv<)8D4q;B3~37XiRKz%w}mbc==;t#;qg_+=IRi@TxXQ$y^subhZ>bFSjgCDI*1NuA= z73*sku5qYNC6qR{ez_ofF!IztaxLwt<_rrXarU}Yk7dQZXOuEG7NGb3Q%EKx=F)k3>`Ic$#BOzPoO z?$5>o(IsI3U#+NXc*f-=(n@eHK+96yDj$o^P3)1dLBlPOX3E!cjD&Kt7ko_#8)-S1 zx7YV^6-kgI}zI^W&D=YtN{z zW_BLgH!9R=sqi}QW@gQ?d*qVqc=M^|UiyhzL~-1dkav3ObwhABO+*tLi|$Om%L&@Y z_4aKiE_uA?+F?GV=XQfj@{rd&1h1BxO(fO#l_0|Atwgn@r(?oh5yF)^Mx@jS0+gO= zwdAs^21C5c-$lE23AAzJsB=xm)mIGBMk}lAPCCmEtARjxswH?N5&%nOSf;Lu!o^64 z#e1fA(g?k^(Ph~-eJjZya<2Uog$sl;6yzwLQ~32=&83-L&ZMfgnp(x>YygX?Q|=ps zk%7Cws>fLS5yN?8MJI{x{4=vmg&-0;y9mTSi7f`%fD=dx0wty%hy@Yy#;zdrh%RNM zMvBO^QWNSwA}dj?ZE4G?Gwg;HyXquTdp~=1xa_m&7Tm0bJ(U%8I3;ipex~61FdA2# z)dmm`UlfV#AR4}?fI}0%s#vu%-)R|DdnV%Bc!UbD#K}BjPz5syuo4119_BRjg12`6 z1B|Ngdm_!|M#ta+q%PZ^cD88WJSrj`zvvp=9%PZqlEx7qXTIz0JOuHH?|5a5ZYvsk zUWuf4`m~)obvMUe@eVk=ZZgXi{Abk2$nST) z+4S4%-$$*Jk!)9`I(K6lX$8@72#zJeE_Ud-p|M%*Ruc|lCEFj*(u5Jub1`=>#yM*2 zKj&ySy2WODb=TYc=<6;^KEsCo$?^9t>%yG*PwH%Zul$~?PzYf?GBMCOPh^CFaEbM(8~jUuY)L#A#6o&R*9PV z5a5I zax#cgQ#hGsb-G)eQ0EaA=p;r2%hkOjtm0*xHYo7)I%UD^S z(~Cisxly+37cz>U-m7@@aZ=o%MK8vmIydMZo_0d)?3rB;YujiRQKS;rk|`94i;xFQm@X+zKRn4#MR^S@*|1g`X5xi zEk&EaHv4wG->u>L^*EMUahA?xz8P1+e=AeO9xJpxdZslM+_7?_U*&7E(jKFHAU{$3 zNxwq7HX$pb^yAG>8It=K9BbU;S(L-m1ht1$jKdR|g7=*t1#CZPCWz zNtdUAVO1ukUdSYC(J4M%I`1d3WMkFkWEi{j68R}W^PW`zlkh4)xpzQpyDD%H=$>dK zAqYsraAKE}>;qfYexy;v)fw^%!$iEo;T4CaH0hOgz5%$B%n{*&zY-k6}cTrVNE5-hw&RUZ_N9XE8vJw}0MPGN?*Ct94oG zMRY_LClhbKWnNj$=B43mR*xced$~SyuNtfVJ=Q<$w<_LZ5-~Z!+)ILfR*>i?@iWC; zCZ34y+&42cakH8L(@EL#N0@rr6W1 z7)Hh}va-29s0V5l$JNsO5>XUOOxZ=wRt2=#&#M&9d0&hOQW}wMoNO;GKCbZzKd!l| zU8^+^?J{@#^!(HMCV{EzW4iVeJ5J$byW1LHO$R>N9W{hK9aBBhzhLJ6rso;lwA_O1 z!PBp_d(ACZIkinsL~3H!Pyle287t0Hr9bU- z?d`q#k(mHn%(=mJ^@tA@Uzd?GvO@kX|56m7Ugz^d40x04g~16M*?_9jJ9I9khq-cW zF~A_T5tD30n5YZ>S0F4fEGzoybDGA<%0->Ou_vz{U;Hib=}%T>;$=HZkl@8ZW;af( zpjR$1HXz5~oVae@nS^(@;u~HZy}#6h{YBgZBkZOV^52??KDM!ANoPtWxda2^;3ral zTt9OPH`%c}ZL6QM^P+7L)K51@WMT=uH{b+coJnta^X85>$~f|F-R+Av_YwXV&P)ro zC>iXe+Cu`xqD}s_#w$4>02us#pY!+o>=mS4&vm1Fe06wxd1_x6RnpOa$7J<%0{YV& zC;bi2;1LU!EjxStnlEqlpQJiCOx+)hhj%-IfxR#qgrX{uj5W zbSG8f*5>VhySEXOMPJ4M8>0^&xXPA=6*PW!btpV*AQsWjcRAPU5WHf}B3JlP^8@MY zDU16RgY7%EfEyEaBJn{xjwngtEQc(qAKuUWVxCe|Ba1h_&>|-0D_y2q1_2{OCoZ6nHT8h5RO%2P>w1)bZQ3~^u7kGu5XN$OXD9d#;6G0dlY$? zvIY6jzR_K;3M`La2Rxv$PcTmTD10bwD`bke@q~I$W%n63EjxTe+V|u_3#<|D;gkr( zEq4-Wr2GJ9KO}Mte;uF*ZKDu{eSv6Q805NSqNJRU?l>{qcwKF6ym$!fpsA#@$K*yc zssB1BI};6vKx7|E;V>)+V=U`$ao-$c#}qF=Tjczg7KZ#H*I}I486TvAAQNfu8cLJW zXI)%#cH*liUgCzRx5Gq{X)q0HEda#e54uRcY@$9nc!~2Og_K0*`48qPA~eth1GvKW z44j=krRF*JEsw2NJS)x*QEMHX%J$W$%-=iS5lLpBVmH*{)dgb5*{lH8=jo5v zss=R#GQ_8NQgjLIIhN!db_L7?gBi|e-L{pn`6gxF-|fZOnOgjfyb#qsnLmYidHIF& zGPR@nVm^WKfIHq7>RrY~8^45Ai{r@E=qw|!^$nu;gEfZ7jzPV6o%Dyu?Fowf))IiL z^KtPlwz3bMl0XTmjJHxSFf8I)7y&JbC zlpr~Ja~NT@`eErs?Q@D`EMdAM*h>g|*w5$M3rIko2s?2o0m+GqE!SEQrQfN2=FbBw z-p6zTnQi(7H`s%#eHBt&wO_VoC|+ZEKO+k`E^=(Co~*S7e|#QOc&U241(hfJ5eYNN zbt8PE56($vz{nCP!&2QX7O5wv;BU5r*I-1lzTAflkOwynfXz&`+5A3|>Z-_lQY>fc zo#(O2B(>ys{R7D5G^Or$>8sB00&K@4fx{KIq230F*H~AXlaT67Xci_56CgGWUxsqz zSJ4&CJ6LtIa9$Eyxe)~%2jRd7#V+ak7~a9mNF3T;w!fkObIG@LVla%r{&Y#H2P)qJ zh(p*>xv@0~uI~~~lzt~q9DV!ge(7-Zi+#iX%N>f|E&5sGlh5+E6bNiCNLIB4B{|s( zq8<&C58Hl!I_)9X_OCwAgAH8yD1y9xHGbmofbHvW*ZP(9BOkj^kK!xHiDAbqT%G@-x>1d{WTs23Ojt^Pu8o-D( z;FC(RgOSsCSG}3(0@8#k!o;^KdR1ze3skwQ@3rI!@yg@mdsC;I%e+9H29B@R2r&Yt zfIQ67MYsALNJD`%;HMJ7m>l9|3$|ILX)Vx91CMMoCs^AXp?-oCpjtg7AP+n>(RE7& z_{CRGI%xCMZ2MlocI4fZXg9;#j%RivctHc=oa@-R1A4Od9mx(FA3n}qW81#Fr!U}n zgJ$BV(#EwQ=qYM&Y6spCEDpvQFSIMKssvwA0i|+7n4adF+!-db&O2}Q1UxWWjLK6A zbe`avRhF?pu4xLCYtyIl!678AtvnHfND~y(do)-IrXU3CS163p-rH>K6Qmx#^!4|YffQ64=$j=rr(I1?^Ipo&^hI>PBirb##kvh zC6SH)5ZmZx$0=1(#^~2~{ikBgC-228PT^py)~Tv&%wf;K^Tp8R>>mvwXG)TeMKUfL zC>4i!%dx9Zf0X3)j*4tQK*}DzxFvkaijsFDcXE?SuVjr3(@4m{CK zoa|##txC$hr7eFBIi~!iQ6tHP2w-9N#HU0D)2t3YNm$9Vy737Og9Sp*MI@=)WQe{A z_t8gBE^}DF?AU)e8RK^c$zrqQb|r|-ET-=K>sof^D-Z;W02ccu=5Ur;N|&#KyDCajvWsGAj1rf*)p=>NjNrF>g)?n!FZ1c_k88F!o?RGzdq zuau<%5P8a?_kn#j{@fFcrj_E+$Em*m=CprPw6XxFruk>9e{-srKoN*G=GK6xR{G}5 zK2_#@JJ(F{+zY$&&8qAMK}UBVN~T?L6YS4UEba~Z#LcBd zrzZO5w4IBHO8nL?;-68OZ~BK=US%|4QQ{_c7DMI)eRI4~a*fBHjje2oFA}%n_`U-v z0JxC_tH6@+e7**AE*y6d6gU6UCj)$n^yGRIkX)N6NPqsGyvOE0HA^nbThbx=pji@k zF*>y-H+GoZMH89llQ55`**ekP9&QR^pQPE4j6$pur<-L1;q+Zb&%*H6uP#V>pWN?wHvOb@nea z4?Laq!()+U{h$Y|APY@p(IBW%-zKGc7?OzvIC<;ua~uqd=wO}hFK@I5B7DxC37>sc~)T=RPJ3L{(V zq3Hw#Gb60bs4A^bVp8^rC*buxjLot0E4rOiKIukxrlHIim-8^yCFK!{{$XADyzld` z>hzEK{s)bQz)ZpRFkH7XhdNFq;1 z4)}7q)R3d<5bM2v^?+6O=CFdBd%pZQDOR_)JRpdrV&=^k1%G z3id+_BO0K3TCZ&lZx%9fUGT|V$<5=miaH4^K$kUjf_e9O9->^K|aUFrG~q;Bqr+4U(~`<3HQ>u z>i}KIMmdb{LUq#D+6&zj16Dg~bS`q>GO2Gk?hGFi+GWh&g+4H4{^vHSB2Njidk;L7 zYi+TeaA+Kf?0!_#8v5f1J}JG{kl?Tae#de3{gaGEV9i904w|rq1Q?-8Lg{&S_|-i zfnP@B&oL~KWm;x=X2)uq=6aF+mzs}M$EiGzo{|CbW0_A=9vqw9=2L(Ksk$T+-{z+e z=$C%%#ZMz?RZgPD3KinG#iYyv$gE5}EKPm?$qZyc(28DLlFUJXy<Jr2Z zTLCV+zIjQwF$R;<6#W&XH+lDZ!M}I%CtE6ixNe-$0p3{-(yVNgy_IAlW58YLiP%{L zH2P)3KIRMfjt!U#!zL0_2;=Y4ISz6xrsRXOkpk*RMqQ@IpeGb|P(|vtafdktDmE`x zLJ>VhD+TdzsfybN84AGRkh5Dqd~q<`4Nsrgrox>EQWsLq2l-ANwQ4nwsy)6lYJsvN zC-M92mkDP2s1Ud|a$jFPTpz_%Jk1A3qutN|TR?2E%;V~_R2ouTc(E`&8*H%WOP=IK z(rEF)K3O@z2KUW|3K5ZVm;5E945*4GraIMm!Tr`qd({=?6(vr>yr}Zc#2n*3mdiv4 ztk&4Y+_rXJujd}P40!%biJ-51&?+XfwDM03O7P6+I=AxlLL9mBre1pnuX$M$~ zRNDkou#gfGgBOrq(#`jE=*(e9*{I5|n9mnf^HzSE7P`EZ$ER(GdT*2xq_yrtdJy8; zpUr3J7n$-o^D{y){o%R&>@}!UyWctM080*jQpn$r(5ST+P41S!TCpG1(1oyPn|B5h zF4ukgy-B(R*Fd}csNkSBunO+@=aMH}@y(+(Vbl9ed@8sN7=PQ{=6U~$csvRC#iLhC|ABJRhCPLMh{Lyb@UC@F= zChqTt;buYqR&KoHJQw8H?r_149fDEw5v&i}1+TD^%_~V|S|D-E@^+27K3q*C zYWveG(A;yASMV}UYd5<9z}D}aMtv&l#z9_7qjS?{$_JJO4ndja#*PNXaqi1c>0G9B zkd5K&%ttZx#bsVfV1@MWE`Bg{Ei5lFFJbx7jj!VWj$c!Z)O{F_^ZVYV{u?^t!rAUD z5||~`k2t@OQ%3w@DGKYt9xIELLu}*hXk$07hXq$_RZfMI@dog$#^!IB<#cgFqW-A4 zSZ69W4GQbx7Kz4j_CVXN7@sjfU&{AS$KwR1AGDNVn`*_Cxu9=O%QpW4!Gxv~AeQTE zaAuet>&KYOM(!Cyzvk-J7(WaUKTrjF4Dv-Uz)gp{X44Idu5t=knRcMl&*qVC?}B(R z1s)xA^3)1k2**8%r183TnxH_n`Oa+yJkexsDmv4C%I10(qc>L7Jl@zS7th)u&(uF8Gm^({~@<{SKU&>iAyb+uU6j$MaK z6#o*sK5>pAKVID0uGT{uPK%TY=gv7aho5ZnY2Bb$PsB+f7UefLK&S7EpqBVb6@#zrF35DYT&k@3Q$E`#%X3y$Dt~f{BRF?0tvm({>h-0Q>~%MI52flP`HMDF zytLc)g(U=tY0@*2!w8Vz6;-m$-9qPpguVByd~KWomVix$SE7F$Af-)V^Ai>heg|M|J!rHwh!wc{!Gk&7eDV1rf`0MB5f`> zUSBRBHy8PG#TTt*Hb`nmLhC^;QM}f{74?WaGE96$73YmHpO4d-s(&iOVV}*#gxnX! zE}zjl)6a`# zOFdY#^L<+&+yfjk(AF})St09~6*>LN`(O6)o3hb-)fLcvz4G$++{8YI&qc3D1Sdhz zem3m_NVMUiff-5at7oam_7?L3XHym%L4=()h9dwu%R(u6J}=gr*eD|qT()-N6wF2b zDrBBqys@qsvCkV#pPVcZi|W_VTRp3@T5@?W;Rfj)$d2~t@nzV>=3lj!?|^p$0|m@J zgKlFiV=3NldZTSMA#>j}W9iT&0#yJ&XHj3xlOtKZwuN^vp9jVHWp0?y-D6S_VsiB} zlv2EoygPHL=siu@|JrVVeV483R{nya1V@|^(_&x4j@9hq%YT)k8GHTtL=5Hx;=$6lt!&eQgiMAN!S&#Yu={fjt<68z0ft!Jp0gjri5{kEefM2bM5hf++%d$eVgnS(iV~+Q zG|3EA!>H{89WL+lLPN^$bNLQ4frtGNk!k}moE(GgU3{f*$Y|LWqxU&F*O)a#>A$i+ z!e=}1L4R4sq3?;kS&Mpw-p>rL?z#e-9~NG6sh+j!4R6M1MES1erymlLNb zo4`xwuWK2|#M%U!HYXQ2+lV|oBLnh#R`&JPCzq9|x+d-6D-}ke9Cj`d^?9Yv+Yybn zP1i3FShVl1gyF&9@@nyb{?87VqNpl*AVuXTe#nvNMs_Nl_Jex;!E6~~+DVgL05SecjJstGUsT=ad{?inc<@@^rgypJWo zQdCW!Ll?331%dX-JH@AE?D8y(hBGCpG0}MS4HPB&{_k#X!UF zQXDfU@tR>Hogqir6_>{U`1eQroTMz%(O_)CUI0SyZS2y{Pg%ce>%|UfL&rVoo9aL8 z!b3L&TGrL)dL|eDJ{1WsKP#ZYdrf2YGQjn{|6y@SOcY&&vsOwuMLdqxi~g}@c=>IY zq>8%EqlT{*@^MM=H*ThDH(`Z7-6;9@i%BmkC!o#T4!jhmLnJ?xf+VsX&NpQ-a! z?q*l5yl{r0TTAqT^Pv}-tU1_!Y=ddZ>Zu2>po>_LhaC5C(A@Suq%*GW&>P<98<5<*0J;ezuyH#71^q zJ4+^%p7+T9YI>m79N&{6qxCN&cGEao*CU@#yIa``iTScw{O;YFyEVIx88ja`vr67< zsG{E`7>fGeE~lD0&?1u{!9Z;(`g%ogpu)Rk`;+-n<$fx5d{bPnZFvujfa$g{K%zlN zkD%94TjdBHXHhcCB+hn8c^78iBWbR*1{UZwQ(nw1Z(F~%uHI?*;Ej|HYa&w2PD^`b zZOALuR-+B72bL7Vw0_IMQvc@tdT^7CU(1|$z@}fr?(%03=ZyO674MCl zP;)MCHarQo)8>}K0h?_Jkf#~87LoB6Wwq84wfZ8@Jm`~_E&x%|QMGrqK6?hs%)F53 zXEv{Ex^TWl6IAtvk5RKFc)uX8z6_#j($30_xBsh=_y%g7PIlM4)dGafHyxkqa^?lp zrZS2-g$*{Zj7@$4jhTOK^S`?XcI$JGl)n$&Q0-aCmVivr7cT`%!0%H@E4JWwm_qOT ze3wYJO5#x9syF>U0e0bWfW3LqrFch~^P6!c*6R#VHk-~bma{Ftnz$c~SG=c&pRbHx z=8kSk^~`jWYiQhZ6;SnjlWGWZNah7`h=rwk&P6x)dQF?U`HIlo;aMx7i650gv0ES; zeQKeB+ZKG{CsQT)=Z_n4W9n78KCH2s@pc9hqW9!apqJ&^hsCfH28KQWc}!@$_Tw3! z)#XtX;I8Sx=*iaBT0_aW-R0|sfw~WqhXB51U>=Q9x?$Dnc3kGYv-vz<+z@}-CwG_R6HZ>} zIJ2W~z1`C*N*s%G>@xkUQ;`;|8;#TKyhZG{UJ&kEISVAWFEKTxrfoIdLyd+NE2uMtgrx`RH~004g$4{2 z;g_)z5VJytxnFoNgsKeLPj8b9s+nzmq!1wKVhKbbyk5Pijm`CjRsTgmK<5e#+qY?T_TCYC&Sdug8xrAfxI_t z1up^tqtN-LhgcY^8{Ndr<&drv7YW~yC7vepEA^*`FL$DT$i2uP|ItQRd~U{_QzWrl zcxp2d(duH@zPrbC=55jL-`Q^a7I7ikd-)A)vyy{bA{u|Lt*NqtM z1dv9>3&ldOx2;oDGnJQ82UU*m4_NuRFU6SNhjdj22a+2trpR!(3%z4K@wsxE%&_*u zvR~Q8&5Jqjbh+_(QHucB8&|_+X0qrSQ&01BN@G z*X@Co=8`|YwW$#T@JpgmW8|ZE=`I!yepeqqhN1e@@b}*>W6Jxut9*WhyL}t6$YXA> zY{_k&Aqsv81v{o^i+DMZpH_t4XNUfGbNg|j@M8}Un8w0oSA(h&ry*W`j$aEm0O%+twQ@oT<5?x)UJTxZ%>ZEx)= zB_awRj0e8}B&tL)gnIb%iQmWR%ABShT*9#6G0n`9&eBive+=SqUNVyKBoRbz5lUfU zk7!J8d!kgQ$9)6!DeKd8lEhuJf1E4!Ywx7UJ@>9#zz@F|`imbT4Jd9ppYRfmXz{-m z5T~{TBb`(%)VfnW=vq-=SEXy^tGQ~s!9)VOq9-- z_@y4D=Casy(J1XtP){#0hTAOu3iqplr2EFrP}hIS*Lc0XMdL#EvO_@vN9XGh)N-k# z4@W1G;d&{6fUb*p0mG!fZ`$_bD%QP&u8g$l|7yjtON*uS{1g56R^{aN&;5)B6de=L z%PyWTQoevSiR=&2X4fX?TX(*@utGEH)i)J`NSg6RbHsr;U!o<9E#xtIE)@MPeZ+Lg zZH|t%lscyhyX>5;B*cFglr5aCyIHo8)qO>|sp*MqMIl}({3?$R z@dQ1`e%@^vD`XYgl&{j9TAi*f(GS!}1~0hbI&zhT+B(`)^bIkAQ5QenBx<-BP?=NT zTG*G#LsCRS3_^E_QqYJ@n^MQ3TPE9X|G95d+u1d#rgM3PgQGLz5Cguhyr;MGvp$P{ z%hyGe#OWWd@@dU2vkPzJGJ!^rl6d!aqUtac{(7pA#DO8AHf>Xf%^{wb{X{J=PB|EiI?@`Q`m|Tx*dhwKMA70D9@3^~&u1hc%0*FKTvXBj6 zg%k;}qjeMD4ZF>4#5-`U2k;@N;|t3X`+L#=8IpK8xlgKRtLJlzdO#cuNi}PSKJssaBD`{-03uLYzfqTTd1k(%*gtnS5<htWw<~t^z?W|B15vFhBqL=3t^b!|lg?d=k{*Nvl{z^Ez$Rv~kn0j%#!d z#_DA*0`(18aHxSqnM5kkAfU{FY?-6K7}u~*`ZD@t(OJbpT0A6{p^0zWDAD4QO6(84 zWs;OqVKh{~^oi?4yt?s@$OQ(69%FK$rTrcl*=Fh8&)&2D0J-#;X<1EyS+&qw2H&M$ zk@cO`jz2XUS)Q0DagVn&L!dYk=}YuF^4&253G^GsTX=DULn-W^y97T1RNII`l#^F?N*SZlO+++y7HfN1PqY;BN!?! zkWq0KQ1qxw( zm8()8T55SePo1XdvIs&O5Wx}t)j*}2Y$Fg!O=ucxk}2%h30FuB=J{kpUq61Hq1sVh@YgZ{BAax%# zc^kjkKgrO`5caWEoJE|B&yvi$ z1Z1H*XN13)MKDCE=iy`F`rd>Vtzj6G>fbK=7fY)8PA*-5us^wdm7cMJ4FfLt>%xXE zDXLbrzeY0>d;VhlhoV+@eqT9vJ>%c%UmZ$8>?cv?=Vei@n}1y#+14&t^s9K#2P1qk z!66i;3r0`cA$l%X{jxHoXnbN(*WFXzfYEH7z%DJQ*Z$i>u5C0 z7{C@S}6?Ih7`)S|cbJX~rcc zb?Vq%U}OvV<_LAyUMqnEg3`VC2sfx08*Xu%(A0}k(r-99hS?+K@-eJ6Q~4r-d*+{} z$pTNL$_z8`nQ?=VSmSA+ppyK=Z^%QjQ+uGW`EWrOP5eBB*#73mMiuHzUJd z!4MY-VzV(i8of1s5C#f)AW30Tz}X(nQ@wB1I8DX^DgfSJPd3dT{7o#Jj0z8)>EO9GH>nhD(4iV4}T)J-2 z_rqP?TTl_eT*bq%56R^H&rRZ6Q$n&}(@T}QzLZfvr59MA@#|=&ujB;SNA{ck)gl_Ynh4LPP{oAMcacf_m%f)W-L3(32k-aQpI|q$#$a_oLsGL8mk8W({K4})* zX)HD&i)>jHDXq&YXV^#_NLQrY`HhANSP0~tE*ADQeDNI! zo-#5*#-!{>jwo>UE7305C$%@4xo{@qe23-A8I)yiZjAO;2-~}7hNeSB4sH5T`>^zw zIKhvCRo1V6k9za-5JeV!wPA6Iuxc8c9nQBDIm84R!zbOm*e2hySKr&o#Np;IvYo`? zH5J-fZT-HBH+oRF1E=24Ii5OYicnyq%)-Fh=B(^YDp7V)Z3Ues5<6-uq$s6yYOfY)ATlPf z1=2l8!ywW6+yY`BlF@Sd@mHq`_ho?|_!NsM@Rt zr+N`zHlaZV8MBM*EU%3UG)!LTaH%x!+Fj0WU@L&<4%T~gSsx~x|EwgB$^IqoNSkU< z7CjtDTUncB@kv(2ur@a_Sv%0%$=77!Zp!to@R`%7_JuEPEclCOL`f!U#i0OS(&hH% z^G49tRzIMx(CdqQ$N#he<<#lS)rO|t&}3yxBS8V{A93<5ffs|mmkoaaIPK=U`iJ-( zIb3B|bV(8@4YYK-V*iHy>2-J~{*5Pc9yrpK3&|k}6Wa^J?^+=Z#l&U08V{=a?hrr? zb-Dw0oe&}Gk!XBH^o!)-udt`re|J8XQdU>{g`#B3Fmzb{M6C{3^)8{F0J?o)s@Y+C zGse)=HLmzMHK{FwP@CX|FIa)?z*=|t3#dP#`pK6u{2lDGeO;j^nO_G6yXh5VWdyVNZOB7%@0gA ziJhI;ue?oxcN8(qd|0k-;#c{voE*kMrS8&1=&a#zrX`Xuxz(L{pQzeG&1_W`Sf;#s zB>y}UdM?f~SW!~b-3{is{=pT6kN4$a*GiVx!HFo!C@ZQOV<0`r zPAN(x`$MbQP$Z!+U!G!Q`J0Z^7T*;F51AEFBxTYfHl2CeQ3%-qOKI?>to9)*F5@4)o|3US%FQB{|(@hH}^ir)tK$c z`a}XibgmB@cjgZ;SZX=DX>D*J`VQesv_PG&P%IecsluE^9QQF>0=~!a!&}0u(vws@e_qa^a$Dpa z%x3v``1C&jF8UfizsLRR3lr}%{SVPyN$jx*KFgqByO<6nS6Lo7-_S@{P(|Aeu;N!6 z>tV*kS!@{bB?(ZOr$RUS|EJ6BXdy!wgN$XrRya@+z4Gbb* zqEvsd1W+V{GX@4|j0L%McMoo!ww?i%(IKGcNQ)^5xx+We5)m-Q3u1y6Nfn=(oVW(Z zw*XO)dEf(V8pw_i1U1~r0RtRSL?B@i5yTlAh>T!?7G%T+QUXQFsbyM5N6H5fu!Oe7 zsw_qRM4%`f0F!L)dVnW#Mg(o}MCi!5FdcyaG6~t|IR^!df;%B2nRZ{+zsP8)vlJL1 z)&&x9P(xr0NTL~OMn*vssR6+=X-SSW8%D()7LcKoQ&1rp$%zh`oGT$BjtVBA1i&ia z;s8>hy8Cj27YT71IEU=?iIs2}afkyaLJK>%1D6o?bi&vJH1c=dLOVEyrW8a}7-3zU zX9BCjVIpOxIT9Gx$c}a(DUTq43e|z#urqSvuCNfIaS1A1Ea*oRJkSdvuorfjBjF5s z=U8Y8S>yv)6=y~dyMp{~%XSZxV8tDH0`~9)h;Udd1aT8?7L(wpvc&KtT)=8%F=Z@{ zGliQ%hAfe`h4bc}ALUQ;@nAs-VyV})I(L@+HbhSNX2<6YA z8ucyCCkEj+mZZ$WNdX*DP<(z9AXit`6aW%iCj$n`ApBXc2GIb27RGYsi&_FX5HhTB zrOk{Gm8`@DZy6F|#7Jrg4K(PE^_J8YR{k?+(3Y^EaV*m}XW8XOLKc0Ez(8xkx8k03N7Vwi9kke=ML7l3q~ykU_DE5<-r5E8jz zABdn3B3naYBa9=-u!dHM&IXboN)%Fq3HSFrJmlz@%S%4nk-^CWqcI4bBN<8H zxYIjnNgvsR7%OmP(<2wG16w6S<7h^fv+nxu?a^P@4APJ8yxGOx@(Itk6J6)nP z9vxtU_lO|A4F-xsV=VkncTQ6X$K4ph;mT2P0XY=?r@hAOTKH#L+7c-Z$VxNCmNdPfoCS51Mjr%+hdH`gu?oSO8>OCSE$#{SP8e)$(ScHU)h!8*&7bN2m zbu8hA7-GnPIs$pbg6Rsk*{3ym`>7Yzcpz!NT9!X6HU0BQhPAaItrbW~VC1KY}jMut@xQ#LEADqstu z6BKWWsk#Yj3891o4G$qYr^3U`5a?Gdw=BR6H?9e0+z}4o0LDOeddLciy|62Iq&4gu z5jKU_tcMn^0i}-Yeb^OZlUwzPGn8CmO4lvn8Z>YX5U!H3&JL5L1)bJ&m9MY?P%lSS zVQUYkTBU2^TFw)amg(8b52dPt+XWT)taQst)E$D0&(4xCPgidOvBhbJNkfH{} zseLknQ3(^5l|P4NwY#WRLD?1xu(dRAtTde!xDuvJrgM=gvY#3nr6vlOkJrznD-?1C z8r9xrnsE{5taM@P;g$1v*tP&=?W2ugOV-)_3GgcL!p$w#)*!GY>oEXr6 z41_6%Xch#-XcApV%!ttLSq&U6ap4>eBFzy)W?_gkC}Dwg>;}x}3foNQG)BJ0Wy5)< zNh||N84|sqfo)3?LPH$zj6;Bh5HhQteS>7wi3t`YA!kA$I~IwKf=A5h4oDZ|j4jzK z2Ms1{7oY^8YZ#ma*$HL&y9OI)ZA9UbvloI8g&r=Q7&u4}*>=2V#mNzGWWpIY1E$b$ zbWCoMJM4r3It8W4bjBW1WMilh)-a-p4A!DXKhg-P;mw9s$Fjkk?i>^BkYUNFbWXb= z2S!*s9c&GEL>QbTxMPkB7b|SV#h&((jp2@hBo+~igiACc9S1G#nsHCB3_UWkF!~k~ zHqN>wCVJsuiR^gj49e2LIL{2q4PiYH2Q)y2aS>#{;Gz}O!4WRtU!UfB{u@px?@)Zkt^E$TTy-k zc2hi34wHGF337ZQ2@(L?h{9oF5Wev~zbi8euf4%expRZ#$Q##4EgLwkOX}N7ghg3| z3Hu!3X-+&H4lgaTJ%&*!SFpeE=VpgUV#P-yC5rQxg~`i+Mp2?EYo`h%g(FX zNiFXSwdO3jq@B^R8j&895Rrz^;t3NnATVLcsFWt5s!dp3ATcL^jkqHa0`92SWI@W) z3WE6*!4D`t!iIyECj*PjE5(yt`MKt);-J$oh&w~1>1h*USVI;p;tO;{6bXb2!Tp^H6V&-81NT{I3^*s(9h;RnyHH?mAR!b77qLFUH#($|=M`j6 zs45z2XhsK2!HL2M2zVi0Ot@mk*su@mGrqth3}_-IlCp;Z7MUR2g%hV!+z5teRM-{3 z34qf_E*voeJO+g);1GJ)6$4-dhn`9m+Q0yhp($v{1r--LHNvARs%@&YEN-86|YqphZ;Nscp#4@o^uNxm-Txt zUb0|)$5hbL17-QA-~`EV0C%CK=^ePw5$Sc#xr*!F_48Dkq*v{9=d=yd4o0}#EdmqU>V8A z<0Vn>HJei9^3*wib0G_@(>s>2z#gs{UCX&}-@))qFKid2Jp&94>ucN;M&a&`Gvhk)EMMvIi#(oF@(xKj0!`Bj)Ul z12|c*6S8B5f(6`B!8=xP+X42^)AOLZJV>2EE+ufYl@1tcH?MGEstz&GfCI@g_t!mfUMW$C3{+X(^*Z;%2T z^$}?x5(QBZ$Vfs8KdEZHJG>T8QH4~lxFZ-S5^+OD07k?K3JF>aY>Q|uI`0lr!PI7C zW$i3MAry5-90IiXjsylr(3Mz!D#YHQtlxmau4mD*Sd#W=pj$BX;6#~ZweAXZ-k_;Y z){3nPBVxD{GATkrq$nB#1iZmBslx->lSV?OEf|hr2?N%$HHJ)t4cr&v$S8~z&W^(X zOJM^WXYXj41eeYZ4h5>!Iw^EDmMo~#l0k6{Lt(VM3nRSeYFYq;a3!|0CSUrygaeMe zy#$b|o{}LzQwuXyElq*a@zsW(#VD9qyfu%urZmi8Gb7|`HdH3~2e5_}NHyk*p(yiW zmc-dz3-lA5Qf+EmUE_q3^R3jl?O{nvizPv&2LYLuuZlJJQyGVxDUxtn!zI;UO>zUI z?2&2rN{#-{>njthWd+j&1A{b49d@M-;0=L58^}W`{ae1B&OHdo)YLRcGuyZkUTfI|*0#;;kv~%(IDfkW^dWO0)G9^d z#qtykwoVK&kb|`vL{ZJ|$Oi3k$Oa?6Ku|^idPf$dmbT|YX)BNX8zLaAGVoTccSK zg!RaKl@nnPLyH+f5n(j$cLcCZ&MYBi9t#p_GJeLeW~n?S>{}ih3E`$PZ*&UHV)v25J)3krWG_J35=xV43QX+ zEvbb>UUC_cOoSX6l-)odXcpux9#{k zV2%h2Aqm-u&?kmdQU~XVvLh^D&3YMRG0mok5;<~QnL zon`nQ=X>1&kjDAJAd7~T0njPu@S4#S5YfVkO2!E^t>y&51DLzC!iYH{RDo<+w#FiB zG=o9Kavmg&Jlb%5BsQRqYb_DSL9yYC*q}-boH;i>hYk$w)&430|Jt(veTgRukl>}t zZS$3v6iCoV05_hw&x`liz07kbeENvbUE@y6MN!G-mHYTWI^a)Q{&J;maDq4q@NDBqFgDltZE4sjtRMi0dri53nI9X3?Gp_!SDbr zCL}?;@*gu#dMl1YuMdV6pp5V0e6xTWZe&1k2SHLxv6j^(PWlX_mUK)079tNCpf^WDrFGLnySA85v1! zaa|^&V?qKEDA7P1D|*H`Yyfb9Ox__7DYPWcUU*c>sm9V3ky64&@PVNvK{kT1E{@fG zF&<8eN|)fc+-as_s~kK7nBWZ-$$|)~h~SaYVL@U@LAa>*>J$S%+LShu0 zLQ5}DiVuc@Oi)LKN5YWV3X}=$AaEf(%7v|bnwDy%MaYq^woP> z$=w0U{uXvcdv4z`?k9r@!qrl>{AxA}Y^DVNp}Z~&=!?B)6_{Qf_I-_4;Pd%t>eR0( z@@2yz6t(*iJb(<(!Hoikb-0wNy#xVXg;O{nHiQNHq2hmt^)5(Ls0r0aP=P%_C>x7P zXfv_CGK{62O^KFJ4vSU6rJWYl%3xF6R5ci8iDJcVUlX;N*%eYl7Ly_X24R-RtcZXT z4Nb*$ezi<3nR1d99F@sI;jDHM7bSW6aT)pQXd*anAmkdRsJN^KQZ-;$)f*vI>k)NC zVNHzg_CwA;7Q^1z4pe4m+>up1nu5nk`O*Kn9v7&jaC4X-rZ7Y~;T1o`EM$NiFo~hRZdNg)t-G!lS_2IdCo^1O&7r zuNd#sA0p5WxPf5s2qI*Khz=wnMzmv0hiW{yh zj4_Z5F%(8{#|)I-7|xM^8oR)*Bku^x&S?W(;_@M{cKC|H*n&hf!h&(l;hy7x{R$KM z$E1$)B>@OrIE-|To*-kp=wcoged4}03l(?LAi?vIr)4Y2)NNQ{oobf6vApYj6vrKC z)Kx}H7i1JfaDGJnN5n8tMfe|uW;x3LO@}`OB0Wpx`Hn`&2#5$~G%c5bOY^WK^aO=< zNO|nUbIm0HSbEAbZdy&2(tvb+uA|uB?U=;bl4axU3P*$}91|D#h$tbVN(>B{%U8K} zA3ClSFP|`B0s6WXg;(J|9DPlismj3VgxO_VrYo+`fX=4iG>$t%B-Z#k4yt&mHj)gaB;`~agT2zj z0#0BAaZZFc;ESNsSOn7q%DRO2WFa(IgX{$EB6oPk zwk$z}N0qFQu3X|A#@cTaQ>Vhs73~>Ytfg^64W!w#~rQbNY+ zXu&A#oaNsQ+<*|c=WLBAMY}4Ho><(R3MMq5K85Ck6dNGIOK=OuQlYk)<-nBmoa$3o zxF{)-wYAfXd8=CH+v9!~;Er&mSV4KU&{jHmQhl4NqTf}JdUZ=vkt#6jVV%*cgj#~W zaCg*9&>H2qTNZwUv(oLIat9tb?F>oj@Dh9k6m$yxUsQfKJ zQYtS~C=9?I#3?Ll4y?~}&Tk0NGnd+d5pr$+B+OV7e`{2#f=b&mZc`al6hazD0#Oht zWL$A(K&H8+3diO4d(f)5V6fKUduIE#T^7=;d&wN3>AbW$sAQgVTM@(QVP z;Zn{ce}uAj;9y9J5^F|91{MOrqvs&VlGs_-sx36eq(P(;+1T)qs2cX8?NxV}lNQm{ z3|pE@mLZ9^js(U`iahAJw&O<6!r8#s*he47>*u_BlKVZO!}p{HB5BVEu|P>Rv2eDE z0ZK6TLJ)KWfd)5vLj#g)4FQzCC)}YCd_-5IJ=@GGF*GE2vt==&KttY@%InG)iAK!q zg`f-$13}43YXBY!;kBbe^x}LGMo{BY(1C$Wf1+ck1j7>fE@>bKOc5sus$?Sz=IjIQSQ5Y@p37Jn za3MJc7I7htc;a$_C}ZGF#RnM3iaH5$q-{w{21ScenjJAjFu|ZHDCpP_7vzD_iOxEc z13SSMh(TsFbVLs!v)?fayA}~vJt44nf@81=oHp2n?1D$gwvc6~TTH^d9I z=^Thg-#gy9#FjOqi*G#d+>>dqBXrB0M&BcdAkIM{%eqJ`b=QSmwm+hr!4V)%n5cm? z&LYUR!A7D;cS3)OkD{OfEvYpDT-Zb%V$P&}&xLce&tpg-h$KXs>s-3uy$H8x@BspH z1Pgp1DB7S(Cp@~~)35VQBkLs?Un%k5H0z*x5?_bq*R~k~rkr&Mi17{g`IdW}y~1n9 zeEN`&-{R#!2Wx0Rh*aJeAfYWP5XBHp$qgSP3QVyyBP|S-$YX*)O%8ydB_14d!Jd}# zJn;w_u{}x4x?4XrT`V}#;DNlsgjihMlF0*Byog#V6^Wx>*Q5+gRQ%G6S$eKles4U1 z&@5qq5jjPiyd$g$J$b;u3gDh2f}xkVkl_N}ghRN5QCKM#8B^3J0BD(oupJfWfW4L3cPj0&`ku zgiBDMwBb=^0ZRcGU=+kF{d}GxCdcyVAHo{$!m7kKLWP@?V1Ok^fxvAkBczO?U7l)$VF&TD9wGrl^b+gi^&!K#Ddw0MpFT5>F~@QMGC|fXzx9 zhAG9f)DEn~!U|7A506T6$V<*`{oqwwT){^-(QMgW<6*F0E)T%UV*@&e* zV~x^aFd{93V@6)UC7gruc2e5^COAk9Sh0l1rJY_1x`p!SBiw+S0TW&^mT(L^kc#i0 z==UR>!vcmn^OR8}xT6=u#lqX~SANVJVqSKMWIHm_v|=h_XWepvuFyb~9D}feg?AyT z!d7i#wo|!~Rd3dqMYT)-8rhHT$)tBe#4QKwn}BLBnQR1S5B-*rt_w2g-evS9k6U|g zF0_GYsI!QubIm|G9Jt+c*5Mh=WJ=8zFrbpLl7$|`>B>M& z&^3esi*S>Cfhp3G21F5I%=iV%0i1<%5!e{FjoqHCL^yY=vV?HgDA4a zz#|3{5k*HlU*d9U_xV{Y(bqiAT7y3(T+_EAY~3xK{HuP zW}qXED9Oo@b^%5Z2Ia_Ujh&M+?J?Su2S$iHG?3PeJ7kM3**ysvMp7U}*2VyP+Pr6E zxv)0uyPPC6!QFdr5D{aL(3|bx(3@7ZcY+Z#jG+&K>!O~>? zc#=w74V6S+=wJXBMCQ~*1v&!mCG)*Z)44}RH~`=ka$6~JC>s^GGaglT4m7jUNl`tbqZV@6+Es}R77 z_i`LscZvz+$yeM?2LgQsh|@T^ zXuXpJTww!?0&hr}Mo3^2l?9xU5TFnq240{ zG*cRYG@T8GN_#NpN=7OSiE&0YTDuw)n9g`wa~?=Fi=)t(Vgc#Vg!Hg4puVY)uUPP; zobxFV7>h;f;PqQ#36cz@inBXi?FzJ-;uv_10B7lGPEnjiAB_d{!8gZoo&pBdy_rtYjlW>hTs9v?JL7LQ68T;UnEO zMA_cOBGCw~jOxkIQYya9xQj%$o^b&kvIodQne zq8+HGhls53jO+k#Y`_GZsANZl*up&!tSL*{ER8IdRm2h` zVhek4!iuKFM)ra@LC66caVHD(h=bI)d_@6Gne}9*tRTcx-iL^F=zt_hNF*qX*g%#F z8AgyD0xn32wNXey%?Zw>BAJ`Qg>zZEs+Jvfrxj#LR)zuD5gZg((j-ryP=*aO1`rfA zFkB|KM1nKeRlS5q&_WaM$fgGR%B*c&% z1jMj{c9R|(V9zK-7y=nqf;d)msR$=vMGsrR1xRsc_5~NDh1xv85_-4?3Mv&MKUBi| zN!GoU#Au2-Tk<;ywU97Qm1R{8=^?-kc(baf+$}@$^}^jz{QYFuz~0$Iax~Kk;%~!k zu%L=pdxlJTrZ7xXibKV_*PXFuGSD)&RI7~D|6RiffR=I!0x!dZg5GJt!G*zTHYoJ7 z9JO+ftOyW=?W)c*wMv&yA%bJ=1Z-;JS_$ul(gU#;XQde5 zdVC!W0u3;G3SP-Z*+PU>8DKqV`NZmUsN_ov0K7ggX%Im>Xc-^F!wMX#lDJY78h9RV zzz#0p(KMb@Dty&Ge+b#R0D~1gnub;!VztMJuqfLDG?S{p{}KGtXm=~|QeYqdQwD*Z zBvc4X%v}c$BC9@M_~IaTjae@adI1-V0egf*;v#oDcax075f{v8q9I5kxr3yk7h`GC z5BYqAm{}Q7=o=nfW84p^8ILocS#zAYwZ%rB+w+=|R%FElaYD;@vkPFUHz7YnPry4h z#>|-U1{Ki*k!Ugy%smS(;uc*+RMgFPlE}6Q(NRW+RzkFXFB)Xgii?d&dj&zWrO+=f zd2Z944uS*jkddggCLcI=3-aq-I`Br3j74#C1`srm9SKMyo&gBKEs-S}Ig9Isx?AW( zMAz!u&>V+x)z5sfQU z8MdU3M$tV8DKZM8A;=c##Wg3{kR5NGPn&p~IzdH_+hKe9W(?28#{|P~5(U5D&3o(y zx)r1HO&7I7ibB3Rs~3B#8~_3T&8!4m>Ha=j+3mhAL`u@|{Wa0Jw&(em`PMs;4+8LE zFn9!ag!?Xg5nTG7Ago}355fujf?$Ve4+)XFLIY9AV2&ywz=AYFj|Zf3fFsb}LRa`* z*w?uK^eIpA!HNu^xDX&_@`(4S(FkfJfq*!Y@KjG{RiUi3Kkck~QKjJnujRe)CBcyq z6WoajQ!GNNV@(7XY^ps_nLxM@)K~V;&PZ4XIV_&I3^h#Rb=)r;Kk^Qa8^Q93L`vGdh8yI#>m{DsR_yl zkZ~(4MyYC$09w0x5(+4F1L~=oDaocnt_UvjbRKJ}uK=y{3_6LQ)BztM*B5FMGt3aC zD6(2YxSY1mrPGiCH8&lbCP7hau_1_)DUGq&$~uuLCr_A?#yYHO(LlB}%WLA)cwGMU za`3V|8cJ*T#omk65}Vjg8I%h!gqXQL@VSx8LfTFm%hv4dLe3Tr6n=eN4iJfoN_CaoBe|qHZfjwTDDyf%# z>APOqb25IKIPZ9r2rU*xI|-wu7}DB9j}7A4(_Tbl+e#1{qDhL)Ds9qb8d}BJ?~TAwM`@_V^Wo!=O9^<&4t-7nSf{$tj%JAVJ5yuRtSVfC1rwJ+l6tj76v7F>X2-G5Fx61GF+k#j=BeTlZ*#U zyjNQgS|NMRM1=-(BwCQ{-U;f`0m@|-I#B~N*C2Qn0qt^Z#8mQui%VmoOYkudK?2&+ zxP>8@nyPn@GLIZ>Xd?T86!4uOt}E1KP{-+3G;4e-qE18X#P{w-vnJEzanWg1gEl0O zVU(cmd$NnRxROn>BxaFIDun`fwMps_O6Xs2Yu#+=-+sZo1ei4lqZw(=D=m9)3YEKt$MK7M%g>b z@;R~+)Oj`YWJ6Rt(N^r7^EcF=v|B`nyS#QzZ?p{$jQ0(k4)dw|w_GLQ>ah4sRW-lv zM4T*aBbNJ0 zJ0}=XYx?6<2vbEVfj9y=AWm|Cj-rkjZVX;s=3Xh;*<})Rpzs-Z2+M#QIPO@$7XT_G zLsrnEf-Ue7HC!eviV?b^3tDwjPC%lmz{67}2m?eA!33c8{KRsbWO1AU^)Vq#>pD9Q z>ZD5?q(uTbk%idOYymtYJ9ZHjnnEtr!p>R20`{_@k!6f8RInJeyjx_+06j- z1r;-=B&cy7o$}|l#j1?u5)Yt(BRGVI^Rj)l{X`fstBgIYKw(=mXluh#b<)!S#R4gZ z)hWxSMbJ`BiK2yO#?TsT9RO@v!@X&jjSwnHYuR1{AjP7QErlY=^r$!%T z*cc?B>f(~Y$heb(mlhAA zl9+`kd9=o*O?leF4r4cQt8>8_38SiN6_I0_O#pmml)Hs1%_r0b*w88Lyx zm@uaq$phg4l)lg6qRHvq7m@=w(IvS>^%w;A#tednm@!K`^;PIPd)|6qS#Rnoj7E$e zhj6*g-e?nC5J!5`&~Fd%w>8Mmf` zIS942Q*LRS=B@$apcss)946pM28SiG2cH%>x+3MW5cz?WXf?PaimXA3?k2c_)>Z9o z>rrUkB7=^&)Y4`ugdT(}==4PjnW&Y*W$Ro7Vnq6S6&w^xctVs07QztNjs`PaM&}{8uxv2c?_VOULPoWJs9rfsIUF&#~i@CBN1L#4p95)OSO zcjpi);I%qgtD<%c5nh3F3ectaH5a9@(O7ix_rRO*CWzGgalr+T$OsO`s8~U6T$G`5 z00*VQ6!ltoDJ}d68n|AxsNR;B#|sN;f1+C*@c*O3D*8qRjyPq?#GvXkBokFvrU z7%b}(nJ~}fDZ|xJ45vM$iGzFs^pZKy2qFv>QeQ{)4S2oS01a&6emUTjT5N7E86qkK znZf97S}wOptzWxmGx;H5nd1FEQk5|@My&P$uAznxbst_^Td*wt}TD=^Mvl91rk>>8;p zBvR|nR#K@McLD%kfCOaa6xNB}X!%#%ewOBk<+$@LC)iT0?sf%_V#2P_lH>%=Abf8Mm-+C0Gzq z^`R3++QcZ5#9Q$+Zd(PCI3{B5BHEZ3xP-x7GK;{VN)opuYNn1z$S`_RG>SrYRNNwx zwRelL>wFYTBcbVoX^^ncAxlgW#0a>#6U8-V#+*G98{9jQ6r-n|du*%`@no0Fyl`np zOvj6)2Oh0)k~dje#;r(?W!e^5ijR$~B9iS9f{Y!$)v(iyx-JG$5OpkJor^#h7;!^z zQKgB&jR6yP5!_QUSHZ_jSc40r=T3d$IeKc<1dhaasn7iJLH^qggA+iM7+EDwVWbEL za6l0k#9||;vdcUg*=L?mJJpA0x*frM5kzrIfpKK(nDU~_!u2;SJe2I2F7j!!(;x>T zkA!x0)7m>liw;5IfM;7fC!ITI$`M?TR1hI$UGqc zzzQCM2u(`>Mgp{gJG}t-W4u8PIm8ogAV8($$HB=1QIG})cS6JkMv%fhP*JeRtiW5M zsL_H00*Ve;f<3ATNP|0!s33sj0k^u)jZ}EpxRwk)t1a*fIj9n<7nZ7{x;bE$mlP zk~6_)=q9S#RD8x$O_54I!)|^@)h7*<0uc#^SjgvHtGZARg9|u=H9S!+cT})&+mc|K z;GmE>u8R{oRjL896X7;o!coEJJng*Mpuh-_6#*Fl5+KA0uY4_V`#MB8Vj??u4R){u zO0ea;YMI=GRUycK2+@fn$HsVwpK|HkA31vrnMG4{DI@eCZ(sZ*m8=6Tolw4-AoUHJ zDQGPfJzlF9pRpE$CsfM+`t%*zscF~L^m;mQkXmY&9VJ7c!4vrWF4)6k@-apMGWF9! zzYUD#v{D+7YIOyqMs*R8iN#nQ^GnDz`M#>!YY<9hfLXqTOlv&v3VcY*n1?!GwDudh zBs33GfL;f?(%_<_mw(GsuXLgz}5v`^j4g-9iT0^5PTpTik z68V&6HI*`XQf^0U&1MuvSj>!{p#%qFjepR}5$y&?XPuD@%1{IkC6!kVnU^YK2d z4C%?;ZribGq8cu;^HNMrXd(b^f;$ADaqqJB5;DnXR1S_L95I|X`E2>*Cf(F*F?1Yw zup{9#$u96juh%bPKFp0YyWH+Wc-r$5!{S#C?QCO<5n7eDBVp>&#WadvqB&SIHd)1k zw2=3{vz!_qgN~XVnrx$5QdI(OG(t;K*^j%HgrYH;T^oJrVY@?H8*E6@tc_FA9O9j5 zw0byzf~3vD&)}xU%MjjdU2?_=NGEEv3rU0N4puTO2z!=5VBZoGl93(R2*6T2c#!DW z&QU`dEMAkv($oEDJr+EVBBQ#YB8~@_XhAfYGzkz}s<;pj5NXn7auZyF1i(e|U;zsO zcLW7-X@)UL9#_G7(cTul4oYee2lePkW>gnU0;0JCXa>oGG;L#{wRqfgJ4~uH0CpPLn6_RXx!V; zhNN3fqx(oml6o6M$lAz0inM|VG9uX<-Qi+MB@hCLv}A^D3aX&)1fw&KEW2_y>Orr! za=vWF%g|$ajXLVmD%OUFV)XpS5e!l)QBdVDay>GFH~?j0TtEY>fEyQyyL;Z;GB~*z zE}Od_Y=&!j`BE;k2_H+e_I3t<7x&oJm4KNRB+){V_ciAI{P#-XAP48`T3l#y7lj=qD zPOIk>p$M+kJ3FsDrG-D|Ivh~yl))Yz70c}l!iQlgB%^cAwBpw{1sb%5H7ttG6a>ba zgHFOhg@y{>DvgH<)!-PUygifb2!$x43qO-&l95M#dKsVL?z2-c?oVgX4 z7F|B8gBIpCe`$6}fM#DNmN2CO^^#!YQwrc*xgsXw#8tCXNJ=ARbc`3rV%{7!u|L;$aw#)Z~ zPLfRU9#7^GF|3KUQ_;b3B{+;oOHvtJ4zlMUa?RqcoUf7PGQ80?O|+xYpYDAj{%fax zuJT6U8-&wQFB{Gp8N|Ar@3m2*2g{5|P*GPKf)GVok;aoibh20$#a+l5g~kzKL|rnj zIl3kdZX#x6ZL+vA1`CbrU~Z~Q+)R=+$<-scyP_$Gf{Qd^5v0?8lNAY~1_2XsYl3*N zY$EC)k~2Y77Rkheu1$ShI01FcAR_@>#51_SLSrwB;JIl`Jxik@wBqiF%8|s;PM94VWG@{u(d#iFZ%3UG2JZW^ejA?Wq zyBsVhksZxK?k}CdU-n90QKlNlgi&dIk_!}tL!o!x?0Iv;`M_wn61{Kj-g)8`7C}Y8 zoCGL9Bz(yD;NDIh;JXq_(|zL)+<$3^#_)WUwYQ6W_wIP(+}5HjouE81&XGJ{Y9-*` zRMvms--9hY3kLFaul;u!JQCsQvNsJ}k_S8xuQSc~gaLpt(`H<_1gh2u0*(n#k+xw$ z9_uMWLIszS3MSY{NVI}WA)%i=V~6P=A=R~ktN`L5bP6ygv{a~-1)f0Bhz(#h3sdT{ zI;o~40vQK2REkG=z`$C}%Au8q9;Q`zg(-`lAy^18>$2WTBt zwg(_InHZ6bOC`{(DSZGnED&IHVg|z_jdPsIEB3;6j|w@UsfJb%aI8T5kD!Hh@ho1# z4o(VO{w_Q$DCBcv5X>>S0NJBpf?bUrm72zZX(6h%{0V5~Q=+ZxkWh&-i~U@lOD=6# zfWo%?c>%)gMy6<=k+>lovdhz|!wrNQXTa-&t6@EZed&ZP#CiZ@NltL+$_Zm38wGM@ zzOS|U_64=&kY<3EIIWo00+qH1>X4u*Dc}NOR!7XiCv#B^FDNh#DjpyaV05~S!Z4K6 zPPrf_;xnk8K%RPPGF7A=T)Pnn@CbIbiUMgG_gL0mqAl-xtQK0mpS0x`Jh9+TOOr`_ zQ?vZhll;f7KirLGMFoA!eTgBXLlkh42R+B+$vT@dNpM%-KL5p!#^j1~kiM@M8-32K&yeU!E2N6`-V z{=|0iUYDDUZ4;IzhB+8Ex;8rIeGF}goqC_Um0;1&t!Z*r(KgG7JGvGmf`oQ>=p?)M8*MLWEFdO|nPdw~F$tD)5Hw?sWqdGSm=fc8D7o31Kei;%!X2T5up%XLgD)7Ab4J z5+UL(7+L9*PT4pfv48*>=7nitRn#B~q~r_~mA7)~P`sE*eRl3dK>}|^ZYNHm7TJLWQj-Kou&m7VP!w*3LAbX- zgfY^!tP{Hq%K#owK@2s3B#Z%JE`JI7Dd$tIM;5qJWE%OiN)?J%ej9X3m9wb1wlMRl zJDh_Qvs0$2y5lr_hcK5i1Zc6Uk5*?qOl|lC%*qv0H_9lgzWG|-%ci-x2_h^iK@(CT zj(9~0qIF1AOE^PQ780AKrnI2bQdwG>k!PjWm}Wb~+LJYy5ZN06jukNih`O6p-$X5z zOckpM5-_8#a;_AamViibP$n6#(GvF6wyCEDV!gpx(v%~{DzgI>j^Q+Ye`EjJY5s2= z`Vxs5N3uvDj7#I2w(-tN2^@?B0diJpf{14~lSVp`kd0{Vk^6;@QS(m4WAtoW4+n9Z z{mkO?K^mhqy|*0hH9oj-;)e~4ZP5N;$*>Q&yW}y106BDI8!;bT6zhc1F_)yQl_a7r z8FQ6jif0p1+(i;G+9)O{#6ZSVb{oP<)s}#Vt=lV&c3pU8XUCd%KD@eY8|@Y&w^BH_ z@i5pRyb_~0eP~Scpsu5a0Fqn;1rH*ru*8dbh!~O`jbw36qJjn#a!-q!X!6jE*`u1Y z$t}7$y-OpK6%ApL)8IC`W+jWSCAB7(F|>$)nz!N!QI}*YZl-RQ01e4Sc1FlqI!J#3nKoq73RO+t)T(E$Sq$OnHK$eLYD>*=9&WwpWq0n3+q|yv= z#84;gArKVr2^o|TD%>A3^X3uj3SAXw92o#iNY#-%WiGG&PPE)zSmI8)0Eo&=YDxb* zHA|>HjF&d-6&IQfK^YrHBbJAyQV2%PN?}MuXe$t6 zGPdh)i^AcsfaF}Xm|~Y~I@*qAj}_SX00B;6gl*}TOLzd!z&$vIZ-LLj{Q?l8darR{ zn(Klf8QrmIcq|+{83HWoU9*DQ#fr!fL1tyP?m|2AbRw-ej|`cyl(P{*9P3F=gu}#f zB0(cec5H074{0+gpTGF3eufJ$##HU3m>egX{8R%8wlsC%$NZJ8leV$g}PYGu2Hw%lE; zeT!C1e7$QcBbExXqAT`N0?MDc{HX=l6Q)K^0BD8AP$3KM-loutqYl-GW%}CSkZp>% z111ycM0`pfO7$i2o|>FMn38_3z^c=MB}g3`^8VxREk%fFk$h)y%wtr>Y*7^_i<+ouG<@`IS(_k-k}i@j zMGsu>Cf5Z4_e2C&A7k=hq$n9M4;oz;ntN?!bjwkf-ucVze%Dz~*u|h~tL#sjzqjwd z(8+_Sp7QIaufrk*ER9qQN7E469b%Wi;7auqLlU zFNVZ$U2U-Z*tE_1SY&8Cx~)=k%Y~qu5Kog`I%L~p;w(gS%jnLiK^nwH^^xX)c(54H zldNN04Sp$%pn^6Yn(U2_GI|neTLExaiPlDP-?*rG4jNPtlS~e-4U)v1+{Y%n-wM98 zq4(T)I%{|k^EJ{ohevW>`0Z={e1-v%o-jM6QPqr@gOI}w5iS;>jBp57TES=a~0 zb>6ZcM_;zCh(imnf>XqqNCNmz;BUh6oooO9SNL&wva-v3y}SRrkvEt82QP9+yxNzC zOD&0A^SbucUk(D`SD?C8(7H_4uObr>$E4_q!<6Zz0@&-Ko57}@dj-Iz)ZfxThwia} z3nZA)PTkIIuHq&+#KLL<{*0WyVFODz7U|wSHKyWy|OdL0TI|^37gb)uCV(SE}$vUiwn@I{#K8I zWK0nuIO{^(4uop#y-gC2PhEOib4f|lQ*i~-u0CSQVNM30Q9p@Ke#MN3B!D{vLLem) zXo3KdkT7@*2hf2PxA!^h;T9Y~3$Il;R%K(H7di=5Swsg+cvO13D+B%nnwn*cQKWjE z8DZn>M_yZTv|}{7C2eG@FwzP!b3Cw0G?^}AP9LsJta2Ep-eRkGJi2OUR+qdML{O@w zA*!QSAr&fLRc{*1Bb&4+8SPCJM z9XG`ccbxh`rvCn!O>a~1&s?;w5mlOE>xODpRitEqeN8AM0QJwZ?#!&%4`fUj;hBL& zZqWZ2evj}s;Jx4(SIZDYZIQywjrEP+PI=St3sJ_#57#0iK8m!Khn(*dTx22U?mdF! zGZ##ko;R{V9*Hko&RV&ycq3!)NX#w|M_;s>LDY2%Il5|4OpGk<>Y^S}?9E#7D3V-* z+lBccwD`_hBT?D7n~UR0@*y-qOtT4Kk|SzvCJ{w#gjP{QKDR=Yn_20tO?eb~)P#O* z*$FryTQgcpv4t&R1w4-!yAbjM-L8?vkRzW*`k|70a2285J5Z( zf$WH7Gj|#nB#NW9!2}v}Lz^~caRXFMO|U>zwNXS&+`wHFBVz_a5=4msbMe@TI3&r8 zBSFy)88A`RWfoJ(nit9TjqL}HoUXGhJ~$fXal)gAynifi8kW+o%q%aL0kPCU=a!8f zba?dOP9Ll@*_kL3#FJQdQIQ}d^1|tm5e;G&DwiEcmMq9hqh;TSyGl}1&4_fOW}aoV z=%N8nV2;KdaxgbgT%uZxrXpz!cyzL%_ZQq4tV=m5cg0N%kLSF!hsgi7gHYnzsX+YQ zStzdz{QL%Yk|K%4j-v&tY@C-bP~kYHo2$!aZx3=v?m`G)NJ31!cSf{HnM^QgMcV|> zBA|N^tOZ3u5o9}7+*KXg+#R3cA zSmk)ji^q01q>*b4JCosyjOxQih8)Hli_~m8JRk-OID}uPNSG_WeDPiR{{JHU0z6fA ze*KFH*9QLDd$k;`ISwT-$^g(;@o>l%a2YEbwr z1uwtCal@}BDW@j46%A>s-zZd~K%q6f#|4MBv{`Cm+(ap?WPhbDEQgSg3&gn$^b2$a z1F|6R7!3s#f>$(igbaP@`2il4I<@zqcN!_paBRe23!x+oNLku}q0n^BrQ$B8fs6B5 zjaVxmg$O<$02A+H-IM0jll8$>r7BkAj0_%-5pf7G;t7Nxgi0V&Lr(*om!z7P3L}t$ z!B}-)w3J<|N#~FairL(k`dI>9+3@PpMxn3cmR0%c1YQ&NBl|unu?M_VPA-wGUR#- z7&PT1T5OM|@Lcs}P)R|fjkE0ALK{`hGpz~A)q_4(zzKB}X=>iqyj%h;z9&=D$x!&HfyuZn6FPD!ctegQKgB<&Qlz@lMo#^+Xw0J}YXc#QJiH_=y26xS* zm@ZT5lg8i=MVm0hpv~aH)q)4lW=*4td(hqm&ryYx)2Nx;#TbtdY;WUWd$+F9wh21m zqh3URAkE_j86@N!j*vX0ajRMjDrR9o8Vb~eQE?$c7Tf^CokmD|K|KUK5rv_?J~WP7 zsjZoC$AvsXDeUWp815v+g)k5@?J~wr^SM~)qjZ-pLmm%JvU_wK-Qu!GaFG-ws?$OC z;0LK~+8D)?_~V##gp|-d9JseDcU{TGFxw15CrfR4Z1$AOAaM}sjFq|j(1@T4T{mzR zm&ZXH87_RhEyI}AtX+$2gS5%luDRu*XLavHc7etR9mPb(#yp9dDn5jMCux_Zv2d9} z6OwCMs%6pMT`jwYCM=^0((lEPM$Hpr5*J&w64l48n#<^>(c7g;_L$tgOCm1AnQ^Hc zA6O8=FqqqYHVuc7Kkt0wP!{o3@vmZ>1U{Gfo0o`i7&rtME(gZU^)&~;Ij=q5<&*Jb zsn=BE$g4Yo(+V3rAv>3y^BvcCZHS!vABa4OEO83dG@;;`EU3`JUJw8=SUBUJHuj8*_!Sp~wG=DU@yNtm< zeUx8n>>vGPlI#S<>+(LsVgm$7{17bPq4xj3g1-SDf@Sr{d|itupjQ!O z2Zn%KeK^R(J?~Sz=`=iz2nIOJIwVfW`>GyffK;|`01!cHhfJi_EUSMOxJ5lHvEDld zVg$h^FpN1YzJkuHDD<#_j63Rt26J>l9x7%@e1caVYS4p=vhJQ0+`kIRaY4bQxuO*u-BK??$v1U!Ew){#U8f^(2W!yMj4f(U0}N)c$QijU4buf=gbfuyHN&S+KX0(9Was`XVEVMQ5rrD3<=5$r3- z9^epw%SoNGY4~#bb}S1pFaXmjMJm#-1U;q|cANTs)e^$BKpRDmFD##Hh~-%*7_>93 z*D7mj9S_5_WMKzX3xNn3!gR8-ngL&jH|13AH1w*~DKJ_51^@&d5yu60axOo2z_HR4 z-y!o?uHMM(+jk-}M~s0_IiPEZtWpB70EJZJFjdr82;IP{3>pXFqk(@N{smYH9Z>o# zAcjOdpy^rlr!V9)d(HzFN{$j8&&gK!o+i5=8apHl2O*th$C}1B%K4z}W6kdLQ4LWt zSTA8A47h7P$HcXDi|W}Wc|#N@1$-flPA^G3XCI|$va67Bbz~F+6A^a-k`Ua(5M*bf z0n0ct21Te;%O;2+dl-?x9?l}ciG~JTiM#h?snb$@0(hB?lYkQ-mti%EI3#2NJ$!HE z`^K{7)SeaucL$2@CsfCp010s&qcy>sbJ3r-_+vS)EXEuk3x`IV+bvJHqvM%F=rZSPJfjWc9=~k$KpZ1xX#?jg$(_d0 zww|}HX05=Wpc-6|ywSJ_?2Lu`KHCnCg$0<|C=n6YA)u`=O5WqbkQ|lZxJFf1bF#R& zI}(Cql`Nua!9);n^AJ=V+_5maxghRAg;B?rm|dOh$%WB<1%$jYQ_o3MBn5v6{|oqi z0#=p=E%TBH7se}&KvV{ycRC2lK6Ae3c*UX_E{F8mg`Q;&T8|U7 z4aaKROL^95#6YMoqd;)nF_|vc&%JPGde;*9ox`45(o`sk`a|Kuu=BqQEEvu4Nh{BvkG(_+nynl6e(E&39i8&tQNW| zcQJqy1?EtwspP7Jl|8eBfw?=`=X(64py|9KX&r2lw-lks1dlYQv~Vhn;ZT(2SFcUH?Lmp_#$J%6E$sF9@w06S=>yj5We>$jQ&OoYCiS?WlHS(%Hr>c_0%1$d=|l~$07 z>5^bw!&Ar%^ER~xoidGhIfK+FL~WrLTScdAJW^hq=~Si(7ZBc76kdY{mgOmoKzX#sPjQ{B)xeepI_;AbcGPfMvHJpAF_<1k6wkPqPjMjG&j{D|cb^TBT& zKKK4`@oEUSBz3+%^PgRMk2T#Bk46tkaC}5wX90BNy>9*n?}7Jx-$h;<7vZt(|BR${ zSS}^>>Ncd;Y zgJcxKXk!v@gNJN7iWA&Sm$qoccba+`%@ToDBUv5o@Jk%eZn<~G-7TW7lCvioQ%|0n z=tn+y_F(4OHkveO<8Qz}1pk~=?*=BcAkKksX}q%M`N+v3zbY7Pwpb=Ajnemi=HucZ zhrZcvkPDW_JnGUx%V4~kB#DkDqxv6OacwW35@V@p?@iHV3cSLd(3GO&PLx`0h3dR2 zV&MF~4S&V>6AK2)aSIT}Kx3Q;L0K)co{ljlUp(T)OJb0-Lw{s(G0`>u;V0m^xfk;5 zmIcTVQI<@8q|h;gNiU?p6>pZd?-5kV?xV_g>m07(!BsTxlL z3~A6FNtjm0d<3Zpc@upXkXaF^IXDL?OSPbeMXI_oQ+zGp0I5`4&rkd5GIF(ypO z0gd!V%4jVxOlXnJ2-!hV$H5oqNFG4J5#gd%EhWKFD|oyMj$DT{+jF&4AGyC}rEYmQ z=j1ILTfMCUjwv`>WmLMMCW`~%3KnB=qCy~~G6>7TkDLLn!D_|?UkokIDdn+Bso=Jf zQPK<~;ZW(oVO^@WDepw8zL=(<`~kddD|Az8rlxAxq^Y&GhXJIjya>c;D(VOgc!hb8 z;3k~GCESEfL5E+14?_#*Fu)xcu4Z<)2T$NaPBRO9tfor^nN-)tgs-OhO1J_sSopkY zDp4t`IxH*tOR8x{E=;?Zl}La*O@~cWhsX%2wBM$d{|E}rG_yI@ccj98w4R)RE1vNT zf+S=Qhj0NyL>6Gk4t1O&UUQI`rEyzFlOdA@0p=^EL;0$QOE>`qssEx^zKnIW#H$Ce z%iIoZoIfZ0CE@e%!P4qs62mYD2VCsh;P(R;(FM&WV$g{1O)}p4u=QpkAxKU!M~jl# zB5N^mQQQzb7&c%@C15I^Vzb`Hu-!i-HP#3cFu(LI2vV?I4tsy0B`$*J?D(1U+l}8= z{7a7PL|XVSIc+V-&Jx8(P`+j&@BV6d=%CjY>rmOpiu&e-zb zZ5i6~wt&rgUh(j`NMm`q!_(1OjC4h*9&W0fm z8@Y&lPvC=@*LU305Zn(M3`?W5f~dYG9H?6k-)p|4k}WG@AV>jyiy^VZZ_|d2NYuC74ou`om z26vnXu!QSyBwQht7-z=>oM3_|A%jfH*+i-c5Wz@RUDqL?8|d%_(vtmPtlegAO= z&7d5~Y&{lA^8x}sB7)BuD!{6xG3DkrA|O=i7>9&{EAHh;2Z#d#K?pNzq$>9nwo95C z1I$RlYlh`4Cn49fS0F(o_E#am3lRc%X@-jAuk>rsXEAddq6QGXsEYWycpsMh=8K@C<}m+0;GUg#khV z9SIy1N3ua9xKt3=F&tcRrwgXSeX6j7JuD^~WC=G-eZc!NPWnpvS;rxzVL%3^xdd$u z9#&>8ul4{Lo`4U)d8ue~3c#i`;0bsDkLELYZKnt-Q%}4Dm0SoQ!7w#oVg)!6XZ5rC z3Y9@XU|Zi}yqG$vGsGzY&ry(-MwrU3r|{Ab`HoH_#LB!_^4AOdPQ>N}CMA-D`^Mm6s7y(JST*x&-> zlwI6KbhMFir_x=JJ#<;J`8eQ4Mj&K{M2045JpD-6iVR!CVTb<_(QikJNyMe_+l=q- zk%fa0NRi`dJ)C;mwTHbxfToyRk7%NW9aqTAtTo<|2v{Au1l~qO$j;$o&Y$DeQ&x;C z#tr?ivr`@|aUnaV$Q{Nd@q6j+;y;AkBCg0ItZDuL=MQOqh}8l9h%Dq&9t_wKa!DVM zTf~G0xI}IdAEEa+dzSYekw4Rg|K~0K(0vxRvJzYqhx~id-&?gkF#a3a&k3PGm|XN{ z;HQLxW`P5v!_Q0n31`)~xX}o^<_lXgT5Nlzu_nragdw_!hCy;;hg`J1xC9Ta+g=(o z5(F4f7h4PF;@$>hNfZfDa~yWtcw=kddMTaBu=HP#l9g+NFP1@e_xIYS)Bl}5#4=fN za6z5WvlG@Gm(H8Yv0|`++aSuXuGk7;YmMa$rs3hh`$zjD%C9#3qO&rID%-#{*R8>l zHN3v%xo-S^{OJM2r?ee7sSv?PMnEG1l86BlB2yF)Wn>2ao5Ejp{xq5B90eQPTSvPsr`V@#e!W(L`yX zgT{!03NiC}=Z{4GYqjYUeWPvz8~AtNZ@?*Bze4-}dSn4IP?`nz1OLZo7~p!H2O>|x zUf2Z$%z5Z6oQ}BwfA_~5c%u@MpaC2;RI36fH8{Ws23j#InAE&LFN}``jEPMV_6G8H zH6W-f-28ad(E*LPA$h_zE>qqfpCW@1g5oyWuZ}@%=tj)zILOsLsYe1LDA?3rlBTKB zTAHCVD7-Th$3be`c9L0PWe;_+tbKw{&8Y!#;sy;wY=EsUT_Vs`C3x~i>}n2ltwnte9L}iqD{|R$07tw- z`J?cEgq|XySe^+w7^aVA4;_Tr8)TqUOkE2b7-2cB8|Bq5DoWc7E`Ot({Fo{|Y+zXo zi6uO|x({wAR_hs)o%-neISJ+j4!NHRD#MgjddF zCaDCVwU>w!3gh~(&sMK)QbN1dJf7D-u9X?eFB%Nu63K7}+>tU-id7;n2k|TMuOfs! z*%9R`k!j;E;R3GD-p6qYf(p}jwlC1QsZ>-_oX2|s{s8#`^%sOee?ATOys z7FrizxpGl_tGQ2Zmmws}!ez?(AS+>qfJ8_y25az)8k{@7-T9q}IDm^k_WXVD-C+eg zCjuj!GLry^sO#_%Yf`_&oX<7A+PCkJ&!W3xV-Bcw<3`m_x>l)FRjEmHe})6ISR*=!izx@NmH& z7s3jDq2u}qzxy$dOLBrG+(4K~oi*K2`MvOaCl4dx`Ur1v7bN44`8$c9jI42S1kRm* z+i4Y$h)439E^myieM{+rGfBz_5Z-m@>esLqC z+V#uv;(SYd5FY)+Hh<{ifPMoR7e=91I(TB>{YEfy;8P8!hQr3W8TnY`R|mT=KSIoS ztnz*8{~(Oc`{4-gIiFG%035BjeciwK2u3+}?ON|e7BiHq(-&V*QbtFqR;2_~CMclF zHPX?*kHfzQzwUe^M7R`o2@6D9eeemqs_ovhO)#yf=6|QCW08Dp#0O+15GVRNfx9iq*Bi?DIez3 zS~GJ=z^s-eQwVaH`PUUZgU@V+IRpLFv#a1OX~Yu9lrCwQ5Eoi$l?p-e1Yi+yLdFE0 zspIpcRmyd#X`{3HppGhfh%5OFHL}3Gp6)a^L#UEQ0C7m<77X8@&M382F62ZhAg+JjwotKKokUZvg1pV;Q<#otGF*f1P$a=F~m41(v~L8M8Ky{vr5h2tK!ozj?KzT zrFoX`{Lgx1jTEU7T1;U-18fP&p+OW+qzuIpj-|Ys3skcip%^O%wNh@0hp-j870ZF^ z36)7sWS*jR3xcAmq1QpnkwZzDUGUE32Vem`FxHZ*?4XCkY0%cI8IOV&MSrA7xxaqu zR@bR%SD|i`oSEtu*8+vQ2ceic4(sA#e+U;>xc>`Fl7Z{Ata8a^s#d`gtbR+)Kbh7J z1DYuUN=jrVLI+;qSS&!P5(+htRWlqbDfE{HfBkt=Q9r-T;BfFwA!$}Lt3-b3GDnPf;{E&?L#Gka$p>KOAGP{AFuNmok+ zdKFTELOv39EsF13vx~Uw~KPHI@%pj{Nc=Ph~F8 z0d^f((4Rva#xJ7E>KGB)0W~tD&+}gl{6CNQoN-gxDM<;Ch23MM!32k9henn=0&F9e zdB4CJjPN&Be9IZ@#1=%!Bep}E+JSp&>^cZysM9vphZcmKh#ApSoY7ebqvGlN8~J{t zhynj?7;!}eAos}s71@if+@T-QKPOza(v7|tm|_dK6(Q3Yi6vSiqR+BNrf< zQ4z%pEa1G_`>=+gLJI$L@E^e^;1(ozagD6uBrXyz>CTfJ6TSt{pmKDbPp&8D0YL#^>TFPW3~P89&LGyTP=bTt4Uz~Iz=JcT z6`=!w{xuTB-U90#Y<) zaoq3&bPE{;pP~7suG90Pwj_|+)Cq6}!2`(=XlClKRUhQlgd7TvgKzN>2?Qy}IHDDe zA@lx^1i=N5c#i}Sd{2g0+{F%J6CHp(>i^ zlg!0S&nKj<+W&k|+KxivgBYO}b;G9#Ar4t_kbT8-P@0_u?a;p1*i$vsCeu*mMR5R5 z;Se4{U%kaB?_4gxswG*u7XkW0B^72QLQ`NBGBeV)Ah4bmqS7h7eGOVpA@ZwAZbMhU zVgXyY507C0xf;G1$>4=~sajLDVqJYk>>)#_jGPQ0Gh2lz`;gUtQP3%UP@L2Pt1szT ztR^7BSUaa$2sX8{cBRI!)d_Y|I4ptHHbcpo)~SZ)FxGlu1U#S_GQLFCAb=x+3o=0D zt;GX4;#X$R7<468b1bakE~L6@OqZTIwbGXnzMQJ^EpH{c7LBHxzXkk<@TcJ4g`1$I z`!7Hp7uk||X8TQ>wG1qU|E60b2)2g>@(+7%(F`pt@GI&aTrJw7OFSVBS4mC`&Y_Zd zOA&r^MR|L1SY(F4e|(dlfrqe%HAMdYhQ9>&oTG#bmm?vPFUf`;(+H1@2sY9tF5!iS z_Xqy|%+Dl#1J=Sm)Au}34kNK+Y*FI?G;khhoJYc+6xM}`g9pN2xXwTE1_M~eMpSvr zKsBnUVonVRC?bgC!l;Z&8yJPr2u>0ZMg?CYOBYlSNU}!$h3Hf}mVZu4Dp?4>0)HJ& z-HH0k%HK$S6Z4#NY(H(5aKPb)T7VHUb|3!1#qjS-!{Z2v8)q~Tg!P7}ceFC8$?`k5 z*pinbHv!lfPq%X6d}f0NH)n?c0U)A&9!RbYdW65`vQM0>cpSmWLgs2goEF;10hn5k;8Yy}FJ`P9js9aEwMBmszy%4F)t zi49)y@6`qCAO+)CVESZW!s0T)(&#+-vg|h|WdW+@Fe}qM~ipO&q#%X$RXBSz^A{BHPv{Mkm_w|fZ+k_DmOTR=-{Lb z%v(kp5rIRZpaJuey?6jhR@C7fm-0XbgDiL=Cn`%)#helyS&>G(2j$&M<>Y~CZZXTg z@Jfa_fnNg-QD`G1%t0{7hJ+GC%J?1x5gaHZIe;2CW>~d6SV11i0)kAQdm)e+2~5@= z0~3Dze6BQAXZS$M{`+u~umE9DNTr3t zgsrRQBv@4(s|^;QFB<|@wE4qI-AjU9&D_NxPeIZ?ty7VvS^lwFm-ID`hm;K~#-7%! z60DfdK7D*$vCw>q56sgOmZ?%Q?x2;0iN+Zsp~Vw9RDy_D$A1-^6c8oOiKS{&IfWZ= zTApvQYG^CoqBdBj;m{0yX}nGiW9HzZ%Gyz>Ih3jJe+Pjdft%378ve;Z3mNXIeAj9J zeT&g{(nJy6I?av{swbDgf zLWM2t>XRYNc}L1-?_c zZ+un=k%gm<2?KnWa8Gy*{woH`2ZjGJ{Erj@t+3ehr;NWUypj1`&O_l5bYQ|`_=E7z zmvxX9uEDQ#{QLpmX*`6S5WU)@azxMuH>SPD7}+Z^bGYZ3o+w~EjNEH!3=yJ0rcG!^ z5OBmmI9I%*Nf1c7M3#*s!VteV*!M=k1#cPsK~9T7Xxrr7pSR7WkAXa*|2Nn`3wPl^ z5C0C(ja)bGK^XXGLW~O-ltvJ$yXZLcpSk2m*ZfM$iP6Ti5BPu}jsl86#2pomcm_h^ zJaUj_aP9`y*U9%8H|!#pl?-Ptc=cV5`AiqEZ1?m~7{KoGw&*-JpH zby=5Hn{mL~%pRcfIaXspq$bZz9RIU`yG{8GO^`s`k~2O9`rGun0`d-=E8@76I>ANF zsrG{-f=y58#aT;jb|GoWcn5|=f?+}~?DS%@o2*Mxq5fFojvEBL=x!RYh$q}|t7&?r zRWp)ytp%Sby=}ZJsdri`qgAbxLQYk@yj7$&p^~KlW_Uq%n^YDN_sPX1;<jDL;F~A7>LWUEjsl!ss*paHY9)p*mhbJftFDO_)1|GZW&v8%M2MO#P$muXtgfGy{nXp1 z&R|n5NwQ&jyL!aj68ar1}*V4^s}9%Kr@> z)%0nW6cMFK9PN2?Me}wZcbh`<>E9+iA&$JA^FF}VI1nOV@3N})mZm zfp$vT0pALL0rp^&A|HZIE45TZyY$(|;LpKc06HNG|9N2pC&hsfiYt4HbO5fn2Cb(d$-)k{6@n? zjJ@yxUWWj$!NqixKjmC=4iX>jxviYOK^J*exG5aG1J_cRE1lfL!61>>Jh;I!gJ8H2cH@JzvPGCUG@`=X`Ka za~2CkDq%*i=!9*fhPHiXD+g-Z3~D1wSs8aSxYTaXU`i4s;leP@B?w@3yJ{PY5ecLK zk%beCT&|i2Tnd#}0)dIMu$**9HgW?IU15ndAO=cYLQC3#Lm&@G#fsKmo|Ilw@<>XU z@=m2X^=s6nsfcHpwwz6hcA-l?tvUgAiBHlQIZat6w7-%c$Zb z?r4K_IOIegX`QaxjZii!7z*~a4fV8HICQQVSqN|!9!|mZ$8ZcMkYPV_x<4*;&kNxr z^3Hk^it1S|w*xK42IWGRl`_22)#vit;^`+(6M?1^2*9F*ETk@hRc^x*u!9|}pee^+ z6f)b3NdfGtGS&_+$o|8MYnoVMfI%6m)jpAWgY-qMU(KLRBlKl^sJKMh%D-8yO{v$N zu%O0iz1{}KnyrgZvw$e6#!^n``7Dts zfzCPBNRgP{MGim&<6Vd+1SC#F5cT97W;TI;`xX~)4H9z+!aCPlZwEHB>J#dy)Lz92 zu%=2=w14V;meVZ3s)IaI{$FeUv4@qvWd8JnBZdj112lrb-dXj$xaG-n;xGlP0ZyCX zaz<8I_5|no4P4Bys(?Xc2!vU9%>s`P7#5IeZ7H&x-e$1@K%}Y@el?2vn|FL{qjES&cOo9d@AN14hTUQy`{%fZHZN4wzhDR-`ul=r?$ zJ0gO$N{hM$8U zgO{L%6L+}Rh|1cj8K3fti{OHLIVNBOC_#~igC3Qtg8O`~tcEKn z;!tvfm*7H%NAMc7)q~DZAQMv5$4x=lCrE`jKfzzMfz1Gl~lqDBcvML zqAfoGy3$ku%JKV2vdWy%s|Hw~f+Hqz#StP%NuqrdcFr=JVwlE*hR3 z`0zbqF0{>6E}%gG!wnpvN}Wn(UOIrfvrY4nL~xE0TcH*a|FX+B1n23@(`gEjfNg0M zR)`!#l8B+X6=7^R#B1UIxm1U2%|k2rnZ%pN{Mh^XsIZ2GU8o%b2%6EJQpaFgvON$s z?01;({Hxpy>>JL6OXYLUQA=E+XN-xQX`KY06E4=gJaE3@)p?2-d>%dyJ2-%6Dj@T> zz9_oq!P7i=f(G_nC6P-*w!{m%hV2pYjMt5i1R_k8j`sjK+7d$r zkq7Wuep$tyIY9^wHX_avPGAKJ_u!)9?`sOF7k8$?wiJKelsw&&GR*home;Vn+Jr*h zDl*VQm@4`!2q0yD534CXPOd(66vBkRvJPx&tYA_*4>*Q>pcc93ewnZxb({wwi+Y z)Tp3rQ*bPlOWU+YK{GWftc?7s@>UaqSVJ5{h;;&=kRTf(goHrO#DGpQE%T+Zbdf_w z%2`|>R@NZ|hu{S8QnKv^Ea4@16C&(OpZo@VvMfwCQt7IsykQ;1HYNQuJ? zGYG2)rg*xNEhB(CNy!b(7V+utQzc`_QeQ@^1F5E~T^ZyMq96q-X~Ix=v_c)stc)K! z6Qf=_RF{%O|FU>9s(!!w-#d>&qE859O~ElmI?Lx7=1hFQY3nWcU85S@qU zstxF0C#?U0{3LI_P}IfgT2qC{M@Ix2C+^wpIqyM{X?~T#v$gCZ3jGxnidC-z7XWv% z;{db5HoK~w`z)==6Ess+P=_7Nl`v`rm6=QndwCh%3d1~xFccA~0mU74 zM3GVq$PFA7Gy;S~1CsE>U@RlCAtlmg;<*Y9WH6EwJ7fVnWJHAQNWe$lx%kxjVn#0m zh)|yqS1K_A!Ld5kB04WD4bEItz!60PK9uJkQII_@)UcCN|ESL3$p{Ee3)kTqgei|r zo-x^9ma(h_4f+@;Nb41JkjhNgaD^yV5Xo~15Gt~$@)b2z*F=EIs##T7YE=}*X(YiX zCR`ou4OsPg)4&0I9-b)2Y~gO<{Ba>TJ=}&Dfno&(cnP-U_JIH$0=j_xv<+Gs7AjDX zeGOyQev8#}T#-V}q)uEtb1oBRVc@CiltHZUeSB6yX1cT&8=wYW>HuJRaE5_8;JXS; zsJt6t7R4!XU10#b8D8Ss+GIfa>;^4T>Ju|?hbb!O7(wX-sWesZHGt=ttK8>kb z1)kLhWc8;z_^-leoL@`)Z=63Nd;|O!g%hR{ruGt(m2v|0UX9$^^63MX0a3gmD+yG% zTJTc&-rtftQ##nzJyX@QsQyM4l9HtmtO+V4VW;GPI{~6YBnHR`WG4wRA`KdFVJqy* zI20jAaC&8FXz5RbSU%w@1E75CLJPq#BZ3(l=%#vnYix!8$8}zZldqQoNp&f_0l(Jq z*N^y?N9>n0iW>;2%xj`3xYGxk%t!9=p7UzPRpGC}zYj0KBN*Wgc%3gvuBJi99RwGu zeEIB9Ha&Fa8mq#aa2*^v;r|8ig+FpdG``Rc*GaEBj0XKH-TtS(_0E6zb5DHgMVccU zL->=<18WZC0y2aP=6zy#;ql)u=!9Lzc7g9$20|bT-XSgGxZf;|4KIU5RGI%Is0HfW&D_()i z6@Ue6G%#M`jz+ve6=@*hI{=(UD*w#eicU*|6(~hT$>-`doM>PUab9b=m;n-ymfVBX z=$6%zUKAlZEQ)>rk3ew0XPDsuNw^~o26;e*hGMoUUNG`L){GG~T;Tu#-(W_Tn(%r8 z6o2*t7E?HfR%T3grEG1iEcHat68GA}VmcIDu_Yde`w}~tS@OmAJaJuH^`p=fqM?3j zqQn|+p@yEyMy$;DNcBULrx_x*-~v7cFTe=DQ3rMnq(6oSaIJ(mGOVlHm<-RsAsAl9 z44bOo&`(pCWag4|2*qERr;h(x17yPfQt~JYOvviNlYa1G1TLVPuEmwiw;Yp;b~V)e zgsQn(Z9}F1Pc`M2rnIW3V$!-gtC)k-=io9|N9y*}q}BDa_#?G zv*HGmKK!e4^_d*I)Me^vO0oLg5_lN@IS*MI=# zpoEszX?i4p()9ELy9JLGb=+sOQcEyah6PM2!?J@5Ss5X>0NKb(_KIg@02o_P24k5x za5m5k91RSP8JYotAz;pPJ*OiG3OHKXXEDIhEd&-Bagt#Lm1>6f_>z#hc}6r^nL1Xc zwrF4JVi~Fvlr&ugThMuN#>D@o=ihpQzjneUJPoH`h9w{X_`5`hGK<3t?23}!47_-U zM>lzJL>$5CreP)*nt^Y8%;_aWi1QZoa015#fO!M9a0mQLLntvJB&>WS8KPEZLY;@L zDxX;826!uxI@@?9Z>R;)l}^A}Wu8>78|%bEIf)E@#d8s`>D5CqlOq3%;6F^mZ#%pG z3%5V;8If<6JFh-{D2^$|cPXncF7}j)TbG{a{Q5Q2=?nfg$f6P3P3j z5fTzX=*pJ|g_Wa$06uq^%jB_dVSxWL{4Nl_1aU<1mf;rh8j`WMzn92faU~pr)ApEG z#}!~OmeyU?JpB4lb&~c`lI2GL($w<`&U8zr6mLLvA7X|!Gy0xs^gIBDEFi#8{=NE9 zaW%-#Ax-$6CZbc#CV|gl7bTYw@nRCpD)ll8+=p_DlLcvtq>|}NRXOZCB;y&8a@f_x z6f#qn5mG`y0)TV`g@g|v5YQG8Owf!7u87xa^R`1rdKn|$FzCuHz<1IN8tRTCj66%Fg_v#QXtDmwqyQwshC>+72-XjOF zn6Bbg6nD%@#kvKak^L+@HKm|g)yNrEJ_2#dG8rJw(sG*m;$Xm(%!jfu)Q4MNu2cAx zVh#ZdNTrDsh}lKaDgc9<@H*^gW3Xh<*2Re#9w|-B^jc~BoK=SEbf+uCL8%k~<_d2^ z?a~RLYw~XPK)E!vV`)m`D_tWrQ_9gWovhAFKd(T6X_`Te_2U_Y=nR4ysvuXFyLX-B z``UsK@RHv^qKY81pU*SOT6n%5gHFvts}T$`q)G}z1EJy#L}&|}uD}z*DcpDdtMET^ zz6*Xk{NTJUwg9tSDFuhUa?`l}h{bCt_!^vW$)g<)JEGATMQYu(vxdhDTEh*kx;1WK z+}?3`7Xp^RN#F_D0T`g{;fayc4K55T{Uf9c^bUqy{5Q>gh^W)mrl9VjTCnG08=005gtyqO&)R}`q3Qdc7t^z|5y zAyoYDOo8<&&;;(nKMubRE8e{b^hOhDpI{u3k#``GGccuVINX7uQZZTdy&|BvA60sOIqmy=o0D+vah(s`015g>L zNCG2KU;!CP1VD)aPvBT#j>|9#o@f%mQCJEBJ135G$Ls{oP^W=jSk=l|>|s}~UmbkK z@xK6S#G}UU=e0bm?_cp1*-0Dn5&0O|qa#tS%nXhYr}_O-I<~Eh;{a6j3wtooYKI^& zf>yU8Qi+4GXtocsvf6%?!y3~mJ8q-(oVU{(u9v|V%T(Lr&oYb z&E?3Gl;yfV)iTBm({ycM1gf`t!hhd^7Ahx&zU(*9>X<+$8h?GKx}xS?gO1?USj>UY<14rY_p8MwGrnz^omOBE`x-f^Lu-Jh z9I!59yDxn>r*O!%jjH4Z8MqDCj5GMl@Ryx`GxFaM{t37VaCK-G5W$@G5(Ui!2xp)G zPwaVOH=9Rx6##K@i8{>Z_6rsX_SIm3X->mbeQ&nlj7Br%hKtN6dYERf%_W0UTGE$< zF{OEX%uG!>mpbLvb5@epxh%o>9ryViclqb;@E1<`#Z!KA&57``*7^fm0M@hAc>#l6 z&6Z&~vcRvwkBCD!02i}G3@ z!DGn0W0|ATgenW0`0Pj6mQ}!}_Smk3ALX5ai)5N|LmO-$^{_}BKH7S$sE{xl)u~LaQP?DUr#azr&;E@5 z7;X_SkjHqr)v-2`%lg9Axe;h!3lWxOdfY*ts)bT{_898Q3ox>X2<#j(T}FFy$Dwcn zQYjCrjXY*7W92<^2PbDTw2tvEMVu^XVx745Bo7q~7xbM(0B-HdBg_CcWeQuA$2G#f zIMohHe`V+)PRn^Zb>5eE7QL$h@fusK1;1?mCRP=&PSx1N;o;LF#C41hFhYZ*c^HT= zrw5&ES8i_tIO@~72aY>ojW{w86q{xJIwY_w9LjbDlbt}QSR;ruE7(IOYfZ%l5_6gJ z-hcwQmA-Oh1ceS+(I_e5Jpv?H;szOa#BeS3L7j1n20}wjxRZrCDa&LAcSrgw_rkGq4Zh$+Cm1NJvd#&#a9C8s0{)?`(Cyk?O?hG4cSzZ>W`7$7 znujzO1n|gIkSY8Ht<>CtGtQGG(}jZ^kh;z+>~=(!W)zszo^1<32+V@ z3WYelG&PEz043WbwqECuJl(k{&8V6*D5UCC!>U4GDDYjd08g2Mr~?MNU`L_&F(E?&N6}221B`*1X8Z)wG%`Uz-NwG!yqXERQO7Y zeT|q7YupD82L9B`{HZ%UiiE&lzQIW(f+`~nurmJWeRAeB zmCA6-nPTzf)LO2vfVLPG4dgEe=_FS)Lm^J1uQsbtZiP_T-&vfbP9t@Ok$?__OdDt& z&$FKQ3iL0+L-;fBJmCi5>qc$bot)5L=nhmq$pufvjeD3SXo09omJjvk|>@1=as zVT5D22Cu@dChc((4&WXPHD*K>@`yttlW3%SVYl_E=VluFHt-qQb2(34>SU_fd!fig zu=2od#=I#`6x?BeLVbYGI4)|SxxNofsX~a5NePz%ClK5rkR9uZf`d=nV2(i&q@t_m z9HVvrJnkWYqY)OcLxfN}4ZXr?mzYUgovu>J$e_g|p{EJtwt$O_+~c6d_vnzEpe&TO z0WfFOQtn_LbaSLZlsu53LR1x9U_IuOM_})a|3_-Wu_-TV7V?b4QJFtz9Nh3DOt8l^ z0U$Z>j5kxpFI(;b9{Xn5poY7vzDN;q>uF_n%Bwi4l;griv+p|j3OdF=rwrM4=YA{zY z23p-DG|)n>$}}=B+))nDvS8<`+wl}^;1TFsI^Yxr_yU|(253U%o96_aCKX=)mU@|LT5btS>upx}s9M2oR7&iijXmIjac-<%vKx9tl5e{4m@S{!7Y#C3Ee{ zTAo5xF6HeNHwP0^J#v!zMW|1WIa82aeNIrmq9R{mf}NJPm14|gP7{p$BQJsTwUN4r z3ar1f*WFj}AX03LRf%j}EiB5X!@jDCo z(F4;kYQi(pz({fkG#&0_MKbXi8|5QC{jA=(mrp3C?P^>Rfi&Sl zt!V?BVjHAcN-dR*u>f;xIAtC&oAOH4(oV#3U;B!&oaYGQnBfiPxF7}@;v8;eSRiEb z0vV7{m`SXV5i24{i(kS527E>lui%i1>c4^rTWBVsXy! zrX@m|b%Yg&(hGOtUo-xv@O{dE!})>Ptozoql||k;G5_BapWq99y2C57pia^6N>V9U zu3Rn7S5#U!hi$odUs96>-bVKGJ=J~rHcUZ1HF8Kz$fWoBvhFK~E#&DH8<2X%NqYi7 zFOU&sC+v)UrgvP3(8Hp(kjL=9haZO@DUWw8bV^l!>wH5^8N2rRaP1zCpELq)s7-iZ ztj6$((=0fgd&--_`}Uj*;|LjqER(pj)>J^OCOIH=dav{$QWU?jdUFswLj#8NXn+O+ z$xsMO@~W`Xbr3KEkOr~2Lb#omH#Xe+n%SV8W0yS??WU{RvFb zS~iwZBE@|*J4~jL1eD-dsy<_8wfZxq*-lV`kPVaS7aW~vXdpT6B&ntgb;#G)5(#7i znJ7YJCR0?*NKpa=X1~p|c;-9Qphty(Yyc3XA$PbE6e972*x?&&KqBt2#2>OVa!XdE z5D+H0qKe)Q2W^myc>xk;BqQ?W`lp;KZg@ljVii-uJlmTon|Q(mfpPW~0){%Wz&AM4 z21|iGEU^fQ45Bb1fzXi$01^p~ga*z>#>5C|i|^=!r0f8SheNmocT$-!8s|uOv*Fly z#sD4#IwOKi&D{uqPWv!VVfq8?57_R}%xX)UVTt&BI1y)A)aBMICQ_y^uhwux{e!LfM|a>|1yU*GZ7;GEn{3!@}@LtD4~^pmNm4f7FU5C z&P>GW;~*H4K=6n}IId+D>IxoLkQf)Z;XsQFkcp?z!cby;P8h&Q!`!{WSkU*E@B|#e zSV94MMR=#$igTzjqKIvrehJ_3Nii_76Ik!R{oy+KKMNR9XKq`&)Z-HI_>Px?&MHv6 z{(u8ID}vz&xY9cl33N492MvH30d7F+Jn1Z)XW=NYcK%DkcPqQVPr{GG{|+8k4@*rj z?3@u|!UL|TA>fJuXv@kOZk&AnSr7zoKyZ**jixfOqtFAwE6U~(&s^|K!%GGUZy6SZ zEzwC*9cSH??X4^O4Pp&V(}LBNYmva&L*Kv}gvBKZ`VJfdS;;Lp%MRbLkKpJIcQl|4 z<_yq4H}ic32oX(WkVp`+^KQiPz&f%H{G0FRZ#BFC%?QxzeEzw*4!{AGhte|pfI14) zp5mmeN#}46&fzIIff263x4}KQ2jkmJe8uDe@hQ({$*G-6^=VBNntC&H2e1~FT=6U1 z$c`(id}ZYVE@a+@OGg|!G%)sv6J&xg$%5{&gekd124w0D?MF0&O|pSy4rjl*1A9R; zSujDVSCJ_+aAYF$bI$7Z3q3&Iz<_`oZbbos(TIu(Sr9=YmXNEi?wBKj z7P?qb-0Iz3Nuui&Ek2hyA3{zbL~5}crUBYiQKSW$uULSQEKorOMItt$5LVCpBml!elm|NUlp%MX?Lq zgp*SJ?>aOEF4Ds5@Wr<+=32UF3)jK$RIZXC%s9##7$8n7GgWdqws%#*XIkhgW+Jp4y33&q96pD zRzfFSppU>E%qQ`oP=lXXi4u395S=~jm5mUEVi1s3kR&*)20Q_*`XDf< zPkP&{uL*GsM2N-+BAAfgMXpKaa>-wL z51(nc{UuH~kyoAo$br1z+9d}Y*b@wu3VM-3*Yy~HTd=Mf6)fR4dt2zoK${ALW83shkVn4&$$kZMSQ@1EyOD;*o z9f8n6AQj?0_wwdtFnq^&O1ngMWp$7E5xPYdkPsm|+MTPPvZbocnrrC z14>&q1Pq>r0bVbczDiU$gaaor4v@<;9m+YInyxUR-OSbNPgmmln_3{LhHI$WKe-Gl zpOMUJi7GUeCa4B&%G*|y+M<8=mE(XT>J#tFM#U_FO`;8Tq$xyT26OUi$pG2OpaFHF zApzEKUie34!~$7B31xVNJvQLNcmWrL72zr9@%!W{Urh!Rf&(;gS_(XG3c)lmOsg6% zW|bT>XdQTyN5G`;xhVr6ga(uZQAx@GC?1GL2isJ;t2|aD;m%grI)B;$2pkIE6Zu|f zGC$}vnL~qa?tv;z{c1_Q(AQ3Es=p}2D|iwISn&VPa>!Rs{EBTrsZxQ&b26(LJ5Vl< zPu_vM)@y23g8u{bk)KNZv~wrSTzr)&v1|l1qlP*Cf)?V4D_H@UIE!SM+*kEbRCe`T zS)Paj&U<#eyx{JFM+4HMYvh#ng2C7eJw#Ym@G5Jl<-IFO0}ilIQ1&}eIuK-mX+a(A0R?-TnJ86HGTrPAYSe|gJ4ef;-66>??41bxIXgA zbw0jiT~>btoYvksuWsZMhXB^oEjb#97i8!wAssu2u!aF{7MEBv(-w9G%sPbt&l=*m zfxuL;c7==zKKJxfCYoo1jOqgn0uk>Pb&J2JoB7M8H_>5jt0c=kn{SSsN@Jt5J(88P{r7(PZQwpPk2nHUJp(0aD{}GM6fK0Q) z9G{}kcaVz){H77tbcQAF2Ua@{oIz;44&7#!K2aR=^Dq%o0p^GTpl`1Mg!*UQDbvD9 z%_KQzLR>S<=YvZ0PBY`aCyq*1$={Q|Co_Oq;0l@Y&s9?NS%lUqgczN2-7@8Jge_#_r{SmJZ^KVR zhV7NHgDKBq217uUD41iJIFbWyv{E%MXI2nD19RB+jNJ$@;pu^e@>7A=;W~r{5<23- z2wqo>YQg5pm{)_nKtdYi2p)qHBfbZ~k%&Yr-~+ZmmdJo?a4A^<32m`R*dduga0u10 zz@lnDglRy)eNvG~1m$g{qCG!AndZRw(j@Z2YXAvO?s7OX2;#W!eW249_GXRLV=3-_=xAn~Mn9X*N}}r^lEQn^dp}D%2?5G}<83 z0*46RK!RyhFFH+t1@vHq1;ZX3ndR@hlWoomF_(E904fw13B+CDj)DP};E<*@j9mzs z;G~E;P0jly1A>nLQSn3oA}J$IP~6A@P970O2PBgORg!}tiY~B-@2~;i5=v;xdJrUl zPZ3T+78q;i87iE=g1TbGyq^VO^v?9CDv3-phEX{ROVWrDLWXECD!26NHkua z6NW177T@AEXAJ~{sECt#*b;$A3J{1HAVpTrQ^q}b6%<~BCkp7lg<)FVxxE6+7NMC{ zR)H4&Xt5}8pvGp^8NrM+fYSwf$Qhs!LSz(7%NQG`xJ|3CPp!`o*%}mk062sOe$ZJ9 zKL`tB#aB}Vgs-Vg_@HW_@9)Xi?kNjbN`_sTD(fh%aqk+5l^R|v$zv62aS<8e&%g%$ z42;UfG|)7qR-eTXrnS92V8ZAKG?Ac4CU!XZlm#sn17K1tRi}An^A1tx%(<)V0cYsh zKEOvXyi7YbN%Jj}OxbW2Jw*0vh&a%*1W#-uD9b%4(m;zVIii_%WDMvLnn?)@NCqQh zJR%*TM;woY1Wte;)m`kKq(t@a7RJKIP#V_`1B5FVayOfYGpB>pG!aqR`rq!x1IVX z0e5JN!a7khCKS6KP$L?nT=7T*1>Vd))CQ+G0jjY=bFMeA_fgM4fbrE-KQZisO5PTA~35uShDK&>=0p zgAw!{O^yZ)96$s2N(^c~c#>mMc^D^E*o^F0OO}$oFc-xx2?cQA8Q&vXI*Ll?ONIf~ zc$#?53r|+1h!aSW+~ZVxyMZuem)}tu8Ck5k{suX5Z%wOQ+i|I^Gp*E2`i3e#1*^=( zK}u+#7d{KmILDLYE3BL;HO;m(HB`tM?Q8%?80QU`fz!g2CTN&uYiR{(P)Bm{wLb%& zFEAvV&v!5g8@TRKB{;ir%E0S&NMKVVyqV&;jj7bCnK<;-a)T+!X#-j#Q5AF~R0-4Q zUxX#3G5`X|EGXeHRD+>9w5}#gtx{bEwXaN&Krn!0h!tJI1s62p17T0r!pIHz5(E`+ zV9L0$g0ePx%Ol5(A+R#C^Cmom_rt-Yidh}EG7EWoHG$YoINVoEse2#`W27-eAmAgm zB}Q@p#Ya3KU0uN;CKaL1~WzTnNCQHVFJ1uz(+gmcJVu__{W)>zvgr?3(3liZEOitHUcs5^g+xd}Y5=+3OC@|m2TZ|`4kBTPI%CFn#WabSAR}Rctq6M< zk${xakZ}aZS_~E~NywR|MjEbEzhz$i8RVU4{~5j!j`@m6qzQA9w~CbN>a(vtzarIJ z)51--TWKo*aAcg8)4Gx^VS-)FGUaS~JC1y&wR^K5b6%Z#p;}cx^^M35ib!VWkiSpgd~XJxg@SQ z^k7Jf&x(&rWy~ZwStj0^C!jAH%>ZW<7lE-9)`#rh;J(5U-D6%BM&~(rvc9|%QP8&} zR5fGYawqeK^C)uPILmww9_cCKz|3u|&_bM6V9=REs9HNSUR{So1xWVO-&(cCX=gVT zshL8V^I+GeQ8F zVU2)L$&O$;F034|gtibIMd+p{Z%SV&ET=T4l(vOAI*yr4*@puxz!1X)hsNn(02YEO zsYM1f<1MztNAO}THzY+8QNRcR5t8675(o(*rqDAA4?v9UP;T=sEMNz3!p#DBoB0Ck zn=ZxHx&((Op@mY{_<#b<0||r%oMd>9I#Dqr6$8>?3}gs4Eh9P9uAUSjvZAM0g%pxO zC(m~aTj5VPkRfv@d_9WrrO4Ge0Cl_NDcwP2!nP?9NO4Yo5KC&nEM<)y0m2}QJDJ}EXSym3n6>dz(2~{HC zh?0GNX$(@;7~WFeHJqye5(1K@PEAGkRP7R&-mX%c>N}94urPzRJAeoRl5j{D=z_Qa z`MZ}+8G7NEssBwn(=L&!BftGh<+X4U0~PIC71GLaRJX$dEg*gkj2YV@ zAOU~N2pS3-0Ev)6kQOm$3671}KpKmeAR~gbPzVALJdqR(6S9*bmhx4*8g^p`BPDF$ zXp02&O)f|J1s{FH^*!g2#&|>6!7~s+sba8&1E8uYQ*ktsukraa?(8@kxen)$(a0e@ zs2cyQA3Esjz$Vp%4gjy&U^G+mW}A&NotLSe0)FngVGpT$dNA6kJa+TW*DRhv1&;86oIYNvfRb{bHNqGZJc)}{VgL?jD>2e0M>v@^&C(1X04V{EK;X^VS`=IeiDMXqqKmSxdVFQ!oRh1ha=B3K3WHRhYFiU|E8<_L zD0Z39cvr;hzCeQljMY4-A@4k;!5*ir%EhP*GoGac3SqYJ8{{e0NT-aJ&}0zCga=e0 z3mymt0XJlifGW9CjuTQP36%i{iI4~h&v@0BktqjPf($R0oau8oD-|azOu71Z7)!UW z;HcQlJvjHBED)i^p@x4lUT6-yA!abLg5yrt6PzAmrfJcD8z}ocy0vS@duU8qSoInBw6vU5>eV{x;uIqC z_EILgb=8cj2rR(rRo+FV1*`Tg%Ga}8-B(j`f(qQPFLiYqk9B0$=|bwHK`hhVs+^&W z+d5qc=q%Bwt5f%6tlG5hJ8agbl+R1jSAWuM$p> zM+7S@<;K{O8nmV92pJpjNT-P60bk()3CU=}4HG&+gj8xN31~u`q`0$?I-OYMEG;uf zygKVw;G=N8y!#_GeEFg*%jcTT9pZH^%iwS6vAzK>l$0o|3k(=0BzQmkZuk~>3IGEP z&sV+~5~pYgRLA)I+10PA8$Jj}aBzwC z95%Gj7fp9S;BY$gmd}h)E*0>7SJh%<78UeKEr-&inK}}on>FsRga&$ISBv9Tl6jY|mN=?q=2tESGFxJLT$u>1VNoRAc^25hsCh5U;{Ha66PVbnovlt&$sGo`zfcmgUoIu*SeXrCG{<7 zcw6YE3HLT%TqeuqJBkl@<)I?KCG%3{nw;$iv`!R73W)LX^e2ztHMj?_z$f5W;S+E% zCr|<{mZ2~g#`#amel2hG*HSXrI|u5lJK{#9Xqp4ixl6I5Qq*= zs=Qd7z$17CuGJZtiY*o-v)GZgq)ghe-LVZkA*`T>C2U{~%9Y|UPLc7qlv^X*;Uw@> zoDkSUKP|e1fYo_`zIe@T>icI}leGcBr|Hn+1c6quLpH@3hDs~WVwyD@zzWpoxhbZo zFL!KEFTAc_k))rLWddz6sQMP-#hr{zBv^+BW6yNUD1oUTk?3Qs@>G4o1f zY*=QLdItswUC*E-p~>t8Pvmljg%>(jrxV24r#en>NYl~om9V^;lnHw1rm&(nVF%aY zq@r!#-72xX!c>sju=?%n40Q|)H5P%+N?tMpJ4MjRkgEn{oMs1Q*cPY89t2L{xER1= zJuR_}_Rqo%xCUM2h^ep*hXiq!k5Q(|N%~Ek@_A$cR$tZCc=kkgAh0Yhi8yz(z1>Aq z>7P`Ida9cv%Ih@^;%`q?D_4C8{3(w>yH~SY~v6iD4pV=S2zIy!qHg@}wMF!z2(emN| zz{mD{X32SAl~}^UXag6{vGBW{75q(j0t609F!?s!fV_#lPJ4uW6T@L4SvV&DSp?ch z?#Y68#0&#wq>-G60TtYEXc{n@mNtMxBnHSxK%hwk!vw%1BD4-ZEm&G8%_@^;!kKIT z@C|V7%hCR?W&xV;d#srYac+>6H#va861*&9w~LnV@XK%k0WRS?sWQT$aOU_DNifHX z2xM%J=%iLaTtI`3IA4}1@8}GkLEe7O$a@eFgm)~CIT8^?zLeXkK;b-RSDgEVrjo8W z9>E=XdosA`1@>?Pr?4YA?5FUHL$t-tA>auD2=0UiQ>>>59tZ(3T!;-BY(x@yhk!JA z#CHW777J|=oWtGX_3Q*Mp$Rdx1IH4%p;5HK2P{`5$xCP=DDFs_Xiu6aR-%{VGvtOQ zK!O$xkkN=h-cOA{@L3*=2c(4zjzWM+6g*Yl z+z5X4NKj~NuKXk!rp??^t`=;9UaXH-rU|kN%oy~Gf3#{IVNx)7k~5H@gJw!^x0o|P z7tQIZ%A-b{HnM~3a1ML84cB169b;OzIMxU!Ry8DSf*YI=&kvAb1zSipAV7vNuYFb_ z`!$r$%r|ThE5HMTeQ^^72z9YXCbc#vb%mFpQ+Te_Tf=J|O#r4XG)UArKxrd86GG+$ zw%{3w^~Ok3Bh@F+c@=y<2pvyIm}8V_;Bm3!BaAh2Tb(tzXjB&k{4*3HAmP5$n_a;F zNccCML+4saE=W#>U^q1_L5mNJ35iHVGa@t{c_aZDfyPJ8sgIW`jDD)Jsp_d<%R4o&<$M*ukHHkE1JOgI&jN zAcr&~(x9Mwc$K_mjA%orSjL?u;R#woKr>_*3whoGk+LEvIv^u{KmY+XS_MHJHGDc4 zLUsI?Cm@I;bH4v?D8B!%f<)q`^z1vff))A_e>b=ROITEhAqww@oA6n92rt4%shI|c zPSfI<^K*QGggK}P5nLvSd@1={F_YxorpZnu&C<-@9an;Zez|@F74U)-7v8zd*^1=d zHs8rI4e5XgAyjZwdM8kN=g$xfN0M0%#LQaSv zLIY6=Fv6G_p%nrwtDlcmbtEHo|3rH5!Z33sH>6)Vbeeh|wjgCO4$y;C98S&AY|A#& z8U;ShLAUARB-7~P2Bb2*R-rNza0hPINwhleQ-O!wf$N}f2?4Cawd;IEWr?Pp8Oa6| zUrj74%DyOq?X);au6Pwf`Q)kH&V=c;YJ@;vBQ0n(qKFk+Lab{;#gyAL30NyfO=Sui z%FYEyHJs{Gi(p6t4O_>6_XtDgGq4jR1G9J{h}24a9rQr;L{);Sjpo z_^Kv`qMEE>ga>d2>vH=IJ+%`=_%`GF2L6uoV&F-51P|dg<;K3|eXl?dsL0jK&re&fzf( zurH7&U{x2p$&0fAheaL0#M1dv{$0QUY~e24s#Xg24zRL)F{*1w_AQtFzW4=z1yevl zF^59=c3talRAbC5u96X`BLtZuFtwI`r*9=3Q@oGY@L7s9s zIP^|pffLlb4kCZ^I>$ZVauIgXUh4dm;b7Yyj4f+v216KvK2-gQqw$L?J;nd~FEqbz zy!9=1^EdPaIer+H4Ifwj#ZRo>d;bMK{6(%`KyxJ~Dliq{R^q)qzZ#H{=Mx_q5N8LM zLWZZx$sR+1r{ITiCETR>ourSz1AIw#Bw%aw52L?~CE5+z;#<^^1qPZBMI1}S0TVbP zH24KNqJj!JL&h@#E+B+VgaG2W;sLQ5FBGWJmq2vHXWIX_!cldre#IqXMosAxCUO;n zXHh2Z!S%A7#4^0jK}wYK+bWSC4jC??gC?`KQe=J!yQ@^!X?$~}Nw`dQzOBs3kFLhJ zzs;E|ezyNgJdg|^^5td`sbKyt$kbFZBS<}i)zksn)@rK?uAa zz=*XF$sifgLR)+Y8Fo(Nh!pG`;Hc9(s*G>~x8QZy6;;ft?pRb4VJ-$ou!K|)Gn?u2O4S^Qb(UG!0Grbm*oj&DV7hcm%nq5E)XLY8)C^ zUJ=S3%jF6Rv1T=d(t%IF8SKjeTtO=-S9H{4IG%9nRj>C{XlKb4S{SY#6-SAdK*#NJ z3$c84QSQ2#Sxu$T;e^-Zy!bwBoVSTFFclY%%3~-FAzRt$M^M# zi{_~X(s1yYgUn}-_&v%WT*9XhIDCfdzg%AUnTZ?c9!WsSJ>K%(k?V;|XkaNUVW{&e z7huRAfSdRm@FI2-`2_hs;hT`B2qTv9-$Qr;`HRRv*n?vV0Rp*pUP5rh$RLhNec{G3n_`Fq^?l?U;fSxQL`;a_Gp@i9%BXub0s1}Z@>27nu~pj*Qkam1BDreI>wtBobAU)7$^N&?-0pi8`i0TN!G z7djsv)WZ!85L|q6LLt-NQ3V%CxiCj zH8FP~5V6Q2usG-OhzkaXiM8`ElUkO65nU4@Zy=Rb zC{NlJIvlc3n9fH>g!Txa-&Ky(JxC@9yP9Z)zz)_$^SFcvC$j}R6|X-v5R8Fd(S0?C zz+pFgoyw(G<+h}Fvqtbqc1@i(+BuWSoUI7DDe=Wvyih0QmUl1;wkD5^4L))_a$7io zJf-cg^gAV?ZCzU)oKO(w)Kt#$lV+N)9Ht2SP@HEi^kwHz?Ty<0W15j--&$vN-qvA`GMSDnH6Mx}+%6&-E>hg$%g&F9sU{CyJw?CS$9aG=uplp&p~ zUkPKa{1>Nja{|va{4V%KcmYDBbDG3S!}W#><5A|Wa&Cyw1Q=O5F6~sH z9?gI>gq9&QHY^;R{R&=T@oI4j!G45oL9GCXRhcekz*H^nuJG3P04!&Dck|?&T`?)U zsr@+@YJxJOA&M*rfDjagY&1K>NJ1(jHqPqDrDE7zgEeT;bRU-SdVK7@D0{70gupof>zS5+TtarMxAUgeVjvYoQQuf@3*Woc-E3dZ07G8o-oD`w_+rj{Sx&4dM=2-8V00V5{7#i5swYb*%H^?>K zg4XGUZpQ5vKqqw=J4Fgg(*r?J_iSp5rIH=9@mBmFJ}v)u!Uxa;Q%ym(@S>7b@<1RkO5Zk?7hjF zVc@eukXG${GDPPi#^;4mh{h(;!qNe{I(x8$4T}ZxdvVxr=w3&kMy}y^X|K^Vq&2!A zJ&&HzUf>4+b3ly0&=DfOCu9^vk%S}^G?VWU7O;c^#L=FR$r<(pCqOgxesmde#s)Fm zCI#-*5lC8#YLeiCW!(B#vG{l7F09~WwpvR~B%PpWVx^lzz)KUC#SmB670pAYGgpM0 z@CLjgoI?Qi_|>(H=Q_3v?^YZ#SBp(jQSGg@e*rIG0^#dLrbvI8DDjh!v4A^jEDp$q zT%t}EWOlN5Atl`%uql%;RHG^zz6V9TaEu4?4g`&p#70kq0Fk^0ijS)NPy?>`2y(Um zMk<_{OKgRl;g`_hjtN1^Q3Bv28IBWbJaSY3Hn0+oov}w0Q-DWsWIQeGpfCJOc_1!9 z$y+=kExIKOl2FC9MmY$C4i_|)zN)m0gg{P+*YRhdLVbJ{UQ$svxdMUEX}!RPDgopw zc&pN{@eV+oCK3Gp6`!jY3aaF?Ps=A-NmLs6@yq$IAzw(WVxS$Kf zk<1V{I^b{wc+UBi$Pr!|v+zlH(%A%D7y~9~U==ww-W<3{Yy?-LgOLMCS!KK-bu@t?lLy)e z0dc~JMQ~(512W(}-V!4c7)ya_9>564u%=2gqp9FZnlS_~dNWq6?y1z|4VyAe&&6hW zx+v~QAS{Hz*~1c32CwwcyBV8pf*qW}W!XM1^UozbfK@sENn}%|`~lwpAjoyRt$7^) zTO{B+IIm+Kg$M@)12dBfcccJ;2FNfJZ6r*B*)*c0AO9o>L(e`Oq}s` za;s3rlG|{vW`rXJ1GX=-ik4qdLVp+V3Y5?_i#o80kl?ad@|13Dk$^*u=XiAiV3TyF z>R?WwwI-)$q{WrspoBoc0d9f2fV1~hTGq!H*VAT1yn&u{<-n7}2eMI-I=NI(<5M}*!9ih>Fn;TW#t8+4>8 zz`|^VggO8a9EWy5_R!%0+0*1&hs0+|TP~$lMsQ4UCd~F8YC0}Y@HLP~f=6YxTFl~K z#g9luZx-YJ0!FwjR_POvl-?e0iX%4Qu zeQ>b$#n)k7$25gn3Q&{@0aN0DfUb}O`W;~`KCXA)jR~R?0;`tX&^tE5eon?j+<=lp zttn=G=~yRt@vI6oNDoU0_zn@`3JEYmVjOYD%Zi#4dDMlr=G#q5=QgD@$Fjbg^i+6E5p+JP%YVBAHY)}L$CXoK%^!vT zBlJvGj;a|j<&#MT|LRj+Af)#e>?Tj7_7y0Q$xd>#w3Y;y!cpeg3ob4>7eavrER;76$w$2Z zk`w2*IWa@ga)2W^Dvx_Jg{EN8l1nX-O<+iLV3ggaS$j+z`Pd z{i5Ii?P?EqA_xm11vI!d+UE|s#VIiBf(hIU6Vb}L+}nd%!a(o{h9*3+Zz~}|TV~2kF`>^(=D<|&>Ff%fpg_hp^zF2uVd0#0 zfk0@m75g1Tx-E?K0wYUBMz;H6#uU&52?l7(o*wSOGjJUSSd}E{`*0m@f)$Ohl$hrb zBAp^$OI8c)6AoQK7Px?-119vf)E8Zc1Y95^5zqL5LUdBVlt%Cjkt`r6h%jak(c4d+ z_&@)o{33pWJx>s_6IxKlN3#B66K|S7gRkhmm!k*V_=q3=_O!g)H@^{%e{`WgEz6s% zpW^VFSp*(F&v)*4@dCE+7(Q?YJuIhd`qYy$PMM1U6B^_Fdp;l88;6-QCkn@~FTro8 z7qXy^2ii=dj1e(ZS*@^K@U|nZA}?T{g`Q|I5*;FXdIYOYj@Qm=80 zF%TgHP|U#*#UnVFps;ez9MAPCH%E5L>+m#011CvIQk-!(%FKf;jzn~1>zo?Ps;t!F zaX_vR7XnomeuaN##kzPpY2a4T_TYx|2jM^LctMGfzd`?1lW!la z55ZiHEi>Y+w4#CwQ80roToMeCf@?a55mAD`9s>Fl02|_-cu6`yB4p$gT_Zgn3QxS_ z3QjYiJ1n6Kq=U!Mp-;jI))iZQNr5$%Js=7oh6wJcVS+1Sa8xc-`?iiK*}-DA$UE-P z)TvGZhYR!qy#WDtybNZC;3(t-inee8fe5l^Sl|H?s>l((Le4@ z0}?O=Cm3Ufh$;bE!y5_j&H2T_@3r9wF#t{I2011!2@m16F8&~kYaAQvwI4d&y}bO4 zF8@-q{J0z((LG6gk;5fqi2TmBBtMAr!b4E1Oz}Tf!(3RIoTaeYetY7n$mxJO7s9TR zVv%vfJA%<9ED~XKd;}+G;cXHyM37G-ui_nygaLY7k$?(~kp&R~cpw-KT1X(I!OMsZ z5Fk21>NH$ER1SjZ)cs|+pk*EBkOBS#{Lq}olj_Q3AK6w<7D+)!5f{90XLaxp5`@W8 z{!{Q5AhImk?#BQaNc~igGE-#XL8)?o4c=D{0K8<(d>;0d0Gmf}3|&=EdBHf(;7A6= z!LLB^r?;$?7{J~cOBZi**gMTFuKcaemoIY*#^0HhF;}zZm6hwZVg#Tgor4n<98YM6I(Z}+rl=!_5Rs9MU=G4k*c)lU;UeG--mqyg$Xldjqoxbk z(cFZd02nL~!vnG=?JLC-0)~zdu?B=F800{(iA@zkp-AdTV@W?0WEKX!<1Aqz6|X|U zJ5H)`gI!HNjj)8)@BuMg(Gj>n^4q=?LY0Q%;+S1xU)e25(9KGTO{#7e9quKdqUYJx z;sXG~%(n50FRI~@X-k6O1EeVn{;8KAlJLD zU8f*$1kb^qp+!>Br8aOEUMOZ8d|Ss|SG;m=726@B<_K+FYL_xH$B$Qv$mX*3l4Kpe&Xe5kyA_Z5cqv7XT zegrPi^L2XhWu*grbIpJGXz{JD>2lbknuspr1>Hkvku|a)9FhfI#W#3^7^}f^#4khw z-JZ}uX-$#}I|OWj8|uiKHWFbl2IvBki3$xa z1W1mKY0?o+KVl5%!AT8!Z5FsemgVHDgcc2k- zn#Du?`xkurhU{?&HwaJQ#|%z;$>EDEzlEcL=GQoQgYE{$zbbKD9Nc8JV)0(q!s>2A#n{h1#so;6&gAxz!0d# z3^I+-CQQJPKxl9y{4!k9oI)lD8j&Tg_=sd0!G*XcgY1xuI=TSCcQgxJ3KlES1RATf zdgth5fRqr5<(8^8w}T(b6*^n%gr?%;BJlhL-*n24gTYg9)WU{m?jsGY@nq&A z@UUX!YD8N2A!Xx4K2(uy^P(;lh&B~gWkr7uLUlZlDj6-eik%Q(3tpElfGl`M_qc#y zhP*Qd(z(Q1>+VX)GnD^TARp)L#6XZGegT1ZCpKkqbEL(AE3hB(Wt1wm+GC)IBMy!` z^dvyu-YD`ZzdNZ~)*`r)25{VQ0VP66WJQ*UV?))9M8M}yuD~I+tYd~N5|I`kikXp% z3k9rrY*1Ljhzz*kj>xp#dl<@fLtzK%3Chr*9opkUQZyk0$v{{_0&@gHgBgzndSWIh z?z2K25ecMA!VzJCpM&ECpMg#dwmrZQIToIFKGR|QYS)r$$`XDBsbAS6N`jTsLY{H+ zQ{g2Oe8^u6L=b4Es2H^&fp&0fYT{G zjsVj-Wj?RsCdrU|T?SS(6N9f8iT^UCP z%V`4&aYv0pXf5&&HPH;Msft%&8*1}HRn4nwEr6pVo-idu+!-=bZoEbwo`s8YPKWc% zHK!HQH2+&5L8w81ie;)%7ePzB{28T#3)e@)o8-1Y%e3A#0jQo}Zqr@x`^t!7SJS?6 z06J9p!*Crw4)I4fhL+OKSfY#Pfi-3WjAsqh`UMSn7$ zsXjQ0!yu=de6$x;_cA+<&@n!T0;!Da2trKc#G=JOdxGPFN*z;aTKqas(-{mr5k_Q- z14~qi%Fvd2rOg%0Hd=$PQ3!%XEJIe0DSToP{>G?x+VNY(e{3DT>ACo!$Nj%^L;o+= z;y052FRw(TG3}kbc<6{Lh}aF1qOgMTHrnGO=ER-0P9EJy6igv#7zjsLhlx8#A~;Q8 z*U;?Hj2Sd&4sozB8-k?Ov`jDn4$`fDYk$;aSws;Mb>@iTo2TV~x1$9&ikeyNK0)jgtE~A)Pq2EK#RW&F-hNTmiS-Q@YYvtyK0w-Wp3rkXc+Qi@eEU!nGkE#}OQ=$WI{HB; zlWH~Hqy$3Ud9&p~!-o@#>YgnrUdVt6uC!%gZ-fXz@v84Ofa-ccnO0i-S+)%&5fMhJt~lmMa1gqmr90kr&?!5VHq;-3q= z`V<$!?=%jTG;(XlxzZ@#Hu9gsZv_50INXIEPT&C;zw?N7Akti+Q#RmJRI5;>gQrVq zJ5xo=x9^?OI5gmO=|bQFTo`&nbtWOgyOqiz_@z?s2=87-+(3DEVudSiTYu{YK5q}g zmn#ZRL7y+70mHZC5fMyCvs&N9IGxwAuYw^F&rqKlE>McLUO3y4Za~0gs+3Ow=m3#C zfDtwYNG=4yAT%Y4mvlv`2@3_1^95-P{gO< zrhGLsSPNlhX?GyN73kYQktw$R30T2-SsG)x`joX0fp)?YGhtqcK$(IZiD;SJD8R}| zq0u!3>m-;3uNUnMB|jwo6`iuP#&T> zi_*7NdklA0%JCYbYc~48d=OgDnq@%`v7VV7G_d42@&o${gFLJ4@R!Y>v95@zR@7a{95S$LpjI-?LzsyVXFWKY5bH>MMoQHV22o2+jG+X0hZ(`kE zlah@lV3~1)93Tz3M;o-m4&fOzlN1-S5giE_gp7rf06&sJ9T%E_3ML510*sjO$VEdm zn#kyMkRU34M!v+4VTD4{iY+=Q$psyx1(s=q1YIP92{8ghE0c z4ByfWq!Ve5@xcc}lgPlhMfZ552}ok!mI`IJYej|1j|>YTEWi;dgkBjJM!|))1lvMe zt?35L2tsVI%&0UV9hM+5WP;NMtSPP`LxF}Qh+x?T3}U2_Y`Jxf2Ex7}%l&Jeh31c9 zH&_aBOY<7-$61WD3l@)9y~e>Ex|FK7?*O9#tBFhMdkHml`0GtMBa1bX5^1b*k z6EdJ=gE^`=8=D_*UbhVLT@_q!nA|CmMb@(8IP=Be@O+ zAjUtkp^ZeYl2Ds z6M|z`SzJYr^DtFU7HEJTH=G&(bA^OmlV25v!246622$>~F$3CH6RYF$=?F;?>7j!Nr}%l>i7(`S`12b>GE91}Mguy?GcNyf+JYIV%5F9P9IQ4Ht*Mjf zbnVn?N0E_$2@X0C4N*L>4dtQ;qw%t`F~~?nmn;;Ae!v2QV;O-})zo=hqB_?MiMT*6 zT)-9hL@%5hjj+cLQN_nH@R+hO#t9MauHmBL(26l*B`v<2=e_Y=@a@K{nV(hOFfKur zlZXim=OEbmxL&p6V$k6)Ki{^Rk9YY#>6_DjyU2ItXuaHN$iFQQ4`gV>A(FSlmD92gmPJQDq7hk<0ty4rBN>U) za;zb07w(qa2k96X6VVtE%fga>qQve>g&vOH#a!0I-O zmPId%X9#;PU#7dw$s2s%7x>V(v5v5Y`*0r)3t{ddJaq;g?l5O~hcE*++cX$%!hv(r zGipW4G}UiK#4<84I-SxgMoGFAVno3e0e=sA9eIp&M8O4h0)&7IC?d!R8Ep~A0*&Ab zik2n`Mf1%BM`sy6S~v!RksS^A)bWec!XMr9SIeSSl6-AJMC&>5?3}rKnM2(t$47xfD#1~si^qzI{6aM3Y<=!28KbZ=n?q=;t+8`8~}q2 zKs#5vq@Es3 z5P)=nz$3U6Ht=lWkHsy-jaGGUVA=( zLv{in6+&ZPmxmzKS$;OyS{NZYLIWrV$XN!h>M31)5$Yv|k~`(K_ChVJJ1^!Av{S24 zr=0!!I`^|E;gy=FJB9Q#1@u2cnCAY5sdLz;9&yU~t%eS8*wovpB&S}^)=kVnSMrYK zh<6a_GOjod^mfQu!Xkz{1Z zf;$4E@tMqXLq4_ZCOg>Jgx9j#U}54{azUs)iNWfvu#qA29(WI2_Ix_0ctz_TTQ~Z)h5>55E-0zyF*MzBasZVy~X|I_$#ZylJxQ=4fH6 zJ$>ri*ese+GY|73nWCe_B$9~HmMca-+HQm1?evIva32|xHfvlFAc8oZyKA*=GqlID z3gqD45+EQOoE9RU%E)XXFu(0RAhhCb7V>f4b~zD-A%89h3+;8%)3hUuDgV%+eS8&O zyvZ8A5aZuI3cvHQeETDnC=wu#7IbuvE+IHFvN1D+5M1}8pPgv;r1y#A2eL^1v)Aq4 zzRAY*x$OVgo%n(KG32~4--<5@Ld-}nl1UNoXx7L9p#dd8$}|Jkk|Ww+jwM`CW7(2G z8v>=)a3Vu5XqiC|OHFEZhCLa4iC(8oXe_jhh6}2UurHzc>?}$bc0z(IB%uQZ4+u0y z5+tAjAmBg>nZuZxr7u#8kLL0~Iai)-TQME_(Ao03q$3)~8rl^}rvSxic$Q4of`Eb$ zFlZed37)|bYT*zE_pAn@s51a%c5EEaL~#dm8J#B63hthSi~vis){%4&TN>4lyzEc8 zbI|?5Vf*Y!dtmK)6Tjol_{Ou%PsQ$m$jgLG^E}HF+Dn>itiOxJg4JD``)pq3@e7?0em%>^>h+HLOEpJ)FQeGCDH5h2^yh(auC>mNWjzFNTGzA>M19;%XKy*e2!xV84 zzGm{)7RUT6>XWRsI^SJ`Wgdq3Dw;iFph$~5;@E&e43KbPE;7HNVgx2ICNg1$DxT&w z92JOg1be&KM7?B7KEo44@<4L{8By|pC7= z$bT*4k!pnPfat?)ze zhXk0Z$a5Jd8K~8Z-$Iz~^edX=po&4rD45cKD;d;LDxd^tzy!Q%v<6x}sSZp~z>Nb~ z1%Di;K%HCxZ)j~Kdk9liJ5L$D8vv}5&*0OLX=DK4K%OytlCO+Xq@EVFWY^)Ut>cU;^;Hl#g^r)bX^95 zk%&2ifFN+kF(s^!gbaw%tVm0mfl~ot*Rcc3L_;H@(z%Bnl8!Xp+{>M1sq-+F6{MDW zovbzgLS(JrK<$vLrBd4+z_&JhtMD=B=iv?G!oq5Oe(k}{)kVAipr?;ZYU$r#d{z4| z>X_(%q|2|L+AkmE3+aDb9&+fH4Y5D^)Xm{Xul2wCLH^iTe-Z4Lp5DKI5uW^X!;$B- zUyP$@#LbV|mp)*h*YqjmAG*)_mRxQ)e30p4^|_(yh5!K>5QhQhfEJ06Tt~4L>cU2G zhhW4Jk(vZElg1fUBKxL2@qg!L|9CIAuvZxZl4(2m$vckhGB*>_M;zgfu#VofWWr5U!&{9>~BoJU!7jSPP zZ6+Bi8bFhWK%2Em;b1|0<2d~66WvE1EiYRA)x!no7ij1kKhcBA;UMnf@E@s z_@qymrgg~#WL^lbr}Oz(9^?RFg169!HaMt)qXBU|qe4&&f}?^s4#9~7B&08 zLPm_JWuh(tnFJCMLj_ZCq{b;xP>2=K#F&s!;t7sUwP_+ehT9wj@Pec6M#fBT08|Ku zJ0X%=ZobKCPk)p11MYP^lXxCJU65@7UMs$#EesI&{UzZ-+<%_A(*STtld6`rwDlIA zo0lg9tGF&Y7;Dg$5n`FsTlhG97CPrJGB~@81~g#BhxU~cFAZ?uiU>e4Y~BHo25Mr; z8s8T%%$Fw;ar-LP77)Q($oPQhy9PqVde@AG2vNXEp+=`h08Yyz-c&vB9d)Z4VTp{S z0SSZy!Wtj(p1j2}63`Xu$Uw3wVU$Be8#LgC7*GiH4FOs-;)W$iAef^?kBc2KGCU+H zS`8pD+-W|FK>7lChXM^@jT>1}g@=SgjjRpf3D>5dM>q2GFWMy_FaY(@Y5m05+q4 zvgH?dhZirsxBq-R7)g70l@!S>moJfDXH1Njq@HxmhX2|9bX)9G&G^KA`1zBe*^lAa zK0JB4Q6B| zWl~B{#((K4UdR6F?BBW5ztzQ6NWZAwqTjohk9Ro>|L9AEONNNL#B6wEbPPl)Koc)M z5COoa3q>f@vU zdr!str>pn96dvAM{J(C*7suwlhR=lV8?F6}=sjsZ%jy{YNBicDMt)MeCukyFi|pW- z^m+Q8gA<+?p6mIba1h}X4&f1WMf?9IxDO9u12^G$c3}xm?^t553i81{4*cp^W;&KWM@(~$Vr z2LAhJ;6#{l|5KIz3i%y?0$FQk{2o4|zsR-TKEsssB^E$ZC!~ZyP~33?MKi|NPMYFg zdTWuX{UDAPP7P6{!S*1$YjJ4NhP>sgCteC?i++jrRW7{{m*iSzuwXN4O=$MDP9grb z2^dmM6x*T!>5vAII`IM;K=Ba*?lZzDfe{<tOI6K$ zfgYi|XEMY7}5(!xo19pxqV1YZnXI${jJD$Ac7aLCCMHq$Knbx@FybdM= zKoAGV1cP%BK{I)WIjw^+>}Yp{NWR2cSU^vjW~n+*`2KIeq9}#;iUAZ!#8O zg>NI52b$K(HIW<23EUaMi`i2XuggXQ@^?pOQSPStos?ClpyTm?IJq7iDbI#!XBQ8GgrR{Lg%9*sgbf z`bdAg9U{Yqyp{amWWU0@wd~fO@HP4OZ28E;e3<<5c=2QF{PAetq>JwT_R)L07e5_o zq4!5O{r~oU4#s9jy0K|*X1;mr*I$9URwD#69yKqVfV@3Kw98i^cDORM))Q4BXEiR$g!WG-#4mT z_;eU{$`Nu$>@!F5oqbr{A6Ygp-O4}ba_=;*7(YZ*|s?m6G%>A|8y3p%)tm?fbV{4Wu=MW0DtVpFq222s1hK1@I%m6ZbzpEi%|HX_b zh>%N&E<>ejq`(QGtuq`cskGT*!{53V9wGmT4!FGVs@_i0AL#L$rjPCHhWy%rU3MG{ zn#j)HP*CV6XxlkGLmmk?8h--s(I$%+1PhLU%ObOjga#Q1EVu3YJkx>+A|eAAXm&9V zO29;;VJV4by%t;})<<`5T5E!bsCs?B-b#3=izQt@*!x2Bd2K%~`au?_tlonR#Mis- z27H+DI?XY|eI92{?{K)~cN!l_94csWH(VA{xE@YQ!LN1UbbcLf8sG65P!NJsqy|p4 z`e$itw1iX)cU>L@f)hYA9Twu}bPg#;YX-xVC>% zH}S5;LD1p;!eX~y-A%?q1#7$!*5}Q6$K_gA+U^*R;5{^sI781DVYmfC_d4Ix!i%89 ziEpnGS=7Xfn&5j-sOXv*XMA0BnE*lr9>Ee;#W+*g!?r9xTd6B|;RCHUcAON+uj21A z>vv=-H8%6E0XS0r^D@1-e;IKAfmBrLt7{-czHIqYTj*6+C@vRBm9hx|U{Q4@4$AiI zR8>-aX-j21K^mF>0Uz-TQotP|8c+d6A}JtSFep@T+5)&^J*vn80;=dpsybI$^&_HS zn9`gek4X-KtcZ{h-Z@aiZjI{4Jym;+%Q z7Ii0kSe6zp%I$b{*379P(K0-m`k1VThDHcR1B*<|ETCJ;$~`Xkmm$OfUA5-PAep$6 zchTdTh_|^P6PAgJx7ZRjhMwdgus|Wuc~%@25euFdw!aqQ$-{Wk_2GnL;UKW6iN7_t zk5}{c4+=jt$?PgiLNFNVSN!>BQTU^G@l2a&FCoxGqL3l$)SOc^a()u`$M4zX_gsX_ zYy3uJIN{C27e0sFp(R?a~kK+yYtvC6XE|m>-&41xp{ddHhc6UU~tsC)ugg>^j zA3yc?4*aRdwzzJWjDP*M|Fy-?^TqEx;e&7vEo=_qHZjqkmlYf{Lc?M9E;ns3``8z| z|Hp^)TzC!p1)3v>SR}Ogns|iY!7gZCg%SH_H++*0-QFHr`{x@*mG2;527Za~;hX-k zHLo4mud4hyc?pL|Mt`o2OMK7xw~^6LB!9z6 z{=rAeW$xP$@F;4GfdFopvk)AzqYjEg#DM`RT0T||Xq9~>vnAFyo3ZGM26Q}yESR$hpF4^t#Po!eeR;5OD@cvvz340hUOdji(UMN$9(Wr zzy3L=iL8_WS=2JYQ4JYirB@dA#-e$=l+$eA{u(JqE>W|w1@TAM7oR#>eP9=SXny&2 z^XhTf5RVrJt;p{sepV#1yhgf7j`*i|G@=7fe1ZJk#52C-f)B#eH;50W#EcoNBp~hK z5PCR=+ps8kz)#(S9jw5ai$YUD$XGpdeWC(d%>%qdQ!gPwpcfcul|~4PYAKxzp+ggr zQILk130wRG{V?&T;0EG^3t|reF;wsk0d#=^4K75-!4-{2k64Wm15#Nwt6^E!Od}fR zWFZDj(L@6@#t`@q-ZzZRd(>}cIk=uL4|@6JLHO-2aN6&F`1WXvU}66c-j>DvIF8oD zv~LX`f)V%QwFmw3G>*y_NpD~uLRa+8rek~`{dIoeAqvkdcFkpTBda6 z!dF-1itE3<7q~Xi9UllnrvCWLCol2>v&;jsgj3`$HsS#c6)Y7*7b_{ z>4gZ_VXOn5Uf5K$25M}T)@h`!NGiqkYY_0n(Orf>7Btg9G$g+h!|i>eZVNfr-^Wg5p7$tWObCMeg%PmcTHO%XQM44I}!6Jx)?tV<-U zM-&AW*c7|c>A)ixl5t!mB8OryF5Qoz6H(JvSqLNmjbKwlMLm^UkMB#ja(U3^m!7kIbNmDBmslii>F+VT$~NN9(taMlz*^+v zflsYCMD|!>SP^fd9ri`!&pxA{aeL6DKe7q`<6jS9qkap$i~MhH*prwq{YTpT zav=s!nLPpG_)sQS~#=tzdO$NRmB;w9|D1EgrAH0(?`}pfakCgbwn^h7mSY)Lq3Ur zPVEb~!uwMEY4qh&`x6iRqLq)G+b3@}>96azyV@M+l; z6SAVthUPXihBMT2@;y<0r!1xRgZu7aV{Lu2~F8Yt% z4d1vyd)4fc{mvmjw`x21IR0d??Qs|zX+|D*y!>Ronc_Iu`z~|r8LVlCGryPHp z@3~;n@v$$$BVtR8#oOD|B($0tbx}b7W3B4V8aD84JHGD=&@mTg^fL+uR%bb6p48-Q z1c5_1frkJzNG6U*1P~=aET0e|phC<9gC0L29z#Z)c8h`p)Cqv2R%SRQbR4`aE_UBESCw3>UO}cubt& za}=cVUSpM>mZm&HWiI3?GoaV}SdJ@p8G%#`fVr}W;Qi!_B;fP)80AYBFRgNT3~>_f zpX3bGQd#eyBG#RFCQ<Phc_gf&)J zCIT|z4o(tyfMlejX|WN>1i`(O+)7~6o5?u15Er+=QIH#I+Bf7w_G}+wD7!x@yY=^;el{3bAN|8>}2Kg zXnFGSgE7Zs`mY7!_AZ1S$v~^C5YQT)svBXdvd?7>G5}IB45Ush$W(u+4znru+SS<_ z^@qaWfuDq^Fw}?vJpk>rnr42xLe3E~S!f(}eic3dG0>G5r#dpI93}n8rCr3~e3fw) zP0*m@Hpzvz2ed~tnLU`Y$jF{OEF2ex5d#TyK~iUf_htvWYC}lUx6Q6ux*kAAjAmq8 z`kxBrf(Si-(D|WEQ3XoXlF%`9{L+Gd=Q@AqkQUwp2k^3T2rnJ6KjQxa|LZ4dom2P+ z9&?!aj&mflIAisQix(LWv4L$%oGggT#Ir5W-h+|tIn9PQp5QlLl24zZ#_kh~hmq*4 zUt;~8xYMjjPcS~m<#l+K_MG?}c>@8v4ey87!O72Hf$#?MDflyuU&k{1>XLu`A^)j_ z&qTf(p22(1UqDni!G1pEGwd$ugXB|AjZZcOLT2!q(yr*>*_)i+XNa_92t#)o#*_WA z{`Kd&pKA281ZQ!CACiw~M>LT?gx^Q*m%!=~EE#|GkiW{})5ue#Lm|V{=mD0F{Kf(Ks{bl+*-e_}rLpIm=OSkNs&|kl99Iy#I)%W|ue7PEKy-p@4aLzIo0BD#= zL(?Ph+12t5o_tLDq1(;j7~lWNFkaW!Po+N+Mz67PZnjBlLwAM2kP1=7G>cnB>l=^C`b0|cTH9F>}l6+wi~5C_2y3Fm}gLKo;ra018z&4dI; zgpBM_M+8^80~}O{0)n*2SXBIo`n328Waug@1lbX%31l!w1c?ZxWd}oOr zO-i}nMZaWlI3jS2YAKVKZ@wUG0F*AYXa^ zxIk0Vkyo&R{j`L>fO~0>OecgdU%ZZ7^8B1s@5EP5@0Z!mJhh=6+^;^#j0}D*%9k1g z0jE-+`wm|sEe!ZTT%rwTSVjd`az+AG6b*R7fwp!jkr1(5B7+TL(1F1vWO7DU(BTmq z!J$W2m|;B<&u~G@$nYC*2ac*<$U^v5 zxLw*Z6xOW1q(jq`?ZJ9Ciet%93dpp^5tTOTC}7O;Z_Y~T}c9lm?w-ky2A00l*a z&jwy!v#bwuM*o);02e}GYr4PSho0vDdCKd7OL$-9A7cS)Si&LPhR-PtjPU=sPJq90lfilZ zk`F!Lv)){C|GTztPL}h4pP_2)mmAmOyF08Xut9MTiJ6$x?Cp&OzD@GSSop zD5c>AxEd~y>vBF3nNepo^J4%!OCx`EDZdQQz>CPo;8SaUX3ewk3jBo|JjRvu0phPS z{!hF78vK{+_*>d^bTNR#WkX0Toh!s4@Z-06@r-A3++REX4s1t!xoHlb4u4_ACzs88 zk*DzcFd&2Svv@D`kp>(e_M#1Y z4R<+vmH0b&vS+*F!^W*+nx1c5d0w$f&_kR;JQVK3ty*@M6`Yl5fL6u`F5m!K7~oM! z2KYmFxn0)9sobCCNRq0?gi@t1U{?bbel_wMydNII7vOn#1{5Nqs8A`I>&b{Eu|$V)l21KYvFyC8w@wEcUV?2g+nM#v zRWIgON&>X71%vAqURIM%7iBIM&c2vXS|>Zz*nUb@cbl+ zD$D79{B2HB(C0HT{2dx;K6AUwf1_xJ876!vhcmggfZ9E@^Tkr@Xd?$PXK3}xvTd;>W!G#15GM)2KSioUo4?8KZ zlCV%bA%ejOD;Qt{eKE5?4o9`pB!Ma$=TaFLpj$TJ)CEBf}eWr1~8 z!V3P|fPu?na@6ssZ28mK@Ic5y8dl?@-R{%5#f;>+%Dd|CMGWG`zMVCe-j9az%X4ryl{S3pC0UMm4wPL6}PcvtG$p zR`Krg_V3Xlb@rb6N*pO#GEO&ZLu4Xa_k0iXJxP1~7vSfe6WGHq!H*(0K}>vW((~Q#I+Zc*doplF{N?F2u>?BLLSNLSv1&T&|q?)+N9>1(>jOFA^gL_LFD_y z#lZ=%S{dym*Qh$t{?;}Ay{Gxa0gsdg9KccOUYSkB0wr|EvtaO8XoOE5@uNpPf@9~8 zDYqTqu!O!I3isf>aJ`hWNic#C1JQVP#j~G**ZGbUvT!Hx(jy-1`9j0uQ{3H?&yfLn z9Y*|4$$vY7BUr$5kl}-{hL@lr2|OS!%Z%}B${GB2@-HASVb{nX;PN+Eyg?p$DFE;Q z26zJY@CMvz+21C?ufqp<^r4qGtm4aU`x!P{7VkrzBs_+O7&u$Oo5;`M3BH}?7+U<( z@CGu%x8Tpg&%o=2&Cd{rge>qA`~U=+qWSg6S@Cl|gai$~hXwK^9A-bw>|3^QmvrCR z=6HgnMLJmf!)tMIMmIo2=I;AbvSY04v5z=>g3``h?r$2Z>R_3`4twbXF$4VIsAwd;!? zh6k{Nr-@tm0tmcOGKh9?2X4R;u7SYkU??sjgG-wKedKptA76xf=6^@^Q+nfDSlr@! zM!J!YWh}EAAV4Fu#>&|Vn{tT-1-n^zJiA&b9R;bxkF@~QB^;H2>KpLew|w-at9<`| z4F0ziDM1p(sUFf7Mb5y=RQ%GwuSaeOXHE|e9sQ!R2AxNMP=2bgq@>{nd_-Ys=$39I z7@Z>paBCfEEORLe+908_NYfUaOU50k#YphNi6~Q+X@ee2*p($^fLGwZ44ng@Bf(FC zJreInl`KO;Zpe`gd$86wFOIfrE=26Lb|>zS7nc{rOYzd(CQPG2gSM#wZ71->DSBir3l@f&<88S!C z4i=?2#e>p}Z6z|o9c^)i^v+TcriwxpM-^6;LktC-1*OLV?bFU>m^1xoRHBS0raAfwJ= ztix+z(DJygRnGt*L8`f172pgQoQ}kOhkh@7FOeb-qAfsxwfQPDI*mC_msw`S7$G>p z5yOpaM8TclbWSuzVT7f#K$e-DX`Ci&JF?8)cv)XrZhCjI~S~0}OCpRDdPc!2t>Y221E+PgbM>!+Qn@4ZFy* zN)I6-wI&^`-~a}=MmkC@{w;XBG+nCf2_TMIsf3;pU=1S(nu@Egt&~dHa6dRI^n z4S7TY9uWn17cylC!yevub#ZoVmKY3*+^=dy$2M4g2Ak|%jW$iL5u(b zv62gyZ>w{*{-pj{HkfcLFwPpAz#&iJ)jeeRL5i4QvJ!c(a3-jFM%;17oh-O8>;)LW zqve3NHa2)-OkyMZ1``IwB12{mz3@)~UV9`?Qv+w6-UIV^7*z7OncrHd(g9$l2Eloq z_}+~)#rTjfPpNefa^Za16&ny3fEu@|2|-zC1V)n8i%CRV@*aGi42^-!uj_O-7#kiv zL^m8NvPGa#zBZ!Z5Wft5p)?P1l%W(_bi@;huYh<$6*r=SlFlI_3l#Dtro<(>!~<+W zXU)p!fUm&tqQ}VsoIDawAYpq##s(x}J3@zaj2VRwHf(l`nJm0697HV9JM97nWKWEE zV9bz_4li9}9s3-zpR02oA5q8EoJHJ^}{M!2&)DxlHAQ zlZ7)uou`BdkIUk^ub~tS`Y8|g0lWv!;W6ARScsp6H{nD`5!qv~Sa2;f7%o(Sr0g1O zL=EKK7Q3qqGyazG!$KyB1s=9U$3dVAbP17F^5Xs%f>fq5gbY4l{L3ztOng2?1jxP= z$^bF4b5FQ7vdSdIs#Qi)I&eJ&Gi_j7SnViU(E(M~(8F%R8&YY1sI>j$DgRhel4{;m znw8NQ0Emt&&6=gL7;xdD!-TZpO*ndh34iSww#q)DLdg8e0Y9_gpw6I3B?BcD{a{(v z<}>(*_q=$?Yk>pjPdp|Xu83XlcNo}`A@E4a0U3y39hZs(!WzGXfH>~-iaUKnR=NRT zToa6xd3eg%C1&J^I|s&_EoIXCd(&ZMC>2 zwXqxMDg!k>hpx{u>FZD_`%4~9$y=NGreub&jTN0R?USlDO|LsWr@RB7xt407yE6W3 z4GKY(ND)C=*n{Ja@LNFUjnwG_TEIB%f0-*rp!{L3mJW2vcq#%~9`seN#@XYR>G-Mp zr6z-I3g9gj-TfxKT!?gzoEC;^$dM|fhaH?i50q52O|ktJ6a%1y&Q|bQ`0foi?!6WC zzi>_znLZOt6JHHs&&@| zs7S0&VVvrSxh_R4uDE%9$ECOg*06#*1r(&bV;R0827ajqWfj;T%Ix2R&R!}5naAS| zX>o_QK+Mk<8zl?PCGXuZD3=O?W}L5)IQUlwR)ph#e`(+@*umHmXVS$1_!uQA?b5h58!E(nIh9!2v2Q$waLAVP;F6c&Q zP=+4O_<$-1VSy{YuTBIT(T32G240320Z_OFzXLv1s_|{%*P(?cOSZ0q!(B+FM8+GX ze==OaD5&5qEZdo-W@m;5wWaO6Dx+NH((ZOyt?O-ZnaRP@WQ71zK5zgUnfD|Zch94>6h_-wjfThz3 zJ!qvT=d!3@Yq(V&*-?S*9l;IQ!2?(otVJpw-z9{yq&CnN)pJ>Wdq`0T77m%!%!}WG zL*h%485&z)Ed0Drz!RAuj6xK;LICd|eBH?3lj4oKTV{!-_=$$1K?b-Euhc>!WLTE~ zbxjs6i*2YZ@Drl5ixQpq8I=Q z1b@g*+4lrnaDT;XaG+e@<9G5mo?{NjSYwc;2I z9>U*(zf(Mj&%hfM8ic}Y@J09x0FPh;ufiT~!x!NKHt-l;gAc+j7)yXX!2plpc~E!& z_ms0kS|LJ)zW5Fvm4$BwYl!6|a18e$meqeKm=G_7839_jRtDYzZW%xazvqGrQwRELJeov^f%A z0g-p}fZd=(*4#;uDiG|QdaMO-eEx%gI|?eePYi^^5(N|EQfS~h?BQYQnJ-!7t8nC8 z-ah6lU$GX}V4sji#EC8LbvO}_fP?R$g}E~|kOvru*TJxd$eM5yKgS=DFOi5Z2*NjP z`4qe^m~xO=X6^;H4I5)&oGLrzGBLmfxFR5q^+I6bx`5P6~>&`jQ2#@DxNm(HHQ*0Ls-;5FOVG)a?k);FY2gBDirqz}E;u zTgjp4g7M}7n}$^;gV&NgSBg0!BtfAMxPX&O<%BK~9dWMr9E|LZ)B7wpBxN;#K>X4u zbSs``F%6aq2~==!pP)}92~-hsoOcEkm=mRn}T1)OF?w;<&? zS2!;MD|ac~!Zg5R1t(t@)VB0tz}IL1g-37=4vfxW8UYvzK={|-5jY%G+&^b9ls@0X z2A+hE!l&RjO7_AdcmqBG8TO!+fstQ>C5-UX%AflHOUINmF!&;T5q9uNxB<_@4lbaF zE!>0!ybR|+g{85DC48*V`-94&bq{gl zo7pQ53?0}w1MI+^ouGmg->>gT9a@RwupJl<+K|^g+;YP}$nZKmEX8Xn7W@Fe;Uqu^ zMdMjRh98G>ID`yYz!}d`B_3cxdx08T!J!42KT{(qfWSSt2~WTQ+=2)nffala9>5?x znRz0ArPtxBa{zqiBd9;#N(GL{rYDW!s!>%VL9US+!`x@rG+XanGS)%IV1A z0KzDA88O&^K%mR)nu4;OPbm<~?B$U0fJ(h747L#P0D?OiBvEQhVv%tGBSpmUgn&e{ zg44iP!rp3l_JSacu!J3+u{{Eh0v6f#JUS&r(w?CdQjLN-_X0Srk{~-a6zAnPIIZ)B za*q8D50Aw@`FBa*eFTsQBQ8jQuGB6MMH^Uv3SWfqUDBH}>d>7u6Fc}7kUE#EFm*r6}ky#l~BNbsQ6`ry2n zru)J(mS7N6&@xJMB~IZkya5d~#Yg)-FnGC8tlTeZz!py7L-5VcJ$O~P58txmAG^;h zkqrcA)pKu&G+0JPcVR1JM1_r!6AS0XftyP{-SIj&D8G3!hfez2M>eHyPV@(xyFTm2 zmn0bmz6KIX8i2vBKpbPeBW^n_^fe8jRxUpRpR&lblVr#m-FX9k*9A}BFYf=ZhKvw# z0k27M2me1|Zun%m{K`lGh(xM{@?5)0_`|Y*Rugy)4xkg1?PSAiwLJ!i(=>y&fGH;; zRU?20L$ViJCI$%_V(FG5nFkol+h(K&fjz+eLHzLnOa)WoU zWe_~FYv|8ul?MY!5J5m|R!8;W=TLjV9UK%{5Hp`Lo-GsIo6e=wgway4o{b;{c>N?i z1?TV?c%@(^Yc)&9oeXQ^6b4}r19K^+`2djN$O%F}HP@eq=i%ewSEi2$1hmj4z#(Z=8=I2(;i!OV4 zu)~Cy*(ZEKSmQg!5nZv|lSUXp$V)WAp4=)Zi+|Jh6VCttD8 z9{T^{IsFy$4a`_LJOCKoD)*s~3)-0l31*d-Xek9;gren?GaCcf%tDiXDE0NtNS6sk|j(3>A7PKsSd(4o`_$DfZ1)hn3 zGQtXu8swDy1>-qqf!!IG0aMu1H%J2scU-_hrqH#jQx@+TAdu;t%gCokzEOA$-UtL^ z4-Mc9AfU=>jXA?5kA>HS&pEr|`xmBUGD?8dqnUl6F&0KYuOsIqsV|i(E8#E^1)b8) z03U-7LEx((^BjPyC4o93JU-&Vf+i!vCIG(9un3ZD$l(FK&+8OjR@=m zUMiO}E4%Au+b8$#EL8>&nS`&$u8ha@j!`7xC8)qk_l9XA6HCpg$@S9i2-+T z0l<<-Zwv}RallChTB1|a%;614u!0Au>3;KluRQwn2TvRHn)6sh=#2pK0K32kNZ6Wj z$+*BzkoS!k{_#eR2`#)2*&|E*2YdF&Zsp&-=l^smFW!f9|Hvcxw*r6hl%H=w<)*U0 ze*jJRO?VZ5FY*L_j&6`I;5YGGBH!HT!_M!Ci^`3L6}$=83)TH0WcV!H#eXky)A=Pq z;2wN0d=5San}Q_%A{@YNe2WMyA;YuDEz9RRGX4k=xCIM1g>!frM*KUFr{S+N+^75A z2ZyQA|LYM>|K0cj;RGJT=ipWR1IP{@!ZH4b;oFcz>>!H-JRlDm6upmpBldpCa2MGj z3;YRW0~tAom*EsIOJTT3tEJ|i=lq2RwP zahST6hCmwm;tf82K#bfJMrSK5L1A5-D!|?m@Ffb@VGYm2b-0A@f}5~5p1I3;=7I8F z$j-M2mo49ukTYm1$RhHVlG#D8nAH-p`3kCWd0Y13DIujz+4=`CNF~wy44x?S+XJ`{ z)^j90quf>QD;Zj_0{1_M3<_FnL9m8P2*pki*ugFM)>0wjD<}@NLU4n^!U3GGl~kJh zua-z*Y4f+Pn$<%Bh=R&H?16~S_z;*uWHV^B5eajxZ^~^KzzT0eL$#Q@f`{qh@@rf+ zQy}72wha;7`I4o&gl8RPlrjkAy}DLF|1Tu23-?R*%pk}J5thh+e|@tgc)mKQ=@7m; zxm@;EQCeNVfcFrQh=)ns(KDWLBPX;a93huz!gsVzXh?>3q%D_AvY>lHOYZOtg8MX6 zZE7ep%vh=%5la%&LyZV!uSh5mOUf9K}stoPybK2Nx4?F>};$aS$hi z8xD*(c#GHQsM@IBq%7{4sD+@ieC~l$0bByP@N@nuycdo@ac3#dJ-GEd&h=AAe3ra{ zL+AUj&x?N%56GVE*aPf&{C8t({7H0_a1(!?bd>!Kl}q6S|D}cWBKsv5$#ditc=kRt zZja@UU+~8}vDW|6lk&6bPouvKTl{^P5FX$MutYX+2YcP*JZlK}0${nJ+3^Kq3}oRY<Hfx5~qM7Pjy$nGbvc zhU#AYek~rIJ;Vt!%9Roz@khVF@fKavKrAZY%GnDK;Z4}U8QceldvFOooWcPZtRTZ9 zco{l)43FUf1b7u5z@cyfzX316?U9WV;TUi}aGyoyo0M;Ec;Ala?t=1!^9KUIc!L2n z@T)f%g+A~~0Xa7%Adq2Mc`+DEw%hlebGU`TS5^L=81G8rB&}%+RyYCriufl3HE2yY zH9&T%B;ez$6$1I~ah3x96^(xR03%6|0S)*P_K-+J zp}bDWfMa+?gaXCR0u1G1R-olhB={jGKngTh~u+%rUAJi z_Pi3!x$cn)zx!n>+ zOx@JXMcg_FVwZwC4J2~FNVyR)Avm$HaUg(!PrW7m)V};EbW|jAMCEsXHVyBy_s0Ae zSA2uWAH3k>hqi%l>5YfkkMqy0*kHG@1Q!hp^gnlxTLXXXDgI62f3lU2X8G3-?Fb*y ze?RhF@Lfkdd(+sdD2&bpz z@tDuz-#vOVy?MdM9yt$$1%LQDufK;y_Gd=_@r9ly{{E3ax3HI7Kd0?KesB4EUJe`! zncsK8Z>;n_e#x$LiOw|<1sC09UJdd({3;^&A)@GcNdgvFz(44`?EJ7wLtNpR)WP3D zdSr<`1@EOjMPJ9?z_-W|`dR!E-b8M~^YF{c9sC9O-84T5KP|imo=1MC@dx+*=T|bo zA)F$I$QlGL;21uJ{w#h51AGX18UJbY9Q}6k1q8w|-Vk>1ak#+00lAHQ3VRdzE}GvB zFT<}xnH79M7f8Z8(pYH6ywbwrcmlxbAr^PML++rZ5xj%Q?&rafg#JGc`M{Yjo2U!f zZ?IEZ=U$&KqBf>UA)>u2_ySFITjHKafj)51AmH#A&W>3}`~|K(K=+`GJXyF)6AwmZya0#ac+nGzvEQ2#hu#-ZB87c@q zCIIx^z&RQ|@CIbQIrDVpGl3EAJHM_xD}2=X_D5XLJlXQQh0TWK41z;fijy=YqwIZf z8=i#s!WIVjes~6!&IjO{@ST@@;4w4^0OGV;Fc3Z(YDrXuX5_cM1P<`MZ<3dMe#I{} z{PH!mJkSmAx9JyGzrKEfma>-swQ!>yUJSxGpueB%) zV7R_(j9u|?zf;BA3q#*orS4(}3Hl2AM+9};F#$*A-S|EN?q5T&pn&0awUR%VsV_$q z3FHBhFU_2($J8Mh!0<#Gkuc>9GXU?w5e3B)*$Ag>q0cBhJZFDE81WuX!C;Ft2m}Lt z$AuLPS%P5?iA&A{(YPh-17pSw0g*C(3`=-I6gR>WAF#f5i&V=BFR!8)=v9;8#41y0 zg$!@N)3EwV*NAYCFEzb;DwxtG9(8ORmX13IN3;#AL$+JCXEXr?F7QLVfjul(MIIc% zM|khAm%y_dI7o{P6sd)SMS&^t*9fizz!-!!fZ_%boFu%~A;RrF=gu1u4*gcc=|fR* z%+HtXqR37z4{fP-vK4WUn7U->%{sMZmaI0aHRj-m;_hCJ$og*7)>&obBbV*2CK`}& zh$5Chn!JM-AIR}G+hzXtqwFg_^vHN5Jjyp-upe3G7dGA?zt-_B5B%1v(8w2V@Q1~} z|GwlPN1gw8v^C*Bd**-Qp+9cIUzWC7o${^!`?3eP(Tb}<6A9BB*c_zB5pSgeEM#4`1 z_J?KBM4|vRycFdUo`=7Mf72cRU2n?v(A$Mu&T-4D2YmXF6$BwGr;W6NIOdX)ydkE6 zBhe>Ye*!&+Ct(Sn!Xkn3a)N(?^d`Q6jQ;_T z?|n%>xRn>4<3C*cj|Kig^d=m@iOI|Auft3D=aJ{=J_yGQA9Md^Z(dRRR?jacR_?E~ z{$r#ad^@to-|zCY@O{W%z(@3Zux~*=2wUip7CA>h0Ui1+n7}8HFTyGO9=HQP4n6t` zbfAO{zC;>SV2AHv0|`;#6O6x(3UZzN=`P-Fr8{P`RF@*0Dia2ssu zI<+f)s^DK5Alu&kZyY+<@iW)C6Ig)4tHL?F0N>$!+iUch;gG`&_ufi3{5IZ7zMZ1* z4OCg+AoF#dsv0&UO~*$b^N|bwftUH>AwT{kpE}_J)&(7ONzKH);k>Yc7M!oPIR8H= z{x!$}kZBgLf=_X@UXC%)tLx$AS^PV@`%9A}wi;**l8^_`AE2$X7-5D#)h7x`3Pw1T#d? z4(~y}luQ?4nr7}){aYYSi+^tG&op9?cOZDANo`3}n zJ(;FPu=fNd9^2iogg%sf&Cy z>JtN@n(>9Fe0)cG`Bzh}0A-336c!|9-$FtYapdS4s}(&g4oJ%Iuwc(FkyE^d9cf7u zxql2F<-MP9`koFv;1WR#jsaW+hp}XF1Q5U_xo2osJXCo!o51(W&?mg1jxZ;h>;s6VFc0@4K71sH-9p-1A57=2y?Tv*D5PMI}SCWBC}m0xdkyzU`u_sH#z z9iT6$zPR8UPwha+IXq6X$G&(ZVd)P{hMjgp-eq}o%$fS<&h@i!w$m=Sn)XAJGV6i& ztax&lUU&Yl2Vs%rsPU7=&EoYlJ`b-73zv)wtV~W)J`?%%F7QNrhv+#W zSoBf#sd3MDO^+wp4Y)0Ge<#XHg*`D_v$v3Ug!DHj64RXdPDt_4WEj3zO@e%e*XcYd30Jrzeh8lTl?o4>s^rWSb5;$c+2?Pl78R0#s@+U zProGp{4xD|9Ijl4pW;M>Uu_)ox(!+rP_WFRgvhsXH8e_Q_5(JwumEZL`gPiXrXT0CS^$%DJ8 z?!C=M(902=(*_Yn#|+K1hr|{Kg(SRsjR(ivJmvHex`zP!ny~w&EZKWF;Xl5`U%bgf zc&gU>n@V+VR;ga5su98LfCcDRFn@Ez*Zg}=vMx~j2sc6C%wf-PgMPu`7hwTYkFCBl zdZikpnC+CeZn+d(KhV(_?|aDm9`UJD{`!;r+zAihq-Z|C1$^VchwnoGe|J5TO7jHt zH!ojSpuJ*$_?nm;GOq+Y@01=%EFlWkfYu_sSGO}#q-ypF6uPqhD8w3^MvFop<~6^- zpr57LHM47;!lz+Dl?gQe>ocL+-?hQ-ps*`BF%dok=dcEYO=*w!;ZXwUh`v5*5734ySJJ=WtHX%Pb+FdvVQ@3KJVd*^9LbLf#{Q<=Yw^*e&@O!?&M5i7!|1y{Z&vI((}ukBM{u$7%Pwh_ zR~EL5+#Cka+zAZF-UhRCe)*juChE#@>mB(nc)&_2LrpvGZm^y^3%`6IPX~SR(2ke# z-M0IVS5!AL8o_$qo2!oMt?=wU{f95)_q^c$^ONv#k-sMC99QBJ`DXY&!ei{m(JiXD zl8vxNSL81u=kR?DC-6G*1=tf_K%PKG;2+9O0KT;ahP1FzrY z(J{x5x&9b^4B<-;~T<0n@<4ex;r#@Dwb{`~WNQu*yLOlmt;C0&Zv^_wGB zmn4>8eCQz`dc-GA`D;({$>XXnW@wFF$8ulUA%63yN;b(c z2vt%6LIqgP9&u4V*nz-9u(Gp?lmacn|8I!HrlPO7Ec)c0n%tA9_dD*8Le22?E{+?` z66^6uZ16oP&&-3(6fz<;KJw*AO-xxJif`VoVwn}npe>AKgGe}{iFhWD{d&*fu$Vi6>as&(f0V)h54mq%Oy2!~1mygLK zG>Bl1Ft-3nARvx27owM|L#j-Ftl%1HLJ*#_Wc6if? zH(z9c2m}EJB`V97Wqk^kbIv*2<(zXW=bW?UY+2dTCyA0MiWCD#f&fV1BHeiI$>$9_ z%uM%M{>M{OyI$Ul3y_pPyS!@GsX6mb=;`j6Ug25Ka?H>QAQecAV$<*>vk#t%6l@Jf zZ0bFAtb@yU;YGS71SdzF3x9@VyvU0^0xR!j`dqSzF+_6$8p;6rlLpDP;ztijHShgmfDG{ z%08kdfA%8uJDG}a{@XFW4*FYKcFX^wYYsV7^!Ht6+z6w@Gv2*>uY zaT++ywy#_%?zHKa`-8nzd{eE*mf=IB`xYNbI(oS)_h`XI`v{B&^>VlhzU884vSLMTN zE)u`Iw_k7g*fGy7crN7&=ck^;Z;bkVr@XM#wzoHe{hs=im+rDgd(XS@s=Vp+_OTj; zO0?T@F12@}OL4JdccBl3e`Kr8k{hP~U03$Oj!05cRL4UfHJ$?%RuAJ}eP#c*W!z%y zda@R)r9U(MjblQ3GiV5~2Cbuho9Jb2;7NZUUPrGJ8NP}AMU+Ve^(d2$0pg=@LTuT6 z4Er?RzynyKSMYy?zDC;;H>v+s*^8_3$9sFcOs(ioJR(IO>~Ya0 zLZl@?a2PEVtk5fk9J;yC&w)5Buk9?e6~XK9Z8!qWdBgv|PvTm@W-S!K00Xqw##V+2FaL}; zj{}Ufz-R9y1R)e300F7rKJu-RaCrZW0*5qlc`zk`fJE#Vd(shkfnQG5fE+dWfGsh{ zFHpYrMBrB-l)w(-07gIq9yoMB#z!P{n>gpCkxk~Y__R0qe&?)@W0G2qjP`i7eZDgp)(->a|91=}~nHEX)V> zVO1(wO&ga37kd^hgVUPwG?NXQq|RcMQX|g2eAvj1kloGtmh;+9N5nd*q6oHCS3$SO zQW6}sa!+F+$ukLJfOArh1jpE8_}ixhTB5sf2EPajYKFvdg$2IA5jAzNckROs9G0e& zu(K2^^W)5sxC}<8F)AFTIO>$LmKI^;gcCJemJD}T2YYxHoElG!?_|z14+rjyyt3eF zWK^Gx>1p9Z%jnQUc<4mcB1bk~nvJdAu{cpWtL(jAEhvp`_ZCsqkz@<_n#Gr^xyRr% zn`ocLPlVbFC6$-&qK3D2F=FdJ0^ce{xOzZ+)D?R7hFE6Qr*NP8k4M!}U7#JD^(Yr?Z()^O4 zXZbRvu&*puq#zoC10Ri`isW=7fSf!qWbVJrwvG{5DF0pMZZ3lMwu8KExa1havd?9tjY1konmgv$pE6hNqeT z>kU4AgOA_jg$sV-igqAvCXI8B)&CO#$p8N%05kW*OnmEyhm4cA z?THpL>OX+4FA(@|`B@smQ2~Lz7t~9{4xAzo2o(g}z`u(Ia-tgL93W@P76t7cTBAOt zCeXEF84eJ7Ph_ep7@o+&cW_1+`zP$+RpUo0X8|qW1iMKixSU8Nf};2JD>NXYpo+Sw zGVKVOd$orQ_uzS0TZ>93>qjI^9$IJSVcnQ|T&xm_3mt`4$@}YmE z4D5L`>8I`lJ$HNVw?s#wzID#qnZ9K?vKLR#(MC(RtEw2ebk)!z7~v_pkz`9F$BP;C25kth;lFrD^vy#phq(mZs;w0Hh;fbv1U|V@@o6Y%9R*wok>~#`x zWZcYl3Riuy!IvY7YN6u>Efq~%oCj`Is#rsP8f=of^Jm;V)^kU-ZOylO<$QdUXe1FMgW~}&Kn6qSitnD3tLGPAT;@MY^ULTruwSD4 z3z>hzSl=uhwfNpkWN)ZL9bW8?8NR>nW~9J|EC!hUo3gC*Jkp9$zz03?CK6^OpUDnK~J7=kLo z$uXaG2&FodAUS}EA?T-2d+J`Dz4t972z-wj@!oE7{S!9^5^7Kn zj&H%pOTwT)1`!o~PqHpSAn}8XqlTzN`2g1ul|=t%}vH9D6lm?5(R|4gc8FA zI668E08h+l=mX8(aJYdWcKD8_a6c0xF9js7fB`GeK%P-?By0q`esPqs2Cv`{Q+2i- z*uf(@Tun60e#pUp{i;6q&=3CQ&tR1$xbg0SZys^gvIB2vH>8KOH<95^2u7koKo7#9 zJ;k;RBRR3FG!5B#_Fc|C#QKPpGbD71wo!H^XDwRx3;crifuA3hFWr&9&0b)1LOXIt z4(eUbo619)3ac=AI}#f=WSK~W*XW@Q5gO$R46QbEs0^!r!89iO0D- zc_Dt{3GTXQ3|m#_&1H5 z+UjnGDj5Slm`O63g)&iKjRsT2g?6D)v63yoQ`~G=8C}voWcc$-ZZ?)89G*DaU}ZRD z2xHN*-m!Ar0a^=hb*J*A5{8GBh?HouKtwnZhAMmK!f4^eMkmQOEt{H>SvHl*&hr>! zXDqV~vVIezv+g*_^{7#6wk2G2oy&9*YG|tbR`n-I4=%I}$a)fb(<0eJ z{M~2S23?831sNq`hb{3XDTRLDBmdQX{a=2%|Cggbi=R>6r2T*3A4>daO1sL<#8anF zv}6#N+39;XWr1&<+~VHQfJ} zZ$HO><5gC07o6`YZ^Bl*a68--8~mftPQOc7q37|A;}y>>;Nx%s58+24;4xf*1Huh^ zU%KRUsD{9g!H3}I;a^Q8GXLFIXrY4ul97~+&J&}Up>zS z{NL|z<($C3=bT01sWFN&(O*6n9Pc4<)p8F4>O@#y1;NF@AH3uX7t{v8g3eiq1}xDV zb?V6`Fi>1a(t;Qp49Y}RpCKRzD-dMS28cFDK?^qXYqNp|Vybl9PN#nmk#NzANywFw zFe4kOq98ddXK5@C^v1d3jlnLlGX}VVC&mVV40&ewWIVJ(68Rv_xu4oyz#tzQE9p?Z zIrLCY4}VBInwTZS55q5jGe5?4LD0bXkAqgJytgHz`Irx4o6N@(&=3v|hrO2%_K~lB z6p9g$f-qQtX8xS(qJI+heOV)e0RoH&N=1$jq(nZ#M{19zZsIy#v;Ow9J_ivL{h*oO z2`b|Q>WEIL&!!<`di&RKMY+5-Zj zZHNwKVh0Xj9bxYQ1QHU-DVic1qS!$@3*3O`V1!Gs?}hn^-`cPQ1Z3ygg2xTdGM5W3 zg;mx}9E2nNQ@WeT2nXQ>?`Q%BB2fm~Tj&|FCo)6OGyqTU!3(U9*jM@rYt@J9m!uVS zL=TG|5i6Br$}!3C6*|Qp5iRZ|t?(pHh+)io>RF6Esd1gbBh%=02}>eJEy$w~r9@<> z7WKl^_ijZk)qBPiwTpTcnPSriP6onP(R7}xj~g~)v87IoTxh(Wl=$+|`0K~DEB>qn zm9wN9;oj66`0Lc4gWJRl)OVcIs~Y$Cg>#L!xP5~tJam7y!6Jq#$CgXl>Q6&`vPN2m zg|x^#r?@{*23DP)EtSny8S@AfN&`g8qH@%7W5JCkmc~1#U2h**#H%ZY!lS)4*^i4J zbktGV6t40gejKCZONq&k&Xh2~s z5;qe|Jh|HJN#q~}&$nrnIZHTt66vDSA~T9do3##35(9X`R@`bLA~s=n8(Q;aR$q8D zc#_?2sEQh4iKTPpTsoV=P$>cioGcgNl(e*ycW^nZcoziat_l%mX=_{Um1S-Ig=BFD?^X_^F$$g0G8j!|{}E`f>Qg6}9D?Ew8~2 z_OO{q{sa%;U;6_8w!%H5!1@tCe4joM8+e7kcZa_ZOE`hg1h4G5`!+{U>6^JYM2u`s zc;h1wG#mbfE6SdWhV#UaTyT2DUVP`2t4hD%bLV{MZHA7RODUs?8mGBNrZjT~LV;#> zCz1m*mL0F1@OO^Lm8)Yayz(x2!L1uCL09+%cbw0NUpwLj@r$s72Cm>6iRWMer^erX zkza*hfnRI*KWD1=1iTCt&f#Tf;MYLYxU?YhVPFLI&_O!X7&L4D6v*$9C<8cXvW>38 z=spe$cndCI`(D;5ygBAOdS4a0l_v zAc+I4xj+>>G&%|&7u z*;e1yv})~z1*_~k>5YAkG1jC-qoKqm6e%8>y)M@9T&uP-B}_p8)`yBmD;6uBYq-<0 zPF6fBHiXvMUtY%Lz%axv)CTv%o=d>Ls3kK+e8y0P{i1~}1 zlxl=fg&T<#tVP1IC`3ZSlIq>8wOdCmXz%91%HqN`g5)Na4ROTki04|4B$@3zT&&DG z<9_8yNgr8p*2HMq&p~uQ+Zv>f&nPWUgKvCKkk5=A_dw zss^%H8aI?isf1dKrR3NV(JGH2SwMu8mLd6=VuT#3H3n%w4Pit4PQy!i(o|8Kqg(KK!mX&5CZjd^x zut|*0jlhB`5FuO$R4Bp?1q9h>Yyy`X4{r11CMU<-xKF->7Fxc3oB!%d7yu8yA4R}H ziqF6)@g3}nTA?SNLthcUAvSCt^Wl;IMDSmzJSp%EID$1S;cpqg>x_TN13aM-^gSU6 zFTg(qx8NBVK;^HV#eM$TtNg2B1PmMsNi4({#3DGuGHS0CWD-=k0Ecnf4(I{srnKl0 zz61jlzK1mMzlA>u;{C;7$2V{D=RQFL&&_~T02H=Nkx*KDI2gIy^f0U3?8OdxaM+79-Fn`*=1dMUlMqZj^}hMn`8{F8GqxwaciGXG;YIi=dzP!@j3v44MXq^LzEihkVt>t|tZlkT@@?${Y1(!3JHz4szs8c%|Zbj|@Fi zL}3A@Vz8pNlH5kGNtVb_ONLr&p^BCWnOFC*0$8MkDHuFC&4tGel^fyPh!W$|up16l z&q%1=FvHi!-abLwICAGh^?%vbpU-tcIfb)SKZ1+cP+w2wm!Nk(a}me)cy^_3h#_-7 zaoN(W$J>oc%};}8%Iife8#`&^g=7^AqK=l(QKNlso|Zt20}D7`^FqtbhNAFLN)~|# zIY}I49kpqlYU4JB&UtR>8Z9w>ExU@{``vQj&JmzQPsF z5v!IIjLwlo*RU2xW{xf*61gKVwxR8woEQvKvL>u$kH_(PWNZS46K>jjTD2-hfusJJMX zERIo%*u^f}=-jBZfs05~0jQ!%5iTMiSSA{qF^3L|;0IbE{j&PL$^fkB8WM%cj^ z^w3YB^d2-D0F>bVb^ew3%>kl+3ZB8~_fVo5X!uWkj6J*xl>-@}g*2(`JIH~9*&)DW z`o-J^9I}w+KXL8ix8bAnDor>9gQ!blPlhEdpo7Lq6~zIwz9!|^90N-Xh2jjAQS6;A z*h2}5*g3lZ=$Rt`6$IlnkU#~W9|}KYb8_&R)E@$Z#_61<5>SKAiRm!Ul!hTO22~i? zTyF}WX+P%LQ_Xa*IyKLKbGD*P90q6_C=fH42YYYtZJnPPpJqa3mI8J-oPfby7^mvW z@x1^W2KBeg-LJ#@*))dlk*E;>81rC+5D*^_a58_Y0{p#IZNJ{yNkyj4xgP)I#Sb4) zctuyRfEEo%7`OBf)L&M2>=0u2Pd1w-Px=z5IH z!3Yk*p7AmHWx5Yh-lB|*2?b33EF+G0v5Pnw{r*Y$D{Jl(KM5Jn zlpFY$2#0<6qY^hB@zQ;zUhfp%Y+*qMIXFq=Hr23Q<*H&vAb0km3r}|%y_n-kOCM@2 zE24;OY+w|lu}h?cyAn!7BRaT*tFX0{g-9YIs5Pi6h0AJ}#UE9*ru|4X@!SnHruBlH z{Cu$UQ9X!+rJQ4F%1$*ZP{C}#fDi*I5h1*=AH6PhGuap@V)WT!HI$WQK881t+;)}D z>&9(>n~QjEWj7YF9Z-bANLUwnX%NM?kOPn>&C)~$2n8k#87xH!Wu+9+hy_|^Js&z%WF?OX zBn;@?HZD^vECy%ix*CH}5>5~ShSPdf7zr=Z$U4PRiDF|>2!P1@v22_dGo3JLk!VGO zEv3Lk7?kiLneaji%9ObS$%y^5qa$;PXf1>dJ zI%Bbb@3Q}0@DcP+bK^^#e2T?J$NQrud6QkCq`7u$AGqk8UTh#kGvl(!(82<$xS4oT z5rpVKOnKg!L*b9Xg7+2|HbCaz^$Gq~%cl;jz6OW#JD|nb6cAYcARy`ge}&-8eliaQ zr{J&yz&-%tMPLwf1eOIP0GI+ai|gn&xC6fnz6Jd}UHF|&3D%*GFA;^XL#qJh*I>rn z(a)!XAij?_r^$wiA7E?)m|)YvZ=>WN3@4?7=z*XLoZQcGpE5#u-^&qg^t*PAtS_l$gJlpkimi&W}uWBBq}IiOT7RfQGVo?BSCRPAv zG@3QqaPgFr8z>Pw@)^Y#x3mkiW&bYA50hUc-T*~OHD}A2TG>Bkydbo3YG4y(rd6c+ncoyuT25WJ&=GBzE>Pe{&3wK((9MkI?Ug$VF%VW@pW8%uSRS1%i zjnc5)q?MG25(ENrjb%bGj=Vhvrsp~>!;|dF)E95}Y)kWK;K|^9kh0Nm3yw0!EhjAv zyjys77261tGHN4^I@(}eh{{InF%6N3#lno*yN0kr)Vs3tX=>dCm%*$WM8VM#l)?Xj()X*gSuRi6^OjRiG1)#wT2pX9yf)F$YKtw_%=GuV!pvycb zw$305BqJc4>bTN5S_O^hF^qLWA;~<)GpFx)G^i7M92tp|Rov*T4w0OV$3@W~f4;S4 z!@dwB?op7Bl#-ft9Cfx%B*h?hct(yItPn=*!aVRAm-4(yOVQ=JHzl#^I7+OH#^Q~_ zB}8TjjzlGmkRrOo>4GNs?$S2d#)y|7dw#2lANAqiaasRc$9xSxBfkj0qV#`C{vQ!_ z+w9Nl*oJu;+fu$AkZT=0Dl-WDWP=zVW9D zM-U5G%vkSh@-qC(rWCD4xG*>dk@$U^?xh=l{g^-bJb(RdxP%q_IPqcZAF(`U{cW|M zS~VXz&ox;bb*fMasghu4C{W;ufHM7J!kaiG8HC^@ZW;|s$g{dI)xAT47|A}4))tuF*YW3R{XY0ygv_zAb#*= zTTtH99?l0|=Ie!fujl*v+@#s|6l`D%XK>6cnz8Q(VsQ3>{lD=$V=)Qfeb6;?8uSQp zO@IAhlV={de7(T<_f&WT01+dIf98sT&)tH)mkFo&=|XcnE9TvEPQ897jOI9;zTlT& z5R|8=n;|}Gz#%@sKnpd{6OJ-@g%Wk3?n%O7R~QopOOXp@BpC!phL-F`vLA%%zUM8| zocntnGB-!I3S7eR@0@4EdDilF%c3HvV2R{}VT->K+5c=$NAl zmYb)ZRePxf&7LOc4FeMusdIXdh|~(VRKo-+Sa9L7@rqKTaTCom*5;O7#BuLYBa(l+ z^IyJOZ#ABZj=gRv|Fo5Vgx|U33vY4bDHp+mRu2|zz#xJJFp)WpFv=s+)6wuSWd)B1 zd9hEfV{8<`81lda34{q1(kNO$?$l6gvB0Y29v7}Bqn@h@m(mCdPd-X5RVZj>B_Y^5 zh~th`(%Rw}?sxct*jl8>#7eA12Z*SQP{Xv3wu_`>PC?ZT_hM?D#i$`i#j>e2N0w0~ zKoKY`6urV-1wm@XQd&h=AT)$VB4C}klhvVZqTq%($}r-YXpkUGd$Su@#=Zd^dITSV z7tt0A^HtVqlOA=7Qr1Es1WKVMJV#&{>=|jFm?{PkY^Jz!RC9oo*;3E_=0L_#PYKICIoQA0`XJ9TDJ? zNpeA!yiy|7#2B~)3Sz_}q7R-8Ho_unl|2=TVrgoPSwjSafD$;7pb=|lB?PC^GYm=eoF|WOn>eRRR*N7y}8f2mperS+T4WKJ*0I zU@;w*fR z`4C{R24Dj|e?QcM!=8Ku16808VDbr^*n*Kea!Ukbj~B>$Ho5%D83xOX2#_>-^dm)) zL8QL03Ek}I8$(oQ8z{6328%(Bh`un?v|Pk85y8@=V2qG!?}~79EeS(WL{>_qpbJ`Y zL}awf6jUx595p&iRtQMNDMiDW#vDV#c9e`tN=_3N;IJ_E!Fi>xa$=EaT6zyj%S;$0 zDM@>aag6mjM`zsbxYNbnt#>3WB&dXwM6^WX@pKViK8+WN5q%p8eG6V8egghRq>ZO! ztVL_=a`wvBNWqaQN(>1PRS`tM7y%?9$)K5ex@oW?zy%%}a7RD~tpahHD9#w{gLj75 z7G45#5`n36oup{QwyO6yYk0TtV8doZyJ8GZ#959mA#q>q2a4NJHDXOtn^-6oNy%-e z=&PsIB9YAq4x0)s$%=n3Q9hF)a8 zFL}vX!R{8T1>>i&cPaOv!)~J|_)`=JtR;+a*n#t~^759C8)J`)`it<>^3UGjpZB2R z6$uDJvv*4qjZFpt(7`$UC}fN%{O&9MJ12aUzqaB}!e4LU%kT!zZnM6_a|@ckdm6S$ zclO-BVI_jsD&&}FYBNpl^8Qhv0R5JcLV*@Ue*o~BHylI^AFOni zqYh=lQ3FuViG)PJuJQ%(Ne<*CcpV0D6|8!?M1gHkz&;2fOW=^vF>!v_tux60Z@~^e zJ_XGie!C^`%)ORHApjlB2RY%Oxwhb55QMW4M=N~G{+z`ba^flJCP3^%tEd;YPj=eW zB7Ztc8&Xik;0jTvo9snSn3J3)6I*aFkbCbWsX@Yn*wEgfX4sGyq>Qg*$4bwl6vKip z7+{Dv3As!%!|}Rz0;mYNG@yi2i8x+*(?nl<7%cbk@MihS2~E+b$G9kEjCe`)Yt%1M zfA|}E`5oR~)q5*0L)*Y0K_d2O`m{WF-KFTi{BnuD;l+4V3qx8crC5z|jB& z84hyHBB(L83X?|^StZ7ZiVO?rJ(eL8WwLf0S`bmtCc=W_Ok=dDAp#`;fjh!k1UX@e zED)s-4hkT^rnx3G$g-)RBltZ0BHTpJqx*L0hOq#z2#=*94hJ z$ROqw0K-M9BEkb1jL47?3671yf{=$cB{mgD!Y94Qq|%s*%Y!5ekwgxR=+PKtag<2# z6dpKB2trT@W-a^}EohQH(@OT3YEE5vez}HBK`Yx-eT5|L4Cp{`Y=t_#3j%kpBe3-=z5; zVgKDsJ92SBzRiB2)O#q^q}0GjbyCMz7x|L3i*c!PL<E3VYp%ZfvSci~g;=Kw(B_n-6Uj|tK8*A{#s^Q*7(v9ELIhk0qo zjd!VFKat0eJ>_a4jO@788iFS1D_hu9_M#-J7#xfvNFX3kkQ#DAkid;p_=W-|JrS{{t}n-}wl@EQebDp%Cx= zr|vzVFFV-63T&E26~?*b5&5^)-tvPa49q%EG6;AN-Lyb+oiS)O2G9q?&6mT6&2!7I zKg-;`f&%dYpUc7cCn47=9tR{+gYOApOi-F@Rdf*{@)b>wL5Rgn?1g`?s&fIFo;rTu zI&d3ePjN6Zzyb4X*+Iqb5PM<+iT4vD3Q@r+BXy?HMNq}nAysaIH{cPR1U0koK(rz% z%?=#&o*YW8@8#;{TUj1H72l%4QthIrscyNb4xIRs6E zdKwYy#QbWfp|{fb+jsk~oyEH7hgP9x_ybsA!z{#Rq6f z6>Eqs`5CmClLQ0LwhRNyW%7}6z;?K_{h%t1FGC z>`V<5RIo%eFv3uDJWz!jgRysxa%`|(w#SQ;Nvq6S;Y63@Bq5@fYU2>Q5pP*$MrU8S z8o4a=Mven)Mqrspp%N)*A3?wkqD3qCcrae1wkccJvz^9moGfio*~wR}AdSJUvT3vs z5zMb$5R#!lGp3eE2u!F-9-dI|48+3BU~S%o2Ipb19^VI-g|;&Z4+RmV5$!xu)!3YCUaj{sj?D$ylQ0yUpKg1TNJip}6IDheqt0x@Yf_a~OBKHzYF#boC-*>^Ec$uGA@$4~UA^ovxpMRVm-->pqjEV+ZS?EHWcii7a zgYnowD5x-McBwVciAESCBS8Z_bS>w>&pQ89<^Kv~5ELkZi$%Zym5U?3`VxQn4&N4k z1QM*_Rd@~3`{}-O^2QF9!k{?2S$Dt>z5bJ7Pdj0x@--ZFffINY`swZt0)!mxsJGEU z^?c$z9I~OAa+OShqFEg%&_n#7hy(rBYu1hs@0W`Uj5D_@?W};zZWn<*hyeiTee)11 zr1w=sbqIYakl+%&73?x6&U1kUW_Y0YLsg*nwRO^rsQEy8`So&R;kW>74%U#~BYCub z;9Cd)4m-pl-rr8tduI|iL?N!9Z_vQVKM|1*n-nO}oMugeI>$6fGba)XVviX(2wi(8 zGZd~zlu*W&_|DtCZrG~^l) z7OErr9aSWeg64>_MUaBp5EfBQC1iMkY$zx}rD>oK6pD~l8`Y+;5|L|7%GA57dJ^)z z*^Yf%zWjW7yNy>zo{Q3?@^!0k;!fOs8ZZ4uJgxf9iarPs>cNSIv(ax4&=n( z3_%S#lY#IORw{cVA;<7=BCtw0R0s)34i#Jr$k0O*RHx!gRA-k50ZpYzq#(!&MNq;9 zM}=?#RS2OFM4*c8+_TF}O=7I^bgUPn!X@{xnYd73vwFpoDK+pMZoupCp~~-jhj-d^ zZuYof)fc3}p_)Kajc~3D6>RptBM5MmFbIgign$7ygu9kTmMLN%?7|d`L4gq90V5hh zyAs=?u3=4#rZ!P6fjpuHK!75OtJW}ccaKN~N<@>@wE+O`gpW1A{T3 zhC_7%TqLK#+-wPW6iY<_1m>8y9CVbz979zW5Uxk~2rY&}ctX`#7#Sn;Y#G1j(Xczo zf9G`3Q*JZdg};G5n(R-BM{wd%LSD%irEKzehV|GEI(#L{kq1peA`aCWAcH$Y#f1qs z0JbpV0i1pa~D)v*^NjP}M1tS4UG$1fYlg7{-Rwx~Vza{=e;;#Tce_&|> z^&sB4&HZEk(Ouq36u32w&M~|MUxnpAR`2+10DK5~Sn|&}2}u7;M{{Hj1%vl@Gz-#u zA22{OA8?Qu@CG~;LuCsE?u!~EffHal#M#ddW#alxr=0?a_`X8{Gr&KL6fj-Qf?2f% zX2Y2{tZz_)0EB`N2I)G#{?zh(eY!&l0E8eJf^e#cYYdqI6e8Z^Av>ZV-Vaa}Ab$HL z>Vb(CEm4R)GD5gBinv~J78)S%hHYZKC&LJUf&?M*6f*LJHDrf9MIiD5J7viDQxu>d z^kGFfN!X!E9TSB!iP(Zb@2MFW#5J?89==-{Ht-GjiR+aggb$1xtWXvp3ixEfdw`MG z0A+J%#X~U|$WC)a>F3dRFt`B~&L>UibV>%$Y)}2xBmlm3#KXkxf`Ez_>VlLA#~|-v zMHuu@2#CxAWNd{B0eho4f-CxGbjN5*JfOW*>J_`KHk&8|p2#3*XjW8F2L!Yrkz`&< zY++yqG!gVsoeFl<409O=8tX7Rk&jYX~kjb`pzIkzxSn0nJN+DMya zi8}V`;$&2-NJYM5TjJ?@__gQiy|rF?>d%FDOaG}{ejab|A9^jC2fUT_q+=6Y5r#q9 z5tXPYp&(5TPPGWEC_*Y#j4Vk76|=pYM+97iwpdmSZjRgpzAp?)`@kX$D+(%U#Jbo= zvxiMkL&@2OUnuQHEzvntanq$C_6>U{BLfrk=893A8yRX1_9*0vIw|@AMT|xJAzU;o zmYL)lBMl{nAyTk3bA>~dEQmteaFj%dh*D!HJT2OKtg5y(5z%Cj7u1J^{F&#T+9i@G zt|!|}prFMPBq9hQs2LoBrXxLpE$KGe5({`lJWGD(uFf7N6#Yo`R6VX7L4o5GS0io+ z6aeLr>N*49F)d7@BN`|{C4d6wBco)Qt4e32(0QRR(f3wIvM5Gzb7BZKp~pjPs#Y1y zn?{{QJ*r9;!M4Ojs3l0+ICYd;BAJis9WpAU6rtDz569SStnt`4+7TAsyBR^mF6djb zqM&d}Wh@wEqp7r+qu^=bS!G>mMR6*0&?|Lg?1~1ljA$emg!Q8uCt5m`vAqLyiAAQ7 z-d^!brF`*8f7ET>U9`vWW7sM7&1CPaxcivPp&qSyy2;}P9S2pu4NJ;~LzC?|7&L1d z`=AH|gHjnPVN`)Zft~=*WLPd(WZaQ42J3U0Q;hE+K7AWo7~vc)cp>v=*8Ig4mxbd; zc!!-!f>TP5y^5AZh6Z+|J(lt3;d%6o+QW|$|LiS4`rXVJ7}q4gj4Yl&5B~zVLjZFU z?qZ;y5Sx!d{GnI)Lr?i{e3Yx-#o3PP3NLDVym6>tyR_;T&B^6s3(z5&6~Pgc`+uSb zZ9%hxn_m_Ge)w+?Bmg2P&^YHe`06pkl6TH{1{IFs$&BB|uO;9P*O%aF&k~l0I&n-5 z(qxzTVb0_*4U<8w25t_s9%lHWf8JO9gL`-ghaU1~t!1{A}&zxyAze0m&diU?0Gmm}4%pWyWK8Jh|?M z;LS{RvLk^JAjcqtGfM&vT|3upm3h>GAV7lOG{rVZ2hRD~fCw-hAV9*w4sQejnb{AG zLxqF_3n*N#R}sK<^u^(I!$}Jw!FGuQR zfQ(QC9K)M%3ZDSY?>In+0JYR06^>vF72-M@Z$cuR!x9x(i#c_VbO6{ZQz+mgu!IY^ z0r|c7X1{;m#%O%g=o~Gehd{y$GGtH@P|#|Mp=Kh$STw{)FCuWjSgfdfc6*K*!l=)5 zxs6>!w2UL+G@^$>tce!Iw2+z+K`E#ZLwIsLB1DpJ7>p7!0+9j)LPDL8^T=}*p=yvx z4K_GZ98hZ( zUtjUWNI`-Edz3KYkSZZ;3kzaN-jNa>hEnoKs*0c*A}Vr^I} z)+P2}5Xcc=NfS0?vO z1wjN7fC5thpa>iaTsc`J;=JndNQONS5Y$R5j*J>G0j{=gn;N&Buyo~dIYy2=5+k%& z2?Y^VQQSNRH@Bz+6$LUvs-$g1Es>lnaV~|c537VDcN*2fsj@&p3`B7v5OlBrK|@qm z6~%EtpfHdi=z;`7a!SM|Xy6Dkq@Y%csKFj~VNXZi2##v`efO_^_Cv>S(fn~QzenBc zV?8BztJ+%dzQ zhYz^*jN2Xe7c4%&ml+tRx>*ZY@O;OgY52=;a`_9WU|%HPX7euNud_1hG5$QX{-xd%}3c@WNHY*kOUs#oJ+oHb_Aj?||Un26yI4Lp>N*D}MbJF9j+1uGqq- zpuk7@7yk+V4{IL0$&Ef=J-B5j1KS1yV!OMs9QCH^Zwh!0xP&WM!wy<_5w2hXE4YHM zz`qp!D*yr~0f{p5=#>A($9c#2Q8TfS%3z3368+Q{(ra*fcPDg z%m$Y$vM|K_x*Fs&Iw^jaVfY#sC;+U78F5cFl_{4xHs4D3gpB z2+eJ_=?XNH%5EelIs&+&HppOrL@a4q^2o5q3kV?Kuqqc`Xm6nf9ls9H-lmFlNd#jig945wbbe40R`3Qo=$X(Scp)4w;9$RnM-a+HJbI) zgMh#xJZ~`^R4W0ocnmxBCgLyw8tm+j&1nNkFf@kV(u3_#wR1OTS z3XkFTgfc&$S~Xm+pQ5_#StB#67u%F2dTN6H9Cfdl2=$v8^^rC)8>&dfCPx+MD^L8_R~LMV{h2FONTe zD?U2#!`pJU%22?Z*2__+CU}-lB0k^%BUe619Rx$HW5LibW3@? z_ic?rYTBw4yCGigV2_-P6ty~2aZ6%RzLpPASNTQ-1 zo{ERgSs#l=V*QmP(f(NGzBb`6;zXqpg2p`v1xk+rAJ2oOG^(ao!`#0H0G zNupNBSc@6j!)M@A@Li&ZJE*6*Ag$}Dtp>-zjAX2xKC=vPy1**#?2MS|Dh-iWLU>3K zgu?Jj5(p3IBle*TC2UjGP}WH`bUDNbDKP|Q(IzFa3M58nTj_(#h%IabuW@h3JLi_2 zb}gh`L|>8F7!fsH1t}N@s-p_-owUpvU?{chk+E26A!<+q$AA*Csd=c8O_wFcu&u{s zA5mqQO(u}=tY}>Opi?zeL;cFSK5%a(!9diIZ|RMpVKh#h1;`j26QkIRd;56uOliz- zC2rgBnP)pYZMURa`pSmQ+x%(5(H}U?_y6 zOtA?_K9Y@a8e_Sb7D{8gWBV=<+&Co)zXoR?z^6G*@W`9+5;P!Qc%47{W&ZkOUOb@> z9-Z^4ky{?SY9c%R*OXgkORa0NdEFQ5nTO(^gQ z{ExxQFhjP#wc?lV@cIcQbF=V6&L_A0KaO}O^F#2@=9M-7nqT7|Jmfpa{P>XexsU+% z@TxS9fyZ%*W8z;9e;!>Hek{j3a1R;03J!mU$nba3Pr#1256AEyfqxzjz=FEq3ZAW5 z?b#l4W!!`o#)H)JSqdCMGaUf5pzjrA4v}qU0U9BujrWq_u$rh~=IDk7IOGdbQ29VP z06;H72+*u0Ue5s_f#wFx2wRi z02?squC>)68ElAYFg=J_#X{F0&;pxv@dIqVL~=C$bsi)FH(0=KPW<%&0t^M&2|=KQ z8J@sqe@`4{a2hD%PoZIk5;-B1Ag*^1I^0Jk8Nnom52PS6V?pnm-yH7|XNqTYXI;;c zaL_-76!nIvCiMIv^*UsH8wT z8252vvt59}Iox@VH#dF%GocA;=Jge=X4(TPz691$562q?^!c?z0=8mgMG$(1I;R>TlefI_(A z8`1(FaR^aES#DvG!U)c(RTi!*qp4|u6{32nQL|Pp&!3TMzIaq!8gqQu>Pg-tH}8ASGN_!U_?XL5~--f)&jkH2_xOl(--(Va5>olGsYmC3-Zt z90DUEBDq(0qZ&JBY05a}CANhDRzW3-Xdnfx$5R-c5e-5E8YnFU$+6%f7~K}hhN?t} zknp4tQl!3y3lB1B35DoU10!lcjv+z7&WS`|K}_oq1$H5;Gz9}U3Iqf(2EB9X>}y2G zE0;zC0uO3{*aw3^(YCC`=(?&55l=!QgatSR)(z1`-w3sv;}MJv?L~!%L;~rl`n* z5K+WFv=6R=3H=oh_NpVDEI;mFoGe+3ffUqCC}tAQz~cR@MNHj>WJR+ zJ@M+Z(xh>D-0b(h&80D0->*8g)2cGYjjc+rVNs<_K_fX~kb{1zU2INq#vniq2vuT$ z0fZNFN4FwCB4G2B{WDZZExU$Srf6#O0W_KO$!X$n2JgZfJh$av)sb3A?8MR_@o8u$ z7L&eW6K9=^uBG(k29^%Pjwa8ui6wv|c8WkN1b{Pi{O#v>?U<(vnjkqR15b=m{BYs+ zIr)ms5uETV%?sb+U$o{jIF1CurTx=9mubk_tH!1Dq1z{}RTV z0O<-kXb5PyYWVVt{K_pp^Nik1Pw!^fFX=^`rS0W$Ig;=w6Fo*p#|13?V{oMwYhE@2+y zM~n-iKX8*r9CkYd*Q5f}G=XyuaUcowJ5McI0AL^juK*rs4=rItMUXZ3-Uxoq0wSTH zjtqe4F6Ph&0m2J5g5eN#ws8z33ixl4x^xWz+Yd(epNZjpKV$EmBENvw;R$5eLjx!9 zOhiEiF>xqWTs(sc5vT=Wl~f=@hD6S2L2W@~kzm*m6$yt1fFoD|Fv1>Qft#S|eZ2Nq zWInJs7*Ccwt1L5al)_cvIHM^JKtPWt+#oSLqG`x?iTfm|JNyy;99@B){T|(9*z@e1 zeuK3o97iLBNYLWp>P#)cWY`GbgNcAqWH6$Du!gYkBsD9Qo)pT$@a>i~q6H?jBzomR zIB5v)u?{sx4mwYx)W8n!t)yroZk`cU+k1?I@=^Tl=j)!DsqdISSZQ3>$HdKVrFdN5 zp*~zBVL^IAYT*>Ehyq*ENNxy&0qaRUaf||!ib3d#-DgvHO^c6^(*noE_P-4+-2Pkl)+x8 z=~=G*171ANkEQcxRc7TvwkB7+k~(rwgH4?>tn=(2#z{f!NiE%)1P0+ed&u~V)SwoY z3`VXjozX}iSPwdf3wRU04j+OSNe`ex&vF64p0=65G@0%SDy*k}M{)s&NR-7gPQXwA zO$c}D4q{1w_}Yi4&~5nXyZoJw1b=u3!QK!wfH)Vv;-e4X8D+uAnjcEEah%}JB{h+^ zkiaMdPt(bx=Xk;S^)>g@o|X0tKG(AtkN1Ve1*BypwznAa&95hp;Z8n!TU-VaTrPPt zbG~GNT_S)=z&KNPFhGI0rotsy%$Wc)R(=o7A^FiBc90=rW&vs-AK=sv0K*BA=Ne;g zN&o~@T}L^9=9?n`8FiS*pG9++=;^?GWe|vYk5J;UgHR;`WvJlDs4-hG;fTrS-4F|y z05fxE+RTMk?fqs===};N*hH!99a|1jvfy}K&6R!G1!X4AqKGJ9(@)?4rC>p`APnuna7`h# znemeyXu8@0#0r5?5(P#20JjuS_weXlX<;wXM;#m~0!aq2C2i+HGd zbHj6Q=<2aQ=+YCzP>TdxNC2@R2F$QbYKR`Y1SUnfL04#i6)E9;wXrB!gwzI%Y62G# za$*1v#)=yw0djDM05B4uiXw_EP*iH*kcl4KVAR;O*EF%#y zljMK^U?h5?4+#xK8w_wsL|Bh0yb}rwDB%MnOh^C(su3O(mq%)d-WjW(HsFeg0l@dc zuxAfFROAFf3oTKRK*U7QOofKHsdSp`Z=n~km*DGgf<*cj>GS8M+glu&MHDE3VPSF? z7CS5vd*o9id#n&g05Ot0!ifgOK`2*FjHr(|4~|g}eMAifj#L2@)8GUmD9+ZSgfi5K z-cxZGgj^`9O|E4|C{6^!q(1=$8MZ`0I5nb*5eSOo1R%hph;7g~4t;2>ctn^S1A!_w z5QJB^!J>u0jTlIKXz&(uw1o;w_cb;na*4nUxrddoii2ShVvJ~;(({!E{p}CiN1x>J zzLk$gZfv{fsMv{=6Sa%S&w_VTKEYRvfkv`XGXMcL*Lj*NAoMf~+A{XPO-I|22}C zgv$4)UFm!6c?{>!Tr)HrY}!Bbzlsh3K?^=>WmFJ!(^)!1p|z7sbpQiq8lqXv%Cl01 z07x_Pfikxri4Y?s@ToDHAz^bDm4iIYYcfJZS`im$OlfIZC#O=jqE(F{Z;jPU}T5CO~Sz5}GG8o;f|uW&ha;EEqe0t}X% zCmx8iVBFKS)P@v9p#~`tnhB6&hc8J>d|-S^evalg!y_VScCezq!M^9=HyIl$EOU@3 zm8KylyvJ19qP!yID3x09N_7Gx8ZhXC3=zptYM>@OqD0^^M(X8b_801KLb@c4q%pcSrM6y;u`6L~JMYS0y;)yHUm(3j>9Egj;^eD-)$3Q* zX%{vS896Fwi6;7d+o42S5{?F_C`btkGE&8b8cT-xj#li^5R5$)8Zp35;oz_dwxS@( zlESbW6d04#kX*YiMzdX_A@x0D#l;p{xJ0KOfl8*y(eA8Rcq2sbL znoyy3mKLcxDq$re@8xb%^qHy{Lsuw*8rma4E2I>`2z#+53K)uNmqpu=QcE(bvvosK zjWKK}5lJ=hMI@tdVvzP#yRjx{BZYi5>BN&t8l$uvn?Jkd<)vPgUWXqK8WF?=G3MlE z3IUBXz}QB`YKmOcxTjDPF`|t1#3n)*79%kPl{`U56#x|M!r9eWo3_rbM(1pr7(xnG zvML+g<+31%Aoi#a4b{i08br_++k1GJh`>zpU_X$%2&F;nOL)<~iG`_wiVsAa1d1BP z>88LqFa)YpXo4LS=d>Ug3*l&>7Wx%UR=|K7f`FPzL@$N3lUT!^;xw`hy&$j+gEXvY zgXA(pQ{lq4($?sV7Oz+mJLe**tvo%_H^%;jmsx&T>jz!r`tZ59^|U*FCho`Tqju|r ztNXFOkX6PdKrGl-j*OGcHYk_K2*61W1Iw1?Y~sIo%I+CfNd_G(K}01AH&)#3zF%&G zUluM>ol^~QY(NE!s8dCP$7l;nqM0&@9c2O*JMKTzJG)f3c*cULT$=oKhI@*J0?}ii zA{J5Z4Dqbg2RWoF0!o0RN&im(F->%b#Sr|DVK0I$4mc&z8;w{yyULxBk2HK3ULuAa zJSDH-2(~C_MplDvuF_fP1?Ohs4S3bLF;XK!RfGaX5Tqc@?4h#{z7h@@99onBx&{iH zfttYiPgXol!2J#kifE>oKo&P4;3;HaE&xh1vs*KQ2dbE6JTv^KDs}}o#M;zAnz?Qc z-O8H1#x|QA2KgEkAS7y3i!hsdU6@Fqz=LoaVG`E`Vn$>AKKOmtoQfm(wZMsB0dt|` zKqA^Xef5Yiim(JXpm&ze%T9F=>WDO7QJJtg`k|JX^eAVR8YK9_fnpvoLjJ8mk;H*K zge@$&F8F(!5cyj1o&M&yJ55OEE??SMcZ03!A~h6NG`;yRm- zU_4-`G^mGXT@SilN7%<Fa2zaP6!S^* z@oeF8!V%dupHMiZPe4_*YLn!5<(V!`AikL)vpaQ~vdp#;{6&3Is7?!VIlRf`KrioeO6sCsn*)1Ll|r zCkChi5lYI2MMPE79RA)zEh$%e$&pV+v5-N*Dk_9b23eGWVI%|~Fk%F7Lm9^K(PaUk z0G~2#03~_g?oiF-IN6{f1sF09xfLWlg*xOB5hOxnhaOJ|$pZo>90Mr=S5zs&YBIwE z_ZqlM9^i6AjyYYTH5D<2#wsU#D$wghf{Z1iA&R(!f6Y7m%Ugc!g#9TW7f;|EMmWbZ znm7tYAO(g81s2s>DFRcJpkM@!f+)m*f)IceB0(iQC_xED;EorS45*?ZyphQXw**a6 z0&s_dh!m9)kriOQS9icd;T8cS?6Hv$xa%@#LQANGlSWXGLJ>8BRt9BWtpKMO12`xk z!co8mdZ#lo)Pq$x1OZM=v6OjHYal~)%ycdaoQQxis8F2*JJ-%>NqZ2guy?ZjNV@mf zf8kd7$y>Gi?xVQ<3Z68y?a{>fp#qQ`fP_F90v}-kHzA{d z1u;M(I?fVbKjG&)p022;v>koN{Tky^PnNhrH~la|HZZ{50u>7oHIbkb)iBrsheZl1_{3Fo1dSLqYvc(=C=38rqJFRXn$hJcws9V>HGyAF2(l^qJ6__%8O*8aGG}QjEj^Tlb^zt?G^@bJU<9 zca)rK&8cV1ESx7hhCHotfF>l&B|L&rbF~fvpiFd>71Db|9>U237=zIo)dWItfsn1AIo?$`Kfw^%YK@nUZQ?TEDAkbvE zPuqzDDTgdT_1d|B!3?emfY8Ax0~y5cfY=9$Y|Pezk=JlSDNtc|fOCAG5Sc>>E)vPm zNYR0LsX5BQ)g1ahxLmm+fQl^$s24C04L${z>kPZZp@HWi!xq-Fd3JA>DyEHFSwmckovcvb7a4V(Zq9?#pSq&U5 z8e2x}$%giLLu!dYi`wQe$F~d>7YjoUK^vmLnv&@YCK_-689}gs#%-kLOsa?pEM=;V zvlJb%M_Ey5gX5*n&b$UX(P|rCS=P6+en0UV^=s%QV|?m7wYS^+29eN|A7vMW$V*s) zqmDSmdNg2=GhwKQJqc)t1ZJdQ7iM&H@qE2Z1VR!pq{= zMmclhjFsY4Lr%aL$Td`r3X@gyE?IKX%f~=yerKs6b8BUT)UP6KX=-wFB!UtIs;0qd z$%~4Rhxe6*glQ3xNi{S^G(=l8jH*ir1~iCOjTVL~Yp5mqP3l)s#7OkgI_O7A#4;dk z17nFBk@n%6K(dh#(GVx7r2q1)@@n-N;yDtQsmuq8rszmJK&Eovb?5 zp`svUMuaHjNqvvj!b5@M+Iw7%+7dksp`LJARUo$D3QgWgNHP?m&>meDUuUHtc?@Wy z*efn0ww9_Z_N70Ht5A<5wk2w%6}8eNHa%BYtP%)=)x;p|qHpL1GQ<)uq=W^jvJwvm zE_N&fi6Dm1(#Bi*aug|m2a-%oLXJO%7%{E zk-!JGkf0T2B*ULV%i;`&-G<#mC@AAAI08rmwPNDzl;egT?!ZUjYahS>2)+rwnD|IX zeUUgP7Ffe#1*Z%~EQmK@MF)JCa*BVMc%5{M<_P{eW8gdNEigXu1|O;D8T>5ii2e*a zmhTvD!Y%v_7%6+=X{zmtXI4(bvyaad>pC8ppGI$Vp})Sk`n8vOa^QvuM1|m{^JB&m zMbHc=dGqpCHwOFF6MgB(A4+eLzlDB|^x&>Odoyl!Jm16%PvY{V{_WfC)AV)t2d^o9 zJ@H)#c*9r*>za4vkEZz4{chB%`Jui2igiDa*2H&V2~S`{eI8ZX*Wfj{1AmpFLL#3+ zCY;wk%6C4yS@o>mU8V6Cz3>@JN>{J=g6C0(eUi&>^ZH0lWSAi_KcG0+p;i%~iQuWdo;+|^9?PL{Eh;nT8PB$Xb@f36EB?AVeh$ zO&*-6GvgmZ1v~(%*j09w0&OJ)JqQH^Ho`y@D8U%9M}gLaMSw;qAi~iOTN8pF26Ce8 z;qwRySA=Zfm64+*KLr&T1hztZVn^-?K@jd%#2DDLbO{I|0^yJpqvMc*5I#GGX0oF` zh@e&wB`6aBbsKCwj-iz#6v)}YAc81>qiK1&iH<@6fmLvFb=>K~Q;|0=R0@67qES%7 z4HuFy_i$nidND?Z@QC7a*oW1K2&#t%CCpGr5Eb^S8`!`Z1bBes31AHg_7jR@5!eXL zy!u6D4+?5!UFj_XKn^>{$w`F967l!HyM6Wf^g`}dyJ#P`&u&^Xq?%$=v5vNj<40_% zdr!2~gfdo%mafGMVz6xJz%`V1O{t3gB}K|)3zKP(PTylIE9bGm*9l&DIeeQ zdvEjli`;eidB%I_4rxyeG$LKW*Qo=xgcq;i8%eiQyGdJ12G zQ)~zSROKfu{eAI_QYP)_wN$=qI=A|VHva0l-*5f?X@4QV8}*fXqVh{OE=UzR3fP?J zatfbvjsfV56tpSqc)z;Y=&JF{R)r<#8S&pc;*Svj6!@aPIQUmr`~PcRzsSXhh>rw+ zPuznu7~tcX){EJT8~uTQwAyquzuu*H=~n0!kH_M>VhdvYCO}?;!*9Tzatn?rM!f3n zR^NO@zr3cqK=&*z&;nnhE3IB{|3mlr^r*gvJ9Nv!KtSB;^~!>$#_Nf5>W({!pIPv~ z3&vyLy_LF$=#2d%5PXV1@e05DYh12bIJzQY$JLQ;5&y;q<<&jKn+h7oXtC0~BOb9G ziQiT8PhQm1=&`q_^v>!16(>Wy(dyaiV@p1|e#bs^&n!|sp~>W;t4+L;X}z>pQ0tgI zqC$mUIMhtd?4A38O%(PsVr2w)Ui@fqSukiv*j)reG|m0g}14dSP_rV5^b@!@Eb&;eFq&Acd(aWgq}Zm zLYv6^7Ud8{Gi%`$e&bqtb%3CoxhZE2zJc}-;1OV8hdRwT-6hXNK$Pi=yqpf}L68n@ ziFgl1KVOdz0PpQ4&)4#@56C~Kp9x>X6?}Jc_v+v-36zNq0RgqA3PGOz^dJD+W5SFI z{%l^QX3YIHQ^cM89>r?~G5`BplYogIp&I(W*r^V+{| zhm`jsIZN0MYw!$LplcC>_YzU3$Ix8dj9}6y8itDeJ&aEwP@-<a0-RGrFt zK-N?muO=&@7ZWeIHYL31VW@*8EF;FEexN!e95(2w^fKX4Or@lS2S$T>Vqa}lViaqq z4O3|E+GUx$V|}5`WT*uyX{2-}kG!RVi$&0aivczjTrM&Q+F8P-4h@h>E0fNAx4-yR1e+_D|gR4pk zj!a$%cPWR{TN$J06MahVt@yUGv87wQu2b8IZK@QN2=z#J;Qp-R)in(aB;XZVOEXo)o}(T2Ju;OKsN1So=1e!;y#NPaE)u-}~_;ZO59gVJ96+e@GLm8Uk z#p-Dd7x*;jvpO`uZlv#ML`}$PcJelyU3y^?|KhO!!^icDrWJbbj60X*Y;TX6 zylqvYCDF7xhpvy4-bnf0f)+A@5K+kYhye#(K|u)$vBlp(Yt+Iy`Y3vVXW!z7&Uon@ zn%@=!AcI|t18kwpI{l#>YT;sX{k{j$kOPnocN#EPj+lWr24&76zRvxG_-&S$6}W?^ zlaN6oT~QLQ`C&(x6NoDwkWnB9P5WWyyEGht3}XQ35CMO^>r_Dpet3byw3`StpZuzXzDDgWc_8z4^jB<`A)DVXT4U5Bw!FADlrjZOV zBrGTu>3ap91WbG=fd`ggiVh8v4FH@#2cwaLrsC5i(D$1YlK700~mcU zj3|+e5fpSH0z?FZvFI2QkDl`OL;8vb1?s@yF%T9+qBT-t-?ONZ0)r8nL@h*N45CLP z1Rg{pT5?NuO2#u@XOfycVhLLkJuVWoL1g(dMuiZ7SDxsVkMXfKJ{s&GCiJO6 zhSnK_Aqdfn3W(7ujul9#!Gq!ikbnqOiGs$UcUFoa7{Y=q6yPWjG9z}uUTP60$xB2( z1CcTCphQSIia0m5#&UKFAdo15pbIE;4Xtp1R1|%s1YxvJhX_$4A_N0z3qwSND%#-- zbPQWmgxql=GGhfS6hTD`X$hI=pdt|l2@346B&@3O$fiI|IH9elfIY0y2m?w}vPZ(5 z=7QQ;eQo6b)C~W;JNBKU*e5?4>T9ykr8w);CaXE|OEa~adRRju_M{At&=YX9#2f^tw8z9p;B9ml|N0SsPs1@7jfjDg(2j12KW6w# z3w~zN{Ak$S>LclE#6WYI^p)rN+!mV(7HMv^HAKwBC5F?R&U(E())%XOL-u!$*b|PQ zV-Ja6f@9*gswnS75c9zF`sL4`NqEqET@g14!T7gV4}U$bZcSfYaV$WS5z3^{g= z3d4%=&EzBHv+(1IcM}eGAi;-V$}H`h{g-5rTxUuz`Q$Tl{ku{8Qf*qjs$l zE(gsi4F+LU(_)OfZvau+QktZohJq-W0z^b$5))F_0m6|XzyYj~A<`jAMF0lYU|@;d zl7s9ZEL>OCJhzQ6JWW4yOH0_T^(ga}*;~u_*j^vHWVZ;JRz>MNQWx)>YQP$b!Gd&7 zyagS4p8OChu|@+p2=AbfKp%%6V}Fy}^NCyV1l}fpuZ-UB&G$b$GFxWZ!|KpAIitg8 z4>b8&ec#|Z@|!%H3Nuw|1)qsYX66~6@FYxQTt0y6U-&-6rdtd0fxbQ~eqPaZM9fc( zANGkvBoqj;VD1?-ZKvt71`>VX)4T)9OcBYP{i4}8V*n$-0_K*_T&q8D(YJu8=z|dP z%!cB8(|nL^HV=H=;822I6GQNHWDmofC_Kw=-IAFv^8V@Sf}m_baD*xtOp5~*dPpEX zu*@T9a5b_D)=*&NK%#|$V(w33DwK1FBy0;}+%h=F!sY}icCZ=&M$ue17e5%z@9~;% zCQcj^z-VAZkO~Syj6v+N%-AqiqOxc}gyTEPiU$L4-$NoLfCerGJiHJ<6V!pnqKR?Y zs;fw3u!fT9O9?SMx#U})%C9yjrSXzCwO`~>`Oh=Qat8F$zc zgd7D0fQE1+m=H8HB!`HI5X*!aW`ydwCF+OaUj;ko4RHbqE|`qugq*F@k2Ebifipla z_OJ{o!ojD6S4b_w!qFCR95yMgA_5DMi99BPB#mKx#0ZJHBtaTrs~|kPJE@=zUa%Fh z!J6tNs0AQN19*@LgSL{Lz1YJJR>C5R(K9VTLVMaV2FTzrAeBSnzCD4CFmiX2a*Es=v|u$0>%TbdvR!x(*NtO~KkgGi*25Rpg)gHfbM zbYmK0yZ?KweyVNWGQQC0Ym}d+`M10j^oqT1F5)8jwxki7O1VN11H+!}$XIAPT2T{m zOv=Ott~g%Np3<}g0QE4e`T#x!Uxp1VI1rnN(O!TrzzW{s#vA<5J$`k?@fYEDqc>p> z4T2a^5F_+Ni)G>y@JaO3=n)R_GA8U1(Gm@8;r|IvB(yY~E?|qViQA+L*yDyiNxP@~ z5`0JcP#%NWU@xGL;a^$si8ImiTrzws$6fTt&XYWLi#WL$e_tJc_Qr0h<%d1C z;%)IFEMX5<(7_#8QeKY!Ly>;`+@GejTQ;M!KhfqWR%7%g7!x>{u*?_U<_m7*5{tfz zeNYNJ0|gBfNJh7!DuzuiT@`!D2!fClAZTzG0}-e)WTL@D85n|+@rD}2IKd!hTAw*Z zHXCUV4uvkEhT4!t?oA=_Ox;c0zQxPMUVNbYXL@^uqhw(%Nm8}98@qGcA7-vBj)JYy z1`;?Dq={1|U_}gIa73=KCtiV{VEhU?py@HT$a5p_4KWFE}j*7$iv7YKH;-{VRn5>3cEe7>Fs4`909>24UcHs{}O| zMFJo}OqYl~ajjf#fP-cjHv$WCOBM8>!&c4h$03Bu)HM(R)7mhCKA85;bhYb3pu>Sd z?`J~fc^qflv#tkZ!JPm!2X+K`8fyXI(|$qB$ozj?;$RT7DTu>z8mHZKzy}k-5HupM zQKjz4q5;8vz6`2hC=tWdhBXTO0&6&aiTxw$JA}_&lwk)Ku!K`+A@Ku=f$=5bfibnY z5>q>Y2v$acVMGl|YzGJyEsKmVx$5ah2rSQI4Iz<{0^j4%5>>h!NQqP_m7&mf9%~rL zP&+&k6$^aeY9MFYLUytfiN>(XSV$O>WY93XE_{AbEraF$AL{C4eAF1|H@ZikQg@d_)6DC|9b}E?6ZTaQcdiW@5@W z@E}2kHbRm+5g0_ENGMPwrz2h9F_MVA1PN$Ot+2oxf`FD}5KyrJ2m~Wukb|I12u~2g zgI!2PUD&x)@I{dzCsI&@Kt@1}s5lEi0KL!Q)-tEfkfA^&DLmGS6V9cxjp#ioUjHbs zw=AI*1C$BZ?!*G^VTD9EK|siZFh*x9TtZTKOy2s6wW6XD9@s7-BP1enP~pnujtPMx z1WQR7(Lp>QD!u0!yr!){Y(4z#?KG?TLUwfDFq> zXiFG0SWj(GLk#4dbmY6&9t{tV#y8=V^m+78!(W&G8#}$Rv1aex+Jn09 zB6UQAkNBFL7&m0Nd6VWC2SA4n>9;hbK?pEhb@80aBjpX@gp9+2)tJnsZNkTx(9Z=+NAF?b6e!Y#-U zlMk`N0)B{ildIq03mvCBco|wa<+=gDyrOFY)6N3>>6ioU{4fFc3EZEK?11@59QtXa zfd+iu57XTbw8I&@GCRV3YR39dS5A{6I2UY%1o~hu?K~eq79l)l7>GdvpRajcIlf-) zm)FA{#bK4vY_yMaN%r;Eu`y&pD zD+*|OHXTh2$xGONADIvt5E(Q=WrPvZwJ1lbR1pC{Q1aB47JtTWNgk+MbVTgg!;8?t z8U#x)=wb1La{oUy-htcDPb!oSOFy)Q!Lf!`4233RncYYuB6u{g-*Q#4hB>;3FL0*V z&Q=IIlu4Od3I#S`&bmlP+1I5!W4xp;uwW_jlG4*VDbY66%DAHyrJ*<~u)s!|6WSB( zg17~RW}o&=Z7UL#(2$%`q?&zPsXw*#+PimolyvLNe>wRL^acEHz?WgfZe0+sr+3@f zi4`dmPf;QXcl3-nN4HVJ0=B52V{8Nc%mJzlHhrTbyfL-LZlt&x6DVB!Lai7I=%jTZ zqCx~gYKRUY6H-rcwIYeZ7y=h1vE7qLlE@I^0#3qC70LbBwM7{#q)^nJF3}j_5K$cu z1yVo&VJHO#z}8XW$U|lVCx9B%05BM7Hn`y)R0~@$!dl7@1uwdC9$H)lAzN40HFw9f z9!;Tf1rhE;A&Z3wH)KE=bAcv$qEj=#9z4fr>} zi+g@~QjP-#Qo)zd6RHwwP?m-iebt_5gQZ(_jhH;L5rK#v2oN$@80Q!FrOo99gFTx*z3wRsup+66Q z6#X$chkI}n{ZY6HuaE^B${HMw;FNd{w&VpIQ~o5eMSu8Nx-pikJIN_ugg4Ly{4S3l z_4KBtZ#O({xII7y5D>r$jj$J~qwFIU+N=aQ5u*8fH}qxMF(l#`R#-=z<2Tvu88-|K zgTXWSS-3S-h(Cv)fG1r1Beu@4q_1SiBXW3zo}q*)wt`F~LPQV_E5axp`yh+U9Xx`! zVGaEZ$$pY~w&l*AzS6YhQ`nRK!4WSLJ5+AeSN81GFM0Is{LJ7KHc%%u`WXmr`?FwQ zH`}XWTyJc%izmv@U#b~{G=X6uh>=Kuyy69K=%FvXLVfA4e(TML0GFIEJsl+vtn%VfYx_fal>EyapLH#4Xstj}kq@ zxB2)PuNeF~yaOMFHTnJUKY}IbeMsLA!RQ8>byn8UU-R_Gyv+dZ;a@c?zStoas6v8z z$k?7{964n+1889f1#H$J59ND4RL~gSQujxZ4nI27iJAR+opcW;nXeQPFG2DV~4tcYjU)2vR#+MD8l>qvfgJ9!q| zZg68q?2$o1$+DNL3OZBEm8rDxto*oMc>8E`#2&z=IJo z3K)?`jMxAP3|*CUF}jfBQIiO>=nK+Z0(`*N7>dE&0&^h(o+&_UB0!`jybCte$HX4X zSiy@JJ;^5HflLgL0Fr?ig7C=u9Cy$AmtMEGPug#u*-NSm?7toS_j0V!b7Vd&sC_3lJQ^kH}n zz6CeodBzvu5u|NwRV&f5|1fMQiGIocKIzi#1+;Nks8wL!AwB~_KyGQ8Xa^ZApen|9 zbH2ci5u`wS;u+jzx97$)jx+xN;)ov?Ur#WAPxR{v7Tgji&^sMuqY3N@F+xi?NhA>! zAdIL4L=eshjmU7@ITkEoHxcj$DR8lL&VoI3K?)+16AVzGs%C}M3KKWQnW#3$UJxu{ zZMPP2vbJW)!aN;i-&tBt%F_a11ZFQ2ktUOWDwA^?j^vP;_k8gH72j{cC zNj9ocooo>FfrC{-Y^JH_aGGe0VWj%hW@fy@GI$}_K!PS_(q?zgYre88KDlU~+~S5f zPc&j}3}DWgSQ{Ji^Ke^T4?Ud1CnkT~1@|A#30Qp1^Z66)gD!hesYduZuIlSpzW4bX!meAY+gV`;kRvk;#b*=Rwan zQUhtu=Poc15RM#na}1_d*iVB#0 zNKL0`Vn5;watmA17Oh>o7=!u*12Vadltk6dHrUz~jXzgkNdEJ+e%kSdFJmp^mU{Qw z_N_tc1U5_xaYx#t$5-m6;C0dju^s3448q?NL19IPLgZf>Z*&pNF;W|HsZ3_ zuumxh$|kE1KiWv0LNvjWC=*?egoLBP6T+sFYI*YZRoIFe96jUw248)NUx%YHJ}ISa zzkgTThLd9N_B=Ea1oi}a;yK8es?~@22nBn}V4b4K4O5e`@2(18;zsiCc^idweK z*5c;*{)fl(_KoyS{9jD{HS(XA{`H1})TwQJ2qR#FZBdUzJj0K$V{VECv-V$LoP9}D z=;xIM3Nf;Q&j#NPepTFpPs4}dUHCfOhZdG_0w>ejbcb8Urylbwx4HQ*fC27d3rN(* zXa^s{9qYL93jGu601fn%LcQY7Kpi=~M_NvLu)$L}pNhe+@GTVBH=K<=!hr9Hpcrvs zrMI(X`O({asT)s*8||~@aQqa)`*rE!c)9r;z9$xF*d8-#(OwD9#M41<4=Dz8`Tz0q zzVN)?Sekp(x8s#NAYMnmw%|`0Bn@5kjp*mHmU&OAa0NR6X(}rg1So;QIT)llOD$}A z%*?+nC_v1*A3_BxxgiBHqA4;!a&j;jlwhPBO=lMX zgq(n06HZzD4E%KPV#iL5in0nB)8-X*^$ zAmTdXh+o@j*Uy?>%TK^R0H5n{QQ>7M@XjHy#KD2?O9_^5jsG1LJ!Kp!j=8B{!;W3#6my>M| zBw-a5lu3KEqZm<11%;)EkdhdQI?7zGNQTLpF06@S48hn?MP!BG>$7WUwzgcWp-oI5vd93o1mOKcr*;Dy*P`JrGl=CZd8{JQhdJTA+v^ zK@floj~FXt%oxyC&FC7P1fxz2; z*hz^r03q|JHJ4z7Jv87UFG)$(hET{#jWUv@8hK0Hkb36=mS_z~j?57@WR_7QQZ3cl?@PAMLN8Wkq$!mAt{O_FR2QSAGp11Db ze(&Pr`f6X!(&aBU(fpt9>T74+fBjbse^SyvJn=dSpD{ntLp|8c)Q zj&1V&5MJ){S@aV(PXBzQqX+Gu=~DZh4ZpPEd8ZHd;zIy9GYU7L94@b`Ym2WSAEGl_ zSkCqP*-qOAN7F6joIE6gZp9n$9f)smxr4x=i2Y0vNgE8}f3hNiyrl-a6&kQDUKtY( zeL$vjENEK<8s4AI6>CBR+D+lR-fgA9P&>fcA1%~-VMgZEw17cS30qQ(QX`mc3sV|{{9ca3aK@ZKW2_1S> z=S7Z~l~fR<+4t{<6@P7}B0Xe(zm|pE0N~e{>_Z@ULVW}xEukVY1|u}Wg9Ly?g&rIR zCJEArb)=pYs3ArW>2OHW7CD}XL~3v&`RtVkFtGXm))EyDtflD~w?suojXCu!uR)Xz z_y;K{Huu0deQ>uh%-x6}PvZ#KA>yb&I~`-NpZQ+r%L0Dg9t#Na5(Y|eT`(*lQ+i^= z*5E`1L0seMT%!hE5&?Q&sM9%gH!^EcoE#tmnxMi6 zVzTfH4Ro24#IEw7=l+&38qHQ;1_uR8#Q>YRcM+q5P@Xg1=C>Gmi&D@U0Sy$Qg(P!P zz(7Qi@G-)Ynx;lt)=H!sIk#wA`U{G&TA*`Mr+kS8t;hw>k#BJGwzlGY7tby0Iq}!w z(~5^3-;8=pynwy*TKf6qN2c@83d=BnVOLl|A0`Bk@k&~vJu1X*@`W#mJXMyRa1?Un zutKYbA!vvZ#e{50b4hzLR0zym9u#>`IF_Uc&Vx`ABw`CkSZk!B*s^n(`AI07>e9w+ zLs+e9l9Eg*hEZDw2pEZ8c17%`#Ec3VfXms8(LQ+Q6W>+f7O|8kYDK})7=m*crzsk+ z3{qt?a+>L(kFa15K`O<)pXkkw zfA&@SGughmj`KkuuW=*AFSY#L;7?lIDLjM?bZ`s0TTjQDO1$2rY;!n{Xv;e?Si-g9AiN{NQ&<~MA zCT)m4oMQ<)#akHA77E%^JJK3Y<`-z(wcXf1_l`gJk@n}a7D=DO{+p?}vE;Ll(z88B zYhqwuaIls*MGJI92`VHw17O31Vw!$HFojt>&v%pJb9q;K6G#!nuh&?oww_&0dcir zqolILN6Y_p;-|jw`p3WUE^oaMH`CuO{lDU}yLWbk1i}m3SVjHF?W4f za02V#&x@;;)5;J$trX*9Vrx+NlK5NjZTPpt3U-IX2hZSFV3Vlem2Kd#h0>BH_|g(Y zG|&=`rTt=&1KRI=>6NGNp4=G4S;Y+OI#KwHdl1I#)1mUUo7^|nJrQt^^o00bHEtB& zwmMb+I?n~4`Urdro`JzIn^l=Z!NCv9m;nw3d;nhZ5jse-uL$5KY+(gYX5=dbVU)Oj zDKy`G_FRgCqQwF2gkZ~akbwk%4wH|8JU(gSGbs0DE?+>yWzOZnRM4gmu@ zw2}+dLo~lY0e}&L9a$*TI~5Fa1Cui9K|O@I3p7re-JTfvO+}SBLL%-H-60m`Fy;ai zq$Gm~r~?+b2uC7jrEoGw0KPve{+I@|KOFH4W!8-6?v3lP&UuC~LQHmGnic@f`YURt ztM}LA0JG76puueB$j1(w>mXtT{~kqzC1@t-{R!!kNPIf+u}T2&1$YNq=-}OHuJ!=9 zXy6uXp$9vBcA({e;zL{$hd}c?g5W7scnM%e!7e@^Td8;r9y@25+CfhaTsU+h!)`KD z#~@&3L~uT^=`o{-aq4Ek1K|>`7(yj*;b?^$;V45p8Kg1&oG>u61Ox^x%0%E!n$}bt z8B~;o2w=FP9*d1Eg`FyGXgeZBZ!BCTXj;+&+p=5PEh~8&PgmlIJ5m4piWdK2;_nE= z>u~4W_T~`xy7b|&E&3Mr3f2+tA}2mfJcsUMuj5znA~q19iq2t$WpKEJHD>r8vnjLx zLPU_t?CLX$>Cm=i6^5Ev01 zv2b$5;RFiWVQU;k$WpMV9*X3ai2?1g=irFABpUP_oDiVLkU;1PIy9|l6fuVOa03!D zVgUhQ21g*+z(6wUh@O%v;m$>yU%V*gt@5{D*8f52572xT{@2cbydz)n^cl;{vg2wb z94#Obd&0nBG0(}Ebq@+8z^MZm0^d*)v{3ev3NLD@o{O~zn z`a1PPdBIpPJcc~dQxq{Z{HH#w?DUAkBkUv2o$v;Lnk zw$I1@n`i&wWnV1+$bR>@*`6;=!_nEXuacVO>Qh(wqF(IBo{jIzvi4?)Fk+8!O@t~@ zkzm9JG?EOJIZ6*;hvtm~n8Qd7aBKpJP&ve01PTlgG5~S#uRxO@!J!xi;Z#VXf=|EY z1eT8A7*0inDwfbp$}LbFL5P4(9E(Og2QLLV@eFpxsq=zZLYcCq|2{bUJ11lpvrh3p z6hAK#L`6XeL>qXe2!oU`2;>v*10g$K>Q`Q<4;TOAj{m6OUSddOo0sMUPsMj(F`EHo z*g}QOSB%#OjvIIk13Ws)gIdA`Z1!r;r4kybQ0G3xrl4fZCdd5O3W>irjm@OnWkcknA z5CjtMC5QDK2xy?`7)R>#erSHKgFdg5CvpNs(9Qik&x&$gy%)BCMA<^1796h#asxpr zAc|mwKpoWyA*KK`u$f6}xq45wQ_XaH$jC>;h;J$4r0~OVa}Cb8=hQh9AD*E&JOzh6 zFe$$Gr)WU)B8>1D((DdNhbCMFgLyKQW1_%0{0Mdi-$w7E zjtusIn$Zdyi2-_S3p;cUw~0I0+i(sAE&*cgDxrZ$U|1-ks#F{bR;H(GBNX8Ss%jIG zil}HwZ3vMnTEG&u(vaC_T8l+!FUAPJqAt;K05~REXABG)M?zwN0rqeXFF}Kz5nC`= zkg^!%y{m>LsU-p&Tc8F9cd18PXweOP0}gGV%%Y_Y&SC4|$XSRY#)K-11vRlRqybOS z8yT&MYN|~WBjJuD!U&NEyu~Z(p@_3kbE$5p|L&QNZtyRDYR5zTy&HNa3-mEKAs(a0 zr~%L=+$2Wwl>l!`3^W5+XfN$h1Fgp(_7Omlo;oK%O$;7#_C);G}*af504{REeD6oXfU>Ah3cZNNy1xt}paw?qd8MXu@i-o|ofCaQYh$bMY zBEX>|Q5nW48JC92af#<60q2#g!Wc2AjAR9wkfkEEJ0F|y(W0@QBD_O;a5zF8QKreT z1cO4{20|l**oC&$J0#c;pe5|!3KAT_2otYKzN9`y9Vr_`q{2tO+ka-|fAyv{=wD2_ zr}Q_L@uw4Mhh5Mv@^;NQq7g1pArfgMJYQyh^ zx8c{|BX9~^h$%Yi;Pdwf!8vDJKKUYFzQNHkI>WArB?!I_AA>*1jW>C_l14s%4qt^o z6?_tIig)1uiS<^^`C#R=`Ws*v1@J} z*+}!Xo%O@=Q?_-fAXPF1Yyc5K zfhAPf!$LDCsDUU9g&qu2uoN%D7c}_ZC*qP4oPt@LhNW34l!IP%z-I%2m4NhIDu^0h$k! zXlE=*n!`Xa#gWe^za|1fA;f#@9yE{-q5lDX2!qaZ17-uDO#9PC+`l3UqmU>8nps~J zq!x+&z^0&#K!N0i2-Fh6B!_l&%-QEK&Bg?p4sb}&GRufOP*|M0xzme^4=PQRo}r~Q zbUV5QtB#{4#t|UH!+~GV{81Q)uRtM$J@=aaQA&5s?gk@K(1+kRAmE=xO7Io<7Fxk8 z#0IX&0tZ8Bas-S-28b=HQ#{xJ45d;d6D_K!1t&&mutXR*(V~O_0w;vkFb`2_0?B%; zA&dY75xDb6Qed!##@RZ(@R$Sf19)HoL3Qfnd8zOeRw!c-6@(d)Fv1eFNJNDl>|K^D zODU`p%kWdwAV&qS6M@0buwW=e0gwnVN3b(`h?w8A!J{|}5wHP~L^!Ep!VMq?UZ6uF zo%*+fW5pkVHTrJw5-M1r9)y4eN>cUcs(R&}lszmW07#A*0XxG36U7;v z(J4WOCvfSsMur6p!5B0XRmzkIOFONJ0a5T^aHI*eAbg?$y9)M>oMSkdUf$$9GJrN{ z!I)x(!BQNHa##-EoC+@78AH`kq69cQG@!uuN2;!2cXeFhHRCUv>RRrvbKnqA{gdLHI5soncEhi& z?dNFzoz=cF@b!_8b_|8+$wv%_`T?F!wxk>LT?g3gkIwGK5yQK zU*YqgfZqp?#LMspAMq!ik~Vzj4v+8BH$1vt^FHVsfPe8Dym}vwKm+kl1Mp2Mq-JRO zxQ|!H7e?;91K(zDTKLyOViH~g0L@W)(zGP?FniL2A}&uje~GUofQN9wOP_ko zhjx5?Lmt_S)6A2RMm$*Xr6pgV%38k!6&~>94nMabA9MUR^;ht>u>l4Gw53+`nC*x7 z@aH)DRd@s+0RzFu;0(SE{R{zuJs7lyTJm*d4u{@KCR*zZc|I3igDAWW=kOe?;fbM2 z0tp~yb$>P$Yz{;ahiY33Ovl?{^Hx*a>a5wLLp|FeL%N1LALoNHsE2ekX>P#GE2_h2 zKt1HVXEs;RjAExk2|8#s-Gb?M0uhf9G>LFx2SEgAR{aa~GuVj`fL-r=s7&lD0ei+E zgc7Pqzj;1%Kyl&<-;klx)aI$3R2bk074i{Qi4j)pcLW#*lKIUg2NbHNYtAVaNHiH7 zcQ{nS=fke$i0j&|0pHKonDF(>i5GOIYJis6I`U>v9NAvmlJT z#5(*L8mVg@3BTm=ii_~x$ z5uU-VDOJv41xIi(jb?%KpfTzScba;=`zV=rPB|UecC5}w&#;EB3b zJn4C7hbkBaI+2aRaVAASfiprKx!F=iiWtqu@Y9*jk8U>jaR6efzFc4x?8W6A$C&NL zGBFS|;G_cKNTFRytJsJ7r?3f2*(p^Fm)MH7kUCnkt9MoJ)SKpitMQG+A0WO7N5pN) z*|+Uy2itb($0I6!Ny_k$bPAuuMfwsvffvvk9D2g10?hMMfZ&MOpgmc{O?(R}tZCE* zQ7z_gLS&MNh5$JhLVqOWxCDcMFbq0qCMQA;`m7`f%qZfSaU?XQrC!oNkfIoUFcbzwD+v&bh~uz|0u|H~ zX?meDsRO}=s6?RTQjICCa4J(nbkLwWRm%byoS_~Uegi9%JviOg%6-)vm+{AbeSGuB z^t;nrLZ@6j9s8RG$+J> z8EwXl2tr&Abd}Eq4>BX1fuPI^FEMf8jF4c3mVD-lCzq60NjI?9@EZvDb$AOt3qQv3 zS9!B1{b4@47pL&jLwJj`5uDGz&Sx&UwNz*1^}G?jGj7w|?C6d>fZL zf0VUq;>gFH*;f|3?^HVHxxDTx0T7alrcj_~{&D~gnvhWv0Rq?5X*z&IXTZ@BA#f-Y zT3axnfmjhei~!M~=3s#hM@LYIisp*=&_ae`MhCEm9&9S|AV|;&gDc3>kv1XH$0-Ro zL7r^CJs?^ToWRQy80;Jb%mEDmyJp3~0DqZD4DytWo@PfdCID?&Y|s_M4Q{T{mYaze z`@i<_r~igcZu`V;LBI=png{%!UgrKW-vFN|YYjfm`4fKbA$o=7+l*gDk5DB93(5d{ zY{8ZB!Y}ffpMV12g5Q8MxI59HHgFHFrt!t*x?QteO{U%m?L5*f;bm|D`neY4tSeua zr|@mKf^1|FhfFd$G#+e%bOU|}yU37W5Ck!^w#<;BC6rk&q(C|xHlMZy-ITN9!2DP8 zHSQqI?g27n7_Lz%6VeiYfHl;hI>~r1iEF5^L(>j{0v0Hs%*JWu zK>YBXjQ3AKu=zA=hyXu~G3`);wWI~%!~pe>fv7)F-#$=1v1ZaZoLHhtv%;UzkNldk zTJq7vgB|}+1ay?J5CR1bAqLpM3f8cJ<($~V78Kx=Q~LH` zstA;Ma7q7&yLY(QvsrL-2G7We80EFkys~9eV%`>0{_V{tcvwAlzXK zd(?nnHxm!g0g&N}bc{N9M6SdsY9YDLuPZW?NDvErB<-P~E21MNoeu~DK@t0iW(t`K z%m|^Ffs{Z(js;jyy?}<$ju3Kmi4;*0FhE5O^e_;P7ZOAwGT~wFs){`th$WGbyH^AX z5K&1_i3|(uhA0vJwy<}==6a! zdy&qZBm!#C2LU!+xj?vF5fM96P1uwMqENCiU37$RpOaAfyH5J z+(5V(T_rdYW$K*MX}FhAo!;@lgDOU+23gU})-`(wsX7iGG(n!2+4e*aClla!BsQ=B z5k<(!5hJ)5h!J+EOuqAGqKYb0DH10@dr|`sEpn{TT!!Av<)xwg;cuqD_p$nh#*eo; zYW>$NzVJkOjDG8@Y`c~bG*UA(xNv89N|&&aWJJa*G{il0L3#;4!bh4!o2O`)7zVts zPb|a_@AW_7j7Pew?ie)W<8T2q7p zvnj;l8dGBd0zoj-Yij=RB2hs?EeLUlj~IzM%@aoj7gmXpv?rXf$>ovJes<2zzPW&A zc52W~q3j(jIjpQR^KKKcm@I)2j%O4%-2@G4;3aq-26zUu^%EF0^PjG`Gpe|1;(Hng2Eu%M~@>T`U>cpkn0-+?{s;1@Zs{L;s< zJso&OEu5eY(NBH&VfvpW-Q$zL4F3>52Cu?BcnTNrBHWttyS__im>NCI44dp=3k!I6 zs+pH(C3{v;n2ajFj*gxj6>9*Na0@QMrBbPmcN3 z>!3s9;kNoY|?5Pc4~C?H^hZ2Kibpzd@S20_I2%%=k945i0`fhV0YpG6yAa zQK1CZkOpvC;ZP3IS5Rf*jxw_dVrCS9m`ss9VF(hKh!F)ip*fr~Kt0IfI8?a#9wG=40l_Q~1sAC!8BL}X zdL!!mj9f7XHN*!I34-#7DAX%BCLN76&3PM+e7?})D767=v4))QFM0eBvsB%ZWfoluXl$|T4@+}mR?p0m6K zd#*Z;PuZQbZs=N`w%jUo#v6McY$+leyXoR1w1s)8B93!yjQ|CkJ)KZr1uKzfHVL*f zOcsJP1?U^i6^M@yNq7b0%&yCB_P*dyMUx(;Sqbfz0YqPZZyL#*KA=v&0s(HT4k%>ZBM}M;ITbq5b#}3%;#FFp6ev_8t{_1}Y|s*A*kcu3o?KQ#bJ2Tiu$#uB zqD0Pt@HU2lr@>9ppgt(%5IEJPP=SIsFcKZs1__47pU6hVy0Rn|fkcRH(26w}6f}|X zvYm>@-N07Wo-KImM4y3ExB&qlMQ22dK0!)wIfIN@phoNk)6Q_h5$uC2Q37Bqwn9Oz z03BGRIHPeS1{i~V#0INauQEysJ1UW7x%x7!0U-~}*%TKkS6rkaj$54uPo+`jZrXFp zxD1|%yCD1t31R^)Y6(Xbcfw_Z%S&Vc4?-AFieWZWtu|10D#432)lL`(Y>K4G3jKV5yOA$3Q zzDr!f%V+n?p+ z9e9db^i8}&NAMf4f*)b|LcDqBao@f5aq1~Ej$%$}Iu3sSV|bTe{y6K*i{GLqqM28i z!X-rJ5IqBoy!a3dgw41Vw5LFty>(mDUnBlm^^z}_Znw07_@vUE7}s68eHqURRh%p~ zEjLQ~J*}}Ud}ztjL=kCX_JfXD3=Aj$8RC#52I1goPU!VXClQzvfaV0w+(4j~5Fv0p zASgX1fGC&~Bih1d&Lf>k8oL>|fnbDF5OlDbG`bV!D$&m-zp%j_0P0*kjytddhdXd{ z(tZ<&S<2M@cj5QK#}BNc)66NH1ND%ECSZU#)QCc;0f-Gr6cKUP;sj`d1S-(*^%GVQ za2s0qb%66{{QNHhtZ%~4;0@^sJS1AQfR4Ci{}UMe?z^mi0)7#`1E*7a_V5N=!CmO! z6*3Qi*?CVuovfu1-ho?S6Ti{`XB^04vdmi0H6|QQckQN8i68=uh}oqPpg=mv>73I# zXE54)a2!Bx4im-?@JKVJ=(^YWke7FU{KSFSbYz*G^s~YZbF(v32L?3Yn9q;UKo%ho zf_lyETcKsLwT#%IAVit_mNd6vHf@!N8?oEgA93xuOY-BPzS z6TOk?@Osx+`F+N1&p<0QkC%hhsf#9QXXeW5tTpHZP!Pp*`$M5JbC}kFGU62-<_Ty? z?7;axB=D;#o!Sw^Qxv3z)Nob#^$Td|oG4QV#q~@A!U(8OQ9E~K%!hzxyZk@|4GuU4 z!)&Z#GchwGTtPKpFJ(XxP=g=^1Q7J0rLzjoCr;Z6kBxmyc`qcN zN)erbp=U5+2A~QdPcUK?77~zMz({y7AR`)x5LMw}u$&#SL_|df3L+w*ePBU1@nb@~ zjh2&AHATxAgA{mB#OSdLErbIQlMa(SP;@$phZF;zF zoc1Rw-|qZp*Y^8|xESd=+9mxXYy*2DphHW-DGrrI%jF~d0=)z)veUH)Vp0_tprD3u zctTupWxVi|UCa5BZgTqW=VGJe8OcomeCCYuW#0Tp9RCZ56XI(qA;WLMZx9#gKj=rV zJbplV1iuU2V3K*hCMaz0lFoSH8CLPcq5Mx_!!?Ou6z%maEhhtF7G6XUTyFp6uk+vk zQ1fUVd0+dRx7!=7-g*?T_kJE%Z}Vz1{Ql0c;Q5YE7{9XTj1M9Lz}|xa(ZKZHNfsd7BiT3|30@_}ji9GdBrvw20Jg@tb&k4g>sm?nH#J^ z5Rm4)a?&+&p>c+%O&5fi+e4j>jCqAX5Qj#NgE4&y54rpU+SwMGufTM$L(IASlsRTL zJ&~|FM+2G(NjU~l;R?WmQRMmJa9ICKPH2829sX-GC~e+eK!*BW-tmA8M})8uE7z+C zlR%oExkBYoKn8*K2h~jiQe5XwMZmRm@G^BJng^~xBhq|4f-;SMJq&BKbF^oUw|svh z2+9?-gi-fMpqc74A5pe5j4TVF#P_~t?Lp8I1LLFV)0HXbM2D|vj!7HhoRR>r>B>Q7 z-lH86jN5tCX9FO>unrRLFnexL-~+oLpc4tUQ0A<9&Zn^cMhrb$hZUMbS45@4uA_+9 zlZ^Gi#Us`?SZ>)F%Tt=bg0ElkpvQzn9PmaTn5<5WcyUoD+coMXjL^CNC1U6ql11qATWU`@v zfVF~}D_Rl|f(`~jrGb>MfQ*10cgPBx2&%VLE(I@9tAGjh`Iyb!l zLHh1oX@tjc1veo$%#Si0tT4bBNVJ(+NYl4yaI&*$~XWE2kkzK2}Bq%EX=kKbo>Zwr-SI?Y!;eB}Ha~OysCw1KJTSZiHhk zA#@}bu4fyb9t9Q`5Md3mMFSyN!4-_C5|`83-NTy`K&XK&9%x6}5ew={s?pxxl{=+; z{LS4PKa`flnd`&3`O;B*_Muv8SUNsq++rIvRnN2w%*lKDEBZC7%J4k4q6tz)5KeK% zM2x7Q1{^(Mcm@r%r5*X$eSZDJT*7vS9ue>ScUI^u#F)REGu~6VFliXv6RNDyP7Q;S!#MFTk%&E2cq) z8?c98hnLB7=;RqZnkm(3pn)^E4?Xm7Jo(Q$(0e2!_E6w>4qj2XbvOblR1YmLGy{HQ#`#z2{PeW5W<`YqClXK2^2A+0XcxT zP>BuN!xB=^1TCtPy9^e{h=I9PKK0TP0@`VOTW~SJ3$TVgING5dtkAn4SipY%+CwnH zHZVm-S&Y&U5gs0L4>tt}YA})=2DBw=q==}&?UGaj7@!5?AEK&~;2^!LX3d(STj|j|>O`fbFaN>%%47zF^+#`BiL&%`N zyvKwWBG46Pv@l*WtZ3IXU>S$%j8i#lRaj83&=cfDivk5>W>L8FfH&?=)Q!-94wD8G zoWO6u{|&yt=l`Yfls9{hUx7D?a~Sb|>6U-T>u?d96)Rt;>}h_UIJ5z_Y;N+MS9u7J z;A`-u6@TcQ!?^Rndx+0DinGKuY(^`ad>*g3pV3Qpdz6LtpGT|d{Q;{ zhqU7cK7qJ^N6<|yKmk42T&4PwWTk*4*RufVO|m`|jtz0@TT#u~~hYkvuj>3=p&A zg9yJ!H`o08Cf2>EK*pMsUrN53g)fo9!A_#J~<0*g%5QnHzutOX!Ia8DO%A zKqD5=!V;}uB*2z%MF1U~L57NLU?e#P5)qDvjQ|Y9$z=Xj2qG0)IGJ4Oo1hmpv8KckTrI}nsNgO4X1sVon3-#L=-ByBNcNM<2R}7q?uoGLDh(t9Id%Owj z5(Zs_a_rF%R8gHYroL*W=%BzAYACB|#2wZkP_TkG;BZYGsHl*$R5d;R@?KRvtaNicICHaMVE)VbYp_T2U@KA$G(i z0w3UH)JQxE+Aan$OoWvo{%_&Puw3hr|jxa-P(q zcG8fF2-HZ&&bi!WYpfzcOfb9(nG`Ti)#pVR5n!+*91?<5sTI30Mw+u>eCfNx!6Sr;+Mn# z37=Oft}-7!r)~K88)V4Wn7$J%;5Xne!x!LR0#EsTz*l+m8OQ$|_}{}C|JOc)M|%BJ zymNz3T}FDkJbk>!ei?ogono-z@-E+bg?n%hp1?!6w>osGvVs2z?;$q*fPguW1UEsjSVLcy6~CNz_Nk`MUn52Qlnksw6A;`QeV2zUs0 z`OfF~Zl%6U_faB<*H9&TVn<3u#c#u&{kwehh*w^Q??8dyfGG|@2R{O*@NL+_a$0Sj z%o~Bg!NpyeX}UwqvMJZ}YP z#xvk^G5lF%v&KOt_(29EleXxMb zbI#VBc06--h39UwE4+TmTTT(g46vC3dN9TG0=AAN8Yab8009eP1z=YM6Q~_Hoe3WZ z%vAc-nFm4D0Yt zPFbAu_+Ea{rI+D1;Af$M7VFRnT0#$3=oojjCo%wzRcw!1l!+b%s(1o}Bj`a>GnP}E znbOWyD8n8J3*?gx(+~?ZLJvof!y0gL6Wu|MZKh%&hPBWICkhu`a7Jt<_^HoHM3aZY z*b1K=ANXO=@&Xb(Kbv+OK?nQUEiy0K7IZNqLif|>eG8i)Pwce4GdMxCSO!B|Voxlj zD@7XsUEpv85*hUn&>~G1OH3Evz=%XNP|(eZ82**X%Do4_F(;PLKu-u0GOVSpstwf= zk&uHV3oSgdrKZMcn9rPpry_j%v<5ryIr9W0V1qrBX(fH z65A*`NI?aH9h`&1F)UDp=b#}4N`b)^+W;uz5jJ?V5fwc{8+;@{H;~+0r%~z^DIj8i z9JoNKuW=sH23MgHzLnj93=fHyK~S+o1nx*+6RctpG~@wa;XO*w&5?f<7(t{Z2mu9+ z(?BFj5ReS6sD&iri8FNj&)ge-p{u{NE)FO7-@T#dH}?EO_s+R<%+ZpoOO}E{G$0rV zV8k|*V4Db$GU0^K9zUmSp_$>r*zEpGEw5g3Z^iwN7VJ=&JDYv~{LA4fY~VFM{~h?} z^5!wee-y4rfAx&BPsUrv@uSx&BxWaoT% zg*!iWpS|cBa)Q92*u0c43_--Tmc{QxxWHzl3<)Yo2%=H~1A=jnMslJS98v)z8mJf` zB*HL3!eaXT2J|54p~r>ky;t%Qyj%F^LEBt^-aiBX{TbE|^Y-ixo~K@!l4cL(PX%O$ z6@TZ9hw!`M+kE)}-@V1rXITJ`(NDot%Fsm>O6ZEKD?YU1vuOe;y$xIV))WW0gbbg9 zWBBsq%{LI4*D?V$xZ&J{3O5c7u?7}%7B&KaYuo3rV1gn~%kTn#VbxWtFoz!c5%LUq0;2?gbC5N`G@ojK4(fgRe6NGNZi7wpvdp-t zIqg4R_q9(u4`uGRGAnT8xkd&$IDHQCe(>3D5#OKWfSwAzBpd;T zpiHW01p0oiD~N0VFPC6gCIM@-$KR_x0B9a-6l5dT0Cj^oXF@^OFl07`B7#Gi?QPQG zn|lj@9(M33*en?mt1TxLpX~7G2YwAUYnFSqnPo@2L?f3Y-@f9(V#Z$w6L8bzXl4-=$5>?&dtDM)zi)|E#A51cQ-T(?k?(I!h7OduQjiwd}{GV@GT5< z7hWWO2)+RqQ^EWlCbYms8qr8NsSqO=R)})~w3<9Adsw3k3nGC~Aj6Gxg0ImNbcL;n z5o)lRa{6vTfdTD;no_&+VG|xQr6>$e6`2@jx-%MB85b*-d%`i%f<$sQ!65F6Ml*wI z2nFsWabx;u154;d5xVMUtOwf592uoN?tt5{f>ZYOW$y2@=4Yd-26}dw9nn0EyJ5d!0H`?HccsCF+hzgH`o#U=&BR9J^s$7Qlu$NyU!64O259^Yw=d$&N zSfC}^!xlN1Q{YOh!LTb24;okzz$G+B6@4&@&S+sPhH1I_HqP^lM~*I2vl6baT?buZy9T)MU-;XCXU%P`{4aG~1-*p`H% zCvG@x@u5cVW~jke$cYt<&`;p84H&i})({9HO<=Y?c}p!g*n(7uE#)0cuI@)J$1ncI z{=tv=>riNJTlar?!Tudr<>(1d9_5o$tV0Ef=qW-SWgvI-=hO|l3oTLc9_@(>N~NYb zmW@GBpn)S8K=8wl*uHcCAx^O3(Dx4kufc2ZC-{6|Z}9pH99C&%VN+dCcTQN$C5~lr{PLW+Bjq_&>4v z_uouyTK;meuOyYA$*Nr{WNdf<7^KV?eSlQC&ZE{#ZO-f;_`-C@}k(K-V$>>OpwwKyf#)dH)RZ<64No!494J zhiofwjkJd##N05Wid?9InSF)!I%CN!v&ufR`Z#2C8$E;lbic#itB{Qvv$3JWL|dDF zl>-I%0D`#2++XI-B+q5-W}E7u>mlYH#5EdF2VH|0F~>>pYiR?_Flcnp z3D-=HAIJtEpdk_lNfS6na{+04_kM(Vk-V<$qqmpJ72U{5-NGs6dZQN?1wA&IBr-NYX#{PmtqgAJsXwQ)J})u&t} zWP}rfnTTc{$`Bc9km30@9t_$CD`=+4UnY&PAq?MPJ8;n^qLQJTp>(t}e~5q}Y|2cA?;DyKER^-{cfRE{EUNWYeO0>AX_ z{2PNEcR{cvf!!f~0$!Q}Rtang39Z3MTL`p)E8+?sO%(N8NN@%XB;ttlVboCuEJ%d_ zonRg8u?sX#)XB%h4qYL~1wj(l!9ajFqy&XqOHgi)O_7{zKb4;*^%;52X}IjwVRN?2M1Td@)X zLJ=sa;%Y9;$u2-FWtrH*v(N&|c;F(Xz=NJhnDBw9vm+VM8XW;>huxpnzYcCq*30PZ zoe}L&hGt58*oZ5EvtY^~3`P*zE0So$R(cj{Jvzx;L-IAMA%z@`l7dAg5d;|&mc#;# z00z)>Wh$4!f>?qFeW4E)q6NXeQY#l?DaK&qGt*H_4{`~&U<0qsEQfPIcnLvT;Z7`( zp_b@TRoX!dM%qCmK`5l4A%vXl5qDuHMzlo}6R38ijxYq~=nBT*<=__SJ^+F%5-3wE zI4Xo;D_lgvmc-7hNQ=B-Rki!XvXznFGH^z^>G5*Y}_BuMDeXH^RXV$;Q z_t2XLF}@Pz2`Jk9%A`^QBSEWyEpYUISHFZjv{1=9QZ z{`nUC3FzPvpIhSZ@Yb(!bb?-~`f>Tsn--7tB*iNxJUnM^*>}(0cwIc=^ON?^t8f!q zc(CFx{4js=D|9_9*2G_de>IH!fFk%~@UH=)a$33H{Cm^;I@<$)J+s{zw@HcnD}MD|QbC5#@n^b$qdmpgRE&xKUo@EzfQi{( zE|R^ckr3~Ri#7l_EJz!b1PFv*d*WJe(yBLA7~G?!#Z~|ntlHWH1`t2bQssOoxo?ij`6^Tye1!@gjWF> z4tXF|5E2nIMmP#=BBCEh#C)yvzBeUMhD_{XF5yNv#fd%YFguuI9455`2@;ILon{Yk z$7#gF-~hEiO1}j5Vrz3ribI+E|K{~Z&hbYqSk6T*V9B=OA60(Woh1Gh#l3*f<-DPP7OLj3CQqK4&-C#FA?7fvRJn~-!TmARA1=)>ns1#iND}%n|On9tN6}N zzj~=<7fslGr2#%h`~mb)d_!yS5dmvA~oT3((aFoHF7sG<$I zq81uta1%Os8=a#Ot%x(Uf=g@#F@aSw>WGcBElS&12c5A9BC$7mCy5uP1ma^LIH`P8 zd>b~fhGBB(+>+cQRgDu;d`~P;1B@!`^1f3WTNfLoRv4dsI zm3sCQxV8~zq75jh;>H*ltRcaAVx2yM9_=9$TO?A8wN<0zQi`ZVKtd~GAaF{oH)40taQgm{*`k{TjKZNe6jSH#Mq zP23_3t0)(px(yK*6*U+fp(|LzX(gP18Z5;MRxpY^j6F8eHJrgicm%r%ULQeQXvN;? zgNOk(`@MEaCFix~+fEM<|1{Ow}SXD+S&;=$2sW_LxBaw{a!IW#{ z(l{+lhB8_Z0I((uDjHyu=^cU|og4-0*;>~dRW3@ zL_M8D<_`gL#Z0&Zg>T)Y+-4aJ@GUrkd+>EwZaCSJG9Ml(!65E}oTrcQf)c(2qYWC^ z7PbSeaSR1EuoNq&>=0ES1{OV|R9n9&?^;~2yM&}mMs=8%k6hb<@Y zAQ=U4lBkz>L)fh7murEJnT8$;7+^TpN-Bt1=I{$Zy;jE{AZC-`An9V9b_(KqmA$I7 zRdB!w>xX(UzPh13*jILraX{m=S;zfkYAnHK>N(!|c!zF|&b8j>i!t ze83to6xZ7}&kaF_QJnPjFp4(lI~wC;&pR+&&p(=EfEVDSka=Ix!K>AaW8>Er)ZmW~ z{M4RzH#{9EqDeS-AP#UxWgY@NqB@8yE*+aNqcx@iBlDZi5FiXXryHgM1;{|t1q(n3 z3nCE}z$=#ViIS4z876dHaQH;%4GZh|(T?7Es(3#0jn;qZx%d#=GQLGDQ@tGGuf8sF z+Bsd-5geg}9>Yj#r-aun@ipQJRCoddya?;b&9R)q5j$vRie3h^MW=9#c2J20%8-a1 zw#7s&(M@!h7)Y78ixN~=Kp_&GLR7+$Flgrdcv={kFgc>BT!LJ$pnG_R0fvx?Wndvw zh_uB8hZzdOi7B0$vq=rju7%Ha z35;06QtDjW(2j7_hUCKWO2rp$rj(2oG(qdyH<6{)lys45gwss94I|j>^`L+UCJ-*% z8J!F(;lZ=YHZaXV(*~O91xdj&2+={FV(+UdrKc4U+z574Ja(Lp>4ZT&tkk(YB%%=X zf}jMY652+%E5&)aT(}B>SiD=;dA9J@TuI)ZHPUzM?AM)w9>3wxF)pnkR*~p^;AToz2WPu$}qdY%w&+!H83L|A;G!RF^3!`)1 zuxt3)yZqt}ZX`Z7>kP9lG{QbGrvnZ_M+KgYG~%Mtr3q^~H=IW&ym`Vc_`<}{a0gmA zdVzIN#GAr`R(uv7?|5>>KJhJB!z*x4d^I?G%FU;Y&Ft`91aj`pW(dagCs-ctZv%I1 zCSnsLK|pXkm3?6Eu%}6A!E-P1+zn3C%spM8nUvv6_(w1D)6etL6)!*K)6eiqH4N&c zZH|*4vvu}~H*SMii1U_9xI2)8Ebcie@hi8enU9MG5?_ILwj8gqFA~2>JSIlc5-o^; zhxq3R8wjrDlb#i+2FK=g~f;tyZ znf32_E$|aixi0fr75o|~C1yMl1#HH{Py(M7{TUHaL68o?NV82c{U(K&3HP2sxvuhXv-?D|e zCW3xT1mm>igb)HBB9vGju?cKTE$od!tYJ;w6DAVMsZ>X>5)1OeamwB(RG*e=!&wjX;u%y!iHjY(%BjtKi%IMn&P=J- z)4kue_^`MKPP#(LVo_z4)Dl6|Xk;Sx(7_rq?8Fu}M1$QXR@fCf50>C)M3w0A1$0;f zgAOJ6ap+X?a0|)=fAVQv6b!uM0M5!B+M}g;RQKlIxu(uWvZ_T>al<& zk-(`55?Nr_4*n4_z!f}#-wQuQ-l)DH0H8qyZSix(QaUeqXdz25z;5J%v{9@ogOXb$ zVjpaRRj2_Ga(d{EopTI#VGs9VAIOlf%0i6B29DqevJ;g@fy27eSB}LI+=l^XUWXtX z%fwlwFO(n~OUN)l30Clt%pl$hHqgP$cGaLDI|vKb6NA&**;R(g7j{RCl>+XBa}3$p zfmMzI!4>q=(w}FAhJJz&WY`2Zp`Ad#M{ofSn(QBgQ#hNV$3O&YJ#&ty2ndiLDr& z!AU_1qM#%85ETnT0G`P~7lbp4y22X-IbbA>xbwva{FS@>g_bYEzW^S<1|Gn-;Ex~p z{`o50fX~4hpM4Ck^4;g!jDqLcn0fe|8Dh~HEMDQG7BtzIj!+QQMy@yP%N zoza3|39aa13(v23b;Wn#r{NX&1l)sfLB7S^LJ@c1$DoIgJHO|ve05-xSO9Z2DR01Q zZ~_DfJ0^s-j6J(8O{P5}j6PVxT8v@{R9K8$+~C76^ZXH=F+zbJY1}z`?{KD06l&Tpwmg*Q>l9LY7~I=izU`2zfHC%4`)8;G&3ziSs824g*{wj9M_^ z*KLy7bp((h0z3SZm_@UeiN6ORBwfo}71RlGBjE7##H5j5Q%MDYW`{I&PH)8nWpE;9 zOQQwN8t~kiNz{VdAsyAV0?Flo@Mq>Q^{Jgc(MpU#YS92rKum4Dp2WYH@j1jy14^9~ zQVF(LKwt+XLUX1shvAetjriIqXl^rg<^!Ai+~>kQ;MBu9&=queDdzqm-kU!vK;VuE z*{rEyD5wq@u82U1=wTp00ZtXl2vSQOuTQLL6i?vUK_enSGz-EZ5C<}+gU=Tv;3)td z?8M2A2sUB`XO%6Cx3PlnP@ZEWXK=<3C<;!Dw~Tem&0F*k!L62hMY%ySI#6Qo#1>6- zHUgX=@Q}$HhM=zT;A%$&fr(nR8ySrZLuD`qQJt#7w_hAST!8mH3!AF}}XxN$_I}z0v!#hR>aIF~<3AZY=9RcofYe{qcq) zkJn^x!Xwf{0FF?BHzz%;pH_lrlSy_TL2OaNwnT>=5qDsXu23Ng(V`cTVQ&&^SdjOy zM+QgGzydv)*r&Qlb$$RnoKC5e2?}&@0wzv^y|Wkl$-oRyNJLR6(hc`w>|u`v;#e%I z^$`)QUxs6z`lh7K7#i?~9ku*R3@9Ja7BwNQhdbB0a`hk`OJpqGI<5ER&p23lCa zp6HA$jW9rRj)GP=tf7aV3BN8B05@S7T)^6>(`3GY0tG#Uj#x~@se4kQG!TJckNM=W zy8&0Qft#=+oODbSVnb>m2UlnZ9hyqz6GjOFHBgBm*g6h^6?CEm8)poLpq*;lcg~q6 z=cq_Qz!SinFyiYbqx z72!xoM9ds_3X*d<7wIDh5p=-~=h3uCZKmPq;5Jka;Du}0!WB3y0t*T}gG<;=L8@V1 z(Kwm#T`lb3k{K8_5=;!^k6}PBV42vHG6CrdTD(TwYto&u{^)o7>!0cW@95u6^RZ>z zJK;ke`(Xc&)k|FUjF)&NSDGFfB~Yait*BxsID|mtpex|0p)Bx>CK@sZFa|^L`ybHX z<@uHi7-#LD1|Gu_9>AC22K*45!c(}#XTK2jLT^6M(T`*A;$J8JU3V$ylK3?78#EWx zKh9C+?I%RyLzUwx0A8Io!!6hv4u9u_zjDG$a0~tt{8{)BxCeh7UatHj*g-Y^)$oVz z!BgJ+1SQk&C|6j+x6jyv#ADIG621xJk``VCho7HDvx9N6(~S2Pq3@r~N4%%_>?fU9 z|9*0ec2l;1O*D~4z68=kdf@$uj-c)hSF zTrBBEp6__+44bfv4(^&2@CWVd4)7)jUV;q(mCQFX1=f|9-~qeNr_LOaHp5cqV}LlM7UkLlCQyJ5ifZ{`1qTiZ zE(7+kI^fQm&uwOfcpixnT%>vs&9k|3HGVzC+3<-Wzz*XKhXXXZjSnG4!NfDtppkIm z5`z)Ef(}xv>oprAU1R;sP877jjC3EhM5a37GxUFUXdOP34$CTE=LwE^iJGxM4vJ|6 z;~*%J4vevb(kh+$Oeg9}Pq$wpa^m^Z?z2D|j9j#Co2JEM}V-pqbxs7L#tb zbW+CP99nT&IjyW=0go`l7Wh?=v)z?9(2At=E);YGH;Gm%HMYTtI2A)BqdKimC(y#V zs8WJElk5Fv@Cnmq#Xdoy1SGOY8|lWB#27eK<9y_)kw8#k2N`Zj`(X6AgdJ(XgJ4>2Hs}a@jE}I32+|f0I0gkc zyO4}CXhMPauo&s#5?n;EhjTaGN@x`C}cK3h! zX!@topToX!SF0zy*r)qNXXo5JIiB~$Vkl%b|7%ghSqq! zuY#!L77KhsYKR5VQHubYlX_6`~~)Os+Ls5tX{dE7nh%nt`}3RM^gcmE#3-2x5dF46ktAIH{x) ztfvl`=CA58WY}u9gw0q4c0~=anHw&_4M=kjAU=RNx1E%5CP_q@ICmyxB&Khe2M!*1 zAsHi4P)4DctZ2493_)g=mfX>raC&i;XnN8K;go_cktj|n^fxd^7mSITB$34^ij%@B zdK@ukx`uVI+%ZWor|aOtoXeh};br6Y7~fKP?q=*FzA^fXb^sR$ zY3@=w#sWeeF~WdEh-5?n#2yCNz*DHC9s=K?723f=;skC@ghCGO6zyDy4G0VhQ?v(8 zU;$5IL_V@~_CYHa&;_<9Ih}NbEkUF)s40@H3&<4H(X=ux&?a!>1!E;z7@RYwfo}3L z6j)YTXA5gMLTgyT3NBy=o4_15D%^yOCj2@IYlKG}VGHEY6B#=pxndzdkx8`+dPhb~ zzW>E!fn?av{sNXFiwt>+hcpxGXqg*K2WMzq{1?vbp}2*gk}7dN6``+?;0$Zf0*=Xh zA`zfAcrmmIIkA8yNMNv#Bq}tpf+1)?!4M?PsQO(X(FF<4pcT)+3n{a&c;Lp_gq|nJ zfk7KwIag4FnDjHDktAY4bP5Zys|8^NdP0O@YitozuLd1vcm;!kQg9wIVjq@g083HB zRT3LmPP$Hl0z}l%781Mwf)PbRvDIIp3?n2WP57=n4I;3gVg)TQ zGiR`b5$?b^g$~wm8_prf$9P5+GGv+&4fIbUpDpVr-Wh+_?eS+$_z3z8-FJ@Zw!X^g z=`)^dI9jv6!1j1ztf;bpWqgg@eqFL1JfzXA7XGk!^VK>SH`AN^19 ze;tdD;XzrzhIoYC;eO_w1`YT?zvEfvzZ(401$r20I{vL+Q+owR)HVOI%qL%fC3v_+ z(>nLT;pU77eou+R4e|dwq8S^4pc7+IXB(Rlrpz%k*M27dp#3nJNNOny{>Bx*B;?S* zG5_#BKkH!7^Y3te|1kv?h8cn+@+tdcNHia1d5`f9@jCVu;sWlGjqx1cl0Sw%OYOL7 z`S4>tYjA4{ME?l*wK%{Qeg&Sw83Y(So#Oy=eSj-6MF`50HwV^*6U~!j3v1B)pp5Wq zMmN$w=1azp2MdvA&6@;Qa1SzYh*noXOE$D8bl^(QhxnO*MzcDYzz>c*FeisYRvBF@ ztm}u-fJ0(?2qYv*B3A%AOd2kSyp}rjTaR;;V21hx0O^qDw9csR`R)RNL4U}ASzrJi zCT|S~wPo>nV}8=OhD4HRf_9jgf&|xUog}D<8W1$^;i2~+jJ89WaM;03V#2X#iv`l$ zq+xD629@je3P@ZRH1&L*L&g9t2gD=IVS<4lRBw2{GK2={;4YJhGR*y+2b3rxdO`ro zNSK3&2CvgAm|-LW>Dq@?*K%u|a&-XYih6KNnrxeKL^0DS2?p502>Zzw)j@%%1cX5l z;NoNgApU>sN})>fL9V)TxSxs7wYm@Rx=_`vhG zSrjf+?w!T5`p){!baz<3)2&yQ|M_>=K9C!x-+ak*0=A%lAOwa0n@4+&=`Eljp&*1Z zrDa^95yshkr6L^`mg%8~2JF!36)L-dV>JP3@-y{?3|WBtRFO9T$3>IKVhl#nOgFkA zx&UIxCm`F)D<~c8VO=f^g`I4@F1K>2E9Z7$A7n_zQXCssPIWFu>Vid(oNPql z=0GRZF-+7?OYty)5mUz|r>&SMg}#uCb)p|=piUwpM3G?XO`tT>`~Kx^QQj5L&k<@dydwa!6jyR z!YWiT>KU*XMnIev~1@dSU0-9i8I$NGxZZ`{ylcKYU$XQY>jXYlE; zk5$OoAj9ur@h<&i-dS>Ka10$>=)d&LSV9Yx=SH60qHU=jBXQ%50)QtmJT*3BY&|)SFu(uH|xas2m?Kx6Y&N(;hpFfz(5iB@WwT9LT{z zMu1lYDX=whM16n_U_>HKSuD8&r#=INmKczDKbh7>fS3;U`R)dm@GYazv{MtQB7ktQ zcg6`<=FVIzAowtRe0pmfIH-&Fz7pVkX5jUPDzfkqca)eVP=kzM7QJt#HL~|Ff9;^j z{EhIa1Vj*pGExj>DsF;6)BB4!UPsF8Lx-6qQDHzCT97b{)F_TLUetR_f0F%9wHn8* znj`PJ%0=Slnryg3y53kaI0}yVfkfcAAp^Y+S?&A5)p`?Pf|!2NG-%g>Z4fcL1I6fs z(ENEhBt3JehhbG_#sWD$L>)pFB*=%u9g`nmKFecebf}_AZ9;vOZ`qGpIK5)Z4&)et zIi-t;!TJUiR%ruIG^h=RLV`2cLI(mS@7)@Xpb~@{CxNglqCfnG6tsdPa2Tf#cqfvP z5=Tx4A%M;~2~uzx0A^IDg}oTy6p~Ye4%Uf_0FkEz!3J&{3vjm{|Nr>i#WA$7L(fGB zZa^P2rfn!8!9XMsAyS1NkFXMT1qp4C5oePVU9bp12^y?L;4KoY;YL6xMY3>3N}{07 zF}6{w~tD z7xqhMd^U4_4o^6{$;Arak_;sf;aDXH#V8FlC{vAENdu{enBE7G0)t3Iz!nAw9=81C zeO?Xz+NZbz;5Asn=imlBVbcD^+q3r15xm3a{~^AyeJf~kU|FO_> z=wn-bBkEsV=@#iX87kg5jp{jL)}UcL;wiDV;QW_ni%Mfv0%Yp7XNe2h-K28@%V2Me->P1 zkpz`S03{&9GG=zlB|IYa=xD% zZxV)m8NEwA!v9jCB$&BIvx-K zT~B6pW@^rHRynyoVHKdvq2A3J5zaHAoSF!h%^m7!tKJD%B}A z&p9W8(MT0VxRSMaHRXK_RfBh##a>Mgm5Cz#VM4);6L^dgVwS?SM#6aQ0S_Y&b8K*! zG3yqGp=v>zq5wWq#WEZ+@pWL(uweRAOoWWh2aAadM9bu9TY_&Ld?(g!u_x95A$LgFrK)>5>s6EXMHRZhr-m6(QH3BEA!-7rMd7J>2j*kMP|3uE za-5>}vl$QtDrsk`*ljq0UxQ4v;FwdJ5~ofho(2IYkP{(lVL7sZvc*kXK|=$lPTP}% zz9D?#GYz_dHpqn}+Mr)D!ig~iBY+mr)fgiRX@PgdO=&GlgTLU`nXtMHy?|X=3{Hx) z!*^jhX&>x@CEO0vKr^Jyk@1Xh7~ux_wjhD45=G=tz#X^?i%{?M9XDheJi8EMkUb5e zhhqriTsUgnJ9H%$kqbP9tzrz_fq)B0a6DBZ?_p0ga2qWErB@PX5m!BrJPkr^Jml zpKQN^K5qK;Q*NL0!VSCFX?f1+3+?S!T>YLGIiAywKHrKJy2PZ|Ky4jK72INDBN zrX6_$1|Z}94SwV?&;JHrJ>{?5WuN#Q+=9n&Hu?VFp4Tjn;1PTY9`pHA?2Ekfr_YaG z{&Ha*zwko+kKKqrO!N6Zek%N4%3m1bLE;bG%MAAPL;iO5ze;)y-Nv28oBY9dS>NKt zmivE=xE=h*H~Fip`hTA$1lOoa3!P$vu z7fX$5B9dUP7&`-=y+X(R6+Z{h;FRu*44;IjG*gNK13Wk3yKZp2)I6o!IYrA~N%A?|#?1w>B1wtYVSHt+}g7 zs=L+Ow3d-ZLXQN^Cfo4Xh9Mh2`)+Q*h}Y^c^)3N z;FQYIXd(6IGe`NwdNBaF!3V4mD5HSo`CStoDwx12rl2MJ=t@&>`8q=!&fpxS-|Gy7 zey6Vo;eItvN?%ToWT_p}0fBM$v4Ds>hbiecX-!%n3Se0T%@P7BlAx+U3PB9kyK3tJ zn{x%7WiiE&n?fQ{a+M~L((r5va2gSc?08I!Bb&lS*a7Y1ZprBlSK_M&+xt6CBDWpq zI7^XX=oUY$i6A+UeW-)T@C{<5@u;X73`d9SEe?hQPi(c?T*}Fkdt>$@&Pbl!j+01m zj5n~GQ1c@+D{NG6$D};nZ_~=xk+(O1qO$owV6nlli4emI2}J+MVwerf_mD6zI6}lk zfMk${)nfpwliZ%hSGHn9QdAHv#}ZFVu`6C$R?U3i?j$6P-A7B zi>P3*n`g3tNur7*qfK;WWtI^*7&Vxqg5+h=B0_CAVU-C(w7(QA%n4K*PpS=bXJ8LQnU z{WDe@{0H~=OJActV*UoI#)U(v#lAK@-AL;%Yx`~Fj`GAVKO6YPCI63_&p`!`!&6{z z2Y`#2%;HV-33Lm87r6>kI1e}BT;_1E;12#a)f_&a_z?V_^3gA za0+YO6{-e8Zq>aEH(>{=Oj|UkUTC7h9Ygm18K@XlkryuV_bXoi!SVee@twpYS_gOF z1Gz``5*)x~E>%_#%7` zJ`In+9oU4^QU{=d_rMyy3QPDW@N@7HXrbr?=ZGci1bgVaS->b$Qpg#6pdWxY;2tbs zvv?cS`7&HIZYrY*Qe&sYHB8Y+WoT{)^q__`q(}@nAr*Fi)&PtQQ@R>kBmEsr`mWk4 zk3U&yNCnKW{GkLUG)q)a1u!EiIwgS4(NvlfBE*86CJw~`05W3Skp6}r9l8c7-_nxW zC-y#zFDX&zYX)}(v_qY_Agp)2@;C)&**`X@X#yDQvb7GcDX#R+;(?;ZRURr=(tx-{ zX0`X25DkEa7%&KZPF2os|E-E++Cv%Xz@Z=Yhw5_36kuJx($i@Ms-hN*@8ilC{3xYn zg*eO#085rgq!ZN2iAl*dgCbLaFo%RG)fkJ+7fcmkn#tn;D~ti0!V+|WDFR`M073@> zBOwL?sFX3gJPF4F2Kl;=5?d!!9_BbB2`VfLhc~C7poM5FU)G^Xj^N?>DZlOuL7`;V zM-=rvpHvEfV^p1kYQ<Xw^_1t-hAl2UlxYFfy=9X;X60>~J#_3LgHTP%3n6#W zSce$`uJC@y@GupCU?iz{keRTt;#-%w<5w3*7vL5cOkfvVB8vOY=JYdT!UC;mAwm_g z2o;QAi4h%LjnouGf`CX_kiBAH5%Y+#3bGDCu~1kod`E$4C7dHF$vQCB!F9o`(gn#Z z`k1Gs%r!~r#^9-iF42{YCSIg7PL?ztBCV0~weherP<(|KlF=y$5m|vm0*nBmO}G_1 zj>>VeqDi1!0VjkALf0>GD@^l>5%aC62{o3Ebz+=_oCP@s#Wo;9hfZM&96rHG5wT$g zJCF*AyvzvO$T}u?h!pex*YbcW1fO@i3sJA4NM#iikDhsz@QS0ew`J-%k# zt9Tp^XT0umeH1p~27Cps!3;hNzi`CkFFr>dekF|>0e|jnY zse5wino#Tcm)%c4Dxcl5zdGesiwvTtZqt=jf9Ezg^@1a-Lru+3yO! z23x{24LinC2=G<-eQ02wg*ZA05Ya!NnJ_zM=Ogf$Tr1FAetF8+q4}b0{5JD1Yx?(- zy$p8^*Ra^;%VQiodBxw7@TMccf4pFN9oAAm&5iTYrRgIkfzvmIOYrgR#XSb+jj0^D zG(8H_3$~7;-@w*z3}4J1&K0bNHT4m*IUDbU-F&y4g9J->0v7E2K3n57U#rz-09G=y zUN8_ND(*a=-{kk;6Odqy-edAbq~-Kuu!MgJ7hntSz#2|Ch1qLN{{`z6MC3XIxSPY6 zTQCM!Qo!8F$`})vLLybPH4C zTKZoH+d2_1%aMQlztH#obNCtfID82{4?hLFaGa6-z&6aG%XNUF4*;JkI>B6llUy{o z3NPbJO?j2?V*&01xX(nNF~<{Qkp9-&Ld>3W5&+HaXAC_QijQ=OAQZ;>erG2FHImtL zJWyDA`WfOr0=_d8oFZU`siy0CL*}3of&AZm` zy?1$GO)#P-2z8bj&=)1>r|Jv1UIMk0tJy*tTulcIe$n;26v~iN8N4NMNXg6fiV0ep zvxhchckR~-3c|Sf_XSc_E)c#9wakW z5s+F!Vk&IH0@j8I0VC#Nnw3xwF5d7PfrmB);fJwgRLazo4B-BwGs8PZBg_Dz zvaz7vVWCVSYE+I{M+3_lTTQ=SQ+irZ9@>5+JR4_&ss7Mr+92`vtkm~BZ^xvp=MOMv zw4PVDX&AkmxJ`Ho%lm@cMlZlC$V=xr|1w%}hWWQNQiX-lS>rH4EMMvY4$g*`&ylhY z{*X$Jq!c;VvZc}zA&N;dNCd+K?OmpxC=FPEHAYAd6cI3pxjT7jg&HzK6bup~aMIT$ ztY8I&g+hto1178tg*6g#cRMi7^zChl^zhKa6xy6GA0xmLF(gx|u?gqEkO^8t2M{Zy zLqMZ=TgUfYUwr2Y{T<|w!b_X_*ot>WoeOav*+gn|g$bHS9T+1cL^{wFwNPC}r^r20 zOB=BTbwc_bdn@I!j!9RxsHNj>L#LcybN-mwA;()B&1gLpyaZp#wUp1oXIdVA5!S?u z&!28GzW&C9jYn5@sk6uC+}caOJ(VW%-n%#)l2HBKo%C*%Y0GxS2);+05@&EqG?**j z*rW3N>6LtIBwwm*3=`OZ|JHF{m?TaeEj$75;C&DMMr*@yp^atd+8-x_fhfS-pGAO1_Y3;!Ny;%I|u;*v4PHe$S_TYpoZ zm@`{4`3)xL;R^9O?2$HX)0&NW!&T#T>=jTLXIbSJU<0{|EszD(h2=Z?+vQ-3dN);n<|W-&N2^E)2M8uavX+0Mu9#1`KIQ!&@FuLVO>Bp)n>=~Q^qB20 zv$4tIBFkf%8>FX56WlBK6FPwiH(?J1zLVXvk}J$0E6J}@ZVdK$ix0$5h|y(+L|Eel zPN7Bv?i5SdJCJ{8$*1q8ajS1WDL)6n?B?in$`ilXJy&`D3&(H3&%npvOYk}PBwT@m zv+4k6_XBKaUavdwIG*1kf!4xZ$JM|`d4O5@<7IdScHt+Ar-gzDO+Xr0qD#CZEf9w` z5O9W5l7NvS3a;OOR&;X(OSp)4&=DnnW}pe6pyeQ7SOtPKR6x$|3+SL{ggFAyNCFUg z4q^!|wK!pA9_Tx!5v1sHms5+Bx`fqWgn)rUAitke+ErP0=^*uc_(QMvj>1G_#hJ!n zRh|k!i#kCs%IbNsgK#K;2T3F$fe2EXEm1*?1Vl_AAHVKplOJHd@9tZ_hF}?g)eU+B z6h{5-5uZ5+v?LdC5C*KTnciklJrq(vT`4Bw^1LNFDZd3cNF`rhiUV1FCd}Sf-@NM*~7>lrQHZk*Xm@EHW21B9|RHV&B-#TwcB? zw-=$rX+BxyY*PRh>?Jpi3qzDEw*4FW~IicK#$kX zG;`C+eJ_?k6uJ~$2LuO#W>GLufJ!LbCi&+&VjzN077bF7o6O)tgE=9gf?>xb0Sd1x zz^b%wG0H1>l@SymBcwytnBfvc7-L43<9-lO*G zQhh}98+*EUqZvV55s!TrYT^YBb{O4#-ifBsYn!i(#q?aK zvx~Nx%Kzp%tc-Ca31ais{`#J5z&nj|a8dY|umzXkMfkjOvc+FcgxdZO6aE!Emm{tg z{)+NE{2ZJMOpU)&v7edg6+(e$r<&u)Pwexn|A^5R+Mz1|z6(#rX3Ok#fB3A~HwA%< za2pozZD`<2#x-FC|I;}iS@Yr!S0Z&qbC+hv?p1t;>bj&L3&H3VBFwP{91;pECKK4guECV5frOn0gGb>hi_?{T=9WBnH(~O^ zqxu0261k_RNB+@^?Q-}MkKn*$)h7Mz29xB^n{Fy4emVFKTcv?&X$3V19h*rVVaDbgjJ;0Efjh4Tj_ zkTMp+3g1iVmyP|M7sC{7&_Kv64GB0axt>YCjoy}%Kzhy1J+68qTOL3f?9%~4p`Aeu zKLTOB#y|~)PG|-woq}u`(BTVsij_Xs;dxn~Txg(yWkb9~!YLJ`yiEbtAOVROn3P|1 zfRQNQuK~~kTz)tkoRmNV7hzsv9<)SXJ&n28?-nSh(@Tk!LcvhXp@=XD7LkNe%%FlO zXY;i51tvr@>PC>j1z`&Uyq=XK$xCwsbNCt@0v_*3Eh!>`lPrjluaHp83^6bi1eP!| zwgOblBP(MhMQFlh)$!xp`P6}XXm@94$tU1=)OtM5hnqcWeK3KY1@_eQRiXMpJ~n zHLqP0OX#5aF++fcrWqQpyiF5D1mhtraBG_<;36EsYlz?#63jC>{bTTL$Bk{S+~K6* zhcpplVii&OL#@cXr7tHiyn^9*2$Ql^nLf-o3^L0wblOi2(&rpYgMBm68D>b#Mf8M$ z7)q&rP@ZfsG|@>~FPvRC)pNKvaR%o-$LINvj_Jm9H}ExjnRJ^J5M?Y(geoyLfbpD{ zR|HQ;j5@~sXUw1zb`n?GvnM-edP7CqF6XV{fHmI*U@b4NMunT{}FyS8j@yLGS^PYw9x0Rn%J`9I2 zFU3jj!Fl69XgNIM*QR_(cvShiGAT($Q2^^`XKX&lr58!x%yNV^+=h*mJ`%gjslAls zKO6CFcsy%k0b}?z;TM+twb$5=;4zP^0LCZ0>jwYmQC^jp*zlYWm|_YZTOk#A(x$B{ zQp%cl&l*8Egc|-W|m-zAP<3nJ2Df{nRw%<^SjU3*k7TxWEHb;Hq^ zjWwZS5^*Pl3U2_LfhoKWSK$N}P(w#pF@y7u5uZ%yN~=@R7b+9Adt6wsaC8BYBCJG} zA@LJvA!H)-00IjDd=bFLpvwwq3QxfQ_Jj`p&oiRfC*cIXO?sB}!Pb8IB%MEm<26K( z7c05WtWqw9$F}8t*K79HY(;*?5csQ(-zZohe)BEz(;c(AnOD(!&4(I zEa0)kPGTX9AExRG=ioGp+5jHN1)WoPhcaHV6cCaFrCoDDI43xGQ%Oc+L?sFmL3%p4 zp*V#E0l_J?^-9vdPkm#3(h9!gJiw!8a@JFhie_RW>Q-4W1JC|0KSHR zT2G)Y2~~#&6>8{&Lt}5v6hw&tEMY6}qje!*Efux_vJZym<=9#Au@%2Fqt0wH&M=(){ar4fh5d?$CcwmeS^~r;5ji802D|=hSGU}Ca@M(iS-E`%r=Q|dQ5`V26M&W zR0zUm;)1b+Ryg)NADKnc92Y^*EX*lJQgoBkhKW%Hx=4UZ5YQC>en5f0K4C%y)c^>m zFoKD3I%hVff_fi`)Iu#pj|kpyf=?u<5>=#*SQhReVG)HYq7k4jD;v>>5dn>KN`z#k zyQYH{ED=ErOH4GoaaIa#bOrTqfaP+WmG?1PVeCr)Fsz;wlHbVP4cs;tpn{ijdt4S9 zW|@nAyYS`?kKCln#Zm-PPpUMQJi@^GGVRgR3DP1A4G*zjA68HS&x5TmQ0fQ9C<*Ewn|2KbNZy7Ot9pIm$bdxKNG2zBOkcRr zU6*)~^(*K$)xQ{Z7u5Z9tEbyECom&j#lMCm>P#RN;8x&3X;zF!1W=D(_0R-sVQgIK zK>C9hLc(`w<}4Ng!3&2lfxX0kc*NRM8Os_rI624UF4LAU!QY1TK70pr*r#@R;%`C( zA+?&0Rv1a%ss0kqQGFOYfIoLbA;|tMH1jg+5LC z5=>F(wmF(0Yuqtm1(x9e8}J7D-!<$$!OwagxyQw8ApDol@LI!Pu6XQ-7!adb@@KB` z&oA>e<@aG5tss!zM?0du0>5-h2z+qV2$pO7T75q z!%x5(z6S?z0X~7OVGP${2`l2W*!x%VYbpKjy7q7FvH>Tozs~p?(_Nv79ZR+FxQG%M zrBJiClwb7Jx;3^)uQ+@jZ(4?va` z{Ach=#@{Dl9+<$h%4OIDg^L}p3MVyUSjgz@vwW(EHKY-7i5UnEbPx%|;$2`yCm5*V zQtr>{OJ!99IBO)M(vNY~YxE!bw7XscGWv8h&8bOUZfe{i8ww7F+b90t^ zB#hghdvLgkyqk+t-Y<-eap{R?%UBC9!H3}eC)_r^x5-_hF)puJ3sO_V#q(^y`Ilwq7fs4n?_dswRN0}D(7y_(~R@e*d%rPTua5^O!ca(a;?k(1yPG~dE zEoA6mmr1qhIN9cR&*Kd@`N8q4#HG7bk+t9)&XYimXr)9ZKtd~$V=1UWp?0N%*61n{ zxSCn!+f|`~2xDVn;4pBCI_^d8L^fd8m>JC)m#~&<$+2NIPH=)j%CSUDq(lM{%01c;NT+X zTQ&}e9>6D(}SSoja&9;}paD}NCZdp)+I3C!R+EQLADpfa`~C-NK%MDHai7)*^Q;Eln?^C*F@lNUV3+J7)8H;KeYNq`02* zuu?_|58J|xhTR`o9iZq0-vjV`6y5>eAm^4IzVtXMEZ2n}asz%IR`3F>pfk4NgK&Ye zqin+agx@#rb&QR!2Bjr1QP&5jVOqagwBvir3kn_m3}qE z@RYTQYS8N8%D*BMb0zjDeaQp0slwG0g%FVd4(rf_b7)3ZgzWMvNWblsEH$A0#sfd_ zO*5ZQVT@_P&S3cNif#)4hM$w5bx`4jup}B0+%Xa|C4`|434|5|H47YDg30oOQZUOc#M$$XaFD~O z88rP&p@$1FH!PwKsj(FV@Te!Qu{31NWSP%#0gu8(sNkM(C?HJoLLXrXE%@AsEN{ty z7XX$#x29EItJw9J{?I^?q17N@Wu6mYID`J(j^GlG-t(3mo#(p^0xv}>$0G@s@R3c2 zjR>oLnlj$sbK^GhC$9CzH^B5omY z58^I2E|G)|TDSo3g9E7GJJ9AQT8z$f3_#p25$w&&Bx4R<@TC!hg|US9z{jD5Mz{fA z1~aU$(b2$2NN~mYpB?jtaeIp=Kw%D>3ob6GJzI0CG3yP!swBtDj;{ltne{WAXOVdP z4$hcQKr_yxpvDAG&@3pb&B{(_quHyujvu zkz}WW3YLfxA>B8D-8n{rtPzli4`tC9)?K?I5Xsnskc_h|fbYvPs*x0zND$t7FSuoa z)(1ho(o z%Omb>uo4_ir1?0@*RXx;0>Rea7MvzFlyOIWft_RgU7XKjFe+$3J(~eN<@$^OY0W~p z0FSk2EQf}31V^$S#ck}@r8|#Pyx@=VE2z;-CU}M^D28}mm_Am6NX9Nf&;X`m9UV$Zi5VqlUIKP5ZWSn)KR2a$0#q|9hdl_!Rdtnzk znCF(f>u?#Khp$0|HM}T129FkkAP$AG@y|tO*q?(Xd;`7;E7*olWExoqCwa>|K(2zq zOILX2b-U+S0`NI_&zMI$v?48u#`cPzoAYz;Al!g$_*poHe*#a#F8ufKr#e36_*Ioa`01PRZ#=@&&c2GSm~JC8(gZi-@i`jc zkOXp$%M&DuRidY&5yr3tU<%ibb!4KYDozI=uyAZ73=}qgJavFC!VNs{BAXzbX=%vk z08`Kck*9%0)@%pP!x7A32hQ~adIXGjv~)QGOPm`3trU`Xcok(vl@jVReD7PTTVc9%gE(Hw3SN-?ZkV7TXKe>CM+dGC->)e-egqS+EK!}+i;8Doq<_fg zO&qqsLJh93luY5k!GjKA+5MscuQp!p31B*Q@`MHaAyLl_y?0_OsE zJ3_-64mxfrsRM@zK6jQkr8q;3EFEnkL=vP#t*l|~N%`Pifl9K5P}q}E*eqECDgZjA zgLNS|CT5Y&1+4qa=@N{7004lJ7bs6eoqnOT?Z_MAe`iJj^KO(;a=kFM(3Eqx8Nph4V-w% zMF0;5%PlqzX*wiAg9Orw)Ip+xtr^bY6C_MZWwk4dHdREycT@qZcz6^3kWAikS)=H- z3U9&E!&eLnColC1SF;@P;#E$SWsMh{mF$dzi}3zHbp#{2hLf7_!Zl&bc+W29wz#Hz z2R;CE^lxJ)*uQ_wsHC5m%N};CY(ySe^2V5?Jl1j{{fMqpW=bFc zBz;iu7I|fxrlqUdS0=CqPn94+a@*K85Mc^eB1`F3sKV>mYux+*$C_ick_>g>5e%Hoy#A<}+Ak zP_)YnmxC^=S)F7^LIo?B!!ic|3Ue4k%n194CQB$)!oeLdaG~V(1OV$;CJu5Zz(LNm zN`gd!xw2oV2snnLtN<_r;2vCuV>pG5?)v!R#+{AN)_m_`n&JW%4-l|~MwC2VKCeYh z@g$i-%!}A-o-fV#`P*bG%j{Z6f4yhX`UXmQ&Nqa|;T32rEYK!=WDS z>-$wP#|c(aMCD}ZtBkFS2mnpblkS-bII2Kg(1IBvG@wEd#7J{$ute!RR=kyA7oD%Z zpCJ$!8q$Z}R%cSG^vpwDbeD^!FMWNnszhZ7NPjSa{!bXmk;q<8U$eO@)rJR{SuY?w z15Clnh2MsJqEpo>0A$g>;ynxPN3-&r%xB(ZShFQKtCSY%q zma)_UKDa=YH#gYmh7ZMq&5X*Skj@SlDnLnw7^y>rI{UH@1W^Y_iIL!pDsc(E*Kk{y z3LWe#`!EKC7AA=nyx^eji*`%N5ey54sF5PAmG=5n7K&021kA87h`=pF{?5q7nhiZT zq^Ne35}zw=LcJneH*h)~82J2WQ03<+fG7@9B5{UDf-X-PL`B+K z0d=9jBSPv`#e3y41?|&wQ*s z18fcI0Eh5*;ZMM)V1&;MDmK&xDsxeC#skEEdTSm)AvlY97QC=BNQ9Dc!O8(KAq6ZE z1I{qTzy@1mYH5JX;TQpk3ZM}LDXHahm-rzQa}O$AM8TwtzZCuk;*>oSA?xY;mL^nR z-Uma#4D(3pv3Zt9bby0*#jPxBQ&nzUQhrAVNpyj_=w{>lxo`{vOFinFvWg{2mPGO3 zE3CuvZ8~HbN_m_Dc3-ii_|Tjr4x~@T)&Je{ei~$)2Qh7louUIp0?5N^+*)DV9Db}^ zjsVNtYN@aR(|niKpyVyV@^J)P5m$&~XwvU&9_3=|&O+}*kCL0BQYC1J|j;w+T7`)MJ(^ZCW1O5?1BnO@K70QG+DH03@!l}|379$cz6xM zzb-4c^w0nu#4whyoRGtQ@Y*Q?1e~MFWkvxtLQ8Ns&z90bfL#y>ML)6R7ac6g`t*W% zZk$5^xR#fQMSeWL58vEFgiD}s0!w(tcp~B=bNJ1M7Dh&8oV!DnP$3Fc;;B1~90?*! z*6gfM&)%Ae(2jA2kHq^F;I!0jQ2-HIA!Jfl%B&XfJ>}!Y(>x8dWedwkEo)s--hBI} zXnG5sQCkbH@AAz@xv_zQ?<)xT><`ocv~as42}g_;a)R?!_@wc(@Ujrj zan#}Fyz7|DM~ES}SqZ0}4T#Vw8*AR(f)O*?8D%qv?El(K*<1r`-i2ELBxv{(W1ih* zd;}E&E4UchG*;l@G$*R9xK%*K|Ip0-4IY>=G$(-L*<*e`@EwnW!L;zT5MTw<3|rc_ z;Z-5Q7^>`94&8=U*h&OoSO=ir4*;KpFT!ubN8mBIo9h4yvm6J$2UhSESiwI6fe+!i zp#TV5iJb(6ptwju^{fvX3H=Of-$(g{M7>)S@^mE%~o(xF@DRI#RG=D}x z1vAuPf{hWwof4$n_kimMgmn*RUuKoUNQ0DG4Giv?K4`U|n{0s5mjSnr^{=n%Q(kBu zwiwP61TnnB427yc3|G=NgkI@9r!)o{&j~7c3Xb7TxCIB`U<;msn7`|w7U~GXZ9#Jh zL-ef5d(k6ovVNSxe!kWlC7?oJQtDKsA5vS&L*V&q@CY}y@E}HVP~|LZDAyQeXi1QM z0!_e$ULQ*|rb6Wqhd>*Ud<($X*-ozOZOV-jeMrt06B#qxuBUr)LM8-}bhyfk1~ z$urTtMX@a@Pbel2Ak1z1h@BQ9`2Km-kjgsqLzzK1lDD>p@B85!SxE%rM^+;@L&X1sOy=5!m(ol%Uru(zzWuh z#`6cB8^T`3iGA-fmV0a(c=0l7n9#!IQ_d~uJR@k}*%eZ;5O$6;MpQVc2tqI{A&xjj z1r8BM+JS@{(^N>7O|Zmtfj5Mne=nedGd7p_3Nh*~7ZU)eOD>;7;iO{}mxK{4>9 zzXgFqxRZ4iYGE6e&?S;$c}-BT?2H24LuYAIKYbQ|wA2n6I??0+yWg3Hl{)#*GL{c^ z`nf*?dAQDgfli?Y5Wts(G=Y|RW0?7)-P_KneXmTD``_f?6ub`E_)xJcUmLVaf(l?~*!E&Cd%wZpWApkf< z6vl)OTOkfg5uhab+OmRxA=1l0D-S2+1Xdah%IW~<8AMf<-BC9vWyVssMe;jqFu~_t zOIC>XhuWuO%2u{a*MBZ7_kNs%9oWq{pMxBfpX7(4%cQyij=&6ghzh;+!^=GwgDW9T zi3x2W;g`VicFn*+IHt#`(3Do16}$7hDv< zXn|meBfw>FiM682{~wxy@MARLex`=}7z!+<{mHQV#wtJ@D5wAl>H)lA7+*PPz?VNH zk`fMFLLCjb%w`b*7()dsE!)8>n|yB*$#?A6421vKC?>^s6~*-Gwj z4_ianTJhRtzVLKGBnklVoAC4WQ*RMki2NVn5QtfQvK^%AgpCF3rM44TgOmnw9016F z21t(xt^`G}1AhyCD$nIVhJO#b2N55Y7s-f5@jf$x3*m>b3jR9wi-?poWMbd54IfP$ z=j(M`>J}*IA99NQe>5XV_HYK0O=Ix+a=y7oSTbEh`DC$4aZPDb0Y46dN{NrW7bPys;#mXHz2BMsK!jml_*lvip4pBcfI zx!*Af(Qwwgd8A-Wu>lYZP+-7zTDl{8IfFiDYr!{{OCO*vpU&XBbdMhwqXZegQJ`zt8=sI0lX=!5|!c-@d0VzLSYiXGT>(pl(u8E zAHCNQe)#Q){KGZxUh-;WEsO=@Va);<3gbjfy;5OSB%cXzn$KnANpNf^)G_;ZSRkQP zK3YlyH8fQSY{Is1xQ1O)&5z3llPUjZ6vYh`?8jWMm$UCBNod66Elx=3VR~>;zA>WF z4#Q+{c>`WU95}4iVD;M{lk*n_`t zo{J}NjMSvSY)Th6no>DLi4E-$YY?M>M;%U?Pl$$JqJ5GdgBljXN~nRn!iVReCch4DGMs~pz4aZ)W2C0GM#(+3GTRcA<#LN%03=V+Vi@fb||2)TVF1Id~qv09{e+Cn}+VmY7HhT3p0u zWVQ$$nDzSM3VBYSFMn99umX9<26vC|ox+0^KO<0lP;3wmNr5(&5z6pT`Sa(DosutS zD>FPEXK!*7I=EfjR%GZI7w4}BCv$?(jofg5gQQ#E^94mfRn7?5;4j7 zb@CAm?`bRC8ZknJ3MrtOKf62QVrdy+4uS{rURvh72Z&If15DR^dd_bt%f$GhJx*t6L=!a_tfX{(X+H)qSi&fK6&p44 zgta(l0fB@WNK_FsM+zudB<|oO%E}lif0!1*-Io^iM}x;1_R07EDW`mF#R80CHAIL% z#P1@7WHP1R`9zpNW16qbnGw_5FELnIs2^M$8=CwO;g!OPa7(BdYG9)eikIrVfVhmx zbD$NYii3y+EF#bvi;gCNCkBF*bWCR;cuyNiU=Jekv@@h>3KR zypm3K@94U#>RLWnFTYZiZuJB^@NA1a#h-9glLX+(bugmhB0%banG3!`s1xHztt0@B z^V)NUB`T1HR5R-U=7}xOJ3KqaEYgm+Z8R-YqwdfO8{|eyLig-)AeYR|A%VjQT;d49ym7T@l$4S2z`lsq>mrzU|}c#D|j5XVF4p}Mfk!tKXDVP z+{P(%ps<3Yic#h)8h5zB$ShEQJbE9Dr2X`N>c>1CgdX0cUp6Y?LAiLrXpAb+tuX}$V?rb(rY({f2?5M7p_`FL zxO>nt4tOP5CMN3NFmAx{B895;YzBrN61u!D3;iINN%@pl#iu6#g0yIjcmQ2ePwX>oPa#4RX+|uZ zbxXr636_LtwnkLVCuH4VRqQq*ZPIRx&XVgos{=AJT*4kQ=RO2_8Q9Pf1}lX|N#HPH zVHijb%LOqIBSA`3W|lz96448R5=1dE!<=CWl3NG~fk%X{ zLyb^@;tff}1c?X|U{x||Oke?uq0b|VYPId%{uCc4O|E+xw0Eo#QlFglM{#%rKc4P=6WbHEByP1JJe<{XPMr`0 z9PSkMNq6BVEPYb#+O}S3?KHW&66Qt+H{l*E;rs9meEc4x17yxl%AHROECGnHDr{F+ zse%%~v2JlNiikkN{}sCXuXyzd=Z)hTowC}&PFb$lh=iKkju^2e&apFRqhfmlTM!db zkbZGXIl~I0*JeQbzYdWnUSl=qjd!!ISi`DN?PV)_UyruL^KYmL0QPSfzR|!2F95Ut zP)}KnX(HlD{Vvc<=3dy4PL-skV$;GYybia)$`8Pl6_D`CEb-_Gm-cCEG;wYp7tj?b zc%l#{h`qJCv1PIO1QD$EoL>RN#5mFzCcV7r+pt0q*%RC?$BghS1h@@LaD{b_l(2|K zRFN86gAf7%Q~*>+M(p93%cMgYd^;#1m8M}MNg37fE|e1V;3G+heWo3OYVchL6iwd( z_6lTf(18bOnMcXNJy6(&&BF6d0~2Ur0d+K zuK||eQAHyHR)~QyhbfjI5TG(lXoV0+OVm?$c#uFN2rP#EwS7J%DP$N(zsf0vZnXqL z@r)Qx^TFHvdfhK^2>DMCgNQbSKuSa{k(-?HLVbx8pH8G)3^Ve3+If_toT=+PViQ+{zz$548)?L9!Xam)f%`J{q<4Le2A)3~BFiTOQiq(n7M$)XpN$fTPNusdutZOzJ zlEW-h;?A-n+p5I6Wh8>MkT8ejLa0T=K?P9&y2Kh*&|(4|(!vZ=RM1FDAm9v%7#If0 z5u8}&7Lyfb(DlJ2n3-6VWQsvdEF6i>kpv7|VT#qHgspL>;0cPfP>~dAVFVQlH24H3 zV3m*yYb?PrEZ_o+!DA68qy-pG!C?^;Gvpj>yR@%U0IO3PC`vla48`Cch?*I_^fMRPhc z-Wr{72{t`ZxR{9G63KB-h{A=yw|4mNA7um^4{B&?F^7!MmQ>Mt+~XGBxs+E#jvJk> zyXVaI;i*V8X2K0egx$dFo4oS`X9e;|LK0|i28N(qrRyLefI`h@g}(|dLxWE6h6s{y ziMgN)k|#}&IcspBD6D0{ojP7t1_Mf0rRv=JLogbI| zk0!t{cvD6vd}^P+dVxnE!2z^+2j2zz0rl~BVP*CAS1cQ8;yA(Hwq>kb%fDnJApT!%}Agv7KEgDNCoxD+PZ5hB#{T+kex z0(&gmQo^(TZLsIXyB40E_hB>+(%VRO9VAyq`j(%}+5U;;vA=n_+aN^ph=6hD3l_#+h+ z1yb+MFL0(lkiBe606E;EbfFZf=CduKZbT_5FD8ZEK{ z*EyKN6L1YY>_UKJXu;*Uku2{6;xMYBV{u|f2*UWtnN0AnEq z94&D(A;}Ia3+t|RDb#xGni0(*@`mUMD7+Kq@Oxqva$>wA5wJNT*eM(#GuS1~V1eEx zU5OkzPSN*RdL6qfvc2NMT|1od2#nxshzgIuEx3bh!HjfF`YrgQ%0z6v)RS$_V=K6r zVzn8zl(jk3-b)%mfNT7quy)T$}sHBm!HQy8ajS2A*CcGrF6q~>!)Ys8O8=!{g;TC=$AdJA! z12k6lgju8QBACMjsR@cKuog36#G#NDm?4mqw36}&8|Jx}sQSEf7-kqK>ecp^EjjM;VkLuemN z$>Kb1LNCG$J*A0AP)2k4)T_)l*K@Vad)8zO@a?N~o9rqhxG`mRi7SClaZ5A-BrW=+ zQk)Q~vMftWl{g73!4%++!}P2GAS$bdk#byfutpXr1VJlOgIDUBZca41DY|BE_{f!5 zS`%ZL(z6rT_jSEY02njg=fa3@Kf(=1mrKgzVty*z2!#BX^55_#VUP&B56V!6F{Ruu z`z!+r3WkK;ZwswwAZJ8(K0!btBM>0rVPd)RT*Pp|@K8f-bcN-w5T7jIHMj~Dd=J{h zq~dj$xiVkdYxW|$LV~g2g)Qjd>u>=+7N}OFQ=UBH(jgzdjaJ;e#PfSxKH|xjbETk$ z74r#4Q)VkXY}|zfRD>zs_>o(JSOXq(m>$R^Il~O$Ae}#iWv5;fRbj>)e)kew&jf1a z7EFi`BG};O5C~Z67ha7hP{94g?d!lB62K5p@R`ETM-oFT-$if8R64E zkW+Cf^uC4Wk@#JeBX3qf*!* zK!S_8x?SX`d+x}Y6qc@th;s`rfI(xus7d&7n&XK%*OVJIlY{`V2d6NBArQIGorU2H z5n>kB1=>7;Ev&IdC4kPOi^)3)9$L(TL7Uh#dDO+2Y_yWEZN>Se^%GI|g*Eaj_J;BX zQbB@!?E7L{h!?rxlM^P$W)`!YU(?04j{Y>`?JVY`RC_tYlCNzSFvr_ zFm^km*FDzVeC%Qqr^pLnGddpF;!eK(1GG8*qvA3|zyOL{ScEuCz?YRPegk z41OB@K1o_0fk_Y-_2!mTVoT9eC+FcHBMCcbNn5mYn3swo1|UL=T+7%$0SxOWbM7j* zQogc82;d+R1DlS?sc=WAOZ2@7V-P`&2in=KA(pWM>t0tu8O@n~)!Wwtwqb8H$b-U| z2sXe}i4YT=fe;OZr66$6b7{$6y31cVM-4T|nFFze8)JLeh;#xUHv5amsk);U;`GF( zWMpt8Hk=Bo2z=f1!9bg9g(;y4%Osegh~?8k0L`yGfUCe`dFlQ;aLO44-n!$k;?0Iw z!HSg75k$h0&^S5@hb{CYbGzl@^zd2z| z2b#mVkoR|c`_|z?)h+Gz&aBj+nTQ1z;&np+KZ16vIho9Uh zj!2I0U*LP2T!rt#7vLx0f6}pYhf zFXbgYb=5(9HYEQlR4SnWPFO-yGJMDxslyq(6TS$$nXG_BHAWKSgjK}YC*21EfRhpy ztKt$?C_yp6vXHXmgfv;tHQ^FbO1Lr%P5>0&!9eLSJDRk8K7J{%as;%G_>2WYN(G`h zm=OdT=n@iGjfp}t=O)Zy8`|s<-i9?SEc^Y62q}>=#<7o|Dc5m`B~74(>IWS#=<6UW z4>UkR!Aj|XXarAC{E{lNtXL_PP=gp&187&`G3)(zXhj8vGgzb~(`&Xpew)1R^t)Xn zNSO^%5fg<1=%Oh_8xY2kMhIYK@gffLBK`ZJtcs;~q9@=`V7QinKz;dSV)k7CS7LL* zz;)=iI+RPXo#@=!#B4KjaHIMI14e__ocP zS;DW4Ef-gkf{6;Q!|KqkQEW1emy!gtwb?7p`o(kICur{xUKjZ$Y{9#bXRueXyT~u1 z@5dbJF8qD(FJRA-me^D1Ux3?in8jZ|i3Q~y$SveeA(A#>S?f3IxQXn*H_>NE6X6Iu zLH3aru9KFy=V2=Lt#Q0v%PDq>+d!^6vyiHV*2a2dcbe`sc#-Pqz$DsjXD8r=&yQ0Y z+unw|x|DaX*zQu7LcOQkRBP;Ww67vhQ|}YMM7Rs*phCWlzoJxh`~A9cgsfqN zB_zTUD$H1oay=~}iY07jBv8>U+uumHmre`;5;me!nuHV7aXu1Z3&!BjVq~&Dfkffl zHmHd)Q{)*jU=HyGI3hI`G4cu==>pE-z#gQ<)@I@(7_t!30Rz4x6N1Nw9>yTTD)04W znU07f8CD~LHxSIDf*Sjdj~w#JDPI}0cOPsPN$?fv4%VUz+CQ7pM{f(q$!bd`5sl7J zWRs+9AM@=k9*3^wrsJ74r$#f!K~xMVqSs~Lm!1rcd0H4H#)c@s9f)TsGy}`TLBe}t zL@GKXD(a|!4g(pXHF8RTHgZ$BsMG;*Fc4xRZ!1+P$dCs6-M|X);E_3hvIR=w`k687 zn)Q@BmpFAi2NGyoCN*z(D%gSp_ztwN3s1o>!xOMHg0O^#q7+i!; zg1{qi8Rk7zp906btqI#V6nj%-|ar`GfOCIQcSsU--H(6$GAuZ5Y8<8~$=l z5|(h=^9yhbmhcsr!vu~ZAAh;DA%3g|g*CsJ5iBSuzQF?lI?g5Dgeo6l8;(cJ6z9MZ z0Yx31uz~M`2Tl;f1O@`b5vsumjec$$ za{pcrBvVAM0Pq9FG^1GI!Y>*Vq(IoBYGH{f0wY)}Rm3HdV;oott8&&XAVTd4hD54J zr@h$C^#c;}i=jwuEP4Ij5n>*&4q)_vSic}>h)_WYM2~{3nM5R(y(A;|2MkC9<+Y+3 zRw5Is5?&(x`pi(mNkRI35tJk2djC{_PyHY*(}qe9N*j9svmutWgnzLl7)pkF3=xju zVm|RUH~#KHlYwMXqyzBu24E#r#~50#{58*LA}v7<_CQLRAKrwCFf+RQN?8e5zopXp zLeUmcMLfxfrF@S9FjZ2rRT43xLM;*z2O2L%#!XDo_7~k>e>5Fd@k&bDZuMT`F7@xj ztE4BPMsH*9A}vu*oWdUo_T0WZZS=p{N`@Q|4j{l|=m@)oy@2kJ-h)2fN_`p*$2@8B z!6h$jr&DwP(Mqq!@EcpQfX7J}(QD|K_-x0gTdqb~soijV$=NP)8+jIcPvBdd&ULb^ zm=n&!A?xpWslA~0JZ~5lg~x=vCi?^f*00iQ6wSG>|zE5)k0@{$r!;EC7J9+`(wxL zQN4UMF?bo0)4e!ZFq&cj5bx zkPpCRwEv?*^NMNj@%kzKK+_T?hB+pm+*n> z$H#!~R`0vy5wZi2x}0G!JLWEFgCLY%M-H{gE`Pu_$v zd$-x0^L|JRFhu%5k38YegTX3C=D^Bu-~|l7;Hr_0_dH}ZZJXcP<|~gfhCc#N!XEs( zaOkKYL6>=kuk8?Gl?2vkY7WN8!I?$VUV@8N@PEdKX|-X`C2tFv^e064zi=loNoy zY;xJ*sLEPVR_aQqx*VkkoW~h407OqKY$Vj;JN`nWy6=iz!d*)8FT}nt@>z59Ly_H+T5W2?DOQ1Y_kLt?U}7t29q?zP8nxHx}A<)G(W| zJ>}d66;z`C0-yc&?Oe&6Yw~E2fl=E zBQvw7lGKh<;wALmsA9KavSv&8r?uUK9oR=Uv1ecoC(6!26;rKh}cvnkXvwMgJ%;O*w*bmYZ$>|X@fGKUj0yuy_27$9o*a*yOx{48ujZupT z0TfOk3F8F_bBAy7LQ%GZm{Kf^N|Gz}OHu+W zpfCU57-m?*8qR0A?gPWaL};PvpWQ~*dJyPf3l*ybiWALpr8RcW>>1nkHh>~Z>J0~Zfh15%?gvE$yZY>!3xI3Gwb;l zS$<-WLO#pRh!6s((1C&VK}1Q26}s;63?dl#ypV(jIvl7+R=6CKN%13*2lRUPqjn>J z^~wHAAFUB8T!KK7o^F~Ik9L4`&mb6bj~7-pgD7a5@BRU9T3XVS)}ayUkQN#Ae&uBj z>%Go$OG<=jr9n#j{=F}*GjV_o)r5_p#!l#<9A9V!*HefqYu}JsYlu>nUfXd&!oxB}MdT?pUPn#k=g`Rv{gv+RrageiV}1Zs(S!%H=dm3bT3{iF;G)`D|r zzyvcap~_5HCzd&(wV$98Z`OMJ4%)_)WDJwqR+h#w{^O1C>*KIV{3FDVS$LiB0#S~` zpW2tk*(2Lx*4?`$Cq^@4{X;Bzdwq+Xyl~MmB=%nyIQct6+uSw}80@IcU>Ki@`cc zXA+X#?exIxYOqFhge^!=UO>t9X19>va=}rHgT`s$L_rx|jK6^VV{IzjNPSxZQ zUDvyE!P(=E4xO*;?uh-$RwfM~$r`zg*;+z!vz1g^_UcR`-BeN#=aU82ziR|E2~M~r zDWJQeU*9o<7Q2TeXyJE|=P-fS(ItE)*?!_ToIZ&?4=*AY;c-ikAF7y)FW60$e+lPE z&mp^Tf&oEg%j9{pk;t(mkAE+=#I7KBu$Pe$_9|`x6)xZw$RRqRQm9Cd(DEvnaSPPg z5~iTAr&wmpiXdiqBg!!tIK+sNxJDF+$!$&(Q4UYEQo&56N+N`uk`nMD2w9^F2Zlg} z$%-z;wh}?dL8uTVts#M7vGmCf8SU)M^7xsJ4JJ6K%lgTY=Vwm%XHyo!kf}UFs!U-` z3RsK%8uH9I{*<}3CUj{a;0-hC76P4O%EuS%*W8+M@j6L}(17bN%SCH)pl3QF`2yX% z0{=GrUCy?(F!FSeAVvT$G;jc6K%T#3RGyI|1U6QT6z5RoR7f`D-Y7PVOtSq+82vaT zwB3XH!Q_n0Q0gnai&F>W~cuw69~}# zVd^Xh(lK6eyopQvI4ljX5}wU2J37kDN&-(|3U|QZQbA}SAaI%^MeF++b%yP7Hs{(B z?!X?5UY^hkR&5JnJiEumtxMwQS9y@@jFkTsph z6gMJxMhgU@M?%T;*G8*E!KJdkh=E{J5-^8^N_H;$1FrIwDiq+9NpD7U4f6#O5dlb9 zsu_@y?nMOcx1xr=7@qaJTD@RGN`>ht^yw^8pCO)d%n}J$UyeFJg0>JV6@-18UpVl^ z^{0ka=`I*hmMhng3*s^!Gk7(Llv`3znfTk zs*YL09LGk7jS?|3YOxeTC(W9TD%4#_Er-7S8(W zHquFmj@CO9ry|yI)Uirw3u_y9tY#){VyetdUW+=e7}ato=yeg9TBUfkuF_Y7ES9NJ zJ?EN$T!YIuQs`owepC9a~;R{q7PrY$DPoR%(|P zTn#ezSd#VJF3xN+v)69g>9K{xdYs+pu7P5P>tgGTr@l_Y$2gC|a^-&VN=-y)3(e}D%3 zE)nDi{iJmu$JjfN4crtxM1G(27+gVtPr-pQJI-eS%PgT&=_guSS?hHgo z328|cN$>)o0rh3IJQSXp^9#rPwXGo>AOc3WM79t?8)8dZlD;{yPtPK)(l`N4I=1Kp z3|(V2jCiExLSU6x&!`pa=prg*%XWRdlI9l)0urbqCYh_P;_q-DHGqUhG*RV)B1B~s zz%ao)3Kr-b(Nlp~(NBIW8h91_C;X_*!D)W+KsF02ZS-g#3U085tC5e~q3kYlU#`iX zj{d{vrw2j^4%b4kK57xL z8d;;UrzRSZAi)U;M8gYc$-LHzLNp2o;e8n z2o4`<@{)t#0x^*cYZymJC?!w{h6$R%=4Nz)C?hb4j=E4MVFH3Als=igXRTm((BAr3 zUU%huQ7B$oq#LuIGF@X4d|zB3$83dqpAwJ^dz6Q1bu*IUjLHxpKsP}Ar_yRto?-3d zb3*CUD4lTYQd=xF80}9&8W4=$&kBi9>1}QDjj@CPV{mX6G!rQtg64m%a;MZZQ!Xq( z4f8}pBPIaVAk~p4q^D63%WPwCC^R{q&(cmm22+R}j=5ViX-nwX4flmX&xt3;w|O=s zkrV_;2v{T~+KRET7S;)8M2CsEd8&*`uw_VQEM;BWuUt;2#Aj$5+FxgVgY{1*d1fxB z-foCo^lnoPvEvcJ$==kwcS|#$HM;I#M^0ul4g-t8<`_3d9krL4*Deq(9nY-`JUWpi znu3lrjD>T~E;YJTDBxay5swI2}!0SGh?wvk&9!Z@zf3LuyY%z*y5BJ zEi5cq7tOU!+r7AS($3f)x7(+(X*_qtUZNnSJ=(qFT3+ z#-vdVphN`q;3X!~I(Rh|hYHaKmy#uu1XV)JFzN5M`ISYADM=VBP6$?3ts~{l%rOVLKdc5+}?$MnV-howAV_uQDjK zFMwqOzB>VjKvmO4ten)@p0_z-1qls|g%Kb`r45W=iGm2o%!5Eq7Xrjp(0g8VO^R#35nPs35_5$EqGF% z;vkG7(TFwGikJ%vn)l+1uBYz z(CgVK1E>b^Ed}|*F2o#TY~%`9lZ8&_@Fpxkisls7Z>k$Z%D_(>jNFqPsl!L`6zjnH z6^}7IlKU))WgR(zW7vb)kG!ZnAqg*6j5@4eCv5YX639kfG@Ef{Vre}sQ~^tf2c-^( zumTb%LLgL#fC-YUtCK{TXfPi-lUUj3FRi*!_ZQlB>X(00yEo~6I`HX3N#4E_^xL(F z*Bxw~Y#sFSBwZMhk}9lCgxH9_dy*zzPJ*mfsMvTU8zUOQsn$wW+fnc*F-^xjwyl!v zw8iinx#GVoEE`*znpziZC8{t_7L!%zrjsi^IqY^NGjNSW^M@;$X-uNWNgGlnvP_Je zY^XOuge`Bi+D_EFiF2MO97{t5alABRy#|MfBUvjxMpkBR;zGs9v2RvGLMB2ZHcu=A zN2fNLF{&5?Ml?pEjzVrNF+}O$0kd`97(yc&zmPHckRDz#Mj#{l<)H;|s)h2Xn3uaCvihw3;g*k^-V5B5whTxq>v0$WAX~5ScLxd1$ zS14X;%rWxRf|?nuYea$yYJ_CbQw1YNO(gFz#8PM!@M}=0FvD6XiR_lWmH@CJ@Lp3KI~p z83sEJV1I)&mxpl6$Hc& zWpzoao=M<-AY3*!gbsAz`)TnF7(;;3eaGB-Ry&ODB6dIEcoOKRz0S^+-Pe@y3KuZ} zfgh2+n=h{K&^*^23!xJnEE;YE#x0kn*S9xJ<7uB~#=$WhLV_hsa@Qm90-S>p9D-M3 zVhqP{2R5NGoFi3)j@sdju1|@j&;o)iAz@8%qHSOm5sJf)y(QbiEd3PguQy~ahX?`&E`6sw@aL9-?qVg!#F zQBgw!fC{EazzJ5AiStYv-T=JhcZyNEa{EM+1|-@EB5;UpAPG9Ckcfe<@e`sV0c02) zmWegM@Y187vk{UT%gnQ?ktG45fFb?I*!MZ|%T*X~Jtat`BZ{U}HVH5)iqTa0^D9Vw z(gryz36Z}$ffHCk$S)j>;RejhQ$q($9u?pV2Q$lDD-b}ikY5;1Xb?fy46U@Ar@SF; z!!fL2Ti7nK9|6`d<413|Ju8@4VKz)9HpWBhSA_q+%>4(D z=8zmFi4-YHq*h^NS<;fL^?L1fk~5rh0-O_IIKZ&soO8|_EO{tV(rOhckxP+co*7R3 z=Z{}}!xOr@>f8nvE<9*_f0!XhwhtN)`t7%4Rdv@1_qk7R2xgtarU7P1r|4oecE*M1 z61T=QNr@b|AqX^A+@tHG%&aVam$ZT!AE{h^qCHOhNFzDE4R&r?BP58j%6Z8n&~ zsB%Xpb38j^s2Jy#H?ZyPZqggGJ#inaQl~qeUARUe!=0xSlhUIV7rjim)GESms?@{XM2I=?u!rZ$X16t^$+m76y}K!yca9tT;N8M`wnqu8 zJThwI^Z;HRcxt%g7GR?goM+w5HY7rl8Bp5DA4Scatx1UxlSoiWXV}(!n`0NH$Qz=M zJ!~M$!tDOW6p<#T#M=A}+hdQ>C9JU@t2QS4D)i>bY!s3P_qA~?mst?UJrz$ECRM-^ z22{qGV@VG$w8=hC+E18U8ax}@4SA(xDnY4k&Xn+ErDHaYNN^0BiLO`bNgabz6Jrq4 zyu#qQ^CGx~ap1Pvi`kO_CKuU0)hT(tvAR=wGH6d-;WEvYZdPQXpjrpBha0WjEa$bC zKUDNb3U55KL&T39V{h}XMAF>9b(eRyH7EOj(RcWdz%Rr1VV}aB^y5U2-^DZbf5g8) zd>8XKhx(rw(mz`JA4&GPslIAqFipPB+#9_(eMCO!*wvb?TJFtDZ>5wRRNP1jW^BS; zVy?ZJV3Y@8LSzJnf;8iq0x57)%$QKNMv#9B;RehDUKuT05)hz*QBh!EPQu))I28|d zWF(_=LM(+BnLqWMpSj?w1^)r~cfv2i=ivd(_AkuWxWSqV9tjH*1sz>jg^4bq#EGdw zm=@)h{i8MGwHV-k32UGN{5|;d@H!aH_!S1=edK?*dN-YOfZu>$hYYX6kHZsq13PC* zoDHysTd43Z+)I3{vdj1hKK=h2$={(ku)z*KdqXJ9j zG<#UX>LbBILe7WEA`1V}q8Ziq^SGYWy#Dyb(lhk2m$ZGPs5M!?TbF}1~Xp^ zTx1cM`$5Uirvd2A_rjUcggu_yl|!-kNv|FfwE@ z8rA3vB@-R>K!W5HupQ2c4+khBthqfqBBL3%MKLTh5K+k|$2=@?I{_}{Ock9-z%r9k zOClOt3)HqE$V;nE5GU< z5ER2_)Pa*Sc}D?jM(#<~UKH-YTjXSZe^NHQX~w|`K@?7%@Qke}D{>*PQ4l*ykQ|OU zctV0jGS&ikS0OsO3L=4vlF$GXg5w4PFUXjM8R*24R!*io4yCPkr-EP1t+nf^YpAE) zC@{5Nm_Y5=2@dV4f&8KQ;sQ03@|_j|cn*kvjwf(AqyvSfEz8t^Fxj z8wrky3KWv)3V7oMDhLi45(;jrJS5zyj?IM}b?dCxb-%N0esz9)vp>4(qjd9i(?9Ri zj`F9!l&<EZ`oAv=lm|qf?PKVuub%_VymJZeK^?IdaMJduj zaa4Cxl6AT_)CY;cZ~C+^CAlF=&DYhgj@r0pv(9WSy%1;4+AyeMFJ{c82Z?>+j`OIq zLN3AcfvMUngD_rWt6eijCXd&J&EH z5(1Gy7#E5AJ-26e&$*kULf{EqI2*J3ogX~Oe8di73ObQOUA75S5#A?xvgaOO#O`Ai zO{8=3Gsb6l#WyPeg}Sg@sYfI;vw~M_7<6yN&?Qf-jHxn%P@lD0b51;)>}eUMTKmL# z&np9-eOGi{=wV}gVq3NyXP$e-Sn9rLH&ZMTi ztO2mbBTp7dg#`VlqXgBXw>QRe>hvf^8UJp}^$D zQ12-Lbc}9DL!-q5z_@ijb;G~!oBY>4eu9I-2L5+&1*zf7smq!wCJ-h}LKsWNj`!np zFh18)DcCKWmu__pLj2_6b;;gi8v5{ZuxV@b%fXx%pJ z893;p&%-I}4+H0SF8WXls&T~gV9)m*`Kyn(-~%OK{jDhNhIL>QF=H=j?Pkc>1Ey6W z{heG#XVqbbQZxD5{+$zHe_J*hD^U~Gu%IGA!N97G`-*tU+uNRS{obw&;|G2kom0T;#s>yNP{H6$6l{0mTAX&DJ0T?gO)_1*2clu+|Ol+DWZT#Z56h?S2ds{X`Ol1tQag zW-!d5zLfS~z?OW^r^;5?^6?Gq^h67hkt#kzrV5-Sq?4Us;6ipf>Cl|qER7-;f&>Fh zhSV4_K?e{?6a%1QMg|kbahfp3m8!qNo2E)anE&?xtTeGd(LPG z0(J;-26qMqBj7TbnQCy%d}3e{`(O%Y0o*lSGtB%TCfU|yMlU9>2gfkOB@4``W3_>N z46O`6gxY8=Vr8*19%U{QXE}A~7$iL7q7KHTca8!JfogAdh%_mV;;PzNqBD>k;4AP} zGpBDLCEkSr&t`)-U-b{1y??mo?OV{JAc)6G!@49(cH!lqKHuM%gS@1l+_b%fiY#2c4p7N6bLS9-Uo zf96)Di$6Yb0l((?R}XA#{DnLAX5tsKC%T$oVJk zrysx0HkSKSoi42u?z8bg{5n16SZK$W{~9valBNJoAq{=U=$b zUtIG#h$dX}|5FJtuEF7Zjr)nAvJHA?g;M09ta3k&Sx-h=O&~nc83rVL3k5g)j9)zG zZ{5XiTeP{DFqw}Kr{E|*3(v)5JZ;m0VAZCz30Clr!ull*CACIX3mg9_$nVEcty8%p z)+2mc+z|!R?+#}_!yWkjPe0nXU-{09ee@mTVhDm~Ff8yvFQoz8O zx0;}bgSd6}TRsWjw__88p~lnY@PO~MR1PcNx}cjEr7l-2us}Ubr+fgSLD8-X_cPVF z&U9dfRGE8{G0b>k6S|!(L$b)t#_O4LFs53o(ipot<$wFi{BwE!CpOcO`TxoIi%dU$ zTZn*QmH6bEeDJ+Xk_uYU2WDhv>x>nJUrKJa&35TgJUtJso!65;L7T$uY%aQ) zKC>~-jThoMxLJlUBGTj0j!>i<(YdnxE%DZ*ZsyFnKbU)Vd_WnS(XG-LwoP%rPv^~E zonVAD?wI4Qn23oKVr@Jx_O-ASI##=r!jYz;=wGprJCjIOm8+xhBju$ z%n&*jpEE;FJ-AUIf`?9sY@8YIU2%+3&~d`lsiI9?_11?~Q$X(hZl})e`l$U_=1GS+ z6`3nmW}Csfr1uW~qHvbjblO$Vh8w-n_cmN=U&_;Dclw&q!QAOCp~$}XSU-7Vw-ev{ zL}wfQ>fLJL@2&Xz9k*7072QX_hx}8dUo?A$?TDYblm6yqef`KEf6@QgV@uS-8RyjR zAJPl_OQVfgOp&NJ^4>_wmB?5!b3&9#3QRcYfL9_zz!u90$Y5B8D#9#a#-m15awekI zimc91j(Cqdop2GsREdtECyU7`TWs!fuhc~qj*x80h+@KETyxd)pLmP+KEdDZ`P54+ za1PyvP^1Wii`9n$%G;#*(K16hP2vvO7>wTNG8-7gV3tzd9!pLWAA2wT#Rut^vwL&9 z73_=TyVx0Wv#rj6k=VeM(!t_ho!N3{t{fpxn4pNKg=6M9JZ;!agZ{)y&mR6ekU=k1 zQCBPYzDFJWKagXmnrv9WF?b?I69_eyL3VhjAW@H27*~IUk_}m6=;T-B| zF0&TYKZ?7z@Z&dZcOTKj$KPQQ+rzT*r&x+%@Fn|3kW!#3^qnMC(misQD3<{ zx-R;k#Rv4S!7lK(%&%Ft? z=SqMrJlxT|<9%br(b5wTP?z5Hj+bP~+?t?=af$G$r&pW=tM=fc$?1Mb%h3hs{pyAJ zlDD)h38^|*xAl_;pmAtsL8cR_5{95Uu6Et!kn5Xu{jrt-Jh!-qPPMnbqax&deM^@} z!B`mV^eU}jI+ z{`s@|7jyk#>XG_$OuxnWBRBl9Umw1<<=FASaj4Qh*iZH-F{8j%ZYxs(1GiR;j8x$$ z6_H>qvM?|si6V6^*&`qzBw>M@$;1>8r_!$%&ZVWRz8r!n7~mrD@r=Vaje|L+PW0xT zQ>yjmuP1Gdqxg8Xufj1PP-{A&49U%qWL0V977@NBk{5q^)1&`sX&4)Ou zOvUL4zM555ncgU}OvisS6^@l;tlX^XJhM-DP?fV+D*MTD!ulMJXWVoQN|3R^l#?m! z_P|c=zz}q75}Uz_NE2VX;k+X`3EV({a-vq7W}CY@W?LIu*HzW?$qh{x_V~d51s^-` zXH0`kBk!g9cUSt_I^Ht-zr!D=zDBx7+7oXP@0kC_n!mR`{+^@%OK;NWp5%{JuGZxu z`w#T~*z;rK#fzv^3pb~;AX$!HRRUS57+|f-!o0{pZBD5j7Fcyd5=?l81U9#F`yvM9 z)ItqKD*c$PVz__sdgE3fjdaSuBFe=IGI`V^*0 zN|>{Dwv|=T4>nMSZcJGzjp>Eb7fEY$PRXR_WD)1+0`2j)4X2(H59Cj=C)9OuC4TeO zR00~m#MeiUj5+xQ8+O|TK%jz@K+?j-1{?LnwX+9Cgvxctm z#XNzZfFBYsOM#z(9qeI(YfjQZ2lwD-8iU5bQb59tRpv?MtD-}OQ4@|;48oY4Dfq2B zzWNjwU*Q`;stgkm?9W*rz(@jNJM=pJ@8NS#@kgzC<||OJFF>O7*e8fAp#s%0;{bc` zi~+67HqIH=k<-KH=_f7!_CpHk2k{~7h4I^$>GyW#7$i)o=+QTM?;%e+)?3?7t79*Z z(n)4u@;F{&H-kU0rmYa78o(M-=3AA*M@lB`VT6nox}FdhiFYpf`VE~Jj4fP(!BbjZ zJWVspT!|vi4Yhj9GaSI-S59Pqq=23Pb)=w91VrElkZGp|8B@HRwLlIW+S?V8U`Vz-~p5rGE^&kG# z?upqq(PdBHgSej9%ifzgckV#J9%XtXgn=8yn4!W=*mY477mjCy8xl0Z{MScgHZI!{tXW{z{7x$G<(ubPM3 zm(WgtDs~H(D483qkzlkun0?nu&!*(YDzS00#VWa(w#gdb3<`M*}7Z>H!;JFovF5nLv&kcQeNg zFAmHH3+Hy`y*+1+B^C2S*ciGTQV}l-2cNWkbiI$Qa@tk(vi{Pv#lKuM5PYZ>>0 z!bBM|t4&hR#(1!@Qh9!>H?Q@|Ij^lXSPY~YrW(hv@44w; zyGftDslyPTICK#8O#WoFt}E_lM2a!bsaBhdRg)|k6iQ>gOcQ1pSilyUVcANt zohZx~SdY13&|x5(RgxcOI>_!3)K<55KQn?En+}f{Cono=&L}X(3}Q$aCl@{it~>sr z1OK~k@ZWyOU)(h9;>1Ax{vsF*8D>O7$$Vh7!EY`7v|H4;{5Qh?ZsyAP{)tbE3y6UX z8Ow9F;Sf{!Z+H0t`jl#Cc7+2+2;yBlqeKkEHSvbI;0H>4?0NiiAJbnr_kYv6Ji4un z1-aY2Vib=H?9X|fpzWZ&gFB^*|>+0$H z<8^wE@wx9x&X4NdSGiE!`)XZ(CJkrGdo#~ecn{VEH{0^sp7D&Q6>S!QajVpxSP?zd z`Ps|(VuRUmIrNj$j8*U=Pjm!LbX}vm0>tRsPt!-M=mQH#he8 zR{X@iSF#t|IKJwe>z4b#k5#10(p!)u}!;SCDXm`^gi2=>8Xr=*H^ znhR4+9hA`p23k`B8*vdpAfqlJY~mDr&{EkdMlvig13y7P3^;+IPYnGS(&@hr1)%-; zp-JW42PAeUTiR9NhMLyDblVf4B|6BU2eln))7|@*sIvT|hyzQbVi}|G(+-P=jl$e9 zL*J7Oj^M2v!AqaZ8LBO+xmmlS(Ny7PIK>DT(2>D160TFCEk^0EN@NObCaU4f0%`)M zHBL}h06t=lPFQ?qm}#wH2o5cuwVocI2>^S!z&?~^sK?ubg7b1lLF0*)hv?$$cfyWB{QXc<&Du_P2MLYI#myqY_4n; zomp~oi4g)69Jvkb*`*?n|L_b1}{k-NK`0-;T-#gSN zncwcB6nico+;WbX)FmQgv)u-=WRhSKomF8+sKTgw2sa zrU*$Umz%lh;5ZS^w#UR&u!NvO5n0^tWh%3B#=Hfx&fy%MC5Fm>_AP$wg8#(>-f%W> z2aNx3%Hlg{T);on^EUiQ<(`lu2PAcgoUQ7)=?4|b>ddh zN-dPnrS$ZUzOacuT@giokPiNG;8Ouy%=^;bT_-`vIu-Gg`e>c`TX zUrdL;OLrf(T)$SX|ICy3e(vsP|F6Tnj+oGnIzo@G;Y{%dj{Y|X`?Bl%(YD5SziYpr z_?dGa1fPAAYD#7(!@KZXB8(}(Nw9;baD>kg3H1Mo1H9<&?mInXCBOgJK1p89h69Az z>?U`5T^>o5ni>mU>tnOc9p)AC$-n}M%Z}vSgWvj2b9rP|qQYd1nK~0ssRi3}2G!U* zkDa;W?#Nl?Xw4T6=fNpI%=jIQGv?rxFI`ffvJrY3u=!N zHj+={f-0(^84qegkOw@&EjWUJVTmTxiN%uPC6zZ=$O62vND^I0fR;Km!bPr_ou*G) zI-AqUCTr`<;#RigDlN-|UBL_pGXP&6+tg)f%?L=88L!ZzAZAD;AxKMLdJ(|%kTAOU z5V$QA*^~3(M76{Kbz}&-4uT?zApvCQCJ<$fRXE*hL%FoYAPi>uW=rc-#NgC)6VzoP z;T}3TEG?NO%WAvO$-#d@UU`eF_)EMxLkqdt`z2m^I~Av>2tX`pWF5}o6X5W6+ma!c z#?^ePPYfsi9J+QzGu9y3J2l{l8CXLxwK&_Sptgc~pJ>(7+JJ9GsujvDrBhb>IG&{vjJp04IUVmnKZM9QsRnwCwB$L4#ZrkkY?~oHU}3D zWac7QiN5|XUzr~>{z>L{*!?W?3+lh-i+=Gee{n+zwqhj)D5h(%ubdlU+{%)a&>ELv zn1Q4jO>iqcFKLx+lQ@IUm{2DiGZ{sLaoN)wN4Xmr2}Te;hg-1eSQ$=$DweP=Y(Vbj zFb35i7%X2p=J_^ISP30vCX+P`ELu68+r7lvs8A&ndq@T-AfR(hB;m#+iogJpaH9t| zfjJngUCDh89~F+z(pX{>)|m`LYHuh;!|D`9SQV^LS7aF6221Cpif8i2WBPP-uTZ`_ z<+rR#P;g80QM?=nQ&hy~$k^8;5CB%y({lMC7oK&P2+3(~c7&^P$lFi4; z^UBw6Nyfc3GA`Vc`&BW)*^qi8!C@{36IhXE`i#biL-m<>j6EN7slqfQvuxctmtDNN z;yjzo=Fsh2Zs90f)qE&%Fs(27++F`z&oOv0bEwox2luvgQ>^E@PC2!Tb;oL!ZM{v| zbO^n7G>O+%ZqC+SR3|#o8_{XVwlTY@>?-e0>NmFQw3hy`>hC+m=STmW+vzvf>7T=U z;=9o=!S|E??btKyuO|Oz9>%90bRU15-uhz##Sg4`G1=DadS;FsW}a;5tsBe_ z)9q|HMjGX#tTPV~bwxE;;U;%{#^yGWPHvV^wJC7S&4Jl1JbIZ!L>(Nj^gT5xjG{aP zm4i_$2EvcnCwf~`XZeUv@CeS~2KI1Fteii2!|Qu~X~l1!@z>AT!w)XMH2Q!Xfc6!| z0vzny&H>0Q1%v+x{NLfB60v*vF9GncUlZtlI{=pN~v5q|9LAC~;FuD%S zgy9u;a8$9SbJyAeSfESwseb>nwMeX=p`zi zXzOhSB`n(0z2x{$r^kl|Tvo-(5*oyUpi?jb4P(+1AZ$UIN`v=AJ9${E0I-INW~!YSJOMQ&GQ)bAKG$7;=DkNie zbTS?=nBX(;{qS3`gS!ob)Gfz3V#?eOtPY?K``y<49S7c9v#J=3P?y~Q$7V;JX5ys{ zfbpzS;k=_Oyb!bLO5Ahi!eOE|@Qtdu<3_+mM}os#S6=^@uhpMhjXy?(`8OzEX8t#S zh3|UDetl~@(Ltb!xnrRkew=LG%N>VFX5gk3X4p*3xG*Dj)%MaLucS;sOfX;pldMCH z;n!+7u3lEmgdAKPgDzo4gcD4tm?cOuL>T4NR=DB9phq)ILDgwsNL1rt)?Gi5&yC__ z^NXwCrgAso7-)oDK|yED;>AJKJ7?bXB>oc1${Vy5wQZjk)6xnnekL&a%9Cm1T2D zoz)>}jwBpNea%@_hHDCrBC73+DjMOjtLE;}*6q8UV!j5|?ZuEhQn2e6d z$cS@n5>xUnrQ8#h;!?G-1QtU_Z;&Z9xnVUd%rir_X=bj3wIMoEXFNmFRhWYB84&db zU63wef_(!(7U#EuZsMQ3qCVkYagYDiUFH?DEnp1)UzAV4e+cH67&V`G{U&sS5m1)( zC|i)3FHpY37ZcMhwnv6$A}BpJ6GgR;f>(G7Z^JhL<7IgcUxG`x3kG!o_zm#*>Zj7v zPTzN{$9a4AR-bvhZa&3}(9rRh*YWf4E2QtIPVgMwgC7=`iIV-+Y@Kyi+RnB$jb3k) z-D4V^g5SZqTCMVKP*WIu8X5B$dW!u(*pELQ|KRgIGb9L>k|ERp9H~X_6SYFcjSx!c zM3zA{nxFzA85m)x&2$AA!n>@Jj6!dLOw<_}ntMI|7=6+of2^}&yYrY+`t8i*{0Qn{ zv^h`^hEMQmORvNhyP`rC7A!|XHM-z?$D9tA49|4>Co`=1 z4ohZCc=H<>sK-}?Qzul|2VLby_N<*7<30_<(q85Z`2FH5&Tnk!6Bjf03+FR$2ahv; z2N$}g2FV%h1P_Rlw$ySK4bQ9u6NqRGq`fE|fQi`}yyu7oB+#G<^lNrw-sHtXKCEYJZ@0)=QuuU}_gqYghy=K?2c%8(o_# z)=*D9h1w+7x6H`7wIprN3V<7ZP?rVH+8wfO`>(|erDLpgL2hQr>+mTMd<>3Yr``vM z*4Mz~tR~I`_Pee7D|kc10eWy0NMI)$pv3`Nceh)bPWCVu&nv*4%$?a^s27aJJmDj~ zA&-f=mYEp6tOqux=c?yc|EW9mdNu#&h`+@2vy3qR(QAI-?erU)?glrpbH%_!jA4+o zcu^_tuT+Yu7e{Q15*Fy79I$d~_*BTMMJAEVg-J|MWm9MpGZwNUA?3;uEASATU@E+* zY~Ug@1_wcy#0%qj@G+<`1qvqF42Mt#iRx@&6?Rp0;Z_mgvU9Y_J|xcwEQkZX1{0HU z8(d8qL-(^!a13t4u4mk%H^3)^A$dUtkN}|xAB`C$m}+`jc{T9Nh!=TA2BX?@l zSQ!_+zc<>k1j+~eL5^)Qj7fDLF?o7XY*V@Km?Q(!zS?_ZT_?>6a~~^{Y%d$pF{PS# zUNlzUgw`wekRT-zHOnMlA&DZ%>;1Jy8VWi@>?0jzR}&>-Fey@CCD)rtDqg}$)H{O{ zgmEK#K5;0zIci@lE-WRz+Ocv48su);8OP3g7qXj?V=(90(JbCBzB|M#Yc7(qa4Y44 zue{*?n|xoj>+AX(5A^Hz{9kZh;C~W(Kz#(?4ZjZW-toWv`-V5Z!aLunKlyR)_1X^p zdiF2Rd}E}HaW+KfmixqHMaj{s(_vPz!@6gPuFiU4wjw!1Pm$SNi^2@Iu{cr_DdCwqQi5vW%3hyG{>qU%*uz10oD$rg;@dnCM{&owKI6>! zlehdp;kPbGnLcrMMQ5x4&>{z5QN{lyAn)&vjl;(t^0?#A!;io@Jig#hT=S`T`%8ZD ztE~PgL2K#u! zg(E`-snr&Bpu&pUwzoIoeX%Gxn9iZcqU}Te*3kdomSj>>Nffe`*^G6lhlwf*+%eWh zg)Jxi@sY;v*D}CAXM7D(P=j}1O5`JY0fLF-n4MHHg95h1YG>gS?kJGqhQkcWFwjgg z3dr!lK#pmdEwJ3!=zFOys|B#32Bs)H|y zDFr6%bgRS%e9$t;n4MJG&dZ%xVv`I?g9e4#8J6Isyexm_P=gqW0UQZ|37nEqY4s3V z%NNjz3BIY_?VJ*V$f!~?4y7;~W_ZO6H#$%|Dgfa|yi|ivAI%(ms?1PNmChJiL+PZ5 zV?YDzE8`V|0@ZOyLZ^-1&7wBRj5)$hAlYk z#a&|s&!NI)Yi9$Nl(;gw85bD8TQT0uyi>UwSnE5tg;CciWf>en4%9G9(+LL!##IH_ zWG*Ykm*`U?+=GrdDSFkezOxBThfv~TAA9d}6;X3U&Q zngSYa@p)hZSu#d(l&wIRpfsMYF^EW2NTNv*Bbr3T0%QshjOd7+lKw>rMwkmFAu)+6 z-O8@T>wu)ntPCbaRGTd3M*Fu`x~<%zp}iV=5tz3K!%UJekZ}mzgt-h!a)Tfa)e7p& z6DFYbPsn64OgPlQBFu<@SvFObKq#sOM6wD1c#Qxb&GuNqYc-PG2>fo)6}ugD?N);k zyTTF(&!nMN;h0a8OoYdbXE03IjEVr%rpit($6&0UF-L>vWH`)tA!>lkq>#YCl8Inn z-Eyc=e~#c%3sf?ODU=eI;$T!b&p5e4k&c0TGGgU^Z>8JtT_G&F$GYQb@pq2?>RJb4 z#wy-!=x4V5M7`zt@N8e zK=}d>o{;a9@4uJt9aXA5=+jrKKMt)Ul7b<{oHc`RYf%d?9o|)W5@a{Y4KvkJL~>2; z$53_#cNr20j0j{VsT`TyEL4TfM3sew;fb6P$O!T7j;GEKI-8!`=GifL0tdK+HJl}S z&Akw4$rga)-&cAz-#4aA1YU;}sf+Y>*BFxJk)nW3T}1y-mBFmj*=yz`i^ zU$eS266$eLGIfM!#A~;ey~k?hcCY|rDMHWbo`c&Q*wB1pGQ2y@&(V;oSE4SnHudMd<-t zq>8DPZgsrk0;8uHi|trmVtQ#?pfCjnE0GMAo_pGQT2?!b57(5Ie$B!{{QXoM0071``;`PVl7qQuacHwA5L{@ruoC z+Jj&qR2#j|G84m>m?+=~Gjxq_!h*;I5MU(XJ+_7s&tSv>88ZNup^}%03eL;2^!AH_KzM3kOIf@zxc5n%sQ)e|f#X5f1+P@$Gz6l`?#`*{_tTAH@DhRq}11M7< z!{{VPkPDpR01RNp^U9Q2b?hc$M@+;Ts0f!$Ze`$6va5X&^Qkh_7#nj%z9hwxqXt=TM7H489F?m%Ut?SISs*Ui7vG!ItcBM7Ja$qp9K| zTPkRV1l9Ch9D=ikrs&Kjrv`$M9fH+t+cnvcI27NF#z8fi0#h7AePWF}@vOSzHp{}~ znq*ak)zU zOBKEI>fkxot;dRPh9e~sudaEqq2%sxhN$PEKlW5V@}+otlYaj7_{(?n6XcQl3G^z* z--6%#Tz~IN$=~Jqb^WnNTwY)!pTPGsd-HXt7%TJW)q>P#RkuS;<1x;L$bCBQyr(1) z(kL_c)e0kAG2mWGb-N8qo;MxW6LrQ7&otb|;X$&o?OffdGD_61k|GCZej z9eK{qGjS-~5i2;$^u{P&bVzgs3zG3_p}fa?SM0?$v4WB?BMZG0N&n~xyZy5H=n}SB zn4MJA1j%5eB#w|F9eI)XX2(SXrapyt!Qs$8-3|pX=1L0A?m~f^r6{qY9k}clEh?vMVLUUo^77a5E0|uU z^uv0}y~aN99((~-feeEU05_1~2O;3fc@1`;Q!`-38T?BMf3(940Y)dIh;)m(fT6cCU)Hfy*Cw@xv-#13}Na~%9>S9#gc}BCkP)z8)m&V;2SCk1ScN4JRu!9G~swpGN|a5&8`!BDmrx#63kS?mNt3^ z4)aU=O9_CXmG8>{lx4b0S%SE5ERZok4*_w?k>Um%9vL0HfFty<6=%ZWyuFNSH?ZuD z?~pi%F9dsI4WlT*+E@qG0dflo4xkhFKMs3iEjmbTJ2d;#0B$N}q?@QlwMYt+DJ&Fs zQ}r>PNAzp`?;q+Lx&BKizlZw2;aG|9{ic=Tzu6~+!WNk`4OnF_L>1%A)1vdbM0lV>5OP zatK`L5auLYHPm5YdOX{`!r7n+0I(KiaS@V@VMiw$Gh7Ed=?1@$Zs0<0!ocu~0ty5k z3kTb2oSw2xHaM2pnr%8sx~XNq;Sh*$TG;ii3J zGvx8*>7vN8a0Tw`ViqS9B9K!?&rN z$;ko1(=(o(ll2j=lR50;!lluU@B}(LFUC!q zj}Fj7b?V6-gY%<1ezd>_MAPvb&CQfRz`q%uL-$c7r+yXwCfosmwf%Rnfq$auq9+}v z!C_1k;|`#gIT!;#cG@D5D={!RGt>mZEUSkdenSXGS zVFYMb$7IJ2j<_*pK3#bgUchs>+w5IhD)56=?P~*T<2Q`wm6fO`ga#Q3#7o(kyp(qv zhLu)cQg~BIyFiTyQp=KCg2FNhn8n#sAqSor17^&Y`+zNLyMDCVwA?}Mw;3cKCIuww zOU1te@{;sROQ6Wai6h@Zizvb3ewr!5ybO<6Ti22!KN8;d(Mxukpg^~5kZ8DtQkb-C z%r#6L3$$skyo8>L_BdE8gV-Y{W|FmVkWmZe3JiL}uz{|i0tqXGz#6RUWQCrtl3Vg? z1}}>TNT-!Wp<;m`PF;Dz?qe7f1EC!TNfcXTAoNRPth8ajfq5CmnNJzmL|{FBNqI&N z&Wr*X&Rgwmhp$6veO=)QuNt4NWFtXccF=NceRrt?-c*u)>U$ zxQ0UmcXqAyE(^DbeP)2wDGq=conwXRKtF;5_^2@4DFdq%_eNdU>2>4(a&P*dZ{p7~ z{RyVO!SNd!fBY-?@@fA2DZhowxIhjC69H`C4Bw$Cg1x;sqYq0}j)q88wVH)YgoTCK zgepE;6xpg8A>2Ybgw0|M%|d1g3+xaiF;|jVmLIUGS{}WuREe?LG5p$Mc6B(UgF$Gl zCKOl=8zrw;_-w4rs_6y1n7D5gaTL)gb`4c|Clr(*J4bkLhH8?I;x`XEo=E6D$LcUYV%}s1(V!8)m^c7k7<8Y9p|SxZZ6U%+-fjb9!wik#zRW5lU1v$J{>pp z+U-jHC$jcc+pNKBM~3KJQa*!{kRh=$JW*xGoWI^PQGRf%AHU6)@6`Y4tNbF$XoG(@ z>45&q-Ff|^{@^$KU-+`$dl)})m;0M^XRcp+&b#~M;W?{%y{M#;tAyKlOzEJMVsaH{ znv-YseNoN(!YZ*EI7qig^XySo_E>EbQ^m|OAp+dcYETt76B6fQtoWARU;^VP#)(a3 zA7xmRYVP4)COdO*o0t;Wpt72A0}xQr8J8P2d#YI7GQx3U)nnVnTb-8t9(oBfSbuUFVaPKXs(Q^e)FWGtl8qIWUV| z=1pUA9%hDtU&~xqzGvV^?oyxec*U-8EMb>r@V5bnTT zK3e`D{6RkGv6j9qYfKy7da`-wP9}oj=qTt!G7ezE_Ly__HeFA^>KY$-?FsRmJMd!z z2|g8k{}Z~(9{%B{{BfgO=8Vix;9m`ZHHfbMygqYoJcBzh!7ZFY zdZ|3!zV+gJLPm((vOj_K$x#YRqRhM`dvS1(snBkf0kuFD+}hZg>f=1 z4W2Lz@`yRJV>=^%-Dk;~Cs2e!=0XySp4qft+Njg3$Myy8YW@jgL1 zv7fQR6DrhY$F~R)2r~p)l-z0_R0Gg5?%9Dr%L2V|$~Ind{4Y~Iuv1LUPC)Qeg!R}C zZ0bI_t+$RNKn8`>k+=8@=1hVNcVG`QT*AlTDU6We2>0PrFf5+vAE>mtznSeN7ECWl z9S&jKKoOhPMwjp$_ONNaGeQv;mB$_Xpoi|{WP(6PtRg#gO&G;kb#W=)EcU9~U%MNB z<2?TD@Hxs~Xa0XM{qVc#55Cd=`~}a#WgKCHSJWesW(3-bDqBw}S2@-N0>f9;EPPG| zCQ)U*tfDH4yutx4FyJP9423bvfq$h!wCpXC_s8X zP`l`{7C(N($tk=yo8nDE3gF=nzT;+cU{dd7|lb4PMYFo|$FqZr|o#Ky?R zS< zA$T1+cnk$zZFPM!{6XW;AQ<0@6v&I4MIh)uz=c}5IdFc)iBtoqkXT9~ff+k6*cuj` zz0F0%L>=QoVO_D$}H?*fdPNrpSCprgqLfKUv8a4>A)PG0b>f4CT@)5XFJTB^Cr zEdW|n>H2mh!1*0WrZfzhT5t7fjm zss+9zT1n8iHWd^Q45D)iq`F{mhsHDy)|$vp_!)}f2`f09un-g8ltKak!y$iE_Vmlp zdD^w|!iD_4!GsT!9%=?r=S8PCjk6g=ZKW9i3?LR#KLGNv)M%ldXKLG{VH1_8MlN{8 zomkjZi-e5=^Go!}O>YONPBJX$W~wuPfJ0gmh5EZ<3=hdVFTT~$lH$AhKnfVvIK8w+beimH=}e!r8GmdqnS(wPHw00 zHmY~v&@b;aPTfQb%;>lD*A%fb9>P87;Onr1S76;5|1T<0kHyZN9vy?uY>ad()rej33GY%Iu*dRy2vLH)klWZWZ2MqiDS{D-<%-5? zMOG@$(0bNuy;ozDrlaKvTT=@HNn@dR&50`Jz+e(<=jdRp3bQx}jI)-cZZHdT0;b9V zj*cs>sJCXq=AxbHU{>&Kq0SF7DSGUP9Yej4|BJ=cYO0pr-Q zYN=Cu!)H=ZjPvpsv#5zLB1R_RT%r?FZ<^ifK(S);&Fa5(r`wl1^kl#^YJxKW^-@W2K! zAz>7&l+IXnK36JsEVd64Y$yW3=+wyX-qNk>+1hW+Zv$oISj8qfYk1K@-q3fP-QrLa z2XQ#kXYx7wD>Tv_c;a*`Hck@vGF*Ve9s&%5RJhvm^B06TE8iYRihc09fj18mYfMxS zz+P;en-OdgoLHy`sgR5$>~~qcYz4qA0J&{xLgAPpfo326$4~Qoli9!l1btzG*$_k~ z!J(<(JviKggN$2o=SUX6GZ9o4;wR;h%2fF8C4SWTG`f zkqSUvHFN_E?NoDG{2Aa)u_@rdQt`%V(!swQx^LUjX8Z$_p`PGT=-nl9^?S%FOHFvDUQLRy00=a(#^0@1pFj4BT15GMuKI6-tO0HvcA zdPqx17)F2$D`3b@hX-iMoP%LYlM+D&Ckk#1%c5f%DA3K#8@bH7HWs3nY5rf%8Ay0- z*6Hb-B$i)E@Rpk8;4jT0sWpx#$_+Bs2@eLigbL^IId}uE;9eVGo0n32e3`QHofi>_ zcUG(*g7G~z9|LiCOzJSm&RBUda@Ny15*KhZ=872!Rxlc~*i^1EJJC7Wm}ev$dKghf zMwsx-y@Bxsc&$VEzum7t%>0AI-(~!B%)j?w|Egd0H$1-4_aP5_LMt$Ue8ff+Mg%Xy z0@Wa}DKu8rVPoiVa8Yy0STKu2Fq;)K#}mv!m4yLzl#Z3&+JF}ak(?4#ql&&z@v zs|1E)2#S)+0+sMxt)7$ciAb1;1Qtn(WH^9kSrJ7bBCy24m>VTo0xy^rGxwg9u?z)! z54*rFpi`>m6($Tw*o;PumV{*>Gs4E8cfcHh1tw%b+j9V6U?Vm)mghp%?gieKMIKWP6uGDI!sw5W@jA3()Fck!DVF+^x z3v420YJv_z5rvQyx3MBf$ub$taH9(K#(8J^QHR+hB$@D;GQmn#4Ur2`rFHLX*SaI9 zhhhb*XavKv^PKq0)&HTef8s0k|N2RO>7ss}_(w?pC_a$>Huf`j;~&{EJx<@a=Jyu9 ztJAsHH+uU<@jTbjyb8zqYy+Ca!Pp0k=}veuqY=)XWp#t4feybp>ctT=PAPvdok-xa z41r9whE>O`R6=ap=bA?7mkN*fOs0ne7m1sUDn8L$qu4HVThhSUo@7)*;xOVp`GV_b zFmtzK4rVd!xD{48h))dMt*l`-aE8K*Ex+&zsj{ia_-Nt30yE#1w5c5aD*USSd!=90 z$<5SeoIuOzT*h}q+GRelB9v5(eJt5HtSx?0BrGGbWXN*j zN#Qjp@Gg7;E+LI5|gKNtb1*ED4~uleg75fhvM#?FF$y9eEEr zDXHETAc->Kiy^)c2e%Ik|5fmlc6hpTUxLe*Jf74g7f=OG^`v0AKQu*rCWBfNt)MQw z!i|*(2{T6UW}YG{V4%jlx!{jqsIV_<{{jOE5;;gS;T)k8Zi~W$0l@tJNfGUwA`;cX z>3|6{dZ%8mxM*Rl7ixOa3 z6k}dIS`Yb@^Kf#p+X?lAi~b1Cv3VvkjY&(eM78A2Ipzd&hM ze658k17^5}4fsoltO9Ym#CKFGPcJxTR)w;qROV-F@59XDIVpokVh&y$IUiUhfSj1X z3o_~5_>20>_;2dy6fe?{#v}z&7Yurf$<54S4n^T ztNx3JPYSAQ>e%1a3t8+yTHK=8@|))5Km}%R;P2`Nq4MgJN$U;w;oDO|GNti29ke zF~L>%6ucJEJ3D+rs@zsvcgiqfH*URALx(Jemt+0aJVicjQnGy=&|m+!|G_QY+xo_Jx;V4*b^Pd>%dB5I*fr!s>Vqy&kVOyIQVyAcaz;hU znbpb%vl+M0)kK91(PC46B9azVCub>lW)3BSK6*kZ$QRz!8o?KakJa-;gFY9kaNpr-@0%JDI16N8;>)^WdWLr018rKtcHsLCL=i|m_=ulip`|;KQFMcl`(bBGCjx%G0$Ms4i`0u z0jA$ISA%_6(MCBn5kXg>V{hE4U_@>p0-cCeu3-z0AVYR~V+>|va=LHr9%mLBS_PJM z!^ZZw(PndlVX5U?J4z7HwG~^^BpMu>c2OYNX=X1c-{|Rz&=j_%Q?L2&PAZ?4-EujEqx%IH;cH(P^M{ofF&*0F~ zsC$}@-kPs<3>D1iLiOtK+=Pd`w!l7^yPWVE+ZSfg{aB2W}TQW?5@K*HqWD*3YK>3b zsg7DEgpbX49ta#l6eB}f@)|k#!sb4Kqq0#Q7x`rLW1yvqS(i^;p#mKO3ov9Ywgm`i9;r4w1mbbmgfXPZYve^5?J3ps6aBPZOIU=j|8-h0&D9)EVI=U zxD#*&(Tw5tp;<;w0I+4e3tBg|-X9q;_cCKIp*PAU}VAYPL8q>1meRE{gY zxn)&bGIXX^c27CG2gczBPgo@-B(6uMp7V?u8>q$?qmx&* zs`XIys`Ho5>z7y4KSq6z`U{LZ;$Qux)Ia5yxBXsuA_5cEBT&T}Z;T}&5mGg)h9!={ zp%R8kfQL=Zi%?tw=r5X{(4?tvRpOXS5z zd?T#U6HT(6X$R-n3?p%n)kbY?hGB*kl#v2ejhTQEJIJ#_7H&R)!T{j`mFjq41yvxJ zO^$>Y01&h2F@>9`qE@S?D56(X08HiuRl_B~+W5VXy#)mfU%@$C!*k=u$O#;!))zfY zC*O*t28Aj*F&cx+%vnf9635Ce%uUIpuo_lo#*Qsu)G(O~CBrbsD;7{;R@9JVLRFRn zPpb00G{RaOuswcWslkj4-4w=37rGD_z%0#>04$(l=H{5>1skg!!wR)x6~7fVz%dB| z5Dru#WMCc2aE@J9ds28n?y{U(Pt0dUSU_<^SE4?hqe^a`Q$@lW5K|8Vc0{2IT0Yah4tU28tm)#B;;*7w*7RUyo z5`a$MDC}7Mcuc#h3fUI3iB8OB=1pZnm?N`_Xzy1KLKP*m2xh~KsCIR%tL&@Z2FHa? zzJKhN)FF^KR_I9^u5UHgiy2N)5_h$CZ9$()HIcE;XN`|hobTPIh{xNgSC7G`nm*;bBX??mE^g}j`>*kH8e z1@jncTVOeUSOB&IMgY?CFm*#nU)LPY~99aO5s$LdTQ0a zI!MOFOc*O8y<~0f0O(=!5rJq5WWK}l))}+YRg&m}qoYI=#;0r^F^hV@d*X<#Na8Rf z*d)vu67wkxMGqx0JN1a|sI6a7bP}1(87nKdhq&ygpS{rk;9>c9QO?=@MGlGbFaNSX ze2ahXyt_&1y+S7S*bxTm5$|wE$(W^j3tOf$9|QGKGnY5?6`2u!EGikv_7;;dW4GYd zZVQuiMl#bRS@^MPstF@oteg=$U0hDy zI}q3d>M655KW z90{uwG08BMjiUM#B&edV)|XU)Jx92{OQuXRBZpMnst8PAShhNa9}9=7vBb_flVwW^ zm&b&h!4!v}S|sd6;o0aHPM7N1*ee}In}#w6y%_@Ine%kZ>+jT`vii3^YyY&T&rlyx ze+Ye?{Fk@gC(B_)vTL~N&zU8ViqY`0RWqcj_4CrOv;lhi+2vOhDR&!AXoAk)}tFX9T|?| zPzl4=>~BbW)){NrIJV@OlJLY}6j7Xapcb+rz9lhVANjoV6Q5?j3?3(D<5nCi9h`{_ zo$s@}3ZrF@W*Al7Pfg zpo3#20t#mn2JfyYMykkgV-!Uk3>hW{V=wlG3@Xos8A4XD7v-)RZE@1ScY#_hT=tus`t>F|?yr?IaG(g@K=f1}8;mnfytDfdz>l?Lp?3 zX=axtL=6T$Ow^zR{*gpJOHZ*rG_^M%KEN`GMV{)S{a?;b24n<3llezZyC9l4MXII? z*mGxQ?|cc)nzG`M+tT`md+>F50xReRPE=BliCl=L)>J^$p4yWQ8FXmEjV!cub^?Il zR1VBrcJ^scI*<`ZvSD`OS|KoN>Y6p4nfGH1GfuY$qz_5}S{|~bL1;j9meNMyvF%?g zs<@F(Cv5*(=0yM&SWtTym=oO*9b58{!HbjsTaF9BLZghS8{?k&_l@@P$M(f_Up*-_ zD`6(IgG>f1V8j{&Cb17H0>BL`ki`teOx2F6=V7ii!yZdiNGoK>G2}>LHU+b&hAT-# zn;yUmR6K$sR?^Xyoz!LV1<~mHC=^SF-wL+ROMO< zz1+M{Y43_!W3sWL=2n~0guU3>gU9^iFZi3^SN_^Le~|op;rF7R`uVkg?<@WXzQMbD zdbHVa*|8GYJuo*U5D&7M^I|632?8&fwQ#U$QBermoV9T7)`}ZA3YbtfiZKfygMx4} zRM>%FZMrEopgYOdJ#@qk-9QIXIS6`u&G9+I#I^^qKY2_~NoEob(8wi4Cpy?A_}0{~ zBi!LfU*|t_9{L2K9( zVs5dL)dq8JX5KmS;6N@!`Upq9z`kAWf0@2jIuJFTU;^EWsZwTek_f|_S~CPBCSgK` z840ePtAWb{Xn_I#AnmpSG{5_jeLEnZ)Cqi<$yu8rA(|rolAC{ZGH*yMFSmr~G@=fI zlZn*>z=@8WZdsUMwVdUf;Jm+`rkC{91{nTUDLT^o?Is#d2kb*~Bf#y{boLV0NE5tr z=$Qx357E_s68}f$z&*os^3Ec_=v|31uuIZ2CeazYW;0#EBiPWSZT}41LJv705uh#F z5jrIgsp3vKgB}jpkzBxtgbNi$YlCJv`dt_(K`b=&=4U1QN&ONCQiC9yNHbx$7Vi1h zJ=jT^qW};e`li`SomUM97lN{^egF&Yvoo|zLbbL7P?jV-VGJ|1z!_Fx55gSLObSsQ z+hPzqtkOAp$uC}6h**e>G!h~uq6fzywq#%jl>of8)v}mzF|5N9h??lcYzP2vbr2bm zVJwjS5|)SojR2{k`B|Wq7IDTN23khM>1IHfox*~78FNgruy%C9{2`Ei;+%E!REm122t8g;B%*Y~_EY@jZaTkIb+>wrK2zp}zb zXLLevOsp&SC$4*@jLr1V+1z7S@eQdkJ;ApmV=n9qU5^rH#uOYNoOwsT$0{{pLVzMH zY|Z%)kB{rz1Wxn=~^O!kN)^wQaJYfqxb0LS$?-cN8$o*QPa$Sb-T$vlmIT%zf-^ zR&_IpVbi;OK}Q$r*KM2Q$8_ zTt{4F!*mdN`%>Hu=CP!sOD0!I%79z zgmq$^I37vo?m;CTVS6IL@X?|t1R+z{1T#rutaw&|z(kp3lMHb4Qf(jFn%3CbbZapm zU41@=_Eyheiz)&N_07T7BY*1G%JB#JTNn0O{0~!qlKN|`K7TKNpY!T_eDl^m(fK3n zGwYb#-`o3Hq7SU9?-Ihz9V9-`W4&)82@D)B%XOgHvaw1_HR`?}+nFmZz5xZgmUlWfCv^pYml|^dv8V=+0k9=NI=`O{U>|Bg`ck9g^h;(b zP}^-g3%lBur`^E}7m#TR?MaDYG%&J}Dj4bg>Hrjo)`q*DSaF@%=?{Kv_kZgGo0-jV z!wdxx$WbySWN5D_6hjbj26x~bE*ss}e9~H|a0#zACtn<)z!h_4&aF`bttkV#hR38G zX(9y~Y(|x80D9j>H@X?0Pafa2RO$Tv9JkppV5wR9vW#x}mXk2F^w9gsos8Kj%a%pz zZM(PS@bc3|mr1TIP|it*CX4=xbPEn0)u;}cSV7;=HBgK>Q(*=zF8$GBkPQ!f#_i*qOmGaCnF{7~i8{d^ zo9T=U0$C7MMnCwjL_wcc`HSb}YM5Rpew7*aTjKk_kf*8ty4z#ynmm%hEA|WrR#@Oc zu6SSt4|yjKB@b%#St*f%q~cw8!K<>73K+@dwSv6h2Moi-G5in-k|`r^FNYW9IlSOO zs!GU3nxTht86=Du8V?}h2pJRsOhQs;Orc3~keEe9zzy68;*?o_qz!Ta1qdcILSR$t z7eo=YjW=rmn;MLw1_cC?CCIW9q}3?0z>nCGG~)$E*%%4AlM)^XnPHOw0Nl28L_U~CZx842S@^iv zW~MIx#_pf~yD##W3h(tCGA7KBG51u+8SBWED5Q?wDI*4*ur(=Dg9P2W=|)>BM30;l zpcU%tKiUY9J9XkN@66dGB4ThYh7+vM;$Y!J%$ru8SOa)FL910A^uJGo8ua6vN zy2?c`&oJ`wnNu9EO+yuE6Sn~{wvBqpNT{GCQw8A5lwWJkyTj=c4IO>bGZ|@iMY|b5 zr;Ye2I6#4^?KVNQrSY|#Mkz~}kezP(qs2jdd-8Iezk`m2_y?;5g2!9Fan9^WAL!mq zCm$u#ien}!H{Ji_oh=v{1~O9tDD~umRuXfhnxbHp&Y9tR;EaVNh-Fykv+!H3B#nfL z@CBUOI_gX+WXA;7+Rhdnu?f_)z19u5uqEEhX+ZM@7d)KMTIBbm`iXWGf63pU+izhh zOSbs5WVH24wHAeWznoNW%aXCNoobo0o0iQhBhu+a5(vQOrmF6cz;Ih6CFgIm*sCBH z!lFi2w85tXx_7j5D(%kZ{N;>OJeuDF@wPpRD?u7xT|N_)H%dP)RS~242H9FybR5BI5_lj0@H6dux3Knl#lTpX|$Giz9HL`#aUiM^PGf@5NDOcl#ai448y zTD8Qz(FZ;BMk!1cf@*}LKyYhZ6((l@xz(ann0s@S!Of3w0F$qzE4)X6O0{E=yJq7M zAbMklYcW^K%rP-J4mES`XvbVQb{q?n7@fH=S38KkQZ`kPQRT72m8#olL=dJUjOaPM z2@V055HRAMkw`Y%H0d%_+@4@lL$77bVcVuOFGN;p=pjul&WK~E_~(H zWU*&QtTMSX!7Ugda}gl339Dijl5IL}Op+xqw4WI(6*&syh>}h-!X8V(1^xo&YEw-T zZVD8#DkigpC>%v+45kEwk(@|1s-Dh-XQLYCXvXct%u^1sw|iDa|I#nkyT|xHd^S1V zKMpiVinhxq9bz=6d8)&IVRP@ol%i#txii65PUk z^8G`Cj6??(FkmoD$Vfn|qL>ozE9M*_!^hzPtc)S^&6!_)##=Y6F8-gNJ^#ng&gPq$ zdvFxmP&y*uoV^Pon%N3D>&kTC zR@?=Q<5FX8ZfQoSFBQ9FIWZad@>sx^^H)9b0@1u1CsID09BtS#_z)*hz{xZ%AWo)B zY5e)V%)0b8l9wz)1RPtg!iS5qly)cfVVIwfKFRq9&CXkP#ttxQS}>n3FN(Kc6L)X9 zT{HE6u8SXjl9@Mr!f?;br5)O!GmfQXDMghZX9B*Lm(#$}vi4hQYT3#CW0*KGu{ge? z2TzNv@TNC6r{I#6))x?qhC5t#*bF_aPP{H3DB>jX!I8DXOR{w6!V<)9i}Z_jE#l?= zSf0n1$yF>l>_hkf-T*%|KpdE;!3@1YAP`7P%FCB5&cX-E1RHqJioRV11{m9k6}&L! zQ=$)3TNhkgYYicomk|IA7xsP;kJ;#!IraJdiXR7T;6Ci&_Vjuq;fdU%iR^@!AT2XA z5=<{Ke%f*{^et5g2Vp_#sbDkM!cfCTeE(^bWQ0{WrpOa zpd(h0w`3A0MU|1ZWY|-`>oWfSRQ~6W;`dR%kMaiNUsLISJFnjEo^9FVMi*EsSj!cx zU=3<^@r+e4)T_B6Fo%R%!-`-Qb1)kQN2tQZ7IiSdEE~lRWuP|iX3#eV!|Vv=AQ{Cl z8m##=GcijurW0%oL>5~C04p(|E9^kp5D5XjQG*HxD41i07u2J@Y^p8`0azu#48s&* zvuZ+MRS2;5^#F$|5Q0|DtlbhQn4!QS7{yi5c}Ey?%lIjVlR$zVbIh z76TP10=a>(G04e?kj&%|)K~>W<2iGDmS)2$E&w6ItrDFeDufz?yEwp=>jBh2Vpf_# z#ER(gTeJ^NGBbrV%LY@0pa6gwlXL(NrfQ=w04w;23RKcjj5XY;C;%iZV@@_gm`Z>g zGt7uUAV8!6llVr`?Rot0+kE*|{{B{%@CV>m(f|Ce{WnKj?f9(&f5P}K*Vl67F)1;V zvKgl|N@gqrn54O5Kc9+_%n(QzP?`oNRD?mX=pd6vbOa%A6K55sT zo&q;}_K=OkL=JqLZf}+Mw#j(Y{v9eO0yRVeuV@7w>;MwbT*$sat1RpB!zH{9mq20? zzp>+s2adN~c0A~RYHj}+9sY}{5;I+9f+}jF&h$oJu|1Gxx{=L&JOLbqGWj86r8_Vi zHnTp$nsQ*;QxbQ@y^b&6Qi6}eV0^SJ(N_KMlqOU`>R7{gP7mch-b)-RF5I{Sz`66? z9c!m^N})h!+={n@yUqkN^h?!$shX1BmvO(X`?uubTArk>S13!x-Ijn3mUWQo!em`! zd&bKYkxCIY7_10O@p+P zrysY4%IIye6RYOQ_^V5Q{F0!Gv<&Oapr!iWx@0K}y!!&FpH9OREfsx-`m(Nhx=(zm z?gxzTSKDHSX@DTj^mf_-!vGOR7z1qJXw>CxQ~<0k3+=zHbZxysYgmciIEM{*Q;)LI z!4r53j;$8N3pm0A_h98bGh&272-zZAcLfeZHtO=EkuzG}FDy z*&}XuXw7h+{G6JhV;1E(eWml}tr5zwPV-RCCSq6DD_zgi-*_c{gz|4-{xbXjCex3+ zyZV7|`Y&JTP4b?cA)_5s>;<}khphqtE$llsvfWa-6;m*YXtvoAdc!96#%@J#6ga}y zg8R;8<2n;m5iKn{TBmoxg$Sq>hcn2+gSBiUbHxgsk%b);5Z;uKn5?fP>==BVY76QZ?M3wWqT3C&ahG;n=wa? zuraFyH{#ZOuF4`3qlv%@UJxJ(jBpHg37oYEWRQ&sI=SHimnRN19J_^kq)}-mVwC`Q zK#0HgdlWS+3CrNvhy)`Z=*+CZK?Dg?t&G#@v#<^NU^F6;3&W0sAwv~86{cvkUCECY zd$E=f2o((6m@FNQO<~S93l}L|)p1Q>gCTI$vG{}!m8@DVLv*e=yjD$Ngw7)(`wTB? zjPh=)l%kr|;8=AvGs~PLaPxiDP2dTjVrZ^VNEJpb1(V0~%99-rQ`CV`3`VL7XA%+2 z!O?wy5k0RQC!2dBg-6uvN=h=bt|cZFC!DCL#~_VR#5;*Q7y8M^e0@{@mgO7t!{~3o z|Kg7Qd!E^E?fI3$_g(noOZ(!E)kqDhVQqRbEMb8T&_S6wK!Om($s$Mv83>g|syF1w zBrCNVLV^QSxU29S^TxL&t&;Ap=(1(i>n9w8VI*>XJQ7oRqFvhhl^)W zp%&^(zJCw2LOrV;v^nbq%!UiiC}U76WU>~B|3{EOnYr*wPx+$Q_MG40L1LYm;y>M$ zfA(hjr6s~g(XsDtXu^?G6=0 z|6Qljt)YWAmsFMu@s}RwcP0_6oN=HyR!CYR9A36wgc-5@QI$Wpo$=uLz-T-!%&}yy zLDUHadC=;@?$3NW=o7|Evh3X}*n>lE+p}R}f)Kr7PJoM!R+>Qo>adCl2MIT_14!*E zOMP971n`%TJWJraL1Nhf!a#s6>QlsWzzM`c+Gso3;(E!KoR?ep025Fj?BZ>LgSASc zQZpxLeVLdWP&fgt<&Vod>_8_gnOKHz)K03F)M1GTMv)q5XA1!BbNMEWCt`05uHjx~ zZR{!*;ENXU*2^rjQflkLm%Ru$4pobw)C|#fE=$@?1qSIzh42=fS#pLhh5CNmGgzAg zt#RJBl5oszEOkx!ZvQ&PCHqssJ2D9R_ON@HAj5Nb2&-mF1^7#JQi+d{Wr+h4-%$xj zd~?kvsF0vv7OOdm1lg!!bW-NLuou?B$n-A#D~x+|&Ttp5ITprSRF-pwh+s%OSh2qn zD{%hCxxSkSjlXL9zr*~Q8-C9>>=(A$kt+ELODIra1+H+QM+quw>`9)GqksdfH~MkGTO1ri`28jCR?l(9ib0wPS+=4@diq~^|nuJ1z0eiTH3rMEtGdDAr zi6RU^76fsCBe5+6sTef`1~r0kOjJ}bAp^q-I94l)6mG}Rq!=!lFqpD=$kvu-!ibEYqreCTmlBrQz-o&UFZR@eIR*yXdyK{MTt&JmOd?hK z%y~yP>IeD$3mVW0zlFdZgF{RIrC`2D;ZnyTxP;f?0;;j@`RX;l{DetdoU=0ScC0e< zjP~8${ulUm1*0DcH=;7`H%sRvkn>zTfC(DJ_o>_Jo`oykEc5GUQp6TOpdg3%ZGjSCULd8WVt z&iVhT2!H|7X;|W?KS?hu^!yh9VBqF}J%`Qvx#uUeTEf4-eYu4{3vYgl=eFz#tgP|77ebBiotYd6L;1&vK@0s7-yzMmL}w{niKb z;ZSbxYCGrd2w~M0-t?hynV&Zt&KhiqK@Z4|8@?e!-eEyD<_ZZ739MFa#(4Qeb43zW=39y$Un5Bo4B+oD?Py_%b8D zp70*z57qGUOaV_Isz|T`%iKD%=!I(mh@ydW+7|kgJ;T^m6xfP6QAU71*uVg0REHp( zz1YLhkSzdk9}0Y_k!lSBql1GrPFTmG7!^z;2pHRKczfPMYm?^tZ$m}M@N-PeH-yOT z%q-J%0umgdHddul*+4RO5DkHLTpEf?T;S<`nhAXRuNy2)4yUR6ZDm}R3ZCH(Y+wi1 zG}hPF_0!2+%FtZV@4+atc->ijD9=L$UaIbqPIl3ERKyo9IAqopponao!7dX}3W8nc z92_Qrv&w8{ZXG`(3cR4dOPMJf4o8kxFhPq`bs*u$hv+vt9Ll`rVbWjj%ebC?kojP{ zzr?h=_8(Tt)XUZLV^-H2EE$~?i-guF_ ztJZfU=i$h^vKLMd2Yf@sY_c?CxN7G498*m>a4Xkl05AhHIY`0<*a1BdyWqw&$=1;u zyn;T9e-po8GVBSSpx_v5SRL5~)u_#8Zb|=)27!3~g`!wya2fUPU%p~1K<%p^%JW_O`uGh=+N8(B4Wgp zbs|VJ)|&=#6lx#902CY8Nz>k@uA6FrCP-on6WS9Ai^NrMRwxh^Wr{c|S)s3flp+*G zDqrXzPYSW5HS%FK`$vi3!tm?pn2 z)53^xn8tF2gP_sd!VDO2KhmhcqDB??x`RWaI z#X6In`yHMckHmpm=vTk*W3T@?@BgtkcdU-wo0!E57=m%nvn?H*-Fwq^|45Wi)I=9} zj|_>SIe-xhUXCU*K2-i5%VJ27R;L0s6maB%ns#?#w6mk(2@H*qzbo=t-Z7o=^tHE4 ze;K=+Z+9sx<&jz0b@56$uMg_}pN!H^h6F%@{c(ke*n5Y_-M%| z_c6fg{r(HwKm}hOIKeN%2av1Y{HlyanlUMQf&vSNa2Tih)o@V1fKJ zj7%sIA_;vkroRfak4VQhuxR%HYP_P}I$I8o%~U&~x?>4M3n-3>evym3;J;5V)#1tz zP?r99KD?@2J5(skdJavo#$Sr-VJHADj7}V&baap=js{R* z4FyI{B1ncoG9&;sl|2@vNfve1@(F-+$}_RHzo3G(qtY@xofEI{|ds8nuOd~;1-+vqiBFxbHU^t{}PbLfo_M<->@ z3WvaYilHm=1#v??Vy((ddlvvYtLsELa=YU7Eq^2G-@ae|)s!2iFEW3F@-O|u@J#lV zAtiMK>;U`Y7F*$l97gN_bGRGAI<%G*1DIhp z+)NR!>=2?4s_ePBq&>{W9jwD{L6U)FRbEGtkk7YQA4f$&>2l7th46phJy!Vd6UoXJ!zvZ@f&Ai^w>WP%wJ(JA$(nlYN7 zS`acJBb%yOH740ukkLbdiaHpoEyZjis-S#ggl zx=fcb+3f$Z;J-3h7eZ~u(MR21`e?F5@=MT{g)DLW^U^(+A;Xv9i*Uh0M);M}?9U2l z2YwS(IK!3-6`~pvzM`zq^^#@KV1k(x`2Phy4XB7sUU#xJ z9YrwFxto{cIv~9<^Q4da6R%fGwzzeNBm6d8!pC7pGdPydrU^52gBg)vOAM%xMso8@ zXE7UWDMq@%3K+={$my0;?!1()f$)UsBVIW{5*`56s8AC_Ac$tKdk{u}3W;TkiNGm6 zDZ!pu$RV*U3!IX{s1cCyz0|zno%#aF#DeywyIL<4ugpxa) zH!@a(CvXGv@|DA=GXi&pU}Gd2Sj8y9D_PvOf(+L}ur;pWO)!y-J8Nd+S>-m7cMO3W z#}=r~FV{A1QOQ`=thKhMgBu~%w_w~Ao$(l`+$1_q#;%};W6L&aSK$a4D{+KlJ77D$8e$Bw^L+7yupIbDs2+Ez>R9 zV@?y)7W-hlpuXeoe}Q;&%esxLRU6fl7>o-TGX-j47J|!+`za1U;WkJsqC;1dnS4uE znH^K>M1f*+S4#H$)?P9D%AM(dcgDYwdS^cVd^i0Z@v$%UbxyxEq)B;%9!sPh97!AE z8g+DM&{GG}0Sipf!O*BDJF1Y0ZE$70kX>V!*w(`EA{_*hg#{8k7a`V0I5$B?vq;cG zHK=qjNH0PmOR$EF!mN`??A;Dy)QLEELz;AJsYq@-!0N=CgFh`^WmT3e3f#z^kQD0N zG0W6v_zoN3K4}0mW-*G{EDD2DL+bQb83RA>aqYJF{O*_3PLk zulRlJ9#+sS8(~~g_E-?Mpakim0;DSK#f&EWU?i!^9czUJDCSi>l)`l2aa%qu-QtmDRcvfVs;b*$x${Wa>yWLUDZ%kO?#{dM-^%-UOB;W z(zzL?qY-AKQwp6dkOkQY2;$6S(s9Rbm8Z3eae#9oz~m4knlOQ5#kq01kl_vm4v^4{ zKn6$bN?e;2GlFb7!qF8dU?4eGQIGDz4LYC++aZV^RRS}I_crOfpX$f1{41CC*N7iP zKZbrT^N;oV-n01n!7no3+o$K}_Uzhv)Efy33Cw9;m9UKUSgoF&Fu)5bRM&)=O{jwe zfh91rFtV{4C^Jt+tBJEhSb3354RqyjnPao84-g$v4 zulB44S}q65Xaf`d5ezlP^dwZs9m!E}62pUH{N~7KGrQndo--BBwycbco}s54QNa^h z<0G2~90#T&+5X%RKY3aHPEF)sHE{rp%?b)vd)8})@uy9nKct`9&*%x`nsH4x;h>pt z!T^eh3;{sX5C)b)fnS4%jokon1O#}{$x?#J!->@pFuk=)-RwiH$z~%RHB|k&>ATX| zA1}k-U8N^J{D@6A)wj#f&0egCFi5| z16+P+LicchTUHa;3(}tzKa(Ii(}6Oej&5W=k*arQe;!eG4f0?(%&<>vOD2p-0G${> zh6}=T;aqy`_AGfa?ilN3kz`uTz2u~`3br}_*5y>TkeI^lLI+AQJ0Y^Pch-O14lAV=UqN>BjInVein zMh_!snUFri8El&hC~(-f8(>*)!cQ&SZa`R~^vs54yby3HWC$+dwxyrEpwZ;FW7n`> z+9A-=GeAKYBbYcEf>@J`i#-yv5pXL?;%Ic0A~5#Q!)SDY2e*k!HSSBJ1~SyfKmj1X zoHIm|B~)e&8&Sm3m;mU4DUe~U0XL0Q=j!D`0Ts8l4t|0dQ6QEKv(b)P1I-?DC<%fr zFzRwB1=zBffWZV)gLxcbJgN8`;Re=l25X2@K#8wpo_7?`4s+a=yv~rpmKSB&bfpD} zGv6_}-tx3(UE9!YCr?e28``Da5L^{5GJ{jp;sBL#f({C*m_tv9T(AnD!uo>xnq9q% zrI_~R7o^|A{7LPRY_KV2CrNYnc-XyCT3= zc#%oeYDYz&0>%e1SvzHNgTtfAyZcws#R1m zgkZp2R0!Nd<`irsCFub+DWfN$OSVh5mPmx0Kl*SVI~t%XQx~CE=BE#9S#wEgp&OhRw`e>3i0&T5)w`oVeZd zZslVg$=fGy3lsejH)LGXh^J@F@g+05wVacbkn=|2n+Fb+bz+maKR{+WVg*1!w_)`f zN=y?eaTW~o|0L2MG(V=9&bglHW@^X&g6msW6R&mD`qKwK-|46N6<3K7x^vDm-BZSy zBaG==)>)}_>~4?iZuqS`>BhS6s>5p3yZJ5m zF(+=v)%&Aj8K%i)|8?AW?-1%E&kbooJ7Npr%DF zu+G2%x(e3Dsz5+PzRfNE|0+!I4F1pXbMV9P1Mov1k(n^T|Es<7`uWVY=$+5NH!Ddz zH*OO@5xjCz4NqF@H;vER*_!i*;xq8bm@}#3!TXAh0OX&6KMOBTEIu&o*;MdTj~M?n zK;us64F_)k{$iQ4N{$oALB?npzL^-NdS85T%jhOCn}n@T3MHK}i|Zg8y*2HhWd^4} zqyZOc4Un$Dh~{GkWTZ-(7Zun}>YcUQTY9@2p8gc-Xl;u=ICav1rt!Nq_kTM|29RGW zR@c%)@roQ1G$`)ek`sGppp_;Nz}{Na8)(kp7KmR|e-M;qf=Gcdx|uxVJ?4ynF$has zib1U5vH@-T6Z{!V#^7;0lgarh%Q!BT@Bd3F_W&n5ssKL-W^k&BZxpKb8 z6UC6o8Sl^pz_PXHQ`Rg6oD;}?K7IMP1EZ1J{s8TB)2eo}g*$Edc2MEA)!33TEoqk; zet>ei6C5(k&77cx1x9cPF&J{@3Pu+MRHwFdc7eBLf>*%W%@=qIxjkvX72JUiu9kHQ zbLEk7?i@x+@SbxQI$8&PFg>uKE{a-wCq!V>4ZprYqCn1U;kGbB4>ZKTi~%fDU@i!* z3wJWf*jJLXNjOXuDilVi1Xdbhb7kl`zoWNqY(CUiy?pso<#1j;!OcHq(>ts3J$rlh z)PHN8ze`Cl;`i`NQpPGa<2&pUGn8Af^Q>2~QAiHmtf*5UH z+hiP-p3C;8gRCPiE15JyRNrI^g(e2=e2cJ~5s#f4A)K8Q*}xxW&@Zy6~{5U|3+S4wR4;r)A znA~pHkjo4YU`CmQ%q%))Y=ryZ#(t_d zvqn>Ic9Y^v($5ntyg#*LHro{b3^^*lzwvHw;kW{nN7Yt(>F5D zkGS0AUn$vp4Rc0#KG1gMI@!~c*XK*<3M&Zty^DSw`JmW_OBaADUjHDJ`Pe_Xd zK2->maHs2_@GyApT=bmvlwiKXM9P@cUC?joM4ia61%r})Z?gY%I{fD=tUDe#yC8b} zNSZjpGtu{S^G~n4&+qxE5y+hF*}TK$j&#K#;~NegqsRczB9`wb1>S)k=2^Sq*Dp49 zH*Z%pr>ONvDR#$Rd}CFA!BVmKeGmIP!`WeFX9Ey-Zoc!i$+KrJifEfTyX92teXlmH0g4}5a7YJ5uJs`t5 zoWT|RQ~%=f6YzuZN0uoBu|h@-V1&PEA`M*KXQ;e5^2KYuY@{=?*o*6qM>7ZUy$uQZ@| z2B3!^(+APi@f3J)QLtcD@G3LD`_?Ad7!w31QSh~a;*?-25L9E;h}GkSwLpylRUJM< zA_XkY*0f`hgxQG^GR>5>r9xgR@eYMWNaaINY<3!;CnvEj;}x;oSugRvJ9xt$2`sPx zW9+bC6S$FJF7YLGI4ATNy*wFlG*caAa`Rj8s45_!a(RWL+T$eMwEY_Hjp zB^QUhv@ryyML3YL16FzJ92(4~I22Ze3^U9$8z2bSJ1ZDkIbH%8VW(^jV_86L`Dm$S z2lmaQFoK=n`xK~f0S7P`+ELNm1GRO^6&#o0ADz0Jx-7Op^VvUYmg9A6q5?_CKsX@k zfVU)sRiYOqP_uO(z$>6;PS}a|lmZ>R2EcwvsWicB;$p(ZGbfxK7~K0%zU10E6i{0? z_@E*r-!Ap%yDM&;ZGnscID^~vy3H*P01S`}j2Qx66fQDrr-*}btk}pjQN|MylS~yG z#Mxcm+38sI*}nebMg64Ni17=~hN`_E?NHS%7jjf0d-C)n*00}!&yer$|2|_|5C`e`m z6+$><$SAN5zah5hUAV?Sj(r`!gWnhTVS^b24vr{T#ba3qR9Jz6Mp$8B6$uJd++fBh z)F}lxCUHaw46OiJCqTEsm3RaP?9kl&1-0@T+=@NicLD+)LkAscLPvbCI$7M3FBB`h zgKLzCGvpX(HZLK$I&hIOuo1?vq(*O`crFegm{5iu8;xDq9IT*-5llE~fk0& zK+kz1W(JUPXpEmsr_U~aQU;p#k2$F$0vp*H-GCcYrB+NRz!)w_XOu$JRx8>F7(_b! zCslvWyPwg_h1d+dHKLg`lUCfo`7IB6rt;HQ{pVBvQ+IZpzr*U5Y!GZlzGtG`a=c*I zQ=l3jEH7Y!7x3#HV-Zignl|`h$foUR>Zkqc`C$C34&en@=*Q;{wZwdz#-Di)v zQ(+kY%pCvwZ^q+l`A)TaYpn;p*6D{)cca_mmCpXjaTroy!o*pI#6S0(Z(OnMn1kD3 zNc<{HZFXBXK5IdSPk=s(<)$p$n(r%hi4TZn-5n3Yka5ByIo^Zgkc1gZVEE}oFt^_s zqAiDZGec7<1fuc#EhFt~_$1uI-~AVtzYaePzZbq2fEox&Vov7zwBoVSZo0es>=Qn7 z&W{>;k7>hv#&zY+%+NDASB1-)#T5Nx#vh51^0UOB!bs2wI2GkyO4I(A^Swk`S_|+8 z;Qv9B2FhTBIQjK5f)uO^F18cI$pK4(bF*Zdg9;cna1uFnV(R(Y8LNU#sG@>S9(oKq zBh7e0MmLc~fv}S++O#NmtxN=|Vm&n=s0k`=%dmiuVJswANPjmHooJUBVApU#rJcVnpEN{LKB`si3 zjGBlE41u@9qcwPj9;{t`XhU!dYjD`KlQ&I{Lwieg@~Lx#+M+1H1$-PX;W>n=Zk}r8=-0n<3noRX?$*zjjf6=`#MII{r$U{wBxnQ2xlT z^lw{!l5>&XGk<|!)1ASJ2N1k&Sxy?_bM;Zv@M##gX)vu2-}U5Sl| zk!|J@F2F^Vbw!Cnjo#x>kPhHwsG*ba{HO2KImGO-c8Ged%dS-?#t zWr}fIxpCfw?}vaFrbn2G>w+?eN;$v=iP0E>bFncbCSz5x%uV4K^iFQkq^BUP7zOsI zbK5whI986tC~jo68fG&VGH^4Fp%=4m498bkJu;b;Y6?rrGNq~10Heo59L=h!3%u9} z89jhCc30^S)qI<0CmUgSpo6g|1c2}nRm{;y#%xyTR$6&lnX4uV!*TFpA=$LIabPlP zVVZ1mjVXG~%S3=v1^YF3%ur7ChIIinD12Y_IWWo$qLbq|*)6ML*MfEh6mh4eJ* zv%C5eZ|HyhIs2>d8vGITKV8M2KTrRfxBTz-_KkyHy|k2hvoe`kVQh%j+!@ISmv!Wc zn=864>z>^XD$zk8<2fX7r%%j54HT?92In}V!l97cC*@eRuN+3Ib1*t_F5Ia=Fb7-1 zA(A?*F$Yi+N!(tuuiWhk=eZi+|AaEu=;7Yi_n$LUpqbtXFe9Sb_Res|a1KT}(!m;N zbfUvZ4&qQF%5IG<88Q|`H7iWQ&)Wah>g6%^hP%g6Z?tUbMHXDq-@^1GavJ2 zxVKyXpdI^elDfBM28%a}zW=6P&S^Z_gzhuAe=M`b7N5NnH8ehJmAJ_$*agh-8 zEM&z=^lb*3GXYT+rIqZ2sKp$>+G(?cV~Hdr%pd`{VUC0e4q%u!C!oU)Dga|sdrAZA zR>)v&QXW7soY;++mfR$Q4Q#;R8T{|yv+!Sq0lFhV?}VMfPog)c!}ZPMuRlp_J6_$g z?cAPlJyCn^UX5>UZmip0hlg7}^Q~5XYrRrm*1Noay#0Ooq+3$pp4gsZ1xxLJDJh7| z5o(Z59rQn58e>f_Y8uf1PUh7cP_qkGgtL3V)fqX!ed_Fu7kuv_&LHC%qlv>qcynZX zjuO%14UB09LOoPcU`7HL8BCa+2;Ecb9t2>SNH8Ion^iDvNh6yhv!4Y}EbFFAVS!~{wQbK7zstQqC!AUHJM^wLs})XbPY0Hv8a@3s9O z!5Q3uoLkt471S2dD<_MK3TnRgfM*T2GdF&rdmiLcyea?UcGG2e2mtn+Ei&n?g7 z7P3)*Hb}NG8wIXlhB;tFAUoMw11K!#h`YQua=&Ot{Dt%QlaxfivCVHcT=hzzv z2-y=$ufU)xQ6WSzCQ%?6uT*ViMR-t*Vsy~AJqIztY*b@_1SQA@PQWY#Rg|De3PMa` z6b0t6Np2{_$!f%IBORbOLzZM=CWM)wNRAmCvCqM0u)hyajBg~*SjOrp!HyOpiUaJS zMdz(R#Uzj!ghj1c7*Gj;fkGkM!z^Za)@JD1Xo%LZ501?UkEWD#;ufmm#!h;p+AGE^ zO<_kE0pTrJ7wCYFP*4xTz=bAK^EDzVS2!6Hl&Relu00>uf+OCc0e*baiaf+P+w zqi8e$0l*XvIChk6LT*$%u&M}QU?folAx{J~jkh;Y=qHuYsA?~jFqW?DaktF&>0Q@Mu5W#3K3B8 zXn+rc<3uOQCA);IQH(fbYLEb4_WhGHHHdQ3gw)8s!x%2+{*qCIP5NYvNZ2vjh?b zYfkWZ1bmqG?*P<}vBQp@YgCc=Jp4Xh5?h7>Ix-kaJbgrnqvo#u0g;;kPz*?0tOV+LNe;In0CBWv$~aHg%9AXO3Pq^z{Hrz!Md`#WnK{u ziE-x2=)}C^wneArhV`%Qasme}PP;%H31k%Ex2zI1GZ!MEidRa{<1;*n8J~DfT*7+k^bP_bw-%_zE-^mC z4%7tcWGy@7P<7=yb_m&)q42+a7@nr@DPv8$SJ3p${0lGon~fhqW=GOQ7IuLKxP}`z zzy(}m1Nu134MMYqYwS&Q19#y*tRajy#W%z=V}=cE;nQ%5A&!Kwu0^yhKi0Ov$s;iP0$70KzL_(x9AOK^64OGx;~*8IhtF1QsI zoI8(8dN#)jCi5M-i%b?lGVTX!kwujaa0WXl06K#wP_V5Tq5Z-8jjv4w-GPuC+pl5i-)@Xzs%)|i`^rUB|3)fG6N$>usebMdjV}G3V z%=8x@#=rB+-Y2`6bT6|R{Ptjn!rbNvsyO1s`lO3{q>k$Yw}m?wthZbp2r=K1f}_xp zDVSjkZp^`aq)V)v2*Qb(7q=WlsBFy=X=q{38STKS9h5Fp$YKiusTHFNWYo&j7YtkO zT`(4`!yV0dfPH}PU)0K~0u(saM(yZUtTs$DYjF+AC4tl!s_&v(;L z6Og#GqgDK2na&?mjhY^X@kx$_dxt!VMg!aq<9$8wl4)Ct+&d#gPcoj9tUn)PNqW zIdoPhb^nC(0UTKu=A6N(^!I-F-3388*qyh;O4t>+4OGbeO1`<@5C|m4+AHnGgbC1U< zG9;kIgtAa@T%$@?kwHLDIChN-*+Qx6+WJD49&5csY8#MFCPed^CsKfuM4l-LiDJ~2 zGK(>`oRYF+kq?*`ltqgx8eoJlVFjD8jL(#gFuW3(aLl3Sy~?xT7=*wG=h`T0`nL!O zJB=k5&`f;c#;RdytWntTA?Ot4+Sg87mo14LUP02(aiDdmegzQ z4IjWixQOxvWKPWVSIsb3H9FL_(ZM;4Ah-lha3f}T+#H7&%??(3%mJ?8Hekwjwi|FbMUaS7FyVJ6hMX6LM>Fqs z%p)DBr#pikhsru*2BL#oxP*txjEfA_z?pC0fZ6H$(m3fc;{F+>py>Iesf*_ zN$NM#JWB6=!>*t8H>=c#K4WB(kw&bd4u&=w9roCOeG)UG@#^v({tguMIy``Y_uvhv z;y(1^(~!s_9uYH=tRtCXgd$wb5XKJ9WqWKk&1e$Ih!YQN+M$`+VLp%!wmXN_# ztc)ATSciZReGAj=f(RTs7>y$okzs(R#&sL^b87@d3G1K}6B6kfIxsww5;(RYb>MIf zk0E0PyAKbrU&MMWuq>^x=Pe5F&C@S)9txNs> zD~*Y%@@n?F)^Va9i3HG@Ct019JFdlXV$(4={fd5KJFu?+wIZF8&1#!I+)$v(WTc=s zrl2>%%rQ<;cYsPY zaXBRuR~K_^J#||JuVj9G$6q>d&oF(6Uq2w0zRF`;mrnYH3S0NMbO?_Y2Yt@E-gYeBWa88T7COxZCOguHjX9_XOWRS!)wKPngI8 zVMe_JYpC>3nFXS6EVB;j)MAb0lT(GY5q6N92X1J=-F@Kc9xx6A;Sn$ zW3;2Krv+kT@zTcvB$ z*UcZ|8#=)?dJo+vUE=Q%Pe6DNKaB36{P7JdV+;fPk)=ZsH*O;|7+ zYf|7zs4`+}yn`E|kclw}>=xZ(NmMaOE7^gVWZSUpoMS!q6lJ3)IpoJu87Ij8{BM`5|~k;7x%@5VPdY_h%hF|MmPdhHf9lAg(cL% zmedn7On3pO`xw5$z7AJ(Tj~Y^kbKNV9E=1jc;4QT3R?(l2j`f9i?xumKUG2D1r#`k zy>Sm#a0nkw)`A8pr4%7WEv9N4w>#!SJ9!kVVqe3}SH`;2?QA!qpi9}-(jZ-6w`gxB zn1h^{Bj$)m05712djQ-*7$Y1YDj^bR&9N{iW}{#eE;NBKLzOU#JZqe6Oq@wz1*;Wm z@@gvVj0ruAbay1X96uOc$k60Wfk82jp(+e@%45RZqPWCpF=7QdzJY)n{1!ny#}Z0V z@eMLG)6J03geuWtzd6{Cel33ZqW;QSpND@n`Onb3@zAcZ;SkS?ed3GU%}?QmIWZ_Dm@}f5N8c?glxY0jNvgf5%*yM>=q$0Bzz+M(ODcb4t(| zL*fWtNEIq>OvcV3;gFpy@*WFT-A~2p^Vjjyd1jT#nRjnEtGqgKwPyE-2aidC8}Kvm zkHbI9he~be!6pgL;VCC-3JRo?GYAa905S&nLkGT^d3WI8%p&@VaQLCZE4!z;?)MfO z?7}p{i)4M_&h2ihpPknKIv3;2Kffc1&e5V4r2(13NdoL;l9a%#ZR#<|fWVig!x5WN z^M6rWQ9`IQHj@*o*dz?9A*=(z9t>vDgTbv>8xA`mCmF?<4M8ewny<~ornx@PAe=6d zoszhOF4I?3nSveoObHGm!3A6zsrhkiX#ji^eq~_*{4zX2pTgH{jHH7wOn7j%!9**w zW*}qFMyXyP?+l2fgHIZ=KHVRkEhid8qsdRh&+q|~jaLr5+YuwS{|n_)e=>g^9hiE0 z;qy`#Steu~nQD!c)1l!XO<-n-F{VAQO?H{3VmnJaqf)Q4UCJlZlfjN=qu2o%@32C* zheX|AYfSVGLYWE?xWK4}i=|*9dI-$WmO1ExB=U@_702a-{E-ov>g1UWSyV$68R-mm zgicD8z(L;{bh?7`k}NSi1B^yDVg+@iSndfxT9%xu1FLYv zJMu_CoMVtghH%P2?%@CvY9t}72_yEHK$Jw?U?Vvr;{a!(7ZZ59Jz$0d_$g+B!%;kU zR+ZbJ(QDK7$T_K5HU>qAxn!x?U<=??wxPTozg9+XP;1c!?R=!l4PkBfa9AO0k zufiQThYCCB;a-q|rltdeeZz3m!h!;pbr>oLyea)^OX4JE)uZ7HT!^wo0 zT1>-AG^=v%a_V2DKx@5$-6be$bWy@Ir@|M$D`J9Hhwxd_r_ddAgrvqykDBF=OIZMd zDiemuWD*9&=%8W;a13E0oCH07jW!J^Oz0L?;xc#+fmN{=2G_8LgaU5xH8{Sj`EWkk$W?HheSwsCD zX=G@Ii5!F)3qG0vEI~Az+=Rp)E=e1rpp1ka7Ja#;&l{Ku5 zj8(|cVedNCxD+NPc{1OkBeg&ylhgqVkSKv93!9*{w2HB5n?Qns4j?>}M9f72Zebu& zRRx(eS4y@5x7Y*O8A6PT3_%h?wPI}wCSfN?3y37#L1;$^D(Myt*huamqmH^k8XOd}7$T~)Qn%y464 zOszPDHzjj5#?I!93#N#woH|F{lF$=8!P)RD?Jap%$}BT(|sJj4bj9 zl~sZj$NE!U{d`V89l>zqo)PePLl%$E@dK~iLIQyQC;ZFdpW%b0gWCnA+Xnta@SmqO zj-P1XUZ#2=wP^b!UTo;=xF9iqlmraN&*( z1ejqvY>ymHDm(Vk<-!2UN71chK)A!2<}xBqE?)G~g`Ad$u-vYbl}`qV$XH-A%9KQ^ zCyNb-AdMsu#<)in?{TA>3D5>sSo;9Uh+_k;7?z7lds7^LC!h!q%JE9FXlPCI_E%P|SmglK7(j3fUx8rt56pdfjcdYyA9NnJZmKm3Os?87N*Du2CHTI$VZD#q)YE)0*0A@S@>hl zU%~G2;yId$6@5osQE#yo0iD>u4H(>oY#f5=fCZM&iF^qH(CW-=6TRZ@J?$0$x3lsw zO{-~tF-$*7{OlLHx90qPJ+I5ZN;0}DbOk-B$36+)1#iJOi2Lvmj@X-U1Yz%>iY4sp z#11atGuQwR;1SvYW~tgCREfYE;EF7}lvXpTa-Qr6d%{VBG_}IO6>cW$VQscTZXCp6 z=4w)^)Xc7NRUKuw!9BFYo`AuMbVNotmQlhExEq4&*|M3#MP&3}yuU8n$Y*7_Y+Xq%Tq`n#^jj3g$Kv8itUr zaW?@OWQ@?mCA`39+=(@*gHe)fnia)X#2U}IV>29~;NWXxQ<SOGH5*)D&>Z&Z++Hg$d`%uvY2NalNhGsY-_n1TbqhE(sMrogm z{b>@x;DCzx^WeS+rBN!yB5al%6-N}uo*2i7k6{l(9vrd{vaQVIJK`LyYBCK*tsE*Q z24gFYhG4|@q+^T93XOQB7>JxukKLz=cpJOL1&$6N>Fss>iKqIpXZ&;b`6gOnPWd@c zpR4{!=T{$Fx8YM;z6J-W$49J4MP#TIPk99|Zc5jY5`M%i1*%j7NP7%05NQH6Sl4{g zA1MgJu{Czy{w3JK1a6p>ec?sQn>CRnd_cK3X3h$esD{D0t4AzW;TPuXq}Cg_Zx5_b5D zia-Oe95`FSzCAF&Kl|ZWAcr*^PLNK6|0Mi8{Iyf66(1@_@A%BnGYo%hyZ`s&cqTjW zZ!>-#en#8}0X=4na*6-xwkF%(zG?O7=9rj4w3&aI$=iCiZPDqja+@wOnA-Lwu89M* z-0U!-CkGq}#|s$ljt_L8grJ*AVoLO2hJqQcARA{r*&(rYhM=pAunVfOh6{MbxN+vf z40{oU+dxO=N~t8{wvma_GeQkIsKLeI^XC43L8;K)KMY!{rZ0eftw=EFXJV;vjp zZTLmHE8LQOne+wxh@X@1kS(Qz&*U3?0~K3Yx`UoM|Lm(g=3itPdYisNT5A6+TUH1T zTWV&6Vg9^zKQ&*_KL$}gL;gBCGC4iCz*q_yAY-Bl<^Y<}gjf2`&$eO4vs(zB49qYD zV^2Ecs_1Z}ODgM{UU;6QOknO*V+>-%ZJ}$+2%{Plw1R{c@DpP_3A<%(UJ(wI70RS> z(E@m8=@W2?IRj`7}QvBOyWxF1Dw`W@$#cCod^@eSHj3zkvP!#Z&*%;|#nuBa0UWT$AagN!uTSsynMv)MN4-@8|TDA(7= z`KwVLU6r?=rLLr3Pxe)%PrxPV89Kl_q-*>cyo#QoH?RZgb+|+W=>_GBxM9L3sQ4xJ z{pdd2!7FA|!>@@>WPFbjb`B$q*cN)iVZy7tgg}G&N@j|KdBI&oXclYJg{-0@R>cJz zA)|yjo{?dQJ%q&_xWx;sL@^V7gB6sq1c;+JpbVL&TT9^>UJ-DKy?`V2K-yv=Mzjl^ z2}xTl!&A6`wRizL2n;Z36f*$H5h&b2Fe!CN&;=b->NzHC#;O_8b~Pr?A-4Nqw#>}^RH6*0JE%^CM;lvHFk#WjTv_Gy;%W~99yA;zVDR8H_|L{*N$(9q~$JTzEp)icZRI5AZ;(%sC#( zQkl(0(n##kB@9rIH%EJF082p!(MZ5YqCi4NfYf34Fi~$HFz5#AD8AXp4?m7yxbJ@j z-Jm~0Joosg?&SZV?2}h|=QjP|MrQ*gi|}VR8im2*Jznv|cE#Dip)eg-83Jq8b;39) z`sAkEBSx4{_(>d3?ThN77~a_7R)LEOv#49LTinEPZP^nUKya#jBynxK9g9@yn zH)oQ*AiHBG1biq;nrOs3Gn6Io#Swf-RIT>b$C7f;QD7j)AQhOP6Ra6J&fq8}5gmen z2zF2_W##}WaWG!#x#M)Obyh1X94jR#kSlK&t|#`!931wnDrP8Qff<&W4Tmst;D$jC zp1_Sz!9_A2!!`UcY+&XjTlh8jhai*S&%plz-i8%^zCCtdx%KNa|D5Wt+WZ!qU%;I7 zX}qI+f$2Uqks-gTdaG`46!UY{-$R%^Fzgw8?p?YgtX}s06OIdlZ*I8ixI25diYbxi z&l^A06>7(B&E^Rh4QGw1D+_64!c^nj9c`C9IQv`fqFqP z$c&DGcj^xjJ@q^(X@21)W0%yCw4STwhKYGa zby8gnOA|6OSVe}3noy;mIBuvtd7_(1h5+z(D8h~T1iVJzFN1t&bJ!BwT>%iS2>TA- z!v!|9)F+4*m;-V3icz6o+K16*+^%(Hfi)j0?S9@Af=?NjkXwF52N!S- zwxm?BlOn~(#4hoL%c0%mUG^PmHSghsFd1K^R}|KpbF(N02I2 z41#w^uaYmZ%I*f8kvrxq%1FN<3aeo4Ts!+)4hJI9+o|SsC(O~7d+T~Us9)8GS-+Mh z<#M0#|2&L0On1KQpL#yLx8*I_H}NOrSJ5l*Hu)>yQXxM#o>FIQi@k>(u!OGh18&$I z^Z@RobL>7=TaOs2f^dll64v7tJ%o%sF``-(w@wF+jb?i|mry<{U=}9FdK6~0a8SB+ z?wcjkCA`24ddOG;H&$??G{GgdGo_#}tgsun!7|)|uCN9&eekJZn>hq?UZ=@Hp*9;>j)RB6qlo7_H*(|k`Q>)gafHP-k6mNi;Ca7XpIWJb_JG3J@ zyvoiZGP;)U6>fG3p*qUI3U)=56C#esZm%0Adxou%;DDSG=%P7#t-V>TJ18Jb$VeSw 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¥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ⅆGTG3x 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

    KZZEX28q#r=?T*q>z>+z! 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

    fo5%N82SogRW$F4XMU&s~^BZ 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%0DE<-c-rg7~hpqV#?LR(%GaV?%m- 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�!h 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

    X|y#et0$4n>9GtpO!6Mpgr$I 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�j40x#KwXE10WDFL8O_1MJAREo*)2#06}300~`$r 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

    nuQ%xCW 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

    dI3wgVlHG_dQHarYj@#Ei`@4SW zJNLKe_a8s{(eEAWS8nu*mUGO_O61mp<>g7PZsJ={)SIRNGwc;N;x}mO-@^Nc`nv!0lOHs^r5Y6zM`=wL*bApP zChZW)6!7}V=9~5#UrMi?fAH7g&m#rDnu^Bny!QI}aP{miS+zQOQ3k67k#iv&)>cD< z`OUKb^0fc#8~U=lU;ualKYd$({VmcNpZwTQ-@WnG*NaEPjkg@|#=cH(-u&_1^d5Gv z{TS*zZ4oAT{`=nc1UppQwYD!FZBl~_+DUQMv3NCg;Y1N_lvk94qAfIB!i>%l68tZn z4ya4)Aw^8I-%hZH&UfUfOv-Hh+MN9<6=&S zJ%Thth(u(rQj16cbv}o(S}=`QaY%$X^|L5ufQ@?H^r&Hlj)Ey*dPQD5n&r~wvR-W` zpTmornc*_l@j4qw$xYC1HuJc zH7pt!;1}>=A52X=Q|X;7Ca8nwdcWildvL?5;wEZN&l$?NVQ}UP3j2>!W(O%5ZI&!( za2Vw&qnwDs$T1P3f;{W}0jp!b`V=)jlKM&2Nv53M`utlm%lY|o|AXi0&8sJm=0H8t zb}H`HkRy?%fKHOdx6R825gY{K60UU(s0-3e9i)(~X7y9T<}UZhlVnQ#?TYP?JXC~x zSCKTKQrFiLVNSrDTxJQx&6kMApIGt6OV=pvE7BUft#uh49qnlCpeZ`&Crqtv>T$tZ z+@6X}xIQzRHp7FQH#A_spatsjM)}xK4$v815RT-8p_mr-kvV*aG)ucDel0;%uIUHb zGEw6@1p3am3Bi#8`Y**2EcP(5FiTkZQf`c2bFO9MfDyXw89JcGfOA6@#DwO({_d6$ zhNX%-fx;85i_#fRu|mBwlX6(YfD#FmS~|shtq5VnxK5A^*#opLJduJ1ME1V`t`T;K zXKb{WOmM2Yw8jlk|-g-BUm&$_3`Vra=W{ zOtDsx0#pHtqgZ+s3o*Wn_i5Oe#D*1(OFR9hh=FY`-A&kt0}k|zggusmTCh(DTi5Ea zz@>LkQZ(oD3s&%~2w)(8I5xm-0WW9>5vz8DL;_ZzHOv(%I03RU1ts((Y$xQYE&#Ox zS7e?G8&G3IqG3t04lI)dV+hWG32u^`yUC*B6LN7YBJTNw=&&rgnKqY!1Aw z^2=goYG#|aD4JDV61+OB`V!RkL5Y$-Q2|Zl@R9(X1#_?psXlG(3~f;oLHS4uqo`3x z6``YAqt<3tan7ofG)}h`1cDiy%SvzM;sQ7gXp;Q98X5;-6@*!>FgGy?hZi}BlBD96 z;GJ5ubJe%v+T4^YPJdrRlpj7E(t*; z7Yh{URP=hF;L0gAaL^KODxuHRtUi`-bCoc5ox{!F^84z#6yKn66lJ;MlqEo(h9pX z^Xj`4#ND!Jmbh4RUnUKU?~YppsvvH@IgToEr@`D#ZB4YO3{XNz1M>=0f`T6!OG?wX z!J|M1u_FNQKtAIHj2u1)9hTg&M`buGcYt=EOXW8j1~!-2 zli{$L+aAP7Kuu=avXbz^@V(IDy~L(SvY5R2GQM@(RP-la{JGt}{Ijq9{B+s`wz*18 z%%OysG=n{s*r1ElEK8=d=1Xn;>`T2q1%!PyIqn{Pc)fi$9X}EdH4|ebJV8BdFSI;v zyM4PoZ4z|v^P?wUc)q>&dHvc)pV)7;^x4nqf+iJGacKTVz^_L*{A!bQ#Fe{%*wlpu zDxqlm?a1u7KpSx2*oV!|U#Fs~RDyzA|(x9wP>x z(@`lSr-mkL^cw6QxWC%;>iT>B^)_LRi)3u?Nus&1Moxl#0zKk1Bbhe zTdN_sCj&WKL?bj)=`oUZ*fC7_-igMek;x%IjJ?3uR1u+olZv)FoM@97TkuqIQ?R?1 zrMNd~W>(sxcMg?7-deQWt}oYixSr!7s)#D00vwgr!~zaGahFm(v!ZRCIzvvJ2n3(N z#7y{L6T%r=1$}Cgt~dr>V!C4<>dcb2EBT`YX(wusJ7AAVu`-J;IASGi+OZ}|lP8+r zLp%Y(IP4YXy_WT14|T(}2%=Giz4a73caITELoX@zkuj4Dqsz*Un3M?bgt(1P+6LJ_ z_>L5p+8m_f<|Kz7;XAZz7_$!c8_FatV9Pz!KywxXM-Mp%7!_z6 zWm=0J(7#p6B>GdSS#{ihFWhSo4A*w1{B(fb2Vsc75mS#b296B}M0ppA6r_=PC1^A? zSp|trXuVmYWB5%#A&kHY7>;fgOC)U7D0Wl?&`L!rv(a3Nsw{L~X$mOCR)F$Zks7q@ z&D%fmgZuA&VfW<^SG!*{M7MQ-(VYUnLT(+b`mY)J=rsr?5CbO0NO-6?D)GE;8N{Y+ z2uM{~#b4ZEj|$Xd0hjznJJnU7Rm7;(0h0}4*JR+7vuJ9N;2!)gRSoU^tPzg97xCa$ z6-})HCvR08K5~T^P#5u3Qc&BbiqvG6V59DCRrJuV&@qn$l@asFt`I3K(+dcF1l6OT zW4mi;O*O#PU?Ry7tu*o2BsK)MSRpQrqL%WG4e47X32v7^s)ot9AZ2*d);ySYi?ruF zV*v!mj4 zl4*7ga54b8qwQaLL#d)cd??ltAc>F+AQ0Sf>y~wC|cOh457%GTS90Uy?eQh2Unq{34Ag>z^JDf9apSeyFPJZ>~K40thyv$e0 zHEpMoPgXu!ZZXL!^Bm@zz&IYl6`ZK(X+~=zXDgnikoRjG0zQ=lvM@I%IIc1keXd;`r-{LAl53rf~ zqDUlMbwNNvR+q*eegj!WU$BvPAUAjS_XyX#iSYUmaC+q8vOhE7gbKG9BB%<_Owtvk z4Pf)CL3c1Nkmjfx_BX(a(+RGSgoD#qQtB2fxPpOw*V$%7dTFqHM2#>ZGZH{x232#) z10$zUJ%THn-zw(4G#W@NaVFD(+w8i^6^UYKjdY#ZG89N>SfKUNkU8;};Jb`GaEGW5iHq$hL^E!npa=yY`JuK|s zN$w3(?Q4cP)9hBt5J5`Fv)mUTz-Q5dc81UJlWRlUOZT_~hm(hjb&_H-b>(|3;Y0D= z0Wk$P!nYE1?RgzM0p0*5W~s6n$=%@ras)x%oh7MqKPu!5Q5I=#6bK1xyC?*LuGUyU zJxby>&_Lt3ZgRVWgRb9 zBT9pB2<)axizQLsHbH1TaUZq!ktx=IL?cN@%By%sxUNB3?iK5l9$%*kRaBZw4j@=a zQE(I8vz%Q+^AJ2Y3(b(l1MsrJQDeM1p1<_X_x{9R@#OFMS3Y|A*0&FL{`kdbU;pUl z$NqeJ?c3XS-bzwuWQ6f(t^7$#7hKeL_^hC0J`o-$YVkcCTnZn1Tjc;n7dJLHboKOS`C1~2;+wKQV{~i)x|w3 z0>Va8UwAACK`hIr^dhrht!Alfb9%UA7I=5tPZ1kEk-_aW3tTb5LiZXy{e%+P&{kz6Jv z5#@Wf90jwI@BdO{3cTY8?(-+|hb^zp$TK@1LYoKZ;cxmN(8h@l510gpf^Qv`_dfH< z2A6sJk&mvz5BBANhVG}+LSGC6HE}W(#Dj)AEO)(n%$yP3SCgxPUG>w9mYGiz+)dwF z;#W?sS$NIfpRd=C_n+5&)vW0y{>%-&{rg}1OO`ABQ~CZQtp|jLt?0`e{MJuA`}lW% zD`)@G`%kZb=?!^*?*-@C>f7hzJ1^h(`bS^*n_hhTt#Ge{Pyg00 zo&U(6pFeDxQ;5;OYM=ks`Hhd-cfR=OYagk9cL`sfEQA_3qISWjs=*j%7H`T`YzG8C zZ&D-9*_!xUqH&KfiCvkzzRBY=rfT=IH0WG>O%R_Bi#J_s@LVSLg^R&41&Fw<$x{_^ zslkN}8=U_8I#}5OE^DV?BG{uTP=c9Q(ni%Qxq9$XK1Ezj%~WGm*BY$Nfo?Fa@vT=g zX|ZUfGgW*oQ5g-Q_3FJ&im9tJ*AH-%8ccxL+_CY%ol~mwnK7>fp0$Aw5n@J-erch@ z1nPjeZ^=v(s?@+BJB-lqMAcEMRx<7|D%fBCx32_j7X!e90q9Y(Q-cY;0;67|_=Uof zF;*)5f%YpzvLp6!PjmxMvF>}8g^&gSMWO*Zm~k05P(>g>Q;jeTMc%xK=!&xAd^0fp zkMm1L>a8O)GUbXCyfp!rXBPRfURIevyY&dl5Q22N>@Q zjw{1Gk-l*p0&Y-De+p=&Ls^$s7&fAh)*k#4?zr%JbE8N0d4f_O1F1kj-LP&Bp$2o%O3)kAW-ZNe@5+H5lc>V>0$TPpuyq%gEU`d0UmZI0IRIlW ztR|Th>w;QnJ!Lfbd}b=hB-0FA1^15JJ(o3Ne=h*qfh|agPMbV^g!lq@6Sx7kPR8s+ zqi)^my0CK35%r2sOcqt6I+Y0^v8f}-J!3vfI%87=h61cGnROEEdORmPTnEQd>Mne@ zUQ%E^W0#<@Cyctl_e7VTfECDna;1pcLo~c*MU$@m8)um$NCwWd=w^x+8r#AiUx2tU z@>b!Qr)RM04UEq=pQzyRc%YktaBfHVhB@Qju(bh>#Fv=Q;!g(UGhur^|13+F|o*M9;l#K9p& zF_C!SrNcL95bRJmM^r|$2Ur;VQRulMd{IQ{sHY(VNBb+2B@|FFRl_ZdkhfGQ0kB~W z&D zgmnef8R2qk&i;U?U?4tSB{mb28n}`vic0sqQl9(fzL`y`R3c1STeBy=dxK0n-QdnW z&bQeD*y@uNTcZC`i4{HwdXsU=Il5MKVnpFMwV z+dmdxX`4`GxtgE6SKeD}i%~Zk_!3>rlVdNfBsKN6h&dNlvR4OE$KLMkv};g*Yn7Cx zy}ig6pHEk3iJMQWZ%MXk)L%fE*Jgkzg&LK4@zE{FE~*9#-jsulstg?B1}tEoh|_Fv zIE(ucbZz1X=W=J83b#5h42=K>L5|45YDtA>13E%KDAQS5$jtGlKt*y<(AY?2ZP9Bi zv0|tktEmtEM>EBEHgFPTHC_P#HlYc{0Mi0~JybsM)#0)=rV72h#*zimn_H8SC}`C+ z83cdvPs}h;I1j$!Fs=kh(3-)0RtHpJ{L=$}DC;L`AytsdMdjRFf+0rtgj|spHp7EQd%1A2Ti4K_S?32kxPrqLxduTxY6s3}2 ztk%N{GKCEOpV*J#9zg?C&;}tP0y1RhVUo~X&f;^B;0PEp#jtF$kG7~TThs;-E)|U2 z^0zn`dG3XafdW$Mp{r#*nlFm zLuSCCDqF)LidWoiuE5g?A~;@&^*jyPJtKA64B1%btl_jFC7BzRw|uvWo~cmIl=6

    @dH z%yAMgs3e+9ig}L(+Fy%v=etO@x@dYMT=1UYTkQ%dKSVOC6ge|eUzF#9?9 zx{2STM!@JFGR}d5-JVrWO`4!If|NLsJd#bRp{0nEp(cN_h#8InSFC=(>KTy8RB!8oPIK4eEn+*vy{FAJ)^%Pt zq=c13J;)Rz6-r=(vMHK!?l)A>(sO3`QP$6UfjPaHm<(nx_C=_Gz=?)xN~+cf_3kOi zE4kR&aZykWVU!SpVs!wRIV{EK$j?;z3nBh9iVZZ#kZ3Sq&nv97LlP{?){xxh3U9t7 z?NBAg8C|h(R;1)QW4rg*T-|EcDY(MV8qH){n=IY}Y!10KSs{Wb7K;A(C%^nFUwY#o z{n6L%Klt{xTW;>({ITD9{pWvE?6hr@Pm1>LTsMTJL8J;_&)AO<7DexCe7Q-)6Ckf% z?wB2NofSaTFolrSA5DF%2l1z$1OVmOY@Q>CLPF^u011)0fYg-o2kks9+EogFLxQ%bOkg?KHD}ag2yg*ykahl8_a)E5kZ zq6W_E>g3xU+MsuLKAlH!L5oNt*M?u4Ui<_4?JvIf`REf``;m{H+KG=#I z;&XuxZ9#=9tWN=$xH>vg@>uZ6jAz->i%@r_$*<1&DKluZwa2IX_Yd#ByqVLw)q-}V zUtQ!|zxjN5w#+~Mw7iqCVT<_lU%daPzx?Z8`o-7&`al2m?H)Kj$ zqpk}Sp+ASZTvP9w;NVz_T$cj1+*U*tEyj z{2oO_;&}SNjRF8A@gX;a;uLZ8_BBbH1rU2#+q0{yH6=77{M1?qK48Iu@ljkpg3!DL z8SUIPynXX6$>NxM>%Yn-{@_m~YyhuN3trmR$DZM!fB|8QOTUBy_+8<5$l z;xLFo+6I5MPBUC=aI?6-B7O3VmHE^5RPEtXPj>UMFtudTw4(MOh|jxCPl=K@&XEQ~$5MNA^8EMo@LGGM!Xp;?t)~rv5w`+(8bm+@_qza;q1OcQ zuY}qcg@;iiFrjT7bcD*ewh9LlZFTmyZsfct$#;qLtqQxV^hZKO*=XLBjyT^k&9(w@ z4)p+%0{5hI1wkpqs5EN22Ef_K3*sJf1HZ-gTyQ`Lp2%0QB!=1+_zdi!*U

    ihG>IoFTm)OP70)iR{L4(Lrfi&3PUf%5gU`s&p?m}V1?_D zA;tzYtPNm$nnAiJwew0j)2qPC>L|^=5CW8_l&*pPG74X|PX}|ygb1`dcN;aUt*?sV zZ=BU_G|>()GK5WRk})!QQ8Q<^kM zd^D95Z5N!VAz7*f@jZ<#b!5faQC+SaQF0^*L}JHHUIpwlZ0-x=^Fd=^V+-mb!ezF2 zaS}Ovk1b1hSzOVs6V6o{P#aE_fI!w^WD7vp&4g&9wJxJKla2bm`?k-LB#DSB4w+1* zbU>UzZCPeR~@-}BtyU8owBvbfWYPZFBDbE58~*U;r*V4`hJ z#D6zTeE@oMq=cYaSCbV`NYbEUf>y~^=^pMI=HTWm_#hWi~l7L_pa>DDnzHfd?{f)lgeW>Pt&={?d=#$lbI(jwn7szIW4p;j`a=^6{ge{Ig%xJLqfv z^dsL?9k2=8&L6+u^j_}w`e%P>p7gVS`&WMTi;tfD(kE}-Y<~XYVfpI5q!gF7(oc*a z3{A+gJ=58CA-PL&Nh&qc#A7VzMEyn+U03(eh3sbz30h~j0K9d^b;b29KZo$RO zMO{qIA!5o7p%1e8@UKF~FEJ5zo*QMCD>3~d7q)isi^j+P?B5~*aP78+OYM3WXAmco zLtcSmn~Y!Vdof-dKAzAWFfoBc#eHaZ9B`jf@Bl&qA>eB{4^W>P z!j_}yY&7QbSd0T2+b=qoHwO!H7P{|lgX29fLAlt;I;R~k)q4_q;0-<8z zxUf~w$aaPo%!zYwI9>JCa;Z~oQ>&hIjd6`yatP+pT$i>cZQZN~z~$}1XBamAkk{Y1 zxf8sMlvV~Gc|H_onB1L&q0%vveC0lA(eSFh!9DHL7nfsFlLBAFta=1=v|$af)@Gm5 zghr6Y+oep>o?$xHuu?cT?c)zlgz=~{#+?)^PXB!vh@i9g4CrfudJAq`b^*`Lw}zY$ zn&eqQr>4;&NH~$kBC@!Uv1@(10?*foqDPsMxl=0HuCun=943pAtV zQHf?{XH7i~W~0_SQ@r zlAzJUts;BxHJ&O8Pz?3PXOnQti|)x~>AjR#XG2newZrm_+ez9437xtBJ_05O@sQ;{ zgGqZL30i$oTrZ+0q6#OR?+^kB17`Z{i?=Hv;y?|!s5nOjtf%8t2Y}3MievDUWiJ%J zK?vRHw6nEJteS;+KBzaegRmgF6aj59EEyUZa!~|y5|3R#&Twky79bIcj6n4aRHh+O ze`&45{ECC(5(oEHWJ_on!b`amOH(`b2NH2pBahG&CNy{$c=3@!R~&QeR3w#BML?Ug zA~?6HvP=OcsDapPFn6UP60lSmB50sl(y*P75~iKhO1pIEe-8%~Dkn8c`Y;J~=Xh?F1 zu?&3vb>>Xn*4vuLptP?;0e;Of4a6P=vyN?a|Pl?LC1Fsm=k40%tQU(u4~zH!jq zR?D(psi%Zy76}rI8--yq0iS2sBwmxSXt%7*Bao96VphGmv0P6}qJrd7rRSg{NG0AWMRC!# zTHO%#s)Aa*im=JyvzUtoNzIF6aSun+Bq4}8!Iq@PCvK3^EKuZTk-_tQp-3?VK&<1C zLDj!Qry3$BvM@$1jxAuRxGDQb%Oh!GhR>a@cfiYm6iU*mTB2NV1ql+QyOyGgw2pks zi!1RFXSl8K*~6x(21N46RsUT5NUx)L+MgE-Qs#ijQb8)muN_MBa1RUk#n(T6Z@c@O ze(NVcf2&9L_yZJ|^%}ZENqGI+mhbWW4fRQuh+qEx;cvwLi>Lc5eQTQ}#|V}uD0}3U z)uzo<5mJ_R^ReH)fw$&@(LZ4l_=t|#Vu6VCY0CUCvX5YR|yra!;}<49Zb~wqkB|`5;1kr`2ZUc z1E51O)Iy}U+yzYH0>iCs7brYPZsmYyz>v-^4Vy@uJzXOL8x;lL zAQgR`z81PCoj2k&eb@j7Z3Bk~`j0E3`BWPVk(dNobKa6t&PWL=Ffe_b7(1~D8mK=6 zBlRkkrvba>tH`3535XBp!iSYLL{|TpKOl4(4=n+0@y^{o39dS!;jUreBEZc4xm2-fBSNYw4zftL`DJ);y+>#p=l2X=B|?xoX5X24f(Sz4kRz0e<= zVI!k=YS>usHfpD(7Z6lq2pd|Wn|}pTPn(IE5RpbrH>2*M1IlPKY_Ly8h0`#Lz-bSQ zm>U8}M>A^BsEtuKCS#bplU@RF4P!RHp+j18Vu9W>LI5()ItinBSTijaD!Y-%qb*}9 zP=a0ppUTlKbDOD9-iu}CF98$hH4ac9pP^1`t>RSu*d%4dCgBd2fEnaE1Vke3BF#P} zv{k~n=lzGoPOpPmZ|ChKi5adfQGhg-4~u|t?od!@p|g_e78u9Xhe&t0qkFJ zaQX}stQ*AHN>mZ*hV2${VwGROD$0t$DQ!+KyTD54{;x7P`-RFquTzN#(n{orKtt!T zZ4s@2jSiyUQN~%C;1z}6s#43hOZrd{Gy}ND1%uMC;}?oxsOhK;px87vPS8$0PGo{7X+)<%76PtFUYBuzxclv&-No0|%(gZ;FaJKLWK4K0+?BBF>}y=wJ0 zO-%~dqZ^?_{h(Ma8!3;a!1uw_ zeG+=H)h5W3q)FE1!90mJYA%UUcvS&RsF!!6D5}%D7Tx3Z)LtwCXpT-64lA|Zooy}D zE*1O94eLJYK4%S>W6UDWF_TZ%Aq0JTpdBB^TEoZAQ6z{JzH$=Ty3bpZU?NJVfX3or z3`qeS^&n>sw4z1!^J?^?h|uZ-)oVWzMMKoSMl22}#b_m=Hpij!+ni)+Xw4_{V3Y|C zQ!pe#$6!K*xOt;zo$Q&OCv6!{iX`t9fDmY<*C0$j>5(gQmx`P;(I3z1dk9g%&?K2O zwMI#FS1*}CyR*9iv|Fai3Cr9VZ5{Tk@~WeF{1)p0Hxo_}>8xDUdiseAq>XrpLTTVA zqy;~;_(q%0qqIv`G!1+p?sQy`QPRzL2)}I*?Zs+fV1+$T1S%x>9*C`FF9@u!dITY>IXh5rU2q9rWIDCDKFND_=k&{sdzQ@nnb-D2HMPncC*_1O+Q_K7lV_Q zFK(`?X3jhYHGu?I7c>h3(O4QU6KiTM6h_*TYp}qHChh=D1%F6C~Y z;h!dh-3Wx}&?_c>p_O#yHm^Yy<^f_y2NosJA`oJBH+O;-whiZ#URBpj^{8MLSn|RQ zn^{X=D1U9UOS3f#d|h?*c>ipdbN(1 zzOqpvTwK_uoZ&Z{zl^d(B6r!RpFoQH+c#KN`dKkJ z#Aa+**Dh9Y-5=$;AsAkWi?H94My@HVc~N@%h`rnI^=2p4;2TZ}_fKX2+#ZKKz5C?Z z$M^4@UcS)smR=Q?gR4e3HKdum$fpgv8M9(t0i~vu8N)xj9AsC;R&4Gt>}P3$b3;rB zkI13+iOWuw9omNCh%d=EvLhpnBSkJMbOW!3bO7nOu?B<%aUu-;2q~WSUbB^L3-Mrz zyoe`A6>JCzvjQ{D88kaPuP7pR0i~jD2mOwfjNMgVd_ zaBLA1;4@bCwIqiF3kx0-D=!6^iepu1?i{01;m>`YFf)C^`2dpO#Qfw)=W!vNX?7OR zMPY^Djq^P==!7a%8Cyp~*+fw6&aYpHx)4hs0F?Sg(dZUk3JyLN94@p9ga*)P ztQ%~DBArg%p4mT0oS1KKFPhnJ&QCu$+HvlRs z7DXDwPMBF9N|b)Eg_CMLnv7UV03psi>C3eq*o z>{~XhK}vv8w5y9a!_O$8HF0RM7PKW84QjQ`++7e`s!_FCaTTRYj=0Hci}isg=oIm)GURRs_}_^gx(|p z1BP*N{0{&+gu5vb_)-E$jSx2r1Muxl8;w3Y^OOjJOw|^{zGmvkVkRpFA8lv@42q7- zb4dz-qd}w_nLf1B;i`@~IDW^EqSvh;K{)%O4(Pf((Ehb=T=4qV50Efy-^wVcN{F5_ z>c*<5E8>K>dP%|{B76ll6qjj7zYD!(L#gGqL){0=9Z7h7_@S)H+pR`}!aZe_C|120 z?at=?=@<~I8I|lq_>=_{x)vcC93&)>#?oLJb`5N_NCj=sW5arGgM{Ai7>{ax(ej-? z7x3X24{~WX?jQWG)=(Q>e=I-p=!^gGKl%6k<-hkovo~2cDOHPUBM(von)ZZ00gOWG zV*QQH%KO%(yARs|LVqoQM;ngt3d(DhL^)-Kt+^|=8*-2vk}?J0tbYGg(i!;-Q=d|J z=iSHOy}dmj&nJu1A*DwtXO?kQoHra2k*L%;VnJ;PLQFh89KK?wXb~G>21`LsND~hO z!k+eaKo})6!;GNt!iJ3ypze{+yag4qz;n@h0V5sB+M5N}RIuKg%?4{yIUp@V*_(LO zi^^ewpJ4@!)F_>c*G5>Tp*0*=N!K2Lc0yt+2dYXQppojGU?PB|IW*7#Ob(W4Sg8e; zL$BgQ6bh7@fs(Ki5G9SK&n|{mBopAV9gvJe7b1=K1uEAhaUfx;C{E84_~Zg>NXbth zi_X9ft6(ysz`dtl*rM68)k6Q6n&1!@k1*ryEX^w271Z+hwui7 zS52V$)o&C7r&~hg9Tjlndv6E^OQ<8}Q?@QYomQyR{T~BIxFabdo3{q;e8d2H!z5S% zvF{C(m1(Q9np;{l<+xyZWdE``X95*H2Q& z0^U@txJ@eX$zZCwd8i(0#nL{WuiF$nknZ;o;IOkfmu!g=P26B|0sIDB{-lV8_Lb2A zgju7o`fPw+s~bG4F_oJ@JHzI35UduMEpy%~qLcvk989rQYY^MoIjS7g$OdZ@a#C$j zHvk3{;ysWE#~)fj2^jv3TEH?mj`DeP5S_djafkd#-8pOizjWsW2$U|Q=B;v37<#!eTqEGNf?-M#>Tya;h9sG8!l}XoEf4{UoAw~N(Q<>J z%T|FKe5}+?`QS2EbPD{?Cn0i`P{C$p6>ahN;$7mTd}rNFMlOd6;Xnw==28xZ0yhv2 zI=}=Y=3oM2C88dQ0`jH`*DxfQ&}j^DQ!2hzjX-pPiIg4P*@EP-=Dx|KLFtiMoiidK zt-fFF_6-e_X!Z56FMFF`#{AOCcg|@Ne@luY05SLFQm*JGIyqSUM`H+8?xh9sH;R^| zsTmy07LnzXXJvm367+*>y!p1u0+rz!j_&FY80(dodaAQ(Vwy!ZZ9GDUlGI_hQ%%t{ zs#O;c710711HmgF!T7j(Q`bfh10s4JO^!ufQVU@yV`5YZ)y1&_HCDJPFAw)*AzEy( zCS92(121}DXxxi71hbHh5jt2ChXr(od{>Oj0q1B&zrA#tP7_xHOwDSN79~~-O`8UR zIZw1;7JS*EM3jK4*tk)&qs(0@5#h03l2B_C0QrGqI+hLNGg8ffhZ)L)SxgSb(Ud({OMAvhiZ1n{&2N+H;25uXqrW2-<# zB5cwfA@ZSV=dgZoSI9z<(9B$BZ`bYIAg7!?pscbs*^=lafg0^%qVCG~jm^VK0D2a% zbL)fAlHlFmIJp$q(bvu9CsC4Y*-U$*=o{}=!GfBS#)yZ*Mn?Q@T>?x&mE=QXru z5-o#1rlIEy&Xe)MHWHCl(Pp&5;wjgJDmwO?$EJ52%R*mTE8c2{>UTJAo+nCxC1%7JRM}8vBlp>Z$fJ4uYY;ReEFvcLK_cj!rqa9W1v4+d@HigK!O|* zHeY6x#}ZEP0?D2Bo+2K4#5&8K{k=|@K-1TO()r+79=pepaY9i{k6aw*h2akRX)qy{ zZb;9)LVh=}9XKn!ag(FUa%4q3S{H=IV)xYBB3__8UdfMw3AjOArEJg%o5Ln2Fo_{J zMLPo=6}n2gheVVFC2ywF%@32=QI$5#h8Ur9!xyh8gA^lZwXcNSDT-*4|ce1*sHzYGMVY5Wkg5 zQ$fd02j@E#{Xl_fBd?(H&w%Q@m-%)pQN8SFpES^s$zv61WmWIgQ$b>cKM`9Q1cPmc z6d}X`tg6-Ix>j+Zcw-gC*-g!j&<-fF+Z^RleECb)pZ(^W>+}8T3!gmw+>2e!HC9&d z%CbZ~dUyjCqg%z!8iJf|ru(bekEY&2fS9-DxDHaREFP}{m&DF$;EpJLagZR)hyWT$ zK=08!txlpGiS8*og0x9-kVi|^h&0)@36k1DMWm*1uTq1oTeZSM)H^CE8ck$!fh-cti%2_G711b?0~j9Z6=R}Az6hd{Dm?qO zHnXzTX^J6ezD?f9g?cWfwDSkIZP}))ecUJ6XXL=54B9rc3U#W^M7)T@7rQ?wN{a

    BZe)CJ0z+*O7*yQq-AB6OHu@t6*yDA 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⁣2gzAlabR4>J1Lm}#B+*!r#FaE)`P1v<4CZ%=<3$6N9Vd( ztgxtC2oG}H$HxM{^novyUtIpQpL@OjKXm! zUeEGuVHKq-zXxk6h;QeX&YA?XhpduJirN~P$Y~ujd%M;mm?|bQbG&(o5mGiU1bB!H zx&lB(>_Q=jotWUWPj?@^Snpn(Z*F4V2W8o;)1BoYF$sM`&bbT>Eo(A@WT<|$ER*~G zT$hHJJl19@hk#9c+ZOFC4qJg!YI%gg*S&7TepM3homcvVR0sC&1NTS%JI?<_3 z=7wR>0c9XsH*`)j+U-PkST|?^%-1*q}icwG|e7xkkLft-j zas8G2@;B4t#q@H%0eazA){ad?8zkJ02c|;nN1Cz)+lY*;6cYqlVs%em2(QuVVQ}NL ziS-bQbCv+gY16PaXmz3e2M3k(3pc;eML(c{Ku_BiR(d+-zTH6QQCxp9wBwXOcd8Dj$+bW4l%4``MF=)+Rj_6W{s@UvYAeysWhfF zrz8st%>>1^G>xLW5RzNle&ttpQf_WO_ttCs4|naOpLqA}Kl|(Rum9jTe&UNiSzC)K zrW|T%-lUz4E>`gjg|y~ z#ZoQ=yPZ>)P> zo(aQw2gukzK9^%3BpEg9*Rk<6CZLV4F&uT?3k%E{s#pw#Hnt_GK^^Cf$*JQ}DQ$Ch9j93)>D_a2oo=u}`ELuXi4e$Z5$e6U zf&!tFDIwBCoB+S@Nz?*w*eS*bGVt6!+^Zt5YX1%&*;x+MhbF}ufU8333Fw>z#$LT7^&K^!)iCW)(;LD}fTgvMZ}$<+mYvePCQW%89{32ZLj0tTy6 zl?g&BfQq>=W?#=&L&ipXh8!;R=o>dr_{+*ddp~pL~a0LUEVsy zY4Bc~HiZY&CY@A+3w?xHC&*%8yjR{(zN0C$5o8!4^N8jxn2uJnkid}vtIMeCcr+92 zSKn1H+RK&^*X>)-DR@{<)98@@8(>AKe8j5olTI>}E0yWQv8^L8BqkLeB8{RX z8lzxiT$xp_-*3gYy8I=u3fH1xgDQQrbr2RO6Hj%6S{XnMZYeOh;+O%URu zD+V4xNg)7QS@jZU?qruMumUugI~$zaR9fJx*Q`jg-NbWLr%6*DVP`lT?Ea|!kwk$U zWK*w(+XNL{t-eK>V=f!8c>oeMxezczyG6Re#iatk%2hQnBdP1?zW8)St3 z9;wmT_~-PIPq6?!41~fc9pK0b-?RLp3`+z902hK?6&W0l~UhBmxiu3C>(>>ILR#xF{cDFsIHZ z1NfohmG`ag<|RvTIEf>((wwsqs5OGhlVoQ@(J8VSU_Lpt$EiWm8+5nEMY@bgXLZQ< zwm4tSg~tQps{sh>Caw8qvQ{CDb8*quvcO_60d@&j37(L&b3g4ODjV5B!%L9Vg4Aj` z2U(gW!IhSisX+HC)f>28il@LwkCGz;I0{5UV8H|Sk_(oT9d;5jo-b~OU6!Ik;idDW z+cjRQ{n6WxTyT_jkibg&o?{3H*$5>; zV&?F&{ra!Ryu9`Y-Yrkl-8=Qo-}mm9{?L2B_HsL4DVI>n%2>&8lvSg^Jc`ETO^_go z+0sOy`BexZLXy-8OEcY&GBiLa4kQfPd&M?EtmC<(u%mV`5E3mg>*yeOr}fw|q8$xZ zp#f?rqzb=#NkkBEj+m*m*#;x2i=3eo!U^XJpCO!yGaw7+;soI&o$t7q%}9aq^B{hr z4wtZI0zwE?FAWnR5QW07f>Kx@BOR(F4#pLTB(;>`Iqr$G7gi0wAfYcN!GK~9I+hq% zcbocRuYv%x0Y)$UJMo9D1nx-!M~~WtVR+<-M(=V^XfK}As~H+MnqeB=_vBFNE{s3} zIgFZCqR4=)I1_bqExlSojkKl;>JB7;=ivcq#Ws_1ymmt?CXoLOS0oaRg`JY9J+plx zk%5FY5Kc4up-L+_Yv);tXVIC-Apz@S4~qE=uG-jwUpWN}Pz7MKXX-;TA<@7yMIN*; znRnb8ghNZLXE=Bla0rFu*~;gnxu}j+JIx{#xlQ*8i5WO+;13p z4)G3chZKNv;gHbKquv0#22pW30;UCxPgsb_fq>$)V@+L{Iyn%V-T>)dkw)!PG1>$@ ztYJ#!#4h|%27o>dX}ya1qR>%R%p$BI+gRf`6xBe#rpJ?C-!6|ox@{`Y-+8hgvNXeB zD=(_z5Pc9U2E>PW771BGbpYyE0%U}8X*N)1m?KJbZ;;JUCz+O!2tmxA3TTaFtFD>*#3!&Zg-L zs6a5(Kek)EQZKHYpH0Lki4o0F)rWcjryUy`bkqy-=2o3@fb~BS;ny$M^WC~U!mgMH zSPtrnm1qi0(zEjiIbks*y#S(=9p@ZKYK$~iSf(_R3SOrPeJlrYYgR6xDkv5~l} z=5h)-wp#bWgtduw2q({bUsdC+98J^gyMr&cV%N;tD!4y;UGSMG7UV35#Z~Y$;_igD zBJ3n3ywRrRh*R|F5)s-S#VQbyifPmH z+%oF`)PNgcTi^J?_U(UH_{E#^CLw?4^u=HOcs|bv5qh>=)cdT}d?q=3YlhZo%8VwE z3p(lUAW~S}gCiLn<73?XRO(#}KKyFZg=6O)ax9LI%k*Yi7n8-}eUHh%ngLAUnt`^p zKzsxN0J)(5d)&k-bQBDN4IhJwEe`W}mb$_XmH^N_o)iI*TtEi6idrvX*p-aRAu$n* zrc$zMb0s945Y&-_)71`+eZso~egEKkka(1OC+D&5N0bU=N5gQ40-*!K#2+9Q)Vqh$ zq5vHlVWeJeN#^Q?0nLn}D%HD$Zk%Hi{bwd3i8m0KyBZ{jQ*jXy9}yL(u)y9R18=z0 zfoO1^3l*kdd9f!+` zcR?g2vq*oEz|dh}AMrU|ysESeQOT{_NR}idkqxm56h4Ut*+m!AoSC$0!T~8;!WLBt zvG6@C(~bQ?Z6`IO8RjNZy@`92kjS5rH61-)O|`W1^K-h+7Q616o%Q-ypG#~AB(3^H<^+Z*sfDeM26{WU(2r5{s?W2Yno2i`* z6}p#&#Bh_1nurURqtw-0uCPe7+Knye3<%P7+MU|LIw^$rvwBEWluPLbSIma#=+9?C zfU&L?q%To*MmQ4!dvq58y$Ck2?8f>{k$|EA2n}^NgqgJWhH2`Bm>F4zhi;-U+SDtL z1Uz7j=0yS>HfO$<$Vh`3VkZoVAu{x;ha3d~@K=S>gEI3n6F`hAh>OiKo+OkcaY zLooQ>ArcliV0?ZF!`UjZBA(Fp&Tw{@x4rw=9j-lfh}2S?-xL5PpamQTqBK}1Neit* zdX`)4Z#?eN7HaD38gm%04nZ<5>Vmwn>of1jV+sQ!6D6d#2lSBV}L_q;g3+8Tc{&%RMUWLF)l+D5C|OK@pw3K2?Oxwfgnl z`sl^6qgH z(}b=Wz>90`*K{9+hf5c#B7MIG3Bd~hhmKX$3g1r0i2||i&?Q$o7Y?#l0(!=#GwCL714ofba-Yqj`DBech{vihmYfetl41Ce4mAr3s@Q-odJH@Mx1&RU_Hk;T%qj0k z4`cqUWCcVhQRqLVKdA?G9sgWEmn`AvBV6h_%FFXRqt*Lf*?-0Fo9JVC`6YS(m+}PV`R0NR zd2NGuRK?KEP|=ZE$J3)DQ05uPTwXc;XLWOOU^zvJWUx$CqipQ7&;spqQN2f^B}gRH z2U&XXx*<~Ktqzc}$3@y=6!)TAv*w{#EKREGMjm)`F_+V7bMh$(YLrBch*4m$EHTTudIkOE4R&@f_;|9zqj<=&o}ioLYrUD}xY;7s0v;Ox zKS030cF^!-XMzuJkIT!u{Wi(fE<`FZD)m&`BzP1utF+>5NbT;JzH>YO%xC;__2VzU z_T+GvKVCohTzY+x1tKN1kVAIawuYknUEH>|EG*Q%g5oydP@eQ?d*>-@_6os~gp*l(iiK$QoknVaw9Rj~0=qTTo zAsfd7GgX9I_|!Nag!-IeISI!S&Ixc{N6|Ro6G`_Lr{bPb9FSg77&L@r?OED{KLY{O zw>*P^V%G#oE)Bj$>?@U|1~?yyW{D9!qCS*k>&O{Zm<>-odiui+k@s|3U*k@DciO!*R(4!;=I zYlWBsWEFG8WQ4zR;i%GA&lY+RJ&IR4Tx{}uZ|hYs8b40eCyXGy_> zHxlmgI8YZ?Lm`=-P8?Se?9R?~m!ce+V8b&Qc9=z^jl@Rl6}ez=E~>f7h!jD=;g?Vh zQM!-M)Tc@&q6Rs+iew2e*PEl*7TVlQu)SM@-mdFTk@RwJ`!F zP-YU&6U>H@X^7-<1igQT-=&&}~0wCorgc z3S^|AMPdd_GF|Id(E{@7>!e1ke>86mYar50(V|Fkad*;U_A*yNd=eNadASjV`#A%v ztIHNeNJZAoICrk=FzJcjNkPHlk)g?ruS!3`<=IVn_9(0%qjawD6%r3#Av8T8#hXfv z$kk0yqvX)tLSmymYws&h0t_okUm?6`24y=_cDoaGjn$@83Fl%P0|B+6@f{$d@F{JN zcWoDapM@H_1Z+V(^y0(|jg}pkbJvT@%9{u%@s;Zr-?lHgRH+*|KD)X!PK1I|*JA@X z|8=MKRI7R1AVxUE>rzb)FKpUcJJGD6MS<7Umae{p&9?}@2R6?qs|uTO+U)67$N}3O zOprCKt9f%qkY(G;1S!qqqj{c#-?#g_^IoTXNC3p85~7|r?C35Y7+b%u;AzW{;s?E{@|2UV#}% zu-di2q^RiTK`^YL^YPbS$&-CIfxre%a6z-d^#1@dDGAjei!j1~GSeAN719dJ~KG>P}H%==_@`OGhsq1*VG>AVCvqav0*R zAaxLwpp#(25r+di0Py}W!d`CUrD|i(>hN}Z7tv~j00Bp4L1^e)C06@Thp|Zs4f5gs zFy*iT!yOGaBMvv7`#|t3v;u9!5*J{{ZAu;#CK{1f9IrQCL& zXl-n25XTU%7ysseZ z8pdbbN{1yf6s$1^A!ZKtqZ<8}wBfII;ctKU@BI7z@c-oQ=l{;#EM>)v+NfE76d5FS4C^)1sM9=!7{RE2 zX)T55fE%hphC<_exWO7Cy8bJBfQ(p`Z4n|gqt!mSBd`%qF8;$HsFQav&LXa0&tL;n$;br{7NTU5`PON%5p<^ zZ6UMYQMTEY(~ZU87*ccK44ij-qKw#md4X1(ucQRTAYqTy;0>wJNot-N z+D^(IVHV$rXgYbDvFs$@Ba`6MC&$FWa)xk>hs8IMdLz60a=**l=Ovn*PXX6{Ui1qu z7G3Q-yB(fDSI0qQ?W8XzeQ-MQsQojVj*ooN9LE^F{CzP1s*k-FaoKD1&W`(rkIM9u z)60`yKaYo45ZUx*BL{1!gGB@b1{wsta(3$)1L}h(;s%VHyxplm6nlc|%08?U;_AB5 zlel@C)%Y;NHwzPyS0)o<>y06WkSI=OAi%1ZAgS-Oc?h!Q37FA0T)9@ zyQn}4l-uUw!f3u+CVT^2VaAJikM2<~@B3Y))1;6w#t0f4Ea{L$)1&zmcs&~((BN@U zKv(V&8C+srV29#XQJYPhsR6a7b4ll_wZ&?d!YPNAW7G+XEd>Of9e~#Ioz} z?KT@2yc_l+RM9`uU7;=D@+5&1!bKbvq8TdUDo}PgGzk)4MH+T0CP0!TkfZsP;2P&5 zD-id1w6uL`1*kXClbnkrc^Y~TJc|I)YK{42lm z-W%bg&&wNcrq_P+`0cMf`E1KR$D|9KL`L=qt6K^hOqg_Ra}fxs!K3VV8YUbQAV{L~ zDrGfKn3=IXn{2a|(8D_hgiTbtLL8~M2;+~_835Li-sclhH^k-Z3^Tw;JMe=26|kSM z6S;rk^;)ht6LUr`GEq9*@8JiZo9rem_t+eHhSR~XD@WyoxIjS9G5dClbO3v=VQD}! z>=d2ONNJNB)yEMwPJ$SF-P}zGY@=RyrY4Gj)jH%f17clu4`GM`9}ua~Ar`fRQ(-j# zpngG)0Fz)3bs%{WmKnP9I5<-O) zc=&Gbg8s2N*eI$)d<%>_~f5CaLezAmXG01x#o*ia~AA#QrM4$_?v; zl@oWL<@^I#zF^l=K~c|HU>6jP1~_`ov_)VTY!PrBZ1jWvp~i6{#kIA8ijnT~DiJWI zi+DFzEOcU7r3MK$ORla>^6I<$dVSus+3g#Ls3C6VjmR7!b`_u?z|6@vA`P$5=K8>ZU2fK+%RUTm zgnp!hQSjhe;FBFvKl|mc{rWHbHgGC##4!9P;CI`0$gL&u;JJ zv0R1eSV|O`bMO&RtOIke3f*|wMBWM$nyIK2TfqJrfpGJoF}(G3?wvlu7r-RjBZiVOYBUN#$;VM6Q{8=f@3M4zr0p?$I* ze`|MhH>W+T{YyrC?&0Y5TD(AnIF<^%gRU|Qjx1bbCuqRVgKbXINxkwgZ8E#`j&{i4 zgsIAV=i%>*NL7Rs(om|x72!pT3cYu|HL$xOjBP$c;%r@? zzIUG$v#bRW%n?noy%jCuH;5Hno)9!p5t&t0v(K9-ym75DlQ_obLv#6rx8+y-%awZtV>q}BzU zM<|V%;seww$c&1UX@qXyRWRaL+l<_c0EmlA^2`x^&h)1!;Q-qp95Ym+BtC4(qqKlv zVo^4ia|IFgvILpbo6>A}EP>mILU>$Tfz!F6rl6u?-^Q*|vVX+wTzFA?7 zr(Qgc9kB{@&zviQjK}ugV37~gxMD@c#+{R34e0T-fRe=(6Qorhz-R5K84}4URp()g zLE<3mjFdMvn!1@bXmMe9RJWRz7Vj4~lV%9&A(Y2+o#GbNRV*nS-X%P{2;LLdskpl! z=#byTY%5WMyZTr<&;!M{p@Rxo?O58^!@VD z(F(+E^XTg0VUiXcXJ9j?hbzDW4y$`a%ib0@MYy7uca>PNCFzhLm3lzSoc0i@zR~L- z4IcX>VvG@)lL$KUJ7R~Nx*<^!Oe@)J6bSr5uRY%05h(!O!@HyKnl3>k!=A}HW54q} z$$Caq@JL9Yh^%lUU`DYRM?U46cwgEzAOl|D37Gkgh2u1IY8M%~G!Y~12c1hK_()1u zx_vKW2QhF9pJEjF)NXLMjF6sUj9VK&13C`{59)afLK`E{!@U@tK(K-Ub+dlytev<@b5hw3;+IvH3}sCQx0 zapBBPu>g_LN0f~deK!kVAy;TcnE(br`0vOF_X~VH&424b{z z+DBj;YIp04nmS_jP(7EX&CdILyh=^sqNam_fhd|_ogc95G%gm4t94lHr$2PM!-7b2 z4hgp?;-kQp(8>aqAR$nfB8TCe!fAMGjmOrTXvwgDQMvVB7(h0Ri2EUCsOt}HLjIJL_ zLv&OIZ6LjzLa<8~&{n)u2WNV8u^yzdQmu+#AJTq`_iJ76HmcEbF59GuVNP#`5TH(B z$m?6VBtMku)-bC;x=G)fubXs8ZIh;`(PI@fScY1!TzhG((5(WI!B-o5(osshX{AYE z;u((${&@Uk(&?wp*EM(=S#tc0HXePUN`b=-j#{Kre)H|mpPt5>lc6yQewK10b91?; z21Uaruf72#LwJ@<0M~U7^pq4NNH8=!aJlAA^3KeziwOuIX2|0D-6mB18>{dn2A?VK zph8t^FUt9aYkBn4<{O_MSAAS?O!aw+*}VV<^@h6uyTYVy6}JkDt`Q~s3qw51c2#S% z&~!ekURm9lgcz!%vyQ~W%bGA+t_P(THf4ktmMY5Clera~EG9KEl(WRWL*R`@Cd1T? z)7f@dcRrsrDO&P;E7Ev7T4mvc8vDGP+e2!V0bEo-yW*-`-K+xEv0;rKF{B=_vN(EN zdj6!!0GKJ^wGn94=A(-cO{8AP&KFzfsxlEun69d8>V8-^ND`f7b*zHS`&a}7x`S^h zOwFAHJrDNNpCLbES6z8>peo$l-Jk{!G6_Da(+f|Jf)>kCU zDR{#AQ5zK$emerc9*vI|C_+gnHU>tt|q`zx=%$}TNf25EU9}gQmUSd zZcWT=iglN5pW7U{#zV|S6?j6L#Oi);z7MI196i6*>LY*JY^QY#0kh<4QGuk*L|zkO z;t6ITufpj7uM!K|&W))yN8i3}^=<6J8+b3SdKEMvR0Cv9PW@an)3T1m%nZ%%*7L95 z)z3b;nLq_XTy1zUNiD=r@1X`gxC8AumI+zteJMCMdBnkaxD0E_SxM+j$D+k$NsM#AG&(NMCk9Of) zcZ$N$xD&XzBlN=C-GWST1=+I?tv?*-m0Wm_kZ1CMt6=xP<)$FbGjM(DHbRe|} zaqn#r;>EBQ#2ItMiQj_$=?J9SrM&TulK8$AC|FkD+8^Ecw3EA4jM_#CD2`TAJZ4Mu!E+_sYESI}z0P^Cl%Ba#Owxs| z1Z;Ik8yQ(%bd1&1G5VFZO$a@sQxnRHxH2bUCxQ-hLhD0|e8+Hai?jupIL!RQ@Qgv% z#?j6aFdAvB*S#lwxNb{+srkmWV+{F=ub#x65}QkN63cXMjCHRzyE0mP zEIv@)aN0!5Op$Tcl+R*~Hs07!HqrecfPy7`ohgSKN-III?Pn)n2XX810un@mA)zW3{zyp`K2W! zB5!@{blPlg*s7P}Ix?84z4_Wq6uX-cazOEN+qSKi$$b}N%rEXj$j=ENyr-MI@UI$*Xqyodw{=&1b44tuqVT!NltJ^Or+ zy@{=is#X`1rT8yBeb2)F&Fy-p>`ljBUU6nm39cQ16SyJtBedq<+`n;r{k7Lv$~^>c z2LO@`^XiDWbw#7JNg~YO*fx%#*?od+?t(arniTpEGdi&WWUx_L=b`e-$q0ahzy9hL z?%b1-vb(A8)b_ui)nHiGuwAQM!%i~2zB2oC2=yL@G++>unB)WpQBQT&|R3 z_Kag0QTN*G6&f1wFWb-WI3E}LZ{1-!U=+;&7$Ps8OPC}aCENg{q%!)dr z-oqVvgBllwgVd%~Au7qeC|c&cgIMq-iV4V@=jJ#E z3xt@hn3!p9G>^*2FfcI(MmZ!=BrZ9K-S?AIN6u^RPztXD6Wk##-LvkUH@{=w21`Do zi1pRQ(d$-@b4R;XHg2VBB=M^?b`I<2f*1BSa+MmbjP@*3Tmy24yt>yHXD_y~OUmf$mIX-I#TYX za8goKpI>OrD8W3qzu{iIR*MY_S~=L2PSG_jG8d#GE=)iaY39q)%GRv<6vJ*xAKCJ# z?XE(CnTw}6++{PvUV<(5vf`s9-!6}L`@0{1{Nzu*^t*O^EnnZ2rL-0_I?yBgQRL1% zk4gmwjhbi1EI^HtE*2z21{0mr!_Sb=@ydD)Cq}7-%tum-g+nd%K<6jT(LDSt0Tot{8E&naVb@W=%9cc5Fq|^ zkj5bLdq5sUq3qrXQk|(LyD1_8C}AbX4c2dxA|7`k%4Dd?YjALe0s3gbnRE(<@fN!+2uL zy&{N|PEcC_AInMOWi^a-fll!hsoZScA`Ql+k&m55SyL-Ocf$3^hI4qBqRy}cED#$7 zTzw$s$7gIl^u_ja5Jf?dG)zXwdZcevML-`#(fY>V+8>QDnC@IJ{xHSJ$WmG_4TV>b z0yt9j-C9lM_GYS4H|3KzH!`hsGCkqaz;k;|&{4xaH`h^SaV*5I3e~_xN+CP39ZHru z0ad28FSRm)U7!9iduOmP0dALoHg6}DXO3CMO^3gt(~68k%#kZX#i?R?j351X|2seY zM}Oq_hyTG1A3gfg@9jh}5tU1f@OaY;Ake{&Uj8J!!|9$vW@oJMu^&ryb1u8x>+hww z2kiGc&tWs)j;(E8gWF!kY`I@*ZKbViU7KAkrKrb<5S5@fR^Xl$Z8TO8NTx|?=un~1 zF%Imn9z^xXNk{Jt!pJ3XU<5hg+=xIyULXxCkqA3*O4goF@-oOrae2EuvH%xJp_3h5 zDkM0#2P&Ognc@&D|6H<`pmXc~Hzg-;s?LBdyr6BE0Wpt`$+7UQ(SVA*hlVB58=gR0=MLyX2I5tN+BX2kbY^r%>+)@!U@%NjDAm=N`CcFDS zM*SAT`Z%}Rwb>f zfxaT=TG*vdbI15ZZuBsKQD#{bV{?cwr_J!*a#*hAN*9q=g7pEg*kx!Ql=#CS06X7J zLGL=rW;vHq^9s}~VaB#VS0px#l|CUgAk%Fr2L)5Mjaj}SK?_=Eha$x8WpqK{ zxoszHMaQv9=UYS)4tnH(ZS%sIK5r}1{nr2!G>dlscSJAojggdD6&OS~LR>5qfzwwM zE%myR00Sd}HA*4-I2xi|QU+O;Uw9qy%2)}7K{Jzvw7M4C->q`L+;8U1f}*CdK0f$9 z*&Hc4#dWAk0U{dRttr2fKG7rKgZ@=VG7FHxr__3V$Qb7hP#No_b;AikFiw=j>o_CG zDnXp0}-yO(rXzcxhF>qlf2BBWbgeiy2rs z-0te?k5rqOxzFrzn!oo~B{u!cJjWx!RF1~(oT&Xjzb~!XJcV|J;HeZI9lbKmN-f=Rfk{XTP((c;o8vZk~K=C?*xlOmpQdVmNJ8 zu5=%RoO~&knQYal%7|cL65G6zW`R?2o4ljf4zdqo4QG(8zapg`+@$*%#9?-<|0FPC z2a{l~XbE?dyU9(YmUcur$cYj}XOXSP<-<$*PIfp{Y-hx4B;x)z!}EjBGv*06p$gV( z1YkDk>@O=IaF9f zG74OIAb@<75ex{`H;9pz$E7)t5;k{fk_;H;fs7hejYcEqBZVMAHE?L^WdD&!@djw) z!&e$G2?*E=(6Cw0?{^>zKr_QLHa=}^6v~ORj=pM1UHXOGjk>k~CjJO;t3&b#cC)fATiytqW)FPUFH~VG+Kw?K-0^J!80!%kb zt_heZ_Iqj*`lmV?C6WwZU>6TfgvKBgb%H9FkgY@K3He~l>`Bd2q_v*@&Kf6M3Z!n-B68@9)QY}9=cYm~KKN((LRid!?&MA?m0aE`{1O)e@vRVrE&yfziNob^74oE7u${b} zta`hjt(v!EL&Kzr(CWC_a`JW7d@X5PEkM#NsR|03x-xo+jKJV`5qBGC)!MCh4~RzB z9vowuz~IA{Yv>ENIh59{Z?0_a5@@ZhPGA^Lg2t8Wmmh!UC)yi7eg9e0wz@`8dMFeK zDpUa-hNE+;5^|q{7}aqmotrFZNmFFn^om5?(K^z{X)}mI;7%|)$%m3CaLP>^bb)4s zz;R`sAkH^BiC1`1S>0DkBbfB0AjN0j4PoFNVt@=ip;>o!gy1Q9Oom5w(rOW{gyf~& zr4+;$J)Nf(+^!%AbCq%o<>1)a?vq>_?sF}-QA7hA$54X#F}j)vrsvZk?1Euu(9-qS ziLQ<0Cg3D;TTGn`kPf7}H)*R1k_KGN$;9jMvpHHsKa-#_0VS@!mx)N#1Re94W7cCu^cAy(rp>#7L~1+*K+?+!ldia_bJ{ zE3F)L8b$AF38Fg{^W`W(JPXm?DviklvAT+A^ZPSa(tMWzR*Z{F^SZex{GgydoGNmJ z3s+FIMk7xHwApOrT4ePPs|_wx$~Px zi+Qw56G|L*hI<#ILviftzEI{y_2RUa1TsN46b{qCMH)1_r-_KshA9^pSE2*5+R zuajCnepz>$$t>|w*s{+bg(GV)-`$oTsR)oy%o^4#`H>%{wp(;PLm<0qy4WWTxKTam zc55-HEBq{844XOpKHH=^#W|VYt*yF?3tNbew4KO4Z3&1XZdb^!+m$tUbql?iZWL(& z)vRO)@Vv;ms@3p?{oNrQ-+TGtNBh@rrYsORd?FF*%BqJMp2QWtL9+Vr?A%-;WiP*m2V`* z@w^B+B7hH*q0!SO+YvInLNUW?Cx-TsY$!nf=K)z?qY1n!U@9-wvM zs}Uw} z@!>{;J$Pgvk(tz>>EWx4ZHFpSCRa@JS|JfPJKgWJRjl`ZTw85^Pr8BaY|3l4A{l8to;B zV<7j|3=!m8ORFcK?zB##o97K5rcb_9-+rg+GbXe`8Kvh;oW-Ho6a{!mr?6i5P`X}G z+^s^zgGx!*@fxM}!WvLMv$+gf+g(JdEcnRyb6_7>#megSmOXG7Hus$e;@?b02sUE~ z0mpLRC+R4hhbn>&kQ=si5@a9*kMgE$`K6YYd!dYM*fp3+5jm>Pz|OD)IVrLsn}z0u z15rFK5y6h7Iy~({R7ty*f|p5skzErp^3IKn$Yz2g!l`2}hH8UVv3l5;rr_FTQSYqOA|oiqakO|YkJMFn>&K0NO}e-MFOWLz(6%r24c_Iove3pKF4;NB5IHQ=Bw5yvLm897l|58V?M z0wj~UoW7hXiqXI_MRIm~;4cTQRjC8wX_+lG@UI$y9a;lV;sOKcgygJaJ5=^f=y4=z z24-NuOvRuAz8jkKD9k`Hb&1d#&!vgH4ag&yV-!Y_pd<)|0zLHLuUe-xVU8-o+7NVV zo=@cSIc?I+R6K>#<4GYl#nVoA=DE>Is4M;Ar zA$jzQTGEH*blkTmVLGk_3cXS_FSiX9bCBD$efz!rmma-*BYpV0-+J@U+u$V@KM_Ac14*~L{|sgHrF6@1xZjbF=sA2qMV|8#9#fw8aoEHev3%5LD|W~!U;8WCNb_~0CI z&5N756k*?VB7%+jP`;C7IL)4`6ad;$2Z^3h@Ls*tlyw62N zcHq6yAw44m+^?AE+8nAWRCw`=f3`aXXz!wA6!FPLbZ`PHBK2m=I4bT7_6>>-2Tz7- zm}ucF5n^2(36%IPbA~#*5rB2(tK?lpu+Xc5)T6`*f8=hETOm#tj5T)@zSB>P2uZxl z%6EyqRXtJr@m~2MR?67Nu8!EG7;g$huJK7k4BKG*EU6RHr*Z+}N)-sX|BF;(z=!v3 zinMcCWo4r!0xC*nXT`2!j#7jVrn0id24AxRv}uP`K*`(^k6n0Q86-l3QnM|HQPRQF zEbBd-`tBBxhe&C)>*yPAtqM0lk*+0G+O$O+MUoEg;H0uTpLM|Sun=dnYQoC68W5{{fN z&Pi?Nf{u$zf~*|}+YIJ725$m=!1q_(eW;AeR$8nXa7tF;FZ|AJu6QcIj?nPH*_sSW zZn`>)EVt?s@{R>+I)cum$BJtJytfI5dB4$IL^rp@bz3P4HfM-KqIgpgap6^VGtwl% zaXR|>zP+rCI;~eKtWm|uyr6KH?4YSV`pEs<7M$dhm|ok@nf^9w$bt77XoXh1^AS0W zrifKQkRliZ@e3R)U;q{&GKLVRuoA%~6wWpYPM%JFC_vQb@KzzG2FFX-S3iFHbNYCt z&JDp9VD8yvGheC3H5aOwRAUsK3lLC_^C@akZ-xavnP{OnGFds(qx7tsroy~Ka%4fy zo58UU(FNz&Q2eyjIwL_%j4y|Uqmf}7PDbZEg;=BLt7L-C7x_TN5L0rk0PmaB{Vc6T z&9=8Sp=>o^2^O$ixfGWbaPirz3MNmR-$OjOn8>Em;No5ecYWZ1KFXs0pLPSZBKz7FkAF1(y=YT5GGS%G`z-3YZz4>Ari!=a4m|rl3B9Z_wWA*)IcRwep zoI}EnxPgxhzgJ=9J*hE_7DVM3DxIM(hQ9E0BSA(eG4MxWgSe_HDv%rRr8MXZj8lv2 zJuFZc!O&EtXBP!JBYPxr09g1AJ-qHfx0uJ|SBE^rBm_3)pgcE0vVIo}{Ya(1u<&Zy z5FXG?IFX>^mekedqF9I3#F6hyIJa0Wn6;?o(Tpkjpj8E*XXzaPL`wA}&&0 z#C@wWiObrgIQCJpB($xC_QKqeTw0JSQWAZG2C-gd)w8(4f~zVsw7iH*zywLE&Q|GB zDTP+-M5Q4aHFTM>>piC*G(4SQ7BSM zLq>fhZHJu@!CyO;RjtR~cg|2Ajw~^-kVkAfef^~>d7{KTR zcFGuT7k45b!&~3uN`50lbP<6>4+@6nc`X|!0a{_o#oKrQ5DF?4Vr>s(MeB7Z;=q}B zqaw~pC<^Rc12n^_Zel}KV$eHB4T=ZGL10aMm)9DvwJS2f-R*jDI3 z^}yKjR8P%1SC2*RY(4D^(Qy(>K=R0_<#Lo1S(~hOTw+K)i&`#RJ?tj*^u9VC!!Jfx z=M0TJ(kOn@CTAn|Woz z!VQ4oFF&iiEVxRT6+TLgwJua)lgLJJRD3{kttfk8)V@z5cn5vK0sWnFteihTG(7w1 z&xI+P6OAwE4+Qo@x1BkBEZkF53$3B9R+r6pxlUACM^vQaXyfiQ`|U4a!65FtwQX%8Xj23Mx0!&n}D6dYk_ zSpulDYub>aqoO$sWKz<&Z}G`iw@|k@J(DGA75F09Gn?s78@pKU1ELH4CK{}5-o$yI zOCtXL8QUT&1BvTK<3t38y%E!wuwCQ&*x5mX^<30l^WeT~?NQw#Y|Bx}!P}@1_}OcM zN4a_dju%X4RK+QKHVH@O(M64`=p+9ut^DKoiC9YH1Z{*fu-gR*<( z`{*VO7r?9zo&VM3;DX*ekyy#{CG0QQMT){$_-P^>rt1L#|TvRTE3 zd?b_O)^qlO(B(K{uPu-waVFN+_^2om2;Bfk#_+VjgrdBmoA|;TIf{eA;$m88Lj$kL zSJMIeL4*QI+on>KWbX=}i!)}&zu@iXFb2ZUoCHElOS{I%DPik z+C@1=os(OGm>W&i6kZYQqv1Q?dgFQ%A!E@%6nawzEGG%2st?JcNCT+ihF3hX{%ZL7 zm6Ts{P#9E^v*^e&6!Y%)9j0@3jwrA(D^lAwQ_G>b%GoNyd5Yq^yNWKhnG}vf5zH#* zfNh3X!%hT}?oey>NlWlleXn}u1gwR=;Hit99nBjJp0%|*E1&r3^{{&*9;Epcv^6aE zZJ8iDfqPpmJH99B{dIb0d%id9--FetUb`l!^)Fw6g;v$vsU#?-ADeoGpQ;1uSHF@m( zC-E9(!jGBH_d>R;X)Sq(u940M65d;HsDr7dl9Irh#SnQn-b8Rjn6~Xxd1ZM zpy)%z4=CP!%w+lkLLcqKAdbS&2I27tBkfEPl}}g!P=Us z5(wpo!(WJ0MiiAd-Md1xc86k87*{M`fD9(bg9nu0CiCt@t3Ku%Q`4JGRF{w_$v6-Zy%VQiX4Po&-3} zJRNMCTunmlzOY!3;p(_KmQD5XPPc}ahTDdnV?T)SedG)vi&tR0CV#UBBS-TLj$R(A z4sc;nXk+_g@ChdebPD7xH7I99s#4UAP3lD20PYW~A&uG>oOB~wH^U21*qEg=pM+w1 zG?;rL55#JZ?ymOR;d{E-0%vE4>Kr8m8Xnp`s2O+^HM8HXOGHWoun`&n-GqLJgtmcZ z27Nlbsz(l<4I#;9Xi3s$%c-p(FG3bsy(OnPpnD6mD@#!$ix_>_tNSa6V8kk4FOD|&cQplx}nYtnM?D7F?oEm0OULCM&O+^RQtR0-#H21KKAgDxmRQt1*R%GO!vL`{p8QzkZF~hXC7ET@!m2y4nRrFo1uvc!bI3w%8LL%?x{t69)GxWZag?a& z`DfYyo)+LT5R=jTuIUfXhlAGV$m49(>LCiD0uRW!br|^az@#qV;DsyZ*;|FXL~7?3 zDK%UpP`C~tW9YnroA-ctsIWk3?j1*H4KfsN*N&bP64gxr!SUD}+W_zgx`MJr7&@=E zdVgdym|~PkBZ1>UP4U8v1O$vwu}Mv#yIMLGGQwCR&2pH@r3 zuafWLx(^QYEXyFH>5!W53`a#Vx^h8nRgv@ojEi>^j1;!^00DV%rj9?yhRH+V?63s9 zZ;u7_0*LHxl2bSRGbh_qVB6&f=-99oo!?Jm<*jx+99NSDAhDdH#nqw z^v6gxgIg!Ev;;lD6_y4(3<&J^QaHwROrwIyI%_0Y_tybjLn>^8WHQ!oIPDNBR0oE8 z0;utv8cj_@>O7$oV1}5;ib(BK&>a(CgFA_sQbi3A?Oa1~kT`GFD;ZaUnmC~_o0vih zee)R-5gL1^W0kQ~;8o5UiUmqM3|b!W&mp!`h0`_@Y9XTndOt!aSU?#Y*dWb1__G;S znyJACZJ?udiQb1(b)?ACc{SYtg&A}nOMs1VW8XvsVG%B)?9|9BJHitXSPV-?h{FJM z@3lTiX>bBmn(%bWZCLM32z+pOM>=2GVq-Zl%+(-rj=>yLz*_-#hC5=i4;fM9VYnFa zfu!~E6Z&!{){p#)f8>Yqv-xj(@TWh@PHWQfQRu8YS;RT0>3XxV6iBnuq%5tisxd2o zX++MOOLXTlx*fLTA-v({%INtP12c~<>_3}!Z`xTp!~I|MqkzkZO(`DV#9h|A`+BOz zbr1m(gD6C)!n#rs7iiEar+C!k{b`-2eawaVs(oe|B~a_0M3s&yNY-J5V!RIF#}^%Z z6qQ5kJ=x)2tye`v@!Tk%foU@eOli&AT?tC#6f$jEa_azcgJxHk;G%ZLV=Uu^|b?zXhVu@K7`W{JP{g2iLeoNx?H8f5V%9#yjFbq;$31p^cTdO#}6{hBs+gXLNBxs}&Ztyc5K$(MKK_QebT_6&aZ|0yZqT%5IuarsQKO^Eu zc%K@9td!*8Dnv(H8(fv(0|g}jK|sF0UY1yVJ-exEWP#2kEpey|8HIk+rvcQlxIytk>Coa%J9iecTQ8dpquTkX? z{H_*IIW`xSEohPsaJT{rZGge0FjmXvy`KT{56VCpU0StUb3!bE!-t&{b+o-v)eBHV zDp(l^nvNXtS&Rjko5Ri9L`8gb+f%iS?S85YvXpkcRc%c+R74LF z-Nal~-LN3mIgnP>mn80}a3i}yHSa?&iKM8<+M1=@Sp`K9F99iR>H@E&#U}flql6RM zJ=*iQisEx}6@-zy3Q8(y#_BjM>vbw6q*#3~*;11u;!A{U#e|f#MVG~oUUd?A3$ltA z-(Wk0?d#|83zcJz-cS%S)xnoIxt9PrNt_`QOuDKX0(_$2E0E2%C?O*7 zX|=)IVBQQ6?Mq`BX^UGo)w{{$juzM#pindR2!KJ5M?~BhnAU5biBZJM2q-$u$ws+l z$Q+6v>Rouw*o6>QF0j_wwKt*)QveMNHp`g}JMe^U^V-A`DLA=D=+P|JVE|UpLe~_N zqZT0YT_VDS%D%gLzPRB2H|6%5b+PJiMGQ_@r-$b0*m2zkE1t_nS2VnGIPXl$;~;DcH=P{Nc1bp{+F%-MPc8-=88?CyYR(5ouj$9xol ziij9Vb^HOvUEm(#E<5C`1X7nafZOg^YsYC!Aa&^=5$7T>>Oecr0sz|C*oGc!J)Lw0 z+dqs!1B&+zw*V5R2eNbqwAKnql5Sf$H_VZ0{YE2a$3%{TwDsij`j9<#IAxTxz&Lsp z!0|8d|!b`jBWY*#d2ls0vg_RV}^$;e1mA7IC(-RQ3qQ zkdua4F3xX*EF5kD0_y!?Fb~`2)1*mLT3RtEK{7!_1!l~dbnND6g1VG>3s-GE;`DO8 zjT$E9l_FEE=+6!XD%ji+D7YfDN>pZ2HQd8n^9c`7TZ|4(A|O3cbjm;udo@oLfa~U{ z&LDtUP<3ycrRwwj_AFs>Pg^TDS$6SSR6qo^I$=Rd@nF`JC@z_BmObA8OYH-|Z6_;ETN{qd>K=_fW3{4M_+Yj}GCfEmD z#h&p9bgnQL&V}F_Jc?UDNl3}kt;Ooko=iU5>?M6HYYR2FubQ*9*IgGqox?`rK4lCR zfVs3xNS9;LCRDlS78|XXQ{_ai8U>3uXv9wBd(?n8?)>IfPJ6k1f|svhTJZEG!ipU& zsdEbTNr(mc+`@$PNNPd*j_YIbYqFDN+$Z;lNf=uw&?DR&sj~^q8=tUx$BkpCqwZpm z%}sj3w6RS@-Cas`QD_t+EtZIGg%lwM2Ys5e#z{Q8u}t_9)fLm(T7zE&*=bqLpO+jp zW?757BQOroDiA8IUNXuyZ!V@xHh^HUASfb6Qh~7fMo>_09uzXEtyWG=qiW%D+pKp0 zP;vRhROkc+bTgk(p2T8^5pw9dvIxnBPI&QblN>_|Bg6^FgX~y+APVjB=R=ZsP}kY4 z8(u9z_Ps0~#R|~Lm5~da(Q{YUhz*zo!qpnN*ZeyXcl(YY7kNAVvn|t8^K!R4tLNtv{>)0Akb( zGITOjpKfh^tQOU)mmT6l(whLw0_lD-yn1VX;ITXZJ7g?g3OsojEoEq`4&=2d%%ciB z48jraTt|Yk9+qo$xAl(Kh7Sd*XJ?qh3e zMLnH`Lj-z~#x{v2I7qm2IMfYB_l(shZOXctV)Gy}u}2nZF6@gl&^!edV;5Yx?WsvS z%rC{NOyJXyvt>*T{s{Zc8#fYKgjmy9FsFms6r$Xf7o!M6;v2In!gR4x+sA$hBDCM*7($e{HirThxfEklkQD71*Hd4 zKxwQApq;oq4Z~PCDlmMaBBP`i&F@H)^C49T+;W8pYUts$z$wsV=oYmXkV3;uaa4y{ zJMH9L0Oyf1Dv%_IP(f5k9610$jz|gCs6GZLu|2i|cfB%Kb?7FcU3k`IV^0M{f`+Zq zzyQQL_g@5*@fmX`;Gk12Lnt&F_!T^2*>@DRN@pf%jyM<^o5Cw`?Fj(PsCE~$)F-9^ zMJOC9NNxz>9!j>ZEShw58I-o4b$bBlhgI#>vUIr#|$e@{zOUfVx8bGqa z9BSMzJ-SQO zO+^3sy8q=O)yI?n&X;;fd*3TO_D|zl(wbz1t(L`3YbhxwaTmqbT$@Bg*x)MBYA|2I zbdvZcrFi!mB5DbkWjFDMU%wv$u;en9> zoXms4t9x-y6+`n-YS>x|va7xZ6p`t?)gYxdJsPfN5s9i%#gm%AdEcn?^-S>L`qa?r zYYnV`U3~LVKx0F3%*3%wNhKBQ@&b#R5DsZm4 ze9Mth<`*xm53!4ijDgygfrvAxOH?=U))b2Nq)COBfMbYialfrD($rVDNxD_9Ldt|b z{c@7c*m{M5;bGz>lpzeForh(GcP8#!o34%@#0ZBzh1PV)EdXAc0RrYfRf9U$1fHe znv0s}V@>CJb$ilk_bIK94|<3eC1%B`t?;`T9`ULc1+&^>K_mtS76ef+JDvk)mCQQ| zsPzeA7+GB-@v6wHw5a!9uk$YM)S8u@RrPez zxX5X#XZ0s8Nz5zelhn2Z&4;THv%kFCT9Gif{XXnMTu)||YzFGOFkCiU*o(dtSzt3# zCACyU4Dv#Z9O|NlLoW36@oa(!^D)v4zPcssHke8Zh?{#BKM3xboJ0GyWswa^iz3k0 z!W9=`7f}L%9GSIFR%%Ge(RRoatO&&`a8Hm}gn{MB7>PCo=x1sIFGSoapj0SR*AyF& zM=mK1r$M>ct6cRAwy2OYDy4hR)J%3^1r4L#lh|b-84&1IeH53Qe7mim4;aDsN;^%F z>L7jrz^{XKW?qhGxVwq8z$XNxI7C7~&p)Ff)rEE28YJ;E?WtLIiOKVR(Qjlj!Vb;m`!wOF$RufT&#EVK3PDa|&$l45}09K{P0rG$q zbXX1;(nSQD3@I9WT15){s===qY2Bbo={*=}kRTZ*SST&05$Z7@DOAa~Gb1j%#~{Zv zV!8GRRgR1{AO@@n6^M@QNJmdZ5`fMT2VX(Zl&{}tAZZ_a)?c>2+U7muTpJg{;UwdGle^q60-d($x7hxq|C(5^*qt_O=VfvJ796 zK&4NL9I$GS!WDLeMPOj17Devqa2>;D!Ye3h>kD7x&gMMKE@^+&93wA(GCcC|Bm1xY z=IyuN|L}vyuf03ZIRv)I(Pwf}tuA@3^Z8i0Ov=RULqUNziVkCZ27(zPnPD(V#DQpJ1CguofGpq^S&c#DM_A=lW=D|D^*M{tl%@$4~uLkqHRy1cZ zceu!0y*8`GJT#rc`8oF2Q*btu(vww0>FE=NX7)PhGAL*Z2=(;EV4OG*!c+nl$J9ib zX3ETj@iafrR3gOidBk^?_Nck$6ItOZ!|yl3{6_ zfZ~D2(e02+)nN%OpBb8i%O{217X6nP-ojoQFQ|WQY8pJ0}tHW3e{M2yY!la%g6jQ@;u0lmO6qh;JtX8ewRZSv6 zLgi2lVkWDhR`&>q?95?UMi|#}K)vXkqeL}O-36NE5Va_3<-0@$dJaIwoso%MXg2S$jj`{8ti2#os`+~Dz9F7*(^5Q>KaHFuHe+|t(av(tRH zO48-Y?)J&fsnfg4lmtmq!*PV?c8PwVYmbldz%PAbY)M-5g-{>V@Cw`c!Kc0RcRX= z3ib7*aH?HBUnWpPGP=OgFWu?bhe^{6GRlWJ;7=hLD9|ARG{CDDmBx0c8PPhiQs(ax zVdIsJk4-zIyJN$KmPoTGXrcRf(wV9=+bYJ6J*X5!NZk_|dyac&!l|PaLo9T}q#<~D z9T~7j#jKgu@5SaH;WzXVsl z58us0n63S`=g1G)6S!S2yQB0XXes!QTz#f(zCB-_-5;+!?B}pg&;e>XoZF$U!8Vh9 zXdcY9iH8fytGmVs)L~ctC4GFPqJ=$b7s;(z^U5c z8Qz5C>73L+cG+0}cuv|P*3A)np(1x!S6oKIAE#lB-U9gem|YHZ6P!qyFjub%46>7{ zd3VI9D+Oa#&fgNSv-##+m(5=fl zv?cPcx;oe>NQ&tOy4vzPxnO}VUBKo+-j1v z6Ib(442F{cyD)905U(a@$DWAJv&FMl6%7*h!Oa69`!$f(69TjKzQ!DK2lkAJU$bCF z=L6}0SJUb%)n7_QF2U?;@Dx#0b6MRdwJ2>D3|(GyY-c}~a^RFhbodm!y07xyYAlj=qXGS%wms0Y*?;9I$HGe1$B7{9k#E zr9nq3)pJpUJP~;;1=TGM{0GrNXb_i5VYdbevrJT~3f#=Q(ivpGhV{g14XBBck zulMnmY@r^LsA{TmzOOi7cNMlfOOExiJFq{iF}N96a}w%Gug6l|W=OR}j!V*Xc>g2^rkRWjd?tBf>SkDrLD`BNc6M%(c{UF`OB2yM)Uj$b~ zpy3GkiuFt!HpOc=AT*o_HOUSegCPnNg4@uv1|Nl$o-3kVTOPED*28E`F+~7aW7oHW zBG5!BLRA$!OMB=5+Eq^(9QYnz=F6V zp{u+xi2xgQSy8D@`@}IDsttz-;o78Xq3|KRkZu*ib@*PA;Yy$Sf|#UMpu!w0J;4$o zgF#OSYb@T|Gd8S^_lk(E*AG$Rc6^r1L^M`gr~cG>9*!#HfuVi|&=7!J2yGHr=A>o| z%gT01P+oK;Cw+B zY(A3y9q4$r3&tQ#SVmnl6Ko2tJyvWP0ew8QOkP)pnViD_n-gv;t{oEHJu-v@1wbmm z1}}Un5ZV#hj3#hCaAUwNjFQ#h{_K4%AlDwIwc9pIk(JH0A~xTbvT8WRU~Kcom#R_V zd`_e0!axKJvG4}rhbZ4V>duY;Y!eg=Mpu9;Al7b&45L>d;w7*T2dG8`s@*>ofco1i z{qjS0darjIAp;bKb#_EKeB6F6yz}zW`tj}k%k>l=?ZQ3=1vZznzqy>B9-ry<$v%|p zw64z5htRV~>)vyeC`mgsc;Pe;Bbt$#b3S!@coJ03$~a6i05&p+0uA{#NT#I$CXCBD zVjtAAYcNO^YdE#Kze?}kym9;d-p=Jd%N*lXip|jSh=&0%tirmvL5jN>=|r3OKsH_| zl?*faC%id2NY5%!Kwbz0YF>%?$Yzb$=G#P zB15vWbDt&5{^I-6p39qi-0WbkH){<$v{~HbxQjYtJIlGLJdtJ+3g#K>9?wRxcAw$m zQxVCmLUZS?Z19Ss;<-VZE7PCcDFz{4q0J5OttXg=DWs*g<~4;9)F+VuC!f1U4RdJC z*XF3cU#bvHwyKoPf{JX-*4m~}fRt4LUR3;4T}Urpy=8S^F;kb=!Yrj0bIYO>ejw*GiHb}!>$if{|y6dM<{^LghXZy<7Gc<+aS*OBkt$!todQBP41+S6Pq;UZc^m5CF zHg|umY;H!}n|7e*CfuOf0q_=s-C}FlgUe4Dq&WP@s9zJt%4$ID&p2up`U7W7Zzlvp zp?L!`W5;1O^oWW>+?k2k`MiTMZ?}0^Ej?cze|$Hqoo;r=H?G?*6cGpQ&MfQ66OdFq zNSI)oZ?2JKu@13G^<<`~vzWp87$L~b@Y6$~G90%UI-ETSymF`MWzVN80h@MyU;Ga2 z6eBpz@U$>U@Zc=CTSB- zzyzS{j%**_&bXN+3hd|`;IqW&bCT^A_3SE`_9BmDIdvOMGYV%p^x4rJVw^6ZshLCvFV+XYlO0F@L24sJE@vy)>)=-GM%QmQ`1Qrl*nX--!VDMLU7#U{yrb2mkNn!7z1_(nUxpJPe zBO*79{R`54wu)9fM$`b%kKn+1M%12q*bLwx^o6gmC(wE6CW;>}3^0M>sHDC@TLPJ$ zZx57C1-0=O1G6!`bk9;L8->Hh6-Y2#;*i1)q8ijYs|fO_YYXo|iAMi=G^93gAb@*! z@x}nt5qKGZ=Qt?veURrg;fbO1{{YwmUv1RiRsN|o)kbJzi2aSyH4U219xvq;6qz?Q zgT@Zalu;P~3MrkrGOiFdmww70?%tmP(z90dRcc~*e_u72Vv7jYflSGIo0#_$3ma99 zYJl=m2p1%eu&r`wyINn)lgS0jYSL*-N)Yw#mXZqhALjCxPb2kR{z66F#MCT>>5XQY!tsSi)vIgOvxMgLw%plrDDz>~>uU36kGI>a^C#Ip zS+O%{Q*A*kb}x^p2rlveAO2K7oD_%`a^VIbube)Jl!SmcM<&5BUE?l$#9e3s`4qkQ zx~)@A^veU{ZepN-YCs%xTM89v=7Qn)ZwT!|+Zr2mBjk?R<-trGX*Fq{+;X+W(Y*|g zO{JRCfE2H$${u!~wwkJWH8WcgHpP~t5wtv6ujV22HZl`Q}I}k*dRa z>j4unabO+p9uc&llDt9G-Cj&G716cgW3Zbj=jLbA<`&_BnFD0j$5lcx1=^{Kit+U?d87LjR3PBx1_s^W{2C&K zf;CrobY0Aw*VYRYcpH_k&CNYzRRyXA8?G5M0In>kXBZ#E>!qs7c31OvzGa_%y!`yX zZuyy?udikQF7hv$UQ$Xyk1ZCUmL89m0Mr4V32+-~^{7aHiQ=;bu>l~0IiRi3a^dSh zC0jflfmX2*A?=f>p_HCP3!p0Jj#HbYw>UP3BPiR^J*corxT<&;sXS!V;{;btz2waX zW(XReq{!gQb8N%jY`eGV;Tgpz5xrRr{u&3C6Izg*Mpa!}hIPtW$#dNnOqf&J$u zvbyXQ(@t)S+yq7*0u`{;wcu{XxXp`m_4pOz0tu{R*wWBp#s;^9ObyYVK=eBg2hB( z+FYX`D5 zUV$j*+D6r_3=v+iArKZ{X+LE15~L=;Q8z*-san;7D#!_uo>cHs!F!4BSluCOLXHRy z@ZglNHJFXkBn{1d3nE7KmyoAGKVcNF*f)eKkPOO0b||_jzNrMdbpxn#TL-v17{M@5 zprd-nxSNpl)1ZPKwSjX61K&tdY;$qOe+@fD*kO~d8JMGNZUs{o7uX4rNHh(Qd2j|g z-OSX>OGOKPj;LV~80Rl+lnSo>kz&JXLJK%_bO8h?J4%(6{6Y$m&ibFWPIkNmjtBJm z%1RmQd(PGcxuOcHble~s3gO?!a8n)sRAtGv6fVs1`d2s4y5wATz zU9Ia!*N3J`Ll;#pZussq8a&a!E6AUE(R11U7|5%Ufe=Ua7*)W~;>fNJh;;zs`|>30 z1ti6$9fR7TQ5DN5TiYCMtg`^8HeUVo<)9bRY3>vRA`yp|j)r&;Y`#}{{Pb#R%ZvAq z?c=fqJ!HS$%Hi}qDIdu7>Qh^uq(wsExY}ZWM+{S39ScO1Ezh6gz6sx`b4YXvkevS1 z9$1G82MH)b$<-4DRop@OAUK%b!U8>@g$j6lU4245!R}hUEil~I`+BxXVs7fYAcV%L z(zVop31ruG2?PsNgf=4P1Olmfat{r8X(YcwEG<>*6xHsbHog&p`P|G(6G(CwE<81A zt5#dPB605vln+sNI%^P_gG8Bv?i``?s>$cg>1@W5Q8z5Bhe!!;?BeXq0)iWsKnrUDRRDb=ki(zxo>Yh+dkJqZ= zbMVu(ESV#}q6QBM?F=oVz^r(^we?yHu%5-?*TvoiK54iY9L?V_f4kX{b${WI>ZP=z z8r++?_Y4h*)pTujYc>Vn%mk+?!u;yC#B8c@Ts+0`mrtd}t_SDn+Dinu6>>31bFFla6S2 z6}b?(Aa1N+Y`dt(W%=Ddb^O==MEYleKi_)&3;GO%N~3spKFO#P8Cu6Rn!xQ+k{xY` z2E&E>qYX)M%ic7%VZ{RC)eB3>s6tC8BAfs%-s&(aC~K@^Or?6~ZFOEY4hK0P4`E0R zh$GF{43VOCQ22K!bFWJ>eCNG=_(m&nK@1!_FcKIHx%Tgjc+J?S@^}{F4{?xyzlQSe)*KI z#ib)n;RqM9vkQd_8irv250}gJ)*FX|=PEBH-DNv|Fpl5@Ifrsuy+*_=qbsoEL|Rm$ zyVJUh-Y^C4g^C=~ktbCKVu7y&hGH>^gNj`x*!z~lX40sLO{=?RzFd@^-N5Z_Lp|bL zeTnVd{G@EPB&did@{y@4FuxhMJKOFWX4S#PrV8Sb&<>ClQw|V!g^71({24m2-}!f# zMHYZ+ORb)+L;$R8*sBK!cq((LVHRw|pJxrYg3cn(9rV6?f?SCx?c%*OL4L^!@H?7k zrMp^-QTb!nY&)cll7dk9tMdRtozfBrL`Vziz^j32b5L#z&DRwyy+qAUT~J}6zYC>J#{}A^(oZODkP_$7 z=1wlZE%N$Q1dW#!-p-0M=)-x+XRg!*t-{SEO0M29PO+y+cmfJRHHjt%RaKAJWm!&M zE7A-vXeRWx5$^|R97ecxXR|mroQq}Xg`YeyW3>!|V@Hj!C~a{B>8jGi?y$~jTfEEC z*pL)$R3=t%1277r5K-7!5vZA#gLg@YgbFl!pq&O(N>s=w6YD(#Ay;Z1a^YoC?}--l zP(b)D4IQBb>!YG3)QGut@oo!98iqMiOcjXqTM$KwKx4920xg{KGr*LxP9a8d_uG-; zm@}fHzyt*&D%vY>nU6T|5Z#Q9j(Ab$g1<;A@)ya8#Oyhd9enLNC zV>n(hoWx(Xm_AKj_vz2LV0U39L1fq8VZEzXJw)Bl^KG5BvK`lT7t(~_)l5Tmk9@&u zh{J6+(?mA|F#PD%)e%<5=Gx3_gOECtlF;hYR3SqccLtL6{-4OS53j z)oYf+eA-HSe%_ggFR}?Ni5FFIq=VA z;)#)sc*Yh`qukvhyT2A?*I*l}kO7 z!>*VLDjlNUY%8uo;>u1c7VZ~!)Epb&r`i`P_Yi|LBh245DkJBEV!L^oBWe@o;X}J7 zFHU99I_;q7pkY*at%X1`2&J_^A7-_NOKd&5FtRlJ`R9Lpd7R@vYB(8)ooGfiMX)0p zvfj`PFo(IHSkVX7CUuBTL0}Ub&@x2PHY^pAcsTWCDR4!};$RA? z6A0T}fk^BP%#lPQV)JUi4B6a`D^y)!{*6oD=Q;c5x3mb!XawQie z{%J#sc|}$jRfJSLH<#l1uFm)8tCz#SuGrdl%mt^MvJxwa#5FU+F@NFwY+gb{S5A%PxaACi7x_*;N$r?I2{b*b9c4^mFJ zNsxK2ibtptvqAO6(Jd1Xu;$QD1)BS^#1R5lI$h@A;-28iOdS&`w9;OzX$@jcyo!?# z0h`;MV@9Jx!m6tx-o(W@%pDMmCQZbP;naK=+Gf#kqag%+8U$<&cS7eIwmqJ2Exqq( zuIhV1OHyHbjTTyYY|^x_gyfSo>`HiUZCky*20sAa4!(qt8$#Y=okA%lj+j*=<`zWU zW&}u#;r6<^Vm?J-W~3)LN%V3Q75H#qP6K2*pMZe-14%zm2z=)A2iWguo9vh|X>h{* zR|hJ>mB@ti9^nYRbx(*x--JnST$URy_RHl^^ z*|M3>M;0&KL06jPvp^Yz^A6g!(2GDd84H8MsZa((Nj)8~k$4K|W%vSZxiC=v#)Ea# zW2zBtW=1T1x^sZh*>=^Qd6lRnUkqQaC ztG1SK03>1-Ah3liLPgciJ6tlfA+97yp-?(GY{On5O8GzqJ+z*XDw*#5%G8DC7LcPv zhZ(TZx+ow5wHq6;Qh)@gj45tlOHls++A!;tf;kz~am=(R$hYH>Rw%=~o@gry%y0s{ zVK-_#X=MaPY3KquqcJbp0+usUM&gPfw2G@DQFum2rfz}Cfz()zT@fQ+As{sms9kVr z1rW3k9sy7~@pMFQB?B$hVY*zZngHzqHNOv5Zxz%VEIVACSPek>SjxqNAy$9w{%Bd> zJKSuBytQUw%bnJ~;o>_hf-p)hR_=RMn;(rIE>w>?@TjU3Rt^3tN~q|t4Vatj0cL_x z{w&GJq8WaUizF9F7&N5P34AZ^TSJphRTmW{$Yyl>14fjo7kI{Aksa7+-eq|NEq>qH zV!mP@Toe^Vh=2w2FCgVHgvucEF%4k8sf@-EurorGSaD(XwqEl- z6l8`f#5^s=Bu;7zj$LVkxZVL*_o-DhU&uD*<_e1qoNFT0^0Fs-+OAI} z?d<^2Ob`)jgcJ^FY>RN|`)LQe6_}?CY^Zlo$0L`!=q0+Uh%;sz5tG>BCCRL=%~uFL zl8ns~*f#C8WvQE|ds_*rsctdol`5wlYQUNuiiv^AB#_h%iNzc$uctPewzqES5d}VQxk4o5OuX{7a zevvl&y|C<8ldD_Aitj(wN5Q8En-MqME&B1|PYNExllz^?JzW#kyckNg*ko=T89}hQ zG_z7I$3i!B5Q14s-KuRVtSN*PR(ITQvjWxC9I9R_%w(6*d^2;17A~kFsLjqLOtCf5 zq}8Z6h*-63mYN2u-FB`GW}+d1!;sJyETkx!NGC#qT8$*1Z3agIphMh4pcvtRhZP}I z{GDqL5ibj}U>nH1ZKOAK$}@)!HQC^mp)uzw+ZoP=ozBmtKyJ59M2s4@N~U+eW;MW1 zCP_u$t4k5E)f})$6Ox15yt~{0OztEhqx@_=ueUYCh4N)DP*flmm(2&eGrV>Udn?$v z_xj#Ius*>sJV}hHp^g_#f)QZ8WIn{jbMw8iGk6 z+#j@7ueXk!N)i?>hdARRBDOVAs7u|7SC@UPcWZN(hIn4GXeCHPNpL2+AW7>L$_zY0 zT%eH)RbU>eMptjy=Lvp-1rN7CLU~=PahMwbi;zfU!?t$LO|P63t<%ZG05!SWRd-w+ zV<_U2Q=!2$%UZn_Bp<`Zv2Dl+`3zSq2R7RY5_@dw)O$jTM%E|cGPBy z=X?6G@~E2|5wwT<-5_^NKZ#sZ3+0hvOMoC3gsm6q0=g=%I($4Ec2$B5BHb&IUKJ0W zeSbvQ!dT`-d#OHkY8#<<{Th*NjJ*b_UZYg$etJ{PgaOD%()CPc20n=vtdJ>U?gcVJymWH#v4%(B4R}u&r^AYvU->i zlGvHDntBxx6j13Ec^3BF+`t;xKtrv_JZ1}U@PT<#O)!EOU6Hq8mi5!M#E)r)NM|6Z4cWUs>O*!ax6B60g?`x> z`Y@Y8G1$?z4?aG~i2bki!K(9jAgq2 z;`W8mNgli>#~tI(8 zS})O81gYZQ;G?!3ddmoGWIvL~aw0LS4uT^!$*YmAm5&sKlD0YAz~{3~>kHNl1b;qE*uwv3kkUGJF#`S>SlyHo0>RJIvKjH+uUh zOvPiiT4FPoO;Usd$Kc^kq4d59ZXYwd_vr00!sfEcVMYvcf9I`Y0%)t5HFx@4vU#Y@ zxkmc2z+Cpp(`2==1UgGHsF-S@)K$Qw z78hU{%pGAk9HIi~oYLWf|CUP70w88F$c4oqY2Pr1@klm@EMpq@JuN`=1*4 zzTlBQafsIzL}o7hrz~QalQ>WpGSSQm0eH&B>AKvS%pu>qD5fB~I-Htc5_g>FXMtwE)0t^m#g3`ce5TT|kgxwpbBA*5oC_su_7&-A=dPF-@G`j<@Qu337e}G2$ z7HzCO(jIvIM@d?~vJ7TV6y7&X9<(z{`vhd_h?y|r=q~UomT*~20F>_17=j-zz0zS5 z3Dl^9NOC^`dbZQzS^P@31V7niq9wp~5)X>a*J4;v7&|OUvdY$46l6xN>|dMGfLn3+Yy-=2Oz8`uP#?L`pLQj@}B|Z9L5}Z!6q9?j_#q-IeESnKYzT z!-r@~z@eRMz0>U-y%Gw?eG96ntJx8lQM2cxh8=ENsLu&vy1JBil@*f-nNluQ+`YOv zT9z`QB~PoMK`O9E3&^unngkOure(#B)3)9S0`wl+hDi}7nuU&I!fqyC!5Mb)b`b2u z@4XTxE~~VFIw2Xb5agYK1S*jz)aq8k%=TyanIO~&bH!3b7#-a7c$>>D#rmv2NL&G{>I|LsG~b`7(f*;V0C)K2W4gRs@l_y zoOchLM4-#Cjfz*A5PB@MyTIKM40E7-E4}jnIY}~T1p>-miuv`5kmaPP8>WcG5sx?k zHlwN(&V92{H&;4`eMm?ZKxaBy6ly(__{?TW3mi1?6a~L5sq86iD>fn@^{@=mmR zXx<>U(p$&`5@$3ZM=}MOY@zeVw}PV1(5q;I8eev!HSJDBmXz34rIFysc(<_21U{HF zt>Qv5!^n7YWT5gP1MQ84?)0N8z${p%j4$fc|J+J=hh6tIl7dVoD()Sc5G97BY9+ZvS-D`bhOPe)I(wT!MKtv#m!5L+0K2>Ac`xcr7qg$8r0>#9g4m?CAk>pl8&`)Hy z78q7HXJ~OUt7|hrRCbQ{%$K{<)q2(@%RK3$oM*+A2I@0Tk+rEy5KkfjF<=WlHiZM` zf-PX1uqGhMN2d~in;7fnWy1anZ57GbUwJ!18lPzaG83o>?9|#bi9-&qSWdQ>>jqV8 zNseS2n40cfQW)#DGX`j095)aL7VUL`_`p7#i5xQxesDxTeh{Z*UV|-uHznDlB$cz| zlP`5xYX~xFc>S37JH0(vc9~4n*yFb@K<2`FgyaP` zCj%ghh1F1Op3$y!Tg6^td!*+qsrbT77m2hw6m^qZS}(f^vdB7NNq8ilPN*x^lbr7H zXvO5d7k@P2DDcG}FQu%_+_!U^YO|#}t3InBw|Z*s&sSAN3^8b}&1x$IOT;--3v+jw z?-mcr{9~hc2O)~7tS?V7#~q7`uFaddl-8nJP^`sO+E%?(6|PgvaMeO?RDeEAY0aco zi4jT(V(w8TXl#bMA_U4=PzVT79E7!sRFTw`J?&^i)>G0Boi_KS4ZV)gRD+f#KB|3A z5s5=Xd1>(W)!cVnMY({1Yr7cVG)(pc>!N4RHOZOUs3ubL${ikok%Kp_mlbCFf?91tY)j=U$G z;7$e55Sz1v8?@SdT=iV0XUEX$_IQ7Oa&>xb*Ct`cyHu4#f>?CzQiVFrWN&?Ke^a6?NF>lfRz7K-MT@X{!0depQSTEVADw@%D z9R)0b`U*1$nV5BXU^G4?0s3ecvk(eLM>3$3AxcrjQuU*AoQsONG|U>+>ejGR+*iUH zNGn(&ORHO3f_o0Kiy|oJ)c~2H?y{8iO1EbFDn+a*^d{C>3F3km&ua$*1VgLv;?1l| zt7!M}?7_^i-r2M%0=CJw)ig?^DZ9GBWI?;d`Z>Lc3Oh>R3Y}F;_VcyHP0&!!m}k|4 zuWC?g^QD7*YeL(3Y$6o~=t>(PqFuv*-L1q8=NXtgJ618zlSC?-k?wzU=tNA;t#2-E zmP(3c=h1afAhm2NHN{4#O9zN4WO_RV2 zGGGLh`wR)z1^bdY!rw(Z8eTzOKL;>U@CWC*X(u2T?v31U(o;p{ z(-ekd*bWB)OsR9Up3k#L54N-bB(8rlB54I1!0Mr>-aS}tg=W+lN^g_(GB*q`Quj?P z)a6-pLfhC5MpaTfZMhko04E>j_oy*KJ1}sY$yz9)B-U)scQkTSB;X!aIBm1Ez&DDb z)oWq;U8c3)U8==8+@>@diM=i9gM33YTw!erM$7x0u@%jWXmcuvv*rP ztjm(K1=&Oli0+|D3ph_go+VmAVUU=~52w5d5JK-NyV4?%0IEc&gU)ChC?(_X$x$eB zCx>E-ZVFk%8=dA^gjkg=K^XE<))}n-okgE`pU7#EuMs0hdcn*V3w_v4M zh=Q#N+~Zi}#Yee}EK@?rxQ}pw3=%U7!x?BjS}p_iXNt-uRTbw9-5`VmNmVYw5rv02 zP5SFSgx0u3Y`nN87$B5RNAX5A2zWJ%0GL$L9>H*eV4``uVxFSt?)u}$V_Hx6S# zyLWGhv#NNag*2}g8-n`^C+Q?w3O1#1Bw0(6o>vZp9^Py{6j|(EQUFOnw!e4^T^mlt zr^%ZcT1~N)syRNne6e+e^Dvnze|xj0R7L*=-T4oS_w` zY%i{Sx~FyOonBMab5eDEa-Zg=DtNl+mXN%A7Say&1tH!C#wZkD=oaW=XqvJWuD^0p%m4?xR)jmi(4L40Sm_V@J45lk`Y!3pWQ^v$Qh2E5 zrPZj?8XR;c!<)&nE!H$e$=Or1W~j9so2VpJJ#HZd!ljzSG)I&sRT8kaR+hF?0^DMB z!4`u9Y1u+;=Nu9F0sx>xUibJ}a7Ir{bx5c!nys7|bP0If3PiF9s`s6=5QylGI&pbt zWQ)lgJhLHMlJ-+P?&oqFbj^-dcwg>dfVz~9%=*NBxn#mx{IK(5qD9} z8+=IG6hx#Q4N>RX&}bkzgg8@cF4{xZVWmjVVSTY_R1F%c*}3@L;z6*>Jxfl2oD zQq*jBe-e0kv_HP}TDh4$38H(1hhXA`0D9RV37Ui{I1U*O{6J+IZYB_T?yjH~5jx>n zFGZXq24xSRNaiyJ0WR@Hk2UL=;6i(P=ddgVu`;2_m3GKpGG+J&8D` zGxacQZJl$8G1+=NB-^|du5XMQBdbJ}tw<8Rj#BK<(sphHH%Q5GO8SP1PHwjrvc{-$ z!BrEBUTDA|NQPLWpW9$MHsrudQCySgO}#`^t*CFFl%+D@3XAbVBshY_=!B zvFa(i!()a`ez?;B@g3^oi+j3}xv9UvCN2qup1f_dP$iP@j9C*Ml$@KSN@bCV|Mt?C zOw-KaR2JA;C#=a_Kf;Zqug;Le3&ye zjOdVwX|jg>6=Lf=NE6T+bxpwr#xYhto^klrH$r6;Fd7a4 zJC#_`MA{Xwz&AA70~9zQE?JrpA{bCNwAOjTIxtS7GDA8B%ZX z$=F{Jn&7o#cx=@A@B%p_&LmhoVwtd`Yk#G+&_d_0)Yje7vtwbT3oB$s8Vvf;aVDu? z#xh}XpQ`v>TA$d|^Jw{Ci7tssV=`@gm%ug@>d(WT6#hm6tea;&HnpI6HwLsb7AWwQ|j^|5ovB!@4O<%e%p+4Wr;_}4Oqp0BkpZvIQ68-hL zMfmQpYG9fd(ZSv^s)$uL$TzT+Q~b%a6FK`SQfq92=WC%p4WVwU*A@7MU9T8g&iXn=oZ+Rq~QvwLdDq6zODN^*%Z z)Gv0909KP5YSm5r&!w__bN>1#m^NFpLg2=Z<+}E_Z1?BCX7_i0X08_AdP{uB~*<4tYpq^Yl_AlCmS;`K`xGB06;M(_REN7wB zjVPGaU6{w1=(X7}XNikHe_l-xqh4*!R5~^ajXfko)TO#m;Gc@uhMOj;XsJ8SHWxM5 z3#%2`9VS6SI|emeUDRt|j!yJGUoq|bKBvaCQdo`Wk{A@th$>u?> z58>}~b!1hu&d=W{yn}?T>7+HPJ8U%oyC7|Ch=Qcq(9RWCnGTIWkEOzaQqpN6A zytcD_fQvnw5MhVxQRE;HX3K%JtTn*lq`6eUE8vU+5Pjz86z??J{OMJ5NWD)2RJvjO z$?U4z8+(gV_G$?MLaq-sx{ZQpO0eC9m56p4zhdeHXM66>surYqr}l&LXRz+z0`Vuo zi(8aHS6$U0)nsKrXJEQuqmnV^2fR$dp(C)6*y_xn;KGKOm_EIsTuIn9yYh4ZRCXUr zOnx`hfXnowBzGG$QuGYj%8E8mranG;4_ly@}$aHz_3jGeInZL zgwzJFwju?DfXFPzj~avVbRk;jR> zXIL3|2et5gB@C-!UQv=iyGB+CigxM_wq%fs`#m`GQ8_$g>Di*&f-qsgr8`-BR-jTp zp{d~95QWq5j}a2O^LxwUz+@;os3b=3Ls5XKVx@VRth?TQq(-Vji9`w*MUnecz#Id@ z@TzV_ZCmi5{x`Wh%}A1n?l&r9c=J(U4bnQi8+>vdIH=$Ny~RTM&T2he7SLJw#Sw>{ zL;H`Rk5M)x(IluF{NzZeSzt&G@EGN@Md2)UWI!L}5e>7U1NX7?N+}w!pQLPlS{zxX z&}(K%MtTf4oS%t_$Hf(}JtHWiYh2JOujx>^u-a<|>ZPWxv)!hE&HLjhK#QdxpoFQ+ zv`lK{8=+sSDdHejb{&`#$BwHHGCL&yz{SeV&$( z0LYNyb%6dm@r~j5T>sb4e(@*oe$S6wy<4Os z?-vCOZ&m-hj(_g|r2Bv5Ck}7a0{EJ%0h_xCsw#f#wfONa1P?0Uz^EJE|H$5btZ&SA z6aDTSK6-lkCr-cqyOuY874yGhy~&60Prgwn*nj>ey%5M?z*_>E+28Q%f9fCj>f68m*F1gdca1cWc7MQk9=-NB=E=$e zG(DWcH@|1oXOTkqz3Jt0mj7g~v9!CF<+-jO9H;+yzWJxVy8Gz5Ju;af^Vgr{r>D(E zMg_3#3IN$Ar@IZ=U%#*4_#c1f{LaDlIF$}l3&7I}*JqnQT>qJWX}$Z=kEWxjM`?2U z_1CAD>7YhV5j^(r$G=sqhS#3V^^N+bmG@4Etpw=E2yd`EY%eXiOs@xjj2cadRo?bK z6&R#llQ+ZwGLe)f z3^qQZqQ~V76|x=`z|&y9bGt%4>**ABQ!9{lCs2gyWs@ob?X`q=1bv*MVP{c9E2g0L z=Y}S;gz$!Fm2{Gl;mvc!HgS16A&Xo;^1J5A6soWQs*-@UgsA=S68=Oq03;#XVfInmUbQgjG zJb(UqJQQD&tW&C%_opvBkM{BYd_ST2d%NKG9{xw)IOz88`Zs^@&tCn=Km47~ULDPS z2k|WixK}#2j(cf}8|n=n;RY36eLKaoz?(#%qAM0_76e=cuNf~H+?_GXYL3Om8%n~? z5tE;8N~x2)W&Znrxvsl*+Sk{AFqwSewKw)3>|cofs@|v=8qL7j<4FN*=KfMr=XjP- zy$KP$K}>;NPh^xxr+%a=CQ`G&u^~$H*1)))*C<;e?vn(XHUmnJ{&PQVh*{%P32(r! z#6QvL9)TrGv4uxTqTo^V&$si>`u!^L8~JI9e!KJIS+&~9{a%~TezI1iejHwiO5C0< z!EkhmGTo>~Kkuo9oXFalpeyuzNNYOna3Aby(+pXfhZQLa3`JcOX%!qXUyDD+`Dj)o zfQZ|@;)JjY1WX^2L_KU<+zzO~evwVwGbT!XV+hEEtP}x)Ua`n-0LM}!?2uO1CaVuH zwIO624Q2DG%62VN!0r}t!rcx01UIA^CX5(Ft{)Xh9WCPuoj6khu!lHugXk#L6j3-# zeB`9615R%`u{t?orE1$a!UJ{sm4_*1P7-Q_N?v>bLV@d@M991s6#+&Pvjc*oVrfX> zWoUII?hn3b`gfHFt3&wXN>q{zhcqu<9g|}#UC%2~wE1F;9x+5vfVg4f{GA;dQ9@4& ziUmQt4MRyaC=(odgp2~NMkK?HVNyRG;1f^?&2POV79$bxg2~}+;P>E`geE$z0;Yz` zHVl5kw9bzZALFnB_l{M}ab!bH&m~99+0P3s3S-M2o5TpCNCCS^jka0OUy^m{A(~Ea zYuJVbl_qHwR(+-E0`_d6DP;~FAo61HA@#!sHEgk8kWB++@0$QGVF9uO3R{e*?y?c; zgYJn(+_V&6`TIp3O2o z7rtiDrqW+{O{@5#m>j_evytQV6$Z?nKlH6xUt`;1pG@nLkH${EzEd&eC zX06Is@Gv`GUvJNL_wxLvO_R&1#hmMpV7dO@;}=`Fa#>@RZ|tt84JI`S!yW2PBuLY{ zcE7&)3maq&snvnAQTVgl&_4h2N8h{s`#$;uS4t4l26L=15nLs)+mvtddaR4+M)c3o z>vxv>&(z1qgfHvzt9F=wFfDC4gu4%+OaA0bcW;zmpFb{mJjwn$Ddl~N#QUgFhZcei z#Q>t+@J5r<-LJIx+{&AXkP3xZ^pk_A%WwFH*LVNOk6f3>=O$vZ$pg`rO*p<27I9`_HTW>Gp%YsCJx(dPFOOP<0c%o zY5)Oy!A{SAZT}lzx1UwVF2M^HcUOFKmA^SZ`{^(Kk^jk`|LgD@uW2cFOA0_<^I_E+ zFKD>8uy=(WUormx2K8z`8_JdYO`C2*E(o)=RrREcB2~O~cI^EgQWX9%qPXoPP9Z*P z+g%fZHP5w$X0|pd&6X0DYWJsD3fyA|Wm%B()S8#Va{OLHFre`F1cCbo1W{c#X9?d@ zYpK=g=~vNQE4B)^J9ke>R8y@@q`ueySd1bvxy$(s*)&yeRjS1l+z?tdz*|eh%>vaf zdK}(12rS0#CgF7U5LP5@ZfFvMsky3}_p^XVxpblH41ximzL*T1Nhl1!B9#C*G>Tt} z3;V@yr+grw1)B8AJ%E`Ho*mkikN`lOEH0w%8X-xn7ul6gf~`QWknc6RsboHhB_PT= ziA4_CFSL)pewUWGdzm#-j8zmDDG0nNlDqnQD4+bqZ~Vxi&cF1!{oZfjjUQlrQ-1w( z(_;zi7r%d_FR!;$S~&Xdt8c&7?!R?ae>uK6lc`;bc<~Y-h7zzuyxdpYV@@FeBJL5L zXP^ocb9OPTl}wtOieQ%w4aS^zQ^%efPDM&83Qv?X==|>C2K83sZFi}jAxX>6$seBa z-4&nvWBA$c9@5Kwc&ip1Jz9|My59fTv-o1#9cLAvdiI_pxHk1opd3QS z@QYvnm9PBh``3T$YvIR#BYgS2CEV|R^eN7kYC)t+{w`d4Y24T8=Nyq zpyr}FH?%79hT*2Q?8u@g)fYOSL=KEvDy;d>w_kp3{%8sDo$%Rz(tqq`E~|xeRh8CA ztM6wzEMpBW7Q8vU(BHYj_hPH5$nZLowatSIYQ%JwxS}2yU2)Q4l6yqBjU6Y&3Bn>= zAj_u~z|acPgfvSj4inkKN!6cguL>z=)D7v1Nd4maQhZOqiBfx}1}VIepOC6Zg=DsK zuVsh^j|AhcjO!*wfrZ#&iKr_qQGKbsDjXJA=m6!AQ7b|JX9rOkF-eL5XOj|$B7u{> zcA^p;X)=otj8wY6nQ*-kxX@1Qq(EdxheU;}uxnxl?JSiEFRd2Gf)Kv0gP1z_6)ovg<4OIDLiqan3h3rXFF)*@VoCIKp}!s8jAz$ zAeHUOfx1>;!hX+`j{x0?o}rG)7k9pL@Sfm12doZj9!+devm2!?TbZfG6?|qs9C(ln zVty*%qRT?*7C=M}`+Z}%Q55D{dzw;LGlHyEl_?v#y4*!_H@#Yur_E0|pKyXpV8BIVn zTp?3UPPhUU_pD;kU!s22H8iIX@+-uTq~3}NR2#JEVr6aWo8m=MG#xW{@zAs2z-BjC zg26plV~^(`rMbirk;y=T{$?;}OEtK}5<Rk&4om8y*DMEu7mKpau1is+Q1xD|f z8FdoHDNCC$o#8J98CK-|+x+I^Z8NMvYH*9#KP~ATmRmV*m^px_ENx>teKcu!a!QXq zc=ST@hxXLNOF@8*YLYG@%uSZ+vJWoMol5pC1UNJ|M1&}ZYdJ&8>M*1$aAwJL7XmFe zF(irzG)z^bxCxv|BNjY=VydWn)f+{U@~jc3>S9pu<+TE5wX1?ZaM#mGRQVX}F%gJ3 zfYzE@j41%Awb+{0S_0YnL{zk%7HdX7i$>DamThxuxmJjtLhum83=}020%d{;nW&^T zZkT|?G0Y{{T0=@ghLtL)od~Qp_oOPF=!V0?dCg`{QmiI|A;coB-7aF1!ZAJpz~B!v zM|_YbJM!LK1>gb7Z^7?88@inkyk3<(surYcx{8WN>C z=-bmISfjA^KGNfkHhKTe(+6Mq__NC{zL-mNZL+Jq4jcm4Y=N2VE#92(|KX4S&`*8u z4?O+fe(Cr({+}GbA=B?}FMiJzzW1a5_uq&w=im7GFQ4wL1-<{9Z*I`Rs5Oo@lVyq+9IoU2;J(J(%G^KgVaEQGzhRQB8n_PLzx8&us|bx z11gOl1uOO;0{~tuT+z9Giuf2hr#}sUX(<1I{Otzh6Fyh!b+d2kfto9I(>*-m`M!Pl z_U&%N{4(3BEx1V6?cg%Ao3`Y&;f?oWc>2lR?w@*e`*zL0*}^XiYWvnt7kvNgAJzZi z-S1ni?Nv=n1~U~4BSN(s=o;N{No68U?J5Oj4U2o}126JX$T@;VdM zUvL>K{B7)RtX+4n&Pma*Qq-sn*Qby2QVpgGogKoyCxTO$-0QeExUgO?RdW$!?JiU^ z_$WtcKmjyRmpx+&pfQPTq}AgZ*7)cOAfp+VC>jQps|A$SRKwC>xhspv1luI+H@~kP zThfx)3T;q~Tzms6JYHB+wRLZeH*XXX;!M;IxLO$(+I7>XiMIkhBT6T*s}VZ@3(lFy z$ts5(mJOj`=i|i<)du{}I(#Z~mDo14&8;W>3qWBkva;RfVH&FfKuG`<8g~RD!64Aa zuR`z52pAFkVo>E*g5@c;=;=PkbModa8qQ&E!CT&e5OsFP9Gv}#`)V?#8=8jDScwIu7krws2ELl>3`s3!=H+kt+U6igsU#c~ zhme0EoIZ&@70I!<>lIB2T71|$o&~~h9D0lJ994lwbW#AvM5=}f!rJh6d%F^sRmvvV z7-xQjX_0t~7wR=R46!WgwSB+98}!g+#LwB}eaQTW^5 z@lvpN-=j9PTfrGBn9N1J9emqKGrv29_CmZO{`~2>`u%zOB-<4f5qoH^^1`hJ-z{-} zrs1yybDWU~%Ta?;?7%VKnVQROGlM({9<)rrwHUuWh5$i)>Pyso=jvDj)*|cPn*y6~ zz5us+Sfw@GZ46l-P$$`6S-q3{pyhGceO#xzYSDEL=}Nl~LKH2wKY7Jpx;^H82mxTQiSF zi3$ZUn?dL$cCXE1t(=;!)}R_Rx;1HynF2+C8UjR#)Ps?=sF_uFUslNpO0|QO>n#kr zGLguq{S=*D6AOG%OyZYmYw}0{Y_S@h6#rC2$dm8Xt`HJ4wOar@_Lr{Bf_m;Z$frILlC~WO04e18VR&SMXJZ@ zX;0$(8I$OARB*Ve+u$u+&vt*c;&kn0Pd}nU_=Tfa)sZ93V25XLLy0iUuTU zg-;8qR|BE^d#Nkc>jW^2U_w&Yh%jo6A*0QLM)QEqW}#{#6>)fCb?`>Jao%?v#f58# z4mFfc!$3E`BRG53dlNN&6%8(WICVV^Fg1YE?9F}HpLq7L8?`lT3)9ms$5 zl9sB730685zwx(%7S0A|D_tU}O-$GV=%kaGO9)t|R~q%O)D4O4hP0mEkuwMg70SV; z=v0PighFLBrs2-3OX>wT8oyNzW+WhWRok9IkAR~Rp5C*x%4mm%bwQjU3M)`>j8VXO zfOdr*4mMHaQ)Rda)9XP55{&SQ0mVdr+lTd}24R#~=Y$1dNx*)L6&<849qpz@mq*2P z5-EcKp5d2?{ZeW-#)Owrqw%(|sim{RJ4u#O?&IoV1i<>9@vy@H2oB|d%v5gO#+t$b zwsCX?8ep!x>E_T&t!4FIlMaxpZF~Fl{AJ$XrM&}9rLtA1;bJos-XcT}GlxH5(WaRP zjh+573}e9jRj{o9F=C+}g~-PA|rx}{yLbm#fdXS1~T^6S4QPp{1@JGz+jbYR?_ z!(W^>fdeUH-{jV0ap#NTsO@iF-}zX|D#!3Dot=+)?O}uvZS?+VKsP`~)7cO{_P~ge z5zjFtlaDKS^-di-Y{gGiO}It-yRiEnPDk+~4~u59b9rACbjI`68O*Q%nFpgo5D`9A zi5Yy<8J4h|4M}EUJZb_anUmw(c~)(6sE9*hGNzybs+fSgg84b*)LFK`!c=R*M#6^N zB&e>BTP#$B_7<+R~QvHNh|1cV7S7t+^`u|HDWgGq2v(4=z`y91Vb zT34)n)u6m}+%~IF3Sm$112CZ)+`D(bDiz=eqsPrBO!rbFFjGz_^x%O$=KVAx%ZBY< zLPTUO&h=4$vmwp)v+XaM>IM7-P-b@0_sLL6G zBn`z4R@J--*e=y1s7Py7JY<#RZne3p!~o)lI=AJ(EWT<0IE2zCIP3mG&~Y7T(!GzD z`hPldP9JLdZKV2+EaHwE7@KeinZ@Dm4G1D!Fifa7$5GS8x*;JEM^TG-^KLs_rQ6qo zF5bjb5=nSbwEWC>qc30l4l0=Ex5xP&a+m*=fBxV3?mvh) zulxV)zy18=(eeJUy;(kZ>wACZUvd1CuYYwpg{9^N+s#($BvCgI{`c zd6_J@71u(2q4F^UJb}y`U7ODv8pr`>J$=xDjgD9dWf|Zjug(k%?U0?FXzAjekmQ9d zH!Ka#Gq566xejt0ar;yFt$!9@+5=K$CBR{UJde14gz4vh(5~Ni}W`@8AJv;;*heBq1& z&_jbt8S3Pv_G`q3XVl8}MFB8zR_^@CLB1b7NRi~&X1$ZR3Qj67V++r5^NFSu_F=B( zORk<}#rD+l`PSl<+@zo;hk{90OsytGTkh{(mW;ZSM6i%k3w%U~+T8+~QOMi&x zb_5DF&WvIJs{!~1eT4KF%Pkj@h;WUwqe+j4$PwD4OvLOxhqLJ%I7TE2M9DG(61sXV zLDs#$JjS~_7a3@;ek;+{nmOM(Jgoc^u4cy&iU39Y7O_4%I%WR7hp(T??e<3~A_?i;UnX z6Sjb~VoGr5{st{v!l^~?NVzksnBdH&+bI_n1_WRzBOSJYOZ9@fLjdYt^3HeF?@vPR zGtMKLl(`}+?vfbbiG9J-6ZLOMC*9J6$clP&diQ(z9y7MBVB~Gl>8>MFoQ{T1W+33& zsBJ^)sOeS}kOwNMBT_A1g*KAAXX(HjyQnx3Fxto#M9W}1J-IxJ9wiWiql#&Cl+ zdK|KB6_pV!IyrAsUI^({s*>FLpq z2ezp6e0s-N#k_C$@N_`?PEi2E1fq#0-fdUUU4JKAJiu5;YxFfZoJU&49gT>qI(>lc zH*kx_qEzI~ZYq<@giZzu@ZxZqlvtv@y=&`K=s8F*>+vO( z7T9Ne!T|RuD~$PWv{QYSuHnxK|V7lo4K~)hZZ9zDV`9Rk?Qg zTylXU!J89qg0-STy1MCTJO}7tOXULX6)Wf|;83&x8Fh7}p;17}aRTQ!g6BmZ74_pfGC|qTdw8`h-`)i!fc)3VE_?yA!J3VLk zzRimQvdp#>IV2WZB?i?ZViP&RBJfC15YJK<)76{H+Ps}hiW-vI>bJ9mByz^4?t*!N z&|r~>c_Wi@m3pG9NT3@kkl%1jcv-@Z_<|J_!h*SJX-XaiF-oLhk{#Ekple_nsbwMg zdT?(NpNVcRr1sMLHlLdb+I47?=uT{wIs>yybZ^*JZP}-SV17JEWyQ3#iUDmxUPPOu z$+dWnG$c<@gF&j|bgyv4glTpJDLJ5eI<*#MON<*Theil7v@I%F1bT}RF}gd}RR~1b ze07MhJyc*_I3YF)c#(y2;aa7+Lp7UuZL52An?)r=aog5~UI45rT^L)7))Y8efoujn z7keyBHQowT>FzZlbwPs}?G^`QTf|XCL^VrLGvSc4lvo_bO+;d_s6ho>A3+EZE+0pD zm5AHabX%BCPnWKl2D*+kNHT z?W1e|j(z8~+5pbYoOpL{1DQ_=@`k|CvAX`S5Gg*KquO?o#Cc`Y+A@^v|^l zJb_$LUYx)NQ87oX>Z__l3#{N2@ost&?D&iGkG`<$w~P)&nt~h1X}H6;zjM=?{LJtE z*8PjC@BPMGA>%59QvufQ1$3dF=N%qR5!{`lZBVC&kw4M{)&_~)uB^rZnY*vcDT}do zm@??hMuRy83Kl~!L}df7kQ?AoXf?gSmXSU?k;!w1+FEhR5*q6r2d_t;AbgDO8m07C zKzu`}m{yozjm|Rc9%h+ell9j9X3U6)b|5`dL%hf42!-tLhUF8tJvz6XqisS+5D3S2 zB@4ANTOcV6Q1YT!rN(IpXG}^L<6|_DLMq_2^{jE>ji$}lAQj!T?iDN+xY8KNfB{=? z|0ukgA+)ZIxj|NBz$Tb>MN$(=MFTP?Y?Tg#fYHzmG!N*xjO;row8Jp^EH8=}2l0-< zm8QM*u2+NeEVQmgeOh3Qeb%YpwbvHNg4H3$@2DF3gLKRQv@Ax&S_JFFx#<88qjCTr zwd_hmqTc}tm9>-88M>e()?sKglL}l}%9k-c6M$1#ND_%GYJ43aMItmBA61ZeSfB~v zGq#g3k_i{AGeSY!dI1C|>;PZ-LqhsU6mE2LN)dNJlU5<NgPz^5 zq(y|aPcZ-&f$y(MavS*@f?2!)Ry~rE!Fe|oWOECGjL^`ETayssLEPCSJf?Blig|Tu zlxZ-WHayO#iXzZa&UxdJ{ZW-t*YV0{#B*dga`~M71)-mM9l%EPse(^pZi2>Y3wsx~@`|Wysy$l85Q$R!ShFoHO zs;(w(ubk;ZL=6kZY`lgj?RF0S&29G3ja46|6$FOA@H0a`@b)LX?S%@EN|z*rGK!A| z6FwOFTyC#aB!+R1SPx>LyvhN^9JX8p8Rnt{k5nrH-TruL!nUE=61ihWG{^T<`=Et{^aZDP^uCw7uUYjG&drWG)VV}X>1Lx1w#XCAXS8@jzJ8~ zfBVN39UEeucbSwR{`~(?JKR`dN_g~BdiR4NvG#TSaY#Ikk z!!whe;;-L-@U!~tYAs*?i6_5&SN_qz_m}Kn{uB2}Pv_^zm=}q4z)Y<@Wo( zc-%1iyD#vs`$yyR@8*B>=lq{}BY&`|xNMm3NTHrYe+YzU%rcXf73s4c=P!e{?C8S$G`P1W_)lKSqHx!h8fUc z=r9QrM7o^{Kx?ckJgp60JntcCIB6^B%rlCEO`whgf}?X3M!~(~1ApyHSRv`$cC$l) z&dOQvvf&rv{h$2cAMn5Xmw)8#^vs7@2-??t$Z-4&98=rgr@ozm% z25O2S2d&cAPB>PD4m$0$QUx4i1k#l=Dv=$u8X98g>?^Sn{J^%FmM$__Nlc>jS1?8M zrmX~=s_u^wVe_5aRB@_4HPvd*wVX@2m6s-VoUX6)d|l!yJ~!!wiW*)k=SNsudhJ5Qa!aZn{&QGDr};&ekF zD`N}y zrJOey2(Z@Si;aMfwR2=rCIXOJBwdeEJXl|ztHa0gVAjbcg%?PzCN6bwXt0RYIT{zbhwtfLO*m8C&y)iP z#ZtY2xcmqc8GK!66I#S>@e}p(6iA@y1picyfyB6qz!q#yPxc;ZMkNv;Y1d^>GW_ep z#%x{8YCsz$#;~F)g7B>7=LSh43h|+f2%JQ;tg0a`pzTEx9<8tyP5brL+4A~|Y8Z%_ zOy-fGm!@#<+`e#F8+Cjk=i*wi7ikT*?lFnd6!+Ha+6o`iO^S8%*b`Dg12;BgV@cgB zw#==2k}dZdUSb0pYHicDCzn_>go@S%yA;3|c%bT0n|JRJ$1KjLz8H~Kh8f! zWC-SmrM~gv+2Qo^dspu+2q%+fVxX<1UR`+c4*QAP)7gbOedA$8KW(wlTpW4{R$Ta( zF$~=TC^1MwrzEi)*LTKkI*<$fT&W!^HLX}^CC=7Ug+p|&2wva!`x5|HV}rNC5VCm# zHq&Xc0d+x2bOv~FH1r%@=hYlfO8fsUK+vUYthuH<|V6VYUR{fXu07xN?%RZDa?WA~%Fw`B4h7RC1(h&XBjtrD0#X19n1wi^+9 z$8B`q@bsv=?7}RL^CqPN&4Y3TImL)zrrl@>FAiSsF`uPe83HEyl~ACoMB?k_m!_X= zshRDAXOT(Q$ML)i`CxLWx@!(uXLI@ywV@<41#Y9Lmjjfkbn#x|21`A=G9O(}gbzgk zSc!>^;@1_$aL;J)6dg}uy){3ZG-vHvucdiu*vi(5gEGGsbMs0&Q*>9?Cb~H_7xU&t zL>02+972>@q_v&5o$8%?mFR8=8eDb~3|3odA|evpxvm)x2p*z0Q_%zwmt)!f^eS~sHsA|^~()@U&}eK6`hnkFe>nmnjRMW({9;wn8}@!NuKMTBMc-MyoL zWPBUcF}&S6tUbtZRt?2Y9vH;G(?^DUe0Aq@lh1|IUp2q?)%fDWdidDqbbJ1Zzv_)| zNcqP9?w8*C+kWhWwAmXUzWK#(|M@@s&Y%CY`JW8P$HTw#?SIA7KX==%@8XM_^sRG! ztkO{5jOVXUp0qp$7UTvP`~@FaE(}H|$rwoez%>t3Yk%FJo|bd``uFC~{sv_C;nhc< zJAdi(PhT#dJpIA5oxUpfFC=PC7nBn8%s_u^-6PH*FSXc+;I!{)y(cBcW+d9vV7Ro3 zcVi4^;1le>ba5+P3X#5S_{i|f`(M1r5AcmgfBM(15&!Bx@n^%oW&ZM&1JhY%FB;kj zQ|kQ{9i{6QeL-rDTA`UMx9d^K&W>_FQgpaTtAlI0h$VTEH!}J`w$@U2Ap6v1tXP#DjTRlQ}J4*-?m`jH3 z2B7Omd{j=@sG3Kp4vaqeC0pxt_)!oH*ul?mf+#{kn&idAm;?P``4O_gNN|qFEMI8Q z$3PZ60|aB3LlQe^?g{)z;vZ6FKcH3YGvKf@qXe;AWy%3*40dN5IuKpC&*h1q6NTu?+Zp9q#?bk85Rpxmds5uS5w!zTFI4h|Z4%!@y#uUe zL)b7SdKhQ})KR7&7px03fvQY*tkxU8z&f1$^i@MSB!ow5ci`z@T%$t>pyI`Bbf{qs zsEQ0ok|D2Q6&ggY;L?ADjq3(EKMcn9yseTb)eDWiAf-|94I^C}fQT9OU}ed0hhD^A z@5I!o%?b@yYVB@Vn7|;8l2M6F3ylQOv70(%_5}1VWYu=mbb5Mxeh%|}JUF~+;A={Aj{E>x?P%6t4d5&rm7YKS zfp_PKIFwQayH0U+35^-I8$1rb*oX;~Hfn+uAOYH=WNqz{1WWKeg!Y&h&V>jozFK=K zQ|3K8Ng_4!K1?d?*e3yc%nxqvRMC8B`_^DOAOOO4t_Gn}2n6@xRY!FTlOjnCQi_mh z9X9N4F%RCNrzjBt-<5lqB&apChAF8+P!Nvh&71g2qlGiJ$GptMGQ>r%#e+zD5I5jG zvH}upm2^T@@oFZ1Og3Ms1*O^|t;yyRRGSicXfED1X_L%B{o3Rn0;X4rNHEbLQZ3wf z^p-gLvAHPailJq-dxYd|((d?_F1@+Ha8HPSXK|qdoh9$XPGmJXo_tCkl9v^($g07q z`#O%QFLvw&mA;^JfR%epS9ttcG?KRt8v+EDSqg%<3aJ~)8Z3vGHtH!fV z+1B7h|4R&Ln}k(h5F+4pAt_uzWS0PKvX6LN zVELvps|UEcMwceOGZ(b`XqzH=YhsHs=?&>lrAk%$T+SW~V(_$iP&5-?yO5U&cEW0i zG;gn)qv3u<5DyB{N=Pp)UJQXtmkVHdCBOng`HF0HffS8WR@V^7W?-$F$huihc{X=z zrInhqyUcBoRvqH14p9wstk7l%5r8^OlxfGCOW1rwY-t`KL|CV45-0K&C{8YLS6HQh zX%WtDV3u$nqo^U27()t{0!xZWP1>TsM&1#|Ctg(84#`NtJH!&6#u^{E!#M0|PPi#z zW3UyX#*@+IW=xm*0FV(>ig2nvlhAFWaNaIPv?!k#etf?FmrlP42|s8zy`-@_p56T& zf93Trp#E?F-d{WXZC^auhoArD-QWE3_gwwq)5}#~|CL{V8~;H2-M`m9Uh1PixBQL2 zXL}lEVr|JuhUpIG4^#x8Y3H&K8N5B{%o4I8R{h|+@BSO{5Bm>2hX!=1YSela+l1_pZckI;0Gp-K28h`BNZ`T5RIq)}7n0T> z-WkmYPoe<^mllFKr<}<>@Tc$Z-fJ&D+Jr)0LNs7^ETh`W1)GrMNRZ+z?Z zANk4m?#gH0`y?Z^5%y)90Fw=vY{No^A}QU|FRf!?H^QVe6S=YQ#c3ujR66%uypINO z60v;W2~FMqroc8>xydy(K4vd!0xuBjq;Al8aulBNOwcqnmguV3>8%r-^%6!%NZ^^ zYvS&;iRrwoKz;u18zL58uA4xvVhKn&!Pvr~>(FTqvO?}F6nHWbXK4`JPYPh7b9j4_ z{YVsc*6L7IxuHhkJ#R$D44xxL0@arpP~{Y;!=j6D#RT{$bsE|4Q7-YrI>S1Uq0h(K z7$Xiim5AkK%nc3q-aed`H-2fq|NH-FhM^NgIz%nca0xJov?+E;B-*AcCVh*D)EEFr z3=o`Cm*ntp#RUOr5gZ*&G4}Upr^ct~Jm>;JB!s&XEQ| zo`L~UgjD)mK@)Uf@vT!cEA256fh%p$YdU9bkdOjvfJrx=k-FB~XaaHW_Z1Y1v$8oe zhxIZHfWZ-`D#IXzNv9l;ips()uFxa)Y>?Y4_!)8si#eCNw z#l4A|*C73lQGh|*+eQgXgSeYYm_-^7q*fcuReGac7r#E1w_bjHI6wc!>tB1m+gm_@ z56g69!bqnoGQWWJ+o&|`G{AsY;s8zyxzbOL8TiRtym7*&9ivvc5}epN2L_>tGb^Ty z>jyg91AsCa)MILlq$wKocB-#0yPHL~5KD6R_MNNnEI%rGJU;r3W*h7#U%d?1KUfa0 zAJcSix!Pf?{@!u<5FPHK8s>Md z%cJ?j>%htn)`CR$Daloc^`)FNJdNSk&v$=zUxLmzTa9?*!#hnMFOPScp!ElL>HXtr zITPNXaE|1tmZBScE#d;q`@if_{+Y*ZfoE)rY*GtWnnt*OQ@=M|{jp~$pToL(X>C7m zUwLD>W_F%?0rDJv?;CGDdM?lI-5+C>!<_MF@m|Tx59GD$_NeNdKXy6QgN72k{??25 z{{3pkehdIxLq*s_K200+(QE08KmX;^Q=6ND6b=$Gog{pOZFNaI!&#c+sluBs1~bVkoOp*o7D?X$Ceax?ax2aJ zwuD!t~BmQAZxRkVn@RZSDjq-`~3sJXS+idc(j3L&cKsn*=8dUIv;ycUR9 z%sEb4Hgi}lE^v~cB=^+XA{ODb6cg7-8blJrG7Q=p5LGA1_f~^@(BRh0O|y~AkdmKr z_dnRTs@3(q(i_j!+l+7g|h;*aM5&1Sn1wgbOhlG=q>WyeY zcAtFax9souJ^oQ#7c4X6lAIYGbH;d@Nps}TE0v)Uo~vl$F31p^ z8~)Kh1z)^rM0ulEpTKRT5OfwW>-AiGVcfx*>|{6cQB1-FG4PEUTTJihxzWc0-^u<#k391=1_ z#HY6T!NhZ<%bp?I)-Vr@{b-pu%h+QQAdrv&&=~{VOcKOJ9oXC`J2N283rkEg$Tl~6 zbS56-8UTcKa}iU8_^uXrM@QFG)RtdvXa?KF%-aT-GK={v6ZoE7n^yq&BBd|l)**{# zK7?G}^kF0Px0?joaXcX*2yQ0+>EOFi@{96FjuQi1 z0U|J)8e34y$ftC3uae=IS#D){G3fG}P+Qo65kh!beuR z`Gw`e4fX7rVUy%Ri}$GobnG|oh>kbz(8j>r5=^Pz0fC7)yA=-GGEAlxIJ}YzELI34 zRRMyFiEm^+l28F@r=2EGFXr-LeiX7!H{U7uUzB%#KF(*;e{fCeGK(wVLAOUUSghSk z>#D6#aE`x3CVjiSKMKL7-D3=1{C~%}0(qW>?u91kbF#H?xSsyV~c9dY_n$mi?Dot^zO^) z97Z@7Q0B5G=%4!D*UNhSg)gP*5hupIb~#3A%yTlh30_Y6*>jZ5Jo=vtuSw9qOzLmA ze6_t3kl#l7(@o;e-xQgvN<-Oaymj5!0v@%eNzhuht!-1f5AyLofBC(bW+_wmde8xl zso|44edGA%SFiT>kI3h-5Ai06d5Ne|gJa!!P5#C6v{anwGWgDZHb5U5_CrEFekwuy z_N8o9#9>cO_qPA7fP(s(*CxwZ;L9a^LS2;z*s5@;<#5|qEH$Nh3^H2=N7#dA1&t7MP3jxw-MI31N z(a%^nt&S8C@BOsG3&NEw2Z@b!qN)^^l-(Pv?i|}A*m(+TA`Y}Vj8B-vZ$fj(xp@#o zCBj%)d!N~N60*p&9?h+U)P&9>7i(3l7G*fop`s>UMVy%f9>Q?rD=8x>5Kwf*_~5ebfQ;fnc-007Jvkw%_X-w3ayP!I_89S?OB~coQ2|8-glbC} z;2)!e%_D;U9P$V3y}vnr>)ZBZ1*hQnsG=d9n#g(k7yZnWKlk7MXSa{a_kQN*&OiOv zt~dJm^D6f4$3OAA;F|@U4Vnc?4)x}!Pz46d8(doRFiW@+%MySjc&%a9cOX9r z`S|DS2Y>p7J+rXwbZz?Pqy1OUUw-nPH@^FsIaS4L%FI)hiGIybiiqU9lD~7_g7lCR z=mHWXWyf2`&JueKY@TXk(~HDVzB8BK`sE2HdU)&Gf9RL~iof-zUVQyW4~G}$I=%Oe z!~1_EZGYu!Z#==*pFP@z*bK2)V94H_CjKm@5?)$Z8`oOMtSYcs%S=MOd&9k1@p@28 z0>bFEU8wi;pppa&UQ6NnMsq_wx+Qt@8aHx-(-&p4&*1u<;!wR)7}>;{A}x61Hf9aY>S{U(ZjL+K&Y6?1rx9Ua4PiN zZUakiKoYrjsQ8Kd1yI4sq0qg1Q~$`vxzc~00XShEVLSjEfHRMQEi@P|+!)v>fYxiC zO>zh91fK7o1HNGAkfE_AT!?3OAUOFFP~-N303y19o-Ww>5zg5^VSEh2FKDQ+Ao;Sb zkKTHMzw52zHh+AD81;9(|E25ie9*8uCWPIEwq_{wV|#q8jci9^nCQ8F^@wpodq_H9 z)IrrR07l-cGp8(o$=&L}+WY8C#aRJ0%mVDNV3;UA;LrfgF~D&iBuN@z=uDMnh-}gc z7mSGwB_6X2eC!84{T7#82U~fV;NtP00e^+UxhXdmp2F?hm3#O`!(;y{`D&ODxdw_u z^}$!tlL3`KVH7|XsPb0QQC_Nzkr_!dlyE4Bi5#WHdp=;WAY?&g5^J&cUnTPInG8WKH|sBXQY_ z6vqd_583xA1lFnDUQe~{#bLz>I_@T~1KZ{nB?V}qqr{=c&RqD~38i|Dia17xa&FKO z^ND!ACPZI4(eTZRAdGgfW!{eY#tEVmRP);;Da9)e%;nK;m0cplUPm^qDLip?SxIIU z?Q4*{$+G7>F_j!Hp}rs9fEvbf->#J|kn zB*cnIIOl>f0p9cpMPSH>NKJ(&7b3stB#Ur@McA zKj$Ao+KVU-Gx8Pu4r}z=qwIll?I)4>1K*wf_@;u)!f2?UvLUzN=QHxXvZOKbHbv5R zq7*+~;k=21?)fwJu6aTEz>gmEk!S)S$>3$MsuoO}fUKj4K274lHVRv~iV8~&I&;#@ zLCU_S?gtUYM1SP=IY)rM<~WOgPy9O`?g^xufrx0LgKn`NkVR4*rh?s3>Ki`2 zy<%7Ii%!=|Dg@4CZ%e>g-C%ohN4p1H&P~WkCAi0O7x0>@iY42s$|CuB&?+*S7fH8h zH=UG){p==>jQ+&bS+{nw`yjR@+Kl?i81MQT{MIo5|`oz5s$OFKdR-v zZEZWJG?hdLoY|&OO+h5rjSH)IEv>AmImDm{MV+i*UdnQ|rW({aK8bPJVkV|-bFUG? ze4Q4RT|Q5eLP$}VpW#7WMZ9O@;4ku#S12Qfs2dv(?1F}_SrR=4JSY`umvyXDm%w_t zmM~I|7&pdm+4V2k8*gGM2%icqxT|Qy)$nFP0{lwGwM&7@uS_5k(S9=<5rx2{R z^UcL}2=J@`q%c&{fTYgXc48c-?f~R}n|n3i%-=u8Pb{?hWIeaT)9uOC8s?A7zvv@- z$ezWt)TOfi1(jn~Z)O^REou&O~l z>+)E{u|v{4P4J8Bsygo_V;3T4E=9OYV>fMPQN!>5S^46ZCaX~})h(6N)v~<(Yu}e2 zPq)*qeIZx)2OrHhg5Mpl7RNETsO)_274KTyJlk~s&!4V z1$#3+N%N2FiZEZ+ivo`#T6pt$y+-{r=|^3{$J=~W+Lh1y*FUS zaMC(xzb~D%WWK*F zUb}tc=c3CFDwMoKC?S~*x3_Ol5OL-3USYf}56m1s=fLa2#}z2OH>!PFDWG`-@@`lZ z=5+;tkRX!i2p6lJtVdW@!vKU${c`HIsTS_AD)+H@P+#NDNxRyLj>#aybpuW*mC zB$n6d=^arZC8{UgN4-9+Pfzdd)@R4ZkMHue32IXBrK3=StbAz2s~@|>m`vaXIT7NY zAdU{07sT-DDMwatl#x}(k!AFpsCRVR-znn)Y3GES&Dew^Y z00ahXq_Ed};o`xyrJSnqBxvgOd?!tB^#xh#4FT zq$Ugf(5`?GS=tNa1Fmk4)Hsc4`@&HgMB&<97ZY3>s5Z#z?mQIk69IB_6ob@H0U6l0 z*n;?kMwLQDG8I0EO_%E zAz>@sE8~je95s2~EFCKiK^4VrwQY4-9nHnOoogTv2+ecdVlCHFliO|F4+pr4+xBWI zYi(Ppi%k2>kYoyJ%Ar{`4dOns(LA&&f_=#M?YPzrX;#2gs}c${$O@_oRAJ^oBY4;V z@_vVTcXO^|BU<-xhw3ie7DOGgHOe0NcD?$$+gJak z;oConk3P|>72!e|+QaQ_4rhD(mTdL#TGlIIiehnHUBzRNG6|X!Z2()`61FT+fW=!4 zlY31)my~s@u~0fpo%o15-TmEJ%TuD0;mQB(Yp+e_r*hZ?+pe_`k3qydOqd-sCpwQZ zn^$&Fl&aZC!v9~jOu1nGGf9hujl3T;4hW&UF0N??w1_8Cxv zR#CXsmVe?g)A-_dp5=Iz}5Cq!<@DhXphqpA#DOz^Oos&+dMf@8tk+A`|%c5`39k`C+RCs%3J`|bSE z!S=iO+T$3+x6RBwL{q`bx6!Ka=H^xuX+QbaWS4xcUd<0lUVaAVc>UVeBJaN@yNpuX zRy;=JAkB5ks?ydXENF=ow7IMWF`BpK?p~)UU+;83FUN(oNgX+C)kWoM4)K1yugz67 z1<}xA^rY+k66Yi?9tB(Ts90B=R_u44Lfe|CikWjpp_!0f7<2Y1Ni!-kKvXx90We$8 z_p_CjlR|VW=8@f2*_|rHRH8NuQ%p*a($XOCpx~uY8X63uQ{*^SQAy3omE0F2$Q|f#8#uC8X*!3sB<@8Du`GE^`suLiP}>KFN(hP_K2YP z>MB5I!O9z|!y;)Usq{!2c^5!%L;(ZCkl@3jf=8fHqvVk^14My9YsW(`oE#j1XF(aa zP&PIk4sd&Mm=ZUj?%?hqgjIUeP5@;Dg-!uff(PH+h)O}hti$fbFZ43g3b`a{M=CSk zkb(q*xR-FDbyjLAYZ`I408hOPhy#hq9y#<#r~_%lK$~)%@@{WPLaKu$Rk|HIl2R_3 zD7Pd65qO9!4%)Ne_>Q1EfTK-&oiaptm6~LWI0&0}_z*Ul3Jvh#=ra9YhtSg#+rgonIE8l7y(%w6&5a+3oVS z#q)IL5~iXPe0A3tvbm68)G4cL2p)sbBmks9Knc(3rf7(2)Z{PD{0nYJ2gFvwaEUlo z=M`9;t_HcxF+re%v6$#kE`5B9hrB=+WY1WP9t@sGiWBhn;|m{P{t?{0j`Im=L7+Cm z^aY5*7*KY`mN_39e}ZU0Ot4M@#+k%DN_2y&H=rdX-q_W>LIaet)`yb=Q3nnb#m%#P z!DuSz*JG69&rI6sFxN0>CNFjYdM^9$}k%0Gi9@R=hY1_ycM#)_pD1 z3*gqVNlqkarKpDi)r&ei5V?sHaTFX@6 zrbLK6~FewWapyG<~gPiq_%X(l0&&G?q0GYX)f;PO=FPKQr39bX%4=RdWgOi z7eNYXZBVJ#8TV5@ZU`YH71bq46PYKOuBY2#EvhV4f}&=e<~T>4LaT-#zM64qCUJ0s zs_cSH(Tkyw!zIUApg~O>^k&p!v3(>Ksd`pn%@mI+Dl^rETAR+%qXL-tMr#Tl1S(Qm z5@9$-gcxp#3{h71ti+B7-`a5sHmPo{i8xiRDaRDtEe~FHV67lFR}=~ATQz}(kf@xr zW}>3t8o)JK0BprVkf@Wvn=L^-1u0dDuYwtJY|U0=4lfZE*+ry)W6@pAq|!Uj(U*!{ zgt;$O_9@c<@HzV0^c=le$U%cbVlQKn0{{dWkDVae0z7J(RGWd2?^2t`Kt!o;rL{oN zu?kTsjuhzsK`$la0NoNPs5!Q+xLnQE)SZ%A&OtqKGGAq1cc>%g^9+?fnfbuZ=gmQEt&0jT>pf3^ z@kVVhl*Z3Cg%aRbx=|r}tLmEFREN#aJGS!onsYQ#1k z7={odcj~BSz~}T%pjoYJ(%??=5cU(bTW5n)wE^uFPWoUlL2x0z9K^a(D~uJiQEbsL z60!yHl1$SdReRzQW%R?9dXN-xSLc%VFi7%;Byapd94C%Of{uy@^aQJk*n?6+V{z<> zw$dq9H{LfyaUIXn0Pk08{8A5MI9L_k{&g1_iT z8fupMmE?}N&`zo>WlN<36QqslqKJbSu%QQ8DeWPFUFGA)Mk9E)w_VYqq~cMq0Cz{^ zAX9?ZF;V!tItq{+$=n0VAuLJC${1+G7~h=9baKgI+G1?xlUX>Q;jomJTHzi;u$Vk0 zw3^LSWLZ~)gn8#Niv&zlJsgBf49tQC+qQMev6QJbhs-g#`#R62**%0vJ&}@JhmS^ug1XNo;m$BpGGgMi8N)_o zOv?!l?~{$qNaYCBx}wCyf$c686=Deiok+umwTa7YdG({8+8pnqKvVjUfqzQg`qTQx zPueFxr7z!*^@y}0WHeDX#Vo#y={~_DLPl8WSB?l#O6moGjYYFd>W+#Og-VEcz!-5O zI7lVLg)>K85?tuN7n~XGW6m4es7OO2inG{<^a1$(5Woy;pa=u%7=5WCbJLO-8`czf z1pi~7;E#S^uOfi*K(I7-#;~OV$(wVkCiuO(xl5}mFpYO`)<2Ze=K3+9$YCu$XW z!t>+$5ByVS%@X4*fM`QJ+#lck%fI~mcYW#p&N*xxj?*ODjKHPYXUGx3-4C*Dzzc`M z=mXmAb%`R?;nd9(ni#r@$Q2w^qDPC>>$QZvmgZ{_ytEu8W}tY3Y!zsj1s<@f6n8gK zK8YBr%2fzq<9t7w83euv+HHeNY_=uIA$>+#lk+23tSZ_rTI-t zN#PdlYVhP>-UlF8MO_+pDI~cQ$j!m@%GVYhm?e;CvOdY{eaY9^A4Mysi~G6wP1>GJ z^9N^{()KuO^SqfyG5+}Gq^zmi94t;9AyQBSunS_Y=Qi)>dyr^yQqAhc8r_4`p# z%BVJ1V3L}$R}TlZ>UJ_*MNBGLT9D983!GKAv{Rw`n$%Ok(NSG)q6@a_o+Ucu?0A$s z2$tpzIPl?=^Ygyw)m-OTip>I{$I+V!qjS;0BIsf@1&63qM{DLOz`r3LP(blfq)C&MPA# z(HHAWQx#QcoM&Dv%2-zD6A2^U?|^HE&8U=s)|`pT zJ%nwO5SNc21JWI&saSI)AYPUrKBLzr)Bz}g3!Um&>QISy6oF9LMVSg;wF7mCfUU47 zY!RS62&eNHCoy7Zoy#FQ4a0`wqCln+U;UCqVwL(IN275!c@NPQc^ew1544h^JKqCF zB{-oU2T8dC0;ve&c_57vRCpr=sY5$4^hSN%C$ZuK5kzORcxa&4ZQw*5V&LuRxM42< zkb)#Ad`2<;b`InK1PZ7)MzoIhq1D`Yt^`QxSw~|y0rjFG6ncMThBLv3GYOT5_LBKH z!_%Y<6G#iwu&%J!xzSFo~I5N?gNfHiF`I0afXLyL<5STxee4-Hf&rg zSAm1M$Yj*+j?IQs^JJ8KeTa&)AytVJY2v|GwS$N$b~I~?`P{exLi1b~0k!e*~H59CygcYGV3e)8Z(6Fp*0Yfnf72+tu)b}Rs1m!$h z-BUq5K{Bo<+*j0wrkE;(!IndoT|zSqtIi)L>2E+YMDnbiq8ytxS2ft;jPKx)n+pw^x%ZxKZ-#J1mc4(!8hhg5u?1+tbkss{}zh7dq$W2Fk9S9_>Z z6l*X~rJm>P^!{RR*ou@%c9Y~-r+99bRNH<^LH{4*{a36sTejs7{l=UtB6IKknR8B^ zs=8&azukSi|J@CA;~Ve26%rtf5C{o`Kp>uwctzq7o_Ik5;hpf_d*7CJ*PFWKkNeEt znGtKvfshC-rS?6ys_4c~ohs!QJ2En2#aeSsGv=5`2n_22O5qHuD7@q>bTPScL4y@?M!H*UHQO z2tk8FzyR1FCdv)O;HD|E4vl6Ya23-6WU*F~S?GQW_h6Is=Wg|KcZAZI&4g6R_yP&+5qiGd3 zHZf4xqb>lPk)U=cS0M}Jo$9bbh%P{ZLj{8>sY+wGU5yFZrXXP14_#g;6a~Y;jw%Rg z3H2cC7K+MomYO7JS^%@1!=bT=Rdq3uZIuVyr(Qw@O?nMmjH{K{sYFdul(1BG44uHR zBZ=5ya9!lg`)&dxYyrbr5UC_uRES1j!@F!)=pC2CsH{`yUVRIPSr$XxtG`$(++Ri; z^j+0NNJ6WJO*8_fScK?TTlij}mq|b`_eBqzW0lwBqH!Oj`T*Qdib{2>5vj4comE3y zh=5ag(Jqe>YXj3mQFSUQ@CpG>c1kNUSUMD(LP~jof+m1rRsl5SLxjRc&=6)Hg}s_q zxO<2t6`@f@SGB0%Iv{i|QD})K0*&2Q;f!$~73!<%J{?6F5d`O?3PNk-q5=IJK_%hP z+N6-dKrcd^0;FMt!vuW|M00bumT<7|wlr4BX0wGu2!Iea20-L6BEY6Cp^$r7x|A!p zAZ${S9Oy-!LhOEOvS`C07?imB02G!3kpeVq0jz-8nmB2MGz{pzEdgRP7y?2xA!vmm z=2qcu1uaz9>M1zRhrlC(G6AWO5WU+OvVlE8G?Bp;I(i_`B?ndX;=G806owTA6+)y? z=>TqjBDy_nKTJ12(-Y!8wDf+h9;6>hMaLihkyb@gMkM?Td0AJ7i_8{P=^)b_)m-- zi8MwELJUo7Nr6Qd)WqY?Z5yU-4lWX!*twAa8K5TxF&l%za(iA(0!#=* z1%76h2oPe9n3$6AgfGQuh$N1pPBkzTEa*M8GR|lRW(;1Q-Kkm8N8t}>DI zAI1GZ4|-=i*{@Qgnk;Dmuro6`Mn*9!E@euLz|&g6Ou@7TC73@}Y+N@3Sbyw5#*IU= zCnHcH2oa%(n}*GT;1KZ>#ik090t$7x*ml{dT*t#=3W`Gn13J;6FwoJ4&-4@7h$|jQ z3`0>cL>t^MoENINO}^aRyv=4B0v8|k%AQK&r%YuQ$bZds~A&dlv^8i?6Ib{b0 zPG!>MZV5+X)C49shuIbxLJreIz;a{^HM2?BIA|EFLxIJ8vchA<|Kak{ZxrW!eEp;A z*Yond`FI}9pS5G?=#BP`q7KyXSB+ZHxj6gRY%GGL;t-CNU;s*$T`sKkJU>@0&m zFpUKsq?2;79Tww(xTK1>BcyhTagvI$kVD=b%|miS?Wj2n#yvSamgq%7CVfLqbXVfL zP#{Tmu996{4tn8D{VbPh0(2)<7LyyYEJ(%(7nNuM!$Tm(Srx2T00%qaRixbmPy_HT z45!daoI}HlN%29m#SbqzjIK`X-EmbGm7tb;?W;Ow;1#Uw0MJ;eeJYY5tu#6^F^GY8`bw0r>G+9dMfSBYoPokG5ZDI{CP;PA5+M4(km0))cI)Zk-mC7Uob}MkG zubF#cfRim#4{MiPLoH7>yL{Kkpk>_kz1N%T((YQE+x0rCkLBf}yQZgM03)TSvN8f3 z0#0inu?vZ8X?LM$f%yv ziq1g5h-n-f0s;&xybxt}=WoUR-}n7D8||O2>58r%jE)S!Vy2}~6dG%QvT zVuKLUbUkeddLuyz8$8($j8vKdGT~X}GQ&RtArN2~04m~4ePxuq3t(872nc(VSLqb` zfcUKs<6+|~iA#iF6Ts4U?Y&=&SO9PhM#-jJ9*iel2m4;5_uAPW`QUZFOg!4yDK7{p zrD3QGnsz})5R$ZQ*L`pOQ9t-${&wUUQzz4j|x-#oyl?JAsA1_MyB zXnzz>_S5JKXkiJ0?|tud`QLNBtH^K()!oS=FI$OR78g_rpZi`$0C;quttY@^04U7C zs=hA6*5!#m^Yi+%UmHKV>VN+%2m{g3~T zKV0vY^>R&9x|wwXS~D;Pfb9u?WkBN?ln62;5e*5~oNNd>HY22 z)jArmQg_r2DK=yLpn8ldys9@yRp7)>hEx+?Bw&GL>{xiEN+(%GAfG{~k&DRiSq?^_ z(s~cOu8nG(uP%{isx+`g-BV|J$&F=TVQ}LrfNb(DDzQ<4 z@mb>x4G*~y_#b`xL5csVzR`aK7n5Q|sT~*|;3d{j2rn{hMaZpb4DB{)r;u7B7F~Pj zO&9n+x_FFeB1B*1H5|$!Q@bg#zf@+%Zr`bONeoT+yAFf0hI)c&r-)=L7_MM@6?9~lz(ENcAA5m= zp2)}`lu(mU)@BMgs36A?xPc0QVMfq|k~rp-Q!)}E2x<@k2@rxKEj$or42Eeo#h)Y- zV19dx1MIzy^oWn!_TbQ_* z8d-~h6l)^0W;eJ8}?EK>`9DiLeu^dAZ|z9tZlA zB_RQFXNWzx1I*JP#403e&;vml3KiC^QDv&IiQ*)>aIghyKupk1XNs7DQP5$gOpS^Y zY|Z|l>o{9`Sai%)ai{oU*Wdg>y+VKO59-}ppFdJNv%SYo0JVNHVtmRNL;gUhAW*x!BbrS0R5`ri5#umY$d%qc@KMmK1HofT#8>3Z<@pGN)uC+_V8 zm#1!g&Bp8ErHNeXEU|2bz3a|EgwSFGLd1vg8aygZq|Q6*@BY$P!d$%ycfGoo$98wff^l*sSvC!yxalW4LSJ&mA`zyjri~dyJ)K}h&8q50l z_WiHk`|-<{g$?3< z!}e2`#Tw{dHo4+%{g^EJ4)4)!nglvgNozzW0vCu13e*@!BuTIf83%$Wdaw#F^c45x zMuAs$h>a-rKs)P(13l0dT@n{dP-nKYB<>4;r0W3{tp&p>!qmV!waWL%sAy0NGVVx# z25dMw%bm&ySmmRN4xtO|_5jFaEV>$!<)zA8ihK`APeOE&J5g)_u9lJ} zcAx-aB|ExOpu_rU!o_&<-Wd-%iQ2uHzkhwbmp0Ij77@t0Z~oy~@mL*{y6ZR?fr~8_ z#X78HSQ$!i=YtiRzayVN+uK8KA2fn8%kH!u7gm!ZR$c9F_+_K+VsG5N@zUhf(kMAD zJf5@)AurtTdS4#FN2lz=+rnsCt$Ywqu3{Uo*J;tdfXSx)u?F0&u{Y;?1N)*yM5th_ zR4RsBV?#@mOK-$|Q$kbmIaCq227Zx5p4pEfDza#SVape=@5p(VlzM_fD4i^5-A3ZhT$wi zJQ)stuWDo=Q(^}N92=qxF|FhhHZ;mmL{LJyG2&%LP@)wrC@8Q9Ph`K6GCjZqNc6-3 za7yZk0o!ax`ekC4m?);E*=Z?^f+e^Xk#ra$4I&Xo!Ap+`ct#WeEvEzKqGVgXa!$4; zmt_c+#woNL%zzNjWcoi8z%UjK1REG)_L#$vLKnT=AxTieo$iGv=l7(o|j7+}6!H0x&+!~tle8v#PbB18aY2Z<_3 z8?Av+1)~KlYtZdTp!XVDxNk_faZc{EZppAyN+I8!vSql+V*vKHi7yix%`8(fffA~Ks_VMGd zNndGB9U3@!yZ;maQv2upqw{mS0l3RT&EWMa&L8rS4%86D1rM$ZfC?J|ne!8ZIAgdD z3bZ50LP5KO;>`(8v?L8z2=>H*MZgkJv?mOYD`hYtTB4$iMFu)n^;Q^iN1fIH_M(yn z1Qg50Wk-!VF@iowu^!&w2ozvcSTiJM(+dS51eI_SuU--)q`B;<2(z1~@$|UoE8pwo z-MIgdh|!3o57Ze!cxrI9n;4soU?hfSa&Qq#aN5~B9$0YPBq0LtY-U}Fz`(#y_yk40 zC-141T>y7aa4}*(3kWl-J;kI}Hz8tBVrztPLgK-i=)~p1wzD*{C`b{V?Sw_!sf7~D z6(v0oAn2$eU{JrBF|PAo!%jcqzcS32v8tkcNxHNZK?%| z>d-*6!O|HG3xWk)SmbUO(R6q9r(%a?V-L<3GuR%~MBB;T?{^}&Pk;*8i6@6uXDG&% z4!^^_47-&mD2QOOJ;014jhPl+7#SNNK}JxrkbNk~z+lk|3Drzsnu(;B=~ksN0mien zq6r(z0uWRgkdbjw!+-^O{5(h!B808L;Lt&LEntWgWp)ulp_z?@47#xtAd!nARl_7D zDiDlh86XD8R4@VtI?UN9swmlkisSBy$xcHF0)%Ev8X!y*n4ajcRtHERq)8%!tOGXF z{2b{Ffr|hIHUtreX_&Y(LAT}B1kce zxs_?o=KLq!2*M1{FuY9^1Od@G4N=0_fxBX2J-1GKU-r2rwmdjIE3X5J3(~ zH@E-^fo>l%j6fob9^8WOG1#D+VGI$$5Y`O=AoI@IgB2PSU=Ur$y%i+}C=alQv7tc_ zg#{)|B_W3A4eQyf3`hhR(EMu#E!b{|W^_jB?RySmnaVhh_;s;EJIQ)a)J1Y7M66C- zY^YQG*X`He>#u(9J2!RV%Yj)Lv-dImyjM^-bMdX#&xgO$J?D4Q0SUbno%j?NyZ2_n zJ3B3`Tc*6kasT9ZJa--HC;gutGf3{b=CRn zAa$8vZds}BhZzrf*9}e|tSs=Z-91+&P0Oy`c-{A`0Ovi$22FwsW^pk8c8Ru714<^d z<)IuN$v+hs1=uwQ2%$-OW7T4#fHsmSX4lp(o{JAzO-LQt*g509lod<|ll|GD~!-`%&g_>3cozUiKUQunWdqyy1MHZ%qWs z3X1>G^fFX$I@k=}PSl zmj37Ee2S-7wu!RQ$^zdSWQR!hFjZj>emiPG)zbgEdX^H@*1q4JT~meY=VkcRA|QpJtO|5>=8C|rw@ZVA%?xHuQ zF|=C#>8*|Hl$xBIlU@|)*?6V1`MEHoTk_*0{B=iHRYZ8Q#rU4U0p$RKO_WQf$_^cw zBVTNqR%wul0MbNo-$3<42>gFCO?iI%WIUcKSMp@djcMsf6p8<{x=KN3c0xP@V>@SG zBboH|$qBGC1J8NzM@LwBwr~0Yo=EPU7j*`ZZ^73yak`!<#roV`j8+-`jZVumAKl!f zanR$gL%o>w#||7`-oa26a55d0c@ZISP6SH*4AN;Twb+~^m6I{I4w=4s)dM3I0Il=U z`I`YwbkMFJ2pB0*Inw;>qvwNvox6Vj9~0ONr6$u{&L`BaoB0MakW`3Daqsc1IX^ywC|1k80{7;lk-+u_0WxNw`PaIjj4l&QY%6JkWm{-YDi^96$nqGy zvBvDEBV}V5_$;i8c(^Nx3}vrc-*@c(7=e!n!$JChI`NJxUIf_EZ1ySGr*wrng%wE|U#IWn7Yo z96m+d-}APAheiTq@9N`!2lxHg@#VnJMY9f>d85^A-_^f9UVQv#=6HzG(Ei3(L_#O; zlGRGqgPDPZKA@aJ>nc_6xb77x>}qM7SUky2e5zUa-Y#eFd`F~E6K=INge#Bn})YmFC0ka+u4i9{bSa|R=?fl*|rMyo5(6W%@dsjPQr4?$`UO;_R3|gjxW0ZJ4o68 zW-kq3Xk{-XZMxJP_nGU&zt|6VgX^3;J_|8SImD!(Li;|(`&yabhtx8fpjsaFrPl9N zL4{;JGFryQ8bGhKq<2CdjXVjfX5-S+sWp5amMG5Zs{xg%3WwktH0Ch%>MisH23y|9 zgd<&f8n{_N_~>VxFLO3O9eV_|?(T!Q_0MCH6VeHF<;*38J{O>4 zA^)FDeb{fz>m>vzXR`sp-`cmcCOe_Wq*li{)YA3Nn4W|s;ak!-O?##V5{ zye=PZKAuKWx*2n+#B8=)Rmi2)iuyrZ1Ntpv)$>l^+kW{uh|#E3-fev< z1lUr&-&D@@(dr6|lwzm)G#zzh1B&dw(bNz^NjYto_x!dm0AMK8@z}Cf#{t!b!#-lx$*wSZrfCG7d@hkqva{W$#R=h)FemrcJ~(Ca%@7v3!& z`@?zu?y2t?@-x-G;H!k$)?45-lKXLvvcOi^*;)HAR8rI+P#tin#rkGCOBQar{|Ce6A@^ZX%6rBZ z9r=Q%u}?^Y#)OLl;N?%ZN*0_I_4I=|>`FeHueB+Ts#lH<2mlAqqH&M&4nCqs_-8A=9GCnp1P(4FnYZv|fh{PqxJ6fRq3JL9_W zoytd=DJYH;tits}O_qC$Ec%=N!pE3mY%8{pY79?mgCL4@j^VHOao8qfI31N-t$>AX ziICrjgG7Smm4X2XOd)QQaTxesF0p-mf%=Ghw$nf;(;CoupYNH1qO@2A>EIgra?zFJ zM5J3$;S{1C<{nUk%JQJ<8U7+TW$SIE1cQP3DBgt{B^hgAd_GhiQ-{q3Xv)F3^d(ds z8q-;Sudoj_sd1UwTP4DR`y+{SE)=We1F8w34>DI^tm78K^ecgUXtd=NLpt-Xc6r(g zK**v%SPKdakVv6fqjPwm*H%!YnnA4Pa{IRbfQZ8iH0;c--D7UGuC@IgWC}@XKSn^% z3_cIUQ9>lv8ajEQ-NW}0^bgf=30R|`4$E^kxjip~-Nm3?|0F(GWOeqm0q!I zkjQNniz!Tk2(5}4*FhX5aPcZHY>QnGRU0c*j^i}P6Poe#2!zPysPmMCSHFihZR zn=Y0`y&KI$`}f{$Y<}yL_K?mBC8?TqPlxx{h?SvTHbv)NxnEXm{J?;zJPXYiQ+`ID z{rcnE+nrD)mEumtH@lw?ybr1HiE^}-3HW#+DS9y{?w8v>iQdb1yy}oG)iY-#o8Nyw z`LE}%>0i(PY9TOy-^0MOl(Xo#0BDGuFl5K6TsgbK#A^=wwZ4R=)s{n@5Akn2k!!&l=1?$VP+##qIp8DBjQ&CX`#nCghKU?v6)NSUM2jU276c(Qqm(~&<-rUGHpNfy z@Bh`_j?x9_uF~65$0*Ufv+|ESy!1^SRlgsO7_sU&-ju-3S*} zwsS=NaQ~HBBL`gQw~#w<@&6u#;^76<^uE+@KxUskpOc^W!}hcmy9}n@$E*uW9V}>+ z5e>L**6Z5?ARIn{&F)XnxfB$aVAZ`Amd`1ui4)cJFcTAM^)5)bm=S>c{np)t##Pht zubkfx))+*X$t>@5l$sZIcJyR;kgb!Qkg(gvrCG0*6nC!V*q?<0VV!(qeuM3_zK$n* zrM1*WGsc;^qt>8)`5c^ej`BBZhs9;CxcBs*ng;4FnU4LnPHLZ66EX#z`N!6^721De zAnO^27#)-p6?Qrf%3yz3ayWH&)`O%+H}M0w!8SuxEN|(IH*z|&vHSx3M@M6yO{Rz? zy=bHBh+B7LxP+oh*G(cV-PVx(J9pBMM(9o;O~#jJfBHmc(O?7kyn*X*=_0b!oPX@) zwU|#ekL&^aoYN&N3^0x8@38ME1~ViEKR_@WHQ!V_F=`$iFgtPP{63!j{&dn|Q|46i zdrz;QqphMFN62ws{@WV*pnPN3P>aa^IuR^K4);xl?kWAsp;BdO*K8=48V{RZuWZWV zgKz^HcLb*Mr6maOMsz}%1m&EKH1rt1x;KIS`N*VYVMY*%Amr-1OjwhTmdByt9>=i& zS;8>}6+bWA=lfUzRl#*pm}zG?JORcPrp}Kw+H~(TJUB=C^bw#{b9gtqYQsvE#`GS% zwmQ@}#eC@RM(4%1$iPq0!)y7Jszz7MF>cD4DW+D$X%ERxGSDfu1_+HbM^APx63uB2 z?i25D=%wLUz$ub3BRJi;w5L}2`0EWJe&+^N>w8h?Zoz4ZNG7lW96p&dgR?hmuj~Y- z9z%D_wm>mygEIg5q(j3Fp1Cw!1L4gT&_!+9l@<`P^&*#s%)67Ge7^;1G{+f-vj-Ur zxP2U(!9fq?rKg0yGuGRYocQv0#%{ew+PjU`)$UdMYb*hKznPx-O*5$AA8N`1<1GYGbc2 z6BiTy9Nj$d=bhSDquY3#hlGnZS$?4rG4?wo?rDnb)f1`bVkFCB$f%gbuzSKqS^v z*;8qL&njxufd1%6Q2&j@`fP{z{UX22*oMk&9O+QyBtjd{dt~xT{!DEZ5q)h(s1zu7 zxX&$FHXt6}pQpJBk+(Kvm}ieQ1;CF7#BAo*m$mfCDkg*#yR6zWL<92LiI~!yJ6E!3 z&R9(ug08GG59kmt)+hJ-QTmPhiC8=95ax9=8-ZuHR4s@E6P!pFS+%z5UBV1hZwIk{@I$Cw{ATvt+Ieew0+rK5qfb5e#RgyOC3}Eg^s_+=9-Ty-!^mdf8Q< zkJZfZ4t}B7WwbD^S(fsR*uZ5C(Bu$m7b-?O<%-u2+F2UdtbKsDy#ITp3)}|o*zXl2}x{On##To=0#7tA5jUSBp@PH;}~enwX}Y=rCetwg@HXYts1I37$pqV7KXzUH_t?}OFK?H zUI6dJ;To+2Qy;<^oe3NRFPmRAz1Ozf){)y^!%24kr&E(IV@-8^fr-_-K7oyW&k^XlN z8}q-jrJpAuHS0W9VsM=3Gw`AVaR1z(^Lvvj+h{CeVdC~CPz;E$J+s#SMyV1f5;9*K z2v(G^L*}1>)%^}G>Ajx#KH-pmvwWs%Z{S`ZAAo9O)|aSI4u2aIwq&8|NdA7?fG9%N zc$Ou9sB=#nP9_!yv|j|Jo6SSlHW0Br;;v^d;`yKP0 zGYee1D{ z-?TgAPi@}*{P@3=zdo=2{q=99oyo47bIS&||NFG@^sj5b4?jr0*O$jKS4wixNp52B zBvnrN!26+-dD%Vjp26*p-Nb@i&zlG<=xv%WJeRp+ zN#)EZ>^k@a4>3KE?gr_{mE?ISE-*_&ERXNG=csDnRBdn$w5n|?o_Z|ga<2H<~`QEd1F0@1_pt{!N|mCCEp7zj*8F)xE#waz=m4`Oeme4Ut}u*R68u zuaQpxU$6AVyzJL9?0O0!u)338XFTepKIA>9=q1;EQVE*89g{QL?A2}SqZF;1F_LrG zyjct8(r63UBj2m$Ot5Woyi}3~NgBYLs{>;Bmjy-W@G$J7hSi$)CLUd1xW7k7+WMm` z?pZ*tnB;2s0R#Mcl}nYp1zACP)b7-sO+yH>lT83Zr2;>!1FH=ql1}SyA4UdBHN>!8 z^PW4Ag210yij0PAEkBA{0s-k7PI&>~s5^c$J9YK^sdFEChIUr&{hjmmPG*O2znM$K zZcazxt)>IWXOxxi4ThRnYhxP+9c5R}D2DGCq+u=v#1b~B0&3#2ocQ%A zYrT1h1aR7KJVB>T+vVglufBty-tP*j%|~}g6DfSwErYs|#I@CbZL~7j_~z&wcPYf? zq^GMyc^K8_f)Xoc6sU6_Ve{$3m`a(_t;5rf`B^ozEFi0-PMD4K8xB5D99{KtGWv>q z#6$}P_9o7D)}7j$QB?a#`X-3lmL)yct{yL=neeG2Ve-zruzUw*NG4<@tpmc=@i?y@ zb?m|2*O{&#+uO>c_zZK&zsS%Fku5~{gW&CwlX?lJNb?=NL9#8ERUm3pMbkgW&kO z(yfoD6V*RH{JWx_glZLVbcFE4?1Dg5e@8k%7085MN*wH>LbBM}s?-0=dUB_#)~gs@ zXKw=TYE(7TE$ug40z~D9C^hTfWo(+H53Wr^7l`Ebvkb0nqPTuyHt~ha>yiNx`KvY(;;$eqp$$Mng*$JXu$e8#FSIE(7#> z8NfV*ZvjN^t9Ck3kiQnM_=eviEiwX`B(SAaeJ~S~5zF)=2yu3Z57jHlO95AxcvEXt zR?N;z1Q7gg-$i~F)6m8H6@NSBk{hz=tU-%g>W^hAEJw`Me0WkgVgR)Ynv zk5cx{UHv(?&voCQi;JQ-*~y&=)BOn-oJviMr8wjPN1Coiq9uKXiysZQOE8g$Uo&i5h88&&`aUm1CA;?h7#qeE z56f7~^Mq>G2*RGyg3qVktXI#<0q)4~k8K1kD(woFju`=HZmgPaK!N7r6-hc*s}oRZ z;>hc{Oi;=Bl76%&Vg*kH_wKD(cT>j2e0#mIj+j|cV9DCKX6sk7GNKm?7bz}Kp$a|#yqaez~ zywGl?-e}$YK`$nvLy)sQir*}58kfPNA=G^y{nlAOBrqdABHC`pEeVJ4&Qy@k z8Mu;d%jZvMkWy3PPXzgPi8`?1`@b{z6wpC9hrd;b{oayPY0 z)48EsMM%|tcgis4bCj}G43>AWBzh9OZ$3Hjj`%7+ko!vea@~N_i{*=ICds%Kc*_=p z)?^jDDZ$}#G=9(^?;L=?`GqsJzlSdvaM9wTL&RB<(2+qZoVIL*TI&{6&oJfKFs>dc z7&hKhi15lhfoHAme<^6IaWa$#Kug^z@kR%IVN!{h%ajrFZQxuHGHXzYM6AW_?u%W) z*+tmkzP1gOH@b%FU$G>A5tmr!r64*sX}j-##CmAoXTcK@v)ym_aA2?m%4$n2f+JluYzUsb2#is{@-)t^NuXFR*L`qz-n zmCojW{z}Z3=5x2{zZejtz(?nXN86LQZ0F`sMMp@TgkZT|lf_kxx-0 z&Wo+;@zJsOc57xzU-Vk8`^oO1CUn^M93hpJ$~FwP4`GW2>-$_(H$;Z%7YL-TR?nbt&jMu5^dF^U<)>V3i01sO&4)hi(G zvTU(^;fz5dM4gC@M3aAk(%dyty<;@2flZ>I<=tiLz{BRD&Jv|M>BBfWgDy zVTr4K&d@2KFQb)Y(!DzB^Gq$GMPa`W$+qN95!G_!+0DJNx}Cc-3|>$v+2np9hZ|A< z0$vo^abvp(LE1P4Y%+lpmYS`zYm{ilo3i(hp~x)Qu2;;rj|}7j0N8Jrmd=@8`0V02c zR}qqVHu3QGjtgvi0_9xEJG-R5jJKDL-i$VEm|v;qUMsS5V7~ey`knKsd$j1*ZHc{o zTHR<|VylzPldAS>X7A6L>G%PixiIUH>NpQ9Wpjs*AcQ~3e<(v78Y*QHq`Vp7Gst z`(yYdqYU%PE_a&SH;O;gy^~4h>IhSAwK^-G5bI&CFUwv`eqULRvJS55&p2+xBL;ca zuP(e}hYNpr|E+my&((XQPX;y4zPRiic~A8figW93N@W0ij?=X(pR}0sg$f`ge`ls0 zn*ZHycWZA|zhZXHt-IT8TWb9mG|tPG!$EIep7+jP4(>YI4@>)cCW(Hzt;@W*N=v-5 zeEE9zFC@C(F-IN5^6joQWR}W%VFO?)sT{B8Su{11pK2}iRI)a< zv^RN7CN0tonGiO$>g$ofANV2H!=5j{nTvKNT7C=FA`4lLh*%<%^eN%)(l^E7i zTq-!G_e@yPSn9mV_EVm+Y|2(ZJR)ZdCA=D3*Iiw>b7QaclV#^ic;8xs5&MF<_|}w1 z=1t{S!NidjXtK+c(mUx7hz>smc93YM>XQPEfSk+^C&MC05S2|Hc}L!@IeN?G-Lt}+ zw}ZPjuJM=PMJvqb>lMJVU|eDks1nqlv3ySzt)pHuYU<@9xkIT`+LUY6E@WC^p@QS; zQWL#bygvpMX){bJOb?HC*|s?>H7B`aPKYUm*VKF+Q3cr@ZOgb_pNw)F^}CM9BA1d% z%hP!MikA3Twl`4%NJ|CDB9W}}d&w@7w24Q6V(%BO&ZBHP#2YsRe9++<-<6;puFHF& zS#p!50ilV_0@f9*0V$So__k-KfjqS+#=kAQWc4H6>y8=z%Q75s*64-ZP4}6}CIV1o z1(!)%R)*o@mhx9Qtbb?vK3=`G#hWAi_uNdGa4^Aggz)7#*={onfSR<#`*Rv%yRBu*yB`EFVgPXn#C za%~S`bFC%x0MceC0ieh2v%@0ha`i`%a6Gme9yDJCj5vtba&`p0N{I}H-v?3aA&4)<5#9X^v*siwQ{8yWWL3qHWL8W3BVy^jeFgX18fZM!yC42 z(RQGuw=V+VC)d0AMW>3r|g;FCq>`K7BKN7hfh zsV&(V)nYj+KfU7>9E4fgkA2_GQ3ixK3vPb$acHkvoei)~LG!M4&xxkut5gQlME-9M zwpf$XfP+|1mC!b2DHoEu#0F;rc-HxGz`Xf`Q42Dv#d1nQ6@V#1(mUY48*sS=ZPJ_e{o2Mu#-XbR zg0`L{Cw@h-9KR^&b4iPF*|6nXdH8`)BTD-xl(i9-sneT^oypcn^)ofHh=Wtjn(RdL zIW3*Y{V}@~XT0^s2K|5joOvaabfIHoYwJ_^*-TPZNw(jvZK&qe&F0CV2Cc@PZtJl% zeMy9YuJg3aiIl^ZI}-0nYoHoi#-(=Vu#0v;xw`o=tj{JA$0Cj11EZK=eCT&l5~xyfD@UBO~ftU0F%3NiwM_Y#@%5Q zso+-4tMOaMKvI|%U8dfWSOj%shOtnV)f}!C9W%VCW9!ZoiHA8?{gHA;D3X4iSRKYb zmG=3CNG!K7m3GD_5ebPOPr_xBkw)-Rp;Ozoop@gCXrYN!J%HI83XoUdksbir6?^FZ zQP4rKtsjwPm+QO1nVTdX`cM;MN$DMg_IEj8SXeT zm-lew#&;E0g!o2V$UV(qwOyPv{fECjWX-QW`+U0>@5gEpz=ME(QFY-m`8v)xbg#H3 zv;J))c~1nM7Is3HgoL`;qtG19rLQWGGcU>2&R9gL96A zv&3TB?={e-sucCY#nlDGGpTvu$dxdw+cSE6R0pGs@=^7X5!s^h6L8DeELyK=6Q0T< zi5G{n5Y})+4Ud_wR-b5ew)mE5fP zwc)JU`^nG9WSSCtTHSeMv#9&(JYrP^~tLh16Or;AUu8D5NhN7sNieSnYgV#-_NF|VZ7Jxqx zJr#M^+2|rp=-L0;d~cXKFX>10wC;3=jzG^|yen(@*`}3_Wp;-3;x=5CMp%@%>c8GH zx~p@r(IdrD_K~*yd(S#Z(nr%op-s2dCI*}terP!26j2rpmsUu{%V5IaZR1A*40lbc zpOx>gY5&d(R`zCln@#Q|u!uHE;YZOt{V*%d&xCX)K*2kmKUSBA+wrMxR3$DdwPI4< zc^puN{cIBo`D9X7#V|d<)#mp`Zql4M$eD-;+dbpoLI4aN5@`*RGe32zG&1x$=m2nj@%iC>o0fKlo~<=>MlUJfzxGm@1+8YhznCQ(TZzGwH$k;D|w7)1u{Y>`ll~{ zbu4pR{OB7`y7Nv;pn9!3AJf3_bLH&M0HPjkX=D#RAnVKyCvGB--)&#d?}MLyPYFiu za2M8ewHL4k_SV&;8!^zD&&-?g71z&3?KS99x=367_(!1ym($O$fn+gzYI;ljbaZuB zdB$PN=mC+4lVkdcel&zfx)+9Z!Q~6`n5JW#be2U~1Bp)}p@#XyI2mg7>M}SCr@i5b z2M>E})ly4QRotFE0~%HUMV6Mm{oor`)_!)9pxy5o0{^ zfKh@B)wMNEx-(+QNqe!_r_XDr$?)b1Vb3*CQX-t4PQ`;|Kos}Ec@^wGl4 zshf^#yeqZ~u?2A&UlPh@n!ct#=u9=cFQA%cp6>kI?qo>pMR^uPajZnD6&H&W{q+Pyqo1v{`o6Ol3{+%#wQwIpVtGB&I23fLV zWREi#HiA;K$a_59{V;%}^#_3Lhd0t6mG=4oF5@cZPWGetuwhF$uxpbhX6NPs3XA%* zb&6AwyTRdcs$c!?(B5q=uWFSIJb4plval5@7m7+@NlnVSd&K9bkL+H4+FD&^52Yp< zB^`k@S8T_ibT2kp|5#~zaQo*=fA@0>jjf)X0Th|j%2IZ@vB270C+=-$b5Al4C&@x= z=_Tz-yd^xGBe3!L^RRWW7#=V#s7Q8{?QR%J5JnadZT$x3_CSBvB|UtJ2p*@%tAk;l z>6rcT1eE#4(Q@-ipd${h3TOh*qlyD|I_BKg)-#$WQl*IvI3}Q;dLa6HP%L`q<}dB9 z`XiK82io`hGMT>3U%UgY~Jj)jpsn2!srjtD^$gVGKYmS zl|&qBJX+FjJ#2pGX5SibE%k9K5#R`_)+`JgxPQ z1`MDLlzX;TJs{``y`iqs6AoYp1!OEo%*d%rR`%yRGGo^phyl0P6u99BNN+#hY++D^ zWqo5Kr^m5vl5<#LE=?6au25v;UKgz`QtBPqUP5~sMc^b4<0bmcADwy!;Ft3_WH_b<9QYaZw=~ALJUtD!Ux>czdE-Uq zU!rkbLu#*B4tlAu8c9g#*nN4*5E<+2#$~zQHPpfqFFFe%9+DiTrZ;4rItEDvP234S zY4fgRTYl+xeDeFtgQ2nU19tKyQ5ABhv!xCnx*d*2%J4_Go+i`+BMA2Hc<7V+YE}R& zk;pNe0=&@4h`_=w6X?W(R@Eb2ziG!c9DjwMc&uZ8@5R%~2G8D4sEi9=jXrsW;l%UV zgUvNw4d;ILrR{wB^5?UHX5+AxwwTGCJ-1L;NNW8URKVg_Y}C*eC}y%XfINHwposF& z6%ZMy=es=8Y$X%h++TGPZclunmXH~GaDn8?SzCQAl&6+*OOa=MvX_;*erU8iE1kDF zmEur#kV*HGp4Q&D`*(9Z9kvKaFaP=W;ElN(XZdhx8jiFQKnt*Mlm?4nYM)Nq;PenP%79U;C6h(B*|$WRO1i}G44+iY^0AFZ6g#ybAbzG*FI6{Pkf z`Q{*67%-bLBW!g7chr=iI_-QS?3-KbChMwzE<~YB?b!o(l+`)Ia=j0d4BMcCvT7_B zN_9{85(XTnrye|3JL4fe%)B2WXxil+^H!z%QHAo;8t@pn9|2FFk5Eq+rbmDXxnbja zY!n#fSzMOrKqAP^&*kDT_s06kzZ8VLg*8}!WJLtP&Oes$ou|pyTe9&A6DXkb6XYM= z@p#yea+MSy(W6+G2AXPLfNfMkp;IiXeiM#IS_7d&(XvD0@*tqF zzadvr0^m5Tc1hT*^w@6xGBVOwClI!sOk@goNsG0GqB~i>?{lZB1RDpJ>pp-i|Fr#& zsC&+y0wNUxS<^z5B*_06%=g-TQSKN*~Mh(4k$KD{#+f{j(n zxX>8@eidR)sHSE{hZJ|`i#oYQ>#9iVZh>g$)60T7*g{U7duhIfI;{5z1d_RRXz|?( z;Mu}zlgs$_cY0xEs%Y`q7E*Uy;9Psi^+kw#oMDD+OVhVc22XqsXwR#sraaI#%y{{$ z>aVp|zm6U^`}6w9sp%BQ9tuEKDb;kLx(^TmBlr)|u`bFutrSq8%%rOG?#?+u+x^95 z{4F2gMXv%pZ;*7}faX5>1t3^13m(YdQrdm1f|LC9LBl~mlY{#{V~BD0QUa1}qfbGE zBE=Xz+mo&FXvfy^E1(4I6d+t#OXo>k9U%sVs^{+FM{|nK2gEIGxT+b=Q5e<0x8kCL z%7VdXf#W4Zm^Hui!&oBQQqL$bo69G&eLq@up0UI)t>?hH+T`^T#Vf8w4nh{dRor-F zL{dh6mLzuTgs8ZQ?pK#+T+}-qWA8BcpP%9}*&{oAdi#I1JedEf^kB@&q}o}xGbG!} z>ugoFv3=FonxaMnsngAFf@;Z&z3}QAJq;nwZ}SWu)=>Hux2~l-A^L`K$m1zlN3vn* z+>@%LP5F+vRr_;2g`6SqLbq*C3Q~qCf;5v}UveWFHk{3ppW4BOAq ziEAm@ck7+@yN7RmHV%cTJ=C#HHW&pRbZt8R)u6){62!t3SFCFrNGTc>AleSogMr|V z-UW54;?EC#v;7$?BK8a0Q9H*pl??3EwYrvd^UOm-8Kq{dtjfSvl3!g0)ntWq?JYMO zTTC%Rb8cRv2t~|v1w9D39PVc=68U62!M({qTzDB{LTJ8MB0FNUln-2QMeFkr=cG#z zkkisa0bEv135|(c6Ob~dH|=RlcOP;gmgtLY{4rN39tm~7R|`_NFypSf)I-&$?`MaX zqYD)~JON}55%f)eg^*EDRZXtVN0KCL`8%izt2kDfC@$;T2X4;7y3VVqUYa9QxgV-( zBujVkURFmuCR`e)cQGfqL@ksJgWVf0kl@;q&%IoZIU2Y%{J+dwJtM1gdFkf?;U1^k zoxCblpvR(B)VA%~Y>Fk|=Qxs4pT4V0QN}U<^t&)G0RK+;UMW@1-2nDN^J{{$Lq71# zYV?z3+{Ci%(fO|i2?ay;Cw+goZ;;=XJcE1L1*Kj!iIX`1YN^|xab|tK;})rc?jh9% zDX(aIs$%phfC%b=k+Mb&Is2#GXB`XaLS6P$I*l<~K_zOv-y3hs7;pm@C zKM4S~ZXw91fH<^whL(;8JjW@p%tjv1mj?0hiB_`WiLn!Y-(GM=T3Co7Kw&PKf zxPToNKA5&&V5o86EYmVW7Ou>5Q0Ue|^dZA0S;Kq8KzcAhl^l0Y^=XEOailwD($BIO zh#2Arps!p})k&(XU;T5;Tc69)z?FoT>J`lAp!WQQ9v53Ao=bZs=HMb35Ixh!0X?|2 z7xu7&j)Q5bnF{hIsJqju$SGa~dtO%uevt|oO~MM?IxB)ZjStfNqY{5 z)|q%MOEpRNk-B$hJB4>D^v-0X9Q*x%eA2cJ?6|uhF1cK&T@6wbY5?PQU9CvKK6U?j zXzEFl_fea#@hDbt*5QusZKPdL3XLES7L>Dxfc~l(eG^Uf-t}U2W*h%<)h?`yjAYri zK4OY{-s3FM=X|HSqk0rc^@>-sOI6F{wwHZ&<3fx^FMA@~AoHQ?lPR$;OqND4kaM-OZJZfC7+D+6F|yPhXR^%>{Yr$>qrSn_+x?BDqn`1XHU1YL zcXdgIXFKEcu`8X`N!#5M-77o)K}Am6hX2kq;dJbso|9ABRrCyR-xYm-a|v{^&NQXc zAdTXko)Zv`a)AqElmFKDu8U7mxt>l&&(uFOAu)Zj1Y|8+PY>fIeeMwxs|l!+fTa_a zyBq)kMB9Jg7WibR-`p*AtwzCxR~NtZxi~s<=TBY1gQoM57C2{jlVXhUmDG&p9(zk4 zUzQYXcsBu48o5vS-<8PFnbgp~K2*gjqM)ib7mrtlv?uSnn~=7Dm!T70RDaPMx5`T! z!nI(?Q2z$WE%opJyW9VE_Oa;9w;m^fOv$_3y78NiybP5fBKzlDMI+Sl8#{{^HpIC?_M8|%^2@}CG z8j@-OL@(T{F~{(5TxGVZ9}bdNTN|k4LbhGkwrT{woO;)sB^Rz~NtxYoDCqtzwczLHlJ}ksK!SAD0X3ubT7rY7 z1Ybr*Mc#WtUZ|q_|j4?Zpz4vM2f0sMos^A zG3PF4#z)q~*^vuD^@g{>O^2D!*H)%aM`C@pfot%K(p(UR*#*ZAl5*%Qq6ozt>RXpS z%7=g@cO^qsjYqWW@a<}#Q7pe)d^yzkDbqZnNw!6^q9}6l8!Dy$X}+^#wzlW99cR&J zz3)0ABBEm=~lUOi4#sbW>-hlEnvo(YvZx? zZg|Zz_$c#H_YR=PZXd8>#=P-`#1rn1GuPyfRvfhn?Wn*E)nY;LditibGG$^9n?Q~0 zQN=mYYsT|7e2-}42V+oJmyQ88q#VMsXK0l*a86`@2mZiI>}x){=4M76D@jSxScg8C z89CFP43Rh-in$?BB!iOa?1QL<(TTeJbqg|}twl$P zd^2sgm7fj6_T+HYI}j6n)1v&`bL=f=`6K(gI3onFuBAJ7s;g#d1}_*%jk}Hux*O83 ztdD3XX3w~Z9u_|T8j*Fg+L_!PJ?*n@lB~UaV&qq6DY1qDZsTc$U9T$EnrO?xo4{QG z=IhRSeAH`}>4mPMbp3y9wPhzE|I)M&H#=X_w`>JR+PxGBkM%Qgl#)6=7cN=7jnGd@Yha45UrX1Cx{Rm#>j!wni)U;9}o6H)*i6nEa z?^444gxHN}gq?eE|KgcIr3eV~%dF?lo6(*phB?)j|Bs?Gab&`M!1!)6!wfT5Z4ARO z_Yt+t(cE)Xu4vY8}cYAayxo&1qUhhHn|>ID9+u0Wa0B5r`(+4QlHt40bx=B%u*5 zrN4TU{1M{?M`a0*e-6oI4a-%CsYT38u_={;?dPn!;SxpRIQeu(IKP4GsGNsYX77lw z{?9SCLboi->Bqq6P#67m$mkG`)h$QV6;WFgIuY57pQL z7_!Ab7eI$BjmpSLXoE5#(@5cyoRC>NH_vWANPYh(OhEydu1A^%nXe5Tz&5WW5vHyx z3Wz5?l3J0V62AJ0n*M;9`tv9faa3d&eL2Z*UI)Sl*ae?mJbMl3hZ{fzPpp{5Wq?wq z0a#u9_!_2%?- z+hq$%e2tg_{}L2lw!QUCkggLCAe!LD0A)x44wto@o__s61Jp2a1-l&_>T#4O^?;ga z)&pD`jy!)ecn13fKR<6BQ6F~C4k+-ChkP~6l}$KU53*NOc9RYl^oF$RfG%**aN*dB zDcGCI$(pm=@7ED=h8(#?yo5aV!WjV4z=~IumDRb~ms+Y3d#u5#l2S^%C(+kTb1BSf z2Pl)uRfFL!`QDILC^paS=vQ%Rl|9r&j?G8(Q z>G{L+&a0aHT_z^#N%wOa(m^;l3m(ok4a>$;Z#yMy z$faCy@dLo?o7*yKDo?)cm3bC3^jU}-|598h>0@B{curH;-6vA|B?pDL4$rwqyQ^ao zWcG01O+8O4F7z7V;jW4juHLeJHfirGvekIxq^70fD~B`XDI88?SKt}d9#X#pOT_ir zd~@SIpA?4Zb0>|4Fwo2EC|VeD+Cnpdv1sV5NOyVqwYN zs~@9`C>q{big*#iqLXur)B>bp(*dJL{i-Ww7(_^B!B8U+r!d&&1=YJ0R)r*bX}I^o zF$JF?0{JI#Gy?%mx&zuHt%-TJd{7|b=YkspX6lmC!E_3aCht0%W)+s2@||aH>S@T* ztcCH)x`$x3?WC18sgHiztU+cb`GNCmj(1>!TvHDMiu+{Bvz8&!5|Ov@lM;rmCM6*| zP~_I>AGKv_QC^2O*#2BMhcIe9C zKBC4}0d2Uc!DX5#B4;FkPB7&qt12&T?bXS*Ft~R>ZTB*kN#m1waWrzTmsCGW?}fmm zDISVw3;WN5>N(RWE=Dm>b&zAs*9tYC>Q7EB?U`adl-qZ?$9r0j1S#Yv1xh<7hP~YH zN519%!nN=R+cbwz*-3l8S~YQ4`dM+d-qlhicfkYU=>FQ4xec}Q+lghp@^AZl7n;2+ z&O;I`5XWaFuW(atp5H=II!W(q=Iq>gBKiBZm3tX)pRW_l-#EM2DwZA!cz5=oX=)Pr z?RM=s&IN*QUF>>jM89?wDV#r_G?H*INtFivS-aJb{9E!y$Oq98=(UI zVljd_KVQFCP(PF-KV&P}>x?ay!H#AKL;R3cnSuTHtmsnmFgZs+Usy4c0w0zNI^$Rj zD(Pc`ac;3pdplR!`9i8lT-3X?=^S?&POMbax3t`2PhHlR{p63bcpPv|cT^#s6 zmYSUUMA-Ee-jG*nw!R~vQ8sN&Kqi$i&bymkTzIE~;a}@(phZ@idG1FWsO^^d;W3@s zjx$b5_ea)yo>(L@rDqeDCy%DVxyte{DHxC?M5R3Y_7fn$Il!xfYPp{> z4jq0H!nJdqh>p(ZwD@bNvBUts&L;1y9R(uIem1xq@X)E=p2uE38JTI{NuDpeIk^me zDU0Dzcww{A+2Lnt-qPhH6p&|U9In#h7cL_3 zc50T;$yjQn$_EOlCKrbkh$-d2U)7(CO|T@4Oq&JAa&!>ldcN6(*f4Q;rdWt8$1*FJ z$W~k?aLzN+0?&gxUr;I6FZHUY(ZbH5{;Yi*;6c{%ef=C+7g%848ys2f`%dA6(v-Z} z%h?F&vF^#>PEYKb~cmT}7JJ67Kce!kb%F&3^ zV>Y)k4-dYub_?_XN7l^$oE2V=w zR_31qQdJIKVi9dcOSH02JtS30vkWINWXoF*;-hmZS@-V1>*Dc{*!_IP=}T9Jh2mw@ z>dizQzg+-QJZip<3hnnJ%?tB%i87VpCq-v3Hwx2`D5}xGDE7P41lh#H@^` zX9IL#*_v}l(orrN*Ck4W>ev}CGu15u#|e@+xGAFd)VOOP?sXUiQ)MKT262#g4_(<7 zwf^KfKH>RCV5tvtHr$da*^*zDa!hJ*Q7ud^6C>{)MQ)KEI#5U?X~Hkf{hogKPV0L1 z^`{o=GuK0x#{XQ*u{{0!%YNxV_a-q0jg@Lqm3kGL>-}}O>d$1A%NN1HxuUF;<%wKl zd_5=ZnH+whDa9AGBV8I;c(}V2GSEs*DLD!%h1>2SJRT5%6o*#2&I7d|SYt;}Z>gj1 zay`aT@XJvE2&$-v?|LzfO^`Lt^3LA;swKh zPm1n%22Fi&U01S^w2Mdtg@@Me_I>hYsD0=qkpZrCaN-7g8_>szemv$&WHo*tCstV2 z|E3~(y2^ZqRsH~3kRPJS6Up{V1?Pfu6gWA3j|*lM&`1=brCfVAEHSrSs3063a)1eT z;^3U}x$)7dGdNlA2VD^dAVpK96g3SEv6W6fK%~uZH(fi{AHAPfRyXRhB}7<0PgYs^ ziQZd!Y4*pRKW}f%Z0cXz_2C(`Ay*hGd?vB13wPg^rq0n(!P_TIHEDH(z zUatzY{=}fp0z9Rwq1g|_Wi7Qh%j3Ek)l6puhmUs}cZ+qi zZCw#B!a%C%$WDd)7^;;cM6-7ZK=nv3ardGBxqTXzA$|pC{iGNY zvYwh!LY~4-WTlC~5Y}RRH&FUS{R3AkVa)rAB>d1I3R{lyGW{@Bq!70vY*fDJ>RBP1 z4s=iM`j$26cjogp1YPs9Q1R5X2ohRys#!6l{1PBU&kr#SHn@kdI8R|4V0YrwI%f#5 z2FlUTE3bX3ZI0y>h5BKK*@S+^0p|9i!}h!Lo1{tSV)3^!IR_GT*Ul{y4Ehgq|Ev8{ ztDhu?fPdiLSssT<8l0vF?HbY`s~(Fl#2B@Q>h>ztDhIbsR)3AkD!HD<| zFTF|~IZDH#auUs=g2bu)4GtG*zOIfD+{J$Tu5|wHdeo<#Cx84)PW|)r`;CKN);3=K zd;9P6mgC{t=8wbk*W?#CBS&G)7QK03=!bK}wcOZq*fnM&@Lrn|E_eJy;K$cJ z$*9vC8~aMM4&1c~b=o|)o-uG@@zhtDp1}hgq#%Y?&(0G=ywbr^@{_bN&Tj5|Vhrr0LKW0@0fMzEIQ7|;tW zs?t_XfGK`gBgs49%UJf!#}f6Nhj3$i00=@}xPBF3PE3u6tXQSpLzia#^b`^sod@lx zHqTnvp!jFXMKlQ~DKhztFw46tbgi%NhBlU+q8N9Q&cqx>;nsz>Of2-DJZROE=-iKm zkld0mlw(gX`ke2{Od2q|JSZ>HkL1%6je`8q^^O443O=Yjl;l)Nte8%~Ly+ z;sEU@TUU=Ayi?MuAEnO+9WdP16&W4$accX^T}!|IrJekfF?(lE;L%o1Fqj02-*odth*d@TpCM9<2yNBnO#+)#)kcuPHFN}<$&$vme1r^n71D+ghWgB00`U;v+m z($deA0Rzzw0RF%;0*IbyyFkAKYVre1$XwI1GuE=n?Q@cP^VtwFLw_M<|7mYF?F|NY zrEeVg#~0wCcjck%uCE7g|9^0P~hI+k)Qjs(GLQZ4<-qH;}-UKmrcgEMw93CmC z_)vLWLVlW#=#~I}Q#D*eCNHcZ@&+Hd9XieLZ#X#MIa1^QnuM zKm2#5H4%GF;h?4e>LTx@j%q5OCYW#IGAtQ(*09}k90B(-Tz<=F$?{TLZ!v(6ZQtx4xItf<7|Rx; zYO-QnXv|I;x3umbuM~a^?d$MZC}U$K4ih|ej925vd{xfrq_l(~Sz zt-oNv7D^?apCAAF*0%B?QeYwO0EC+d0!_5FO>&2)^$2RK6gxX$$JuEKg7VT@T`=D)~!@|QONY)qmOCMzdsh6-ljoIQMe8Z4` zu)Y`B8?p@`6M>rzAH4vA3M+boOOpFC4D$~w)GzzEw;i`P3Inpot=>ayfC~M74iZEv zs0$wK4mpRczrO@W3x6djBN@9hwjs6CP)t!{X|+ktx!EdhW7Uvc8LE7yjKa(?7vgL< zJsmP3A$Zy;H@!@uT!juoZJr5O`B%ACeBR8y*}3dPOEi^F3@oHa!0VvHIF!tL@9NBY zy)-jPC$AYNU8HW=F_q9p$r^^#`Ta0G2%KIp-9_^1E3`*=X;p(2=NZ?~4kIazl*LVfCRnHKMw;{tFa& zgd(3AI-TK)>fB;-x?+G@DGpa2?|a^#@nzqi{z;{~;~qA**LVH5{(fpx>FwFIsqKGf zy8cu)yz#m7^=W#trlD3uR4AC=p`f6s-EsF_rd4PuiejW$Qp^SUnQ(3+!tuSe4$b?x zo(SoE9vT}mlfz5 zzfJ&4vIq{P(8k(d&b?lgc$KT;RW-ND$S$O2fJfG-mRa`hYTS>eZsQ^|Vj^}jS37q< z`m&ruQ7@S3PS%W`wsfr!hsk?9OozS9cKw(HX+1L?HHLWYCAdTiUzywY@YP0+Yt^s* z?Y4irT&}R6M(Pbo{R-^0+gW}#TXx6xnyX0#mQTxDq*_GWkOe2?4}hkt8z{ph23r%X z3rMhwerAG{LNsl$1YYdN`LOvKjBNHRmq9p%zrU|gIN<%Tcbf@u`MrMWc<%yQS9&PU z_XSN0WM*o*uOQtm^HLWtO>5?CP9Dw&ZE>7`yP1f0Uy9td_(ibg2knF+mv{PQC4yx& z8}ghPty-BV_!!9sFc^mU0~8J_EcAb@$kd{$Z)ov`V~u1kc<}DEJ_~E^z2C2A4N1HC z(N2dJ!s249lA$*)_CGqUiYF!*91;cKzn`O39j7UK3&vfCKlS#>- zzjIn{S7cU<5^tAL>uAVE-;_c389KoWJ<7P^IQ_QwC4i%FDMJ7CMKM`#Xi+6EAMoeF z-Fw^U;brgc|8-W&<(_wU2K_qPJO2dFhZ{K+;7toL4A5 zN5he0HgjFimy47Hv}tur%l%v2{d@lMuQOZzp`O#9KEBELln<6OCTnQgHYV88kybS0faJ5NORH z_XECgqyvo1pHK{#oD-$!2G?Ef7bEy4zHIowYaGuF{2EJG%2MSUcM6V6 zSFu0YpME=c`QXec^tBY*_?>f84<7xv;kE1cZUfKl4tI9jof_B{O@45Xcl7=}rCmy; zUv&x33>|KScBdCm5<`em(=JL<)N4>{;Mlx~o( z#zMVc_`Qz@<)D6u!yEdacRhRB-gzHGF*AL6=UmbqyZzNdzupZg*bmQpZT_YMR ztNWfbNvphZuCuB>IOv#Gp)lw4!;>s2$Y75Q=Rr9??#VnU@gYNdQue^fy%RwJi+g=oiNsvFdT}`)z z&$cXpKZbYfV2oAw+)v%#vNec;muQskh&ZmT^?3bISRi#2y|qcw+3`y5u%+~Si<*zt zdoJ8Jm;5o0d$(v&b-ZE*RL((ZA%XZovwyZmW~W!5DFbfQUK$o(wwBw$yX4Gl#KD{b z+okn$Z_dp&+C_EQamP9U>egCtFQ?>4K@E@Cf!g|-9Q|N>)@HIa^}$K?gs_JfdjHNJ zYW;%Z?0}mS7Qt*d(5hNnalx|~+tJ&Jx);7RwPh1_-Ojw|PN+V#Z`@O2U6#Xi$pk6TjbP~3@9wObm0(8qosYU+AE~-80wHW7(!2>R?>_IT) zo{ztOuy0zz)r(6tzn~+DY2BXH6^5|slJC7TOXC!hd~<80IdZw@)EKL25Jjjv|K#=J zl2#T67-M#o%BX8y3RF+3_@wGd(eSb!6`g$<(Y5l}LT@zZ_IJlWO;_evv$;{a3SE$X zAU)Kw;5G~upd|nY%XLYr#(5n7sd4;VA0JYJvbSZ8Bx|KtJkKz{74s~{`nP|n*MV%U zP}}GR5A5UvO>;gj-H}`5(zFB6B(2nHPEgk>$LecHoio`3t<0(4ZS*8^kpb-)P7ZU$!1JGl%M?Pqh)@uhQ4FKw@QJrJ$(DK`2 zqt`*f4xGb)^etp`l(I}XYN!KMPmZh;l|yo&xEsO&4V*9K%xqDi9eS!y<@^_*Lj>x zmEnHtH=H`!YgRy-u|jDH8MbK6H&THDs7InIBSxu-%{?kS@|ApLscnt@eS4?<%vulZ z_k3fX__(AF*ll&#lXD6P>>Jd^Jh~mOWRG^uVAuKk-EAFEl;kHj z%h!H0Ouk0_gga|@FxBg}<3UEh^!W}S9X+5oGL5-=-}_U0AH0#d7+JIkzUVRiS?1Ha z)V9Y0i6D0tx0)FIB}59aRq}XxuL^=7+Pb;4xdJfYkPr|Ui&6NGywmB3M*lmsv%>cR zXxS+}NinW@0)IxvO$4^t=YyKJ(0_rEzjul2{OIa;#B4~xy{Gx4L18}g$-ps)Uols+ z0bkRe{Qw!Q&KlBiplz zB_SHUY}hEjY5qYQuqwR4tD-1M?QNM4+52g@qYSbya(v)Rwrj`IRjCr{Vhf@}CqME+k(lR)}9H^*ZzJblG7af=jd-W1Uyy(BkHI>(Kr) zum>HUD}D9K7Zjcp+&31xskGcWo+a=wtsJWmXQiK-G@|8`A+WibMQQKrClau_;yZji;s%?arJ)8wGrQso%=zi z`S`q3Ir%)Yhm(V=E ziXY?BgGz_!xGL!tk*f6S-|)7GKHi42cV-@XJMIaea5 zLhDqp&uo+XAiSM?@Tt<8M`Wc}<2a9cflc@Ar31yNMr z3X!y_^_(=#{b3-*y8a-XyD8?V>hbr`ss&l0qQ5QFkQbpn#z`+gwJ2#;xefoQr)B6ecO@;&wX_&HQd^SCxIL11_RQfz_scQmH;V07#}d|=*_~1?*Lpz-RVv; z1PWy;E#YK26L6q;b{$CRy{NAe)xJvwprC-c^4a5V+qcZq|GoXq`+EBQxj(Pp9DVCy zfB909%d^ia3i6u~f}lPao!A(G=~?!!=l04!cj-k*L$I=erVnkAHGs4$)l~pqlU=U) z!HYmsO4b z+eB~_LjSgqlGNVn=*42;qS%_(H60OtrcKTWUF1IaWSN{^I!@e$ z-TE&(Jh&ho8o)|e-yndJ-#6}Y4R@Bzf_PRD$tsrJ8e)#@PAxpjhY+1)U;5Y}Y@-4E zB_Sa%?W>r*;}xy|`6zfE^I-X~7gS~S&@+A3sHgt&A%#tQs|}sABMGUr#`2jH`j3>Q z;_#`62=tDE2moIV3bOxIx?-Wg%3QOL@&Tq*Qc$oE>!;UVU+&>9t!PO`r#Wm)VsHX$u+UJ491V`-cIAZ%c@qiIG+@*KNO;{PtN(yz9ay2 zPr{2!!<~b;UgLxI1W-9pw|Rv@H97954c_I$ezX;ZTMN#AO1hmbGA9L2t} za^81&lF!jC9Eiz!acH>Q9L3z-hzS@+<;%RTj3mWPraq(=g;bDRY`Q;65Q;9Dl5`Ox zG2YC)_v-DJ6qW$?7fSbE*G-&%U~HiPFBCuzGs=4ubmB)xuAwc0lNDPuhD4*pGtxOp zi%Jq6tPPGKGS@h>e@QUu;w>P>O_LU~8AKwPqB zu(Flnx#_$_*Eefc)01FZk)OSi{RE#YPB&951E$eE_Z^NGX~*TRBi4v~k%-Et%Z1Bh zBtruLoeps7d>@Zl$Ho;kN{D)13t)&G;_1bJ^0K#e0mOxj?E7dC64$74U(+S?2r0^u^Qq+ z;lbR{v>`%Rqay4@mKdsW#DBecd_qNca{Jt_Ul)H@PWGFpzD@J|r*rrB+6jX-Bl^a} zIx8tTbiOODS(m4-N^mq*!B~&t3rC(x=#rdJaLv(>)*>AE)nJ@R64-g$Q$`EH)#3ws z@;UL6C|qzOMa|&?*j*+nqz3RJc0z3P{f_aD`lGd3jF4SEacIjJOF<#DAK~Dfy1FNGQ5$@6XX@xoJYX&VD5me?HZ+V1)iO5%BQnQOv>o7(l08GvRwnL9_?R4!U2@26)fX9uR~RMbORz2@3!_z)==~NF)*~LAQjY^RrhSV0KB?$c99vBTtd@#TQ{+9~?U|Jtkn{3bGNI+IX`l_ z1A;!y%CD1~b~yg4#RHAgj2)o`$N#a_k%_ylT5hoo+npu#dLBtVw05-e|RRGJ> zZ<`>~3>2>B$eFRskhaylXyP#r(DN(ak4o`k_P4$&f|qJpz++}tH0Y+L5!A)&(*}QS z_x(lgd~i5CZdCV6sKW_Z)Wg$ZN(;MmQ+)eiUdG9W7uen!7Nsitu`RP7;4#$4^1eUc z+*R*mCkF7eRaIe+SPJ|LopI_{3Rru~q~V~Gq8>mg2vTE35Y3$FyOdF)XJSHhe;gP=mKMg zleLCINJ`nr>m1%8Ox{r}RoYj|$Kpr=137!syCiav!M&BAB<-Jvzq7YHq0sdwFcN`l zBpTK7L-Zn5MO6ZEbCfda?ZjbSO+TcdZqeRu2;laDUSAmMcWZfw^>Z*`>bk6#8JH+S zkSLsrLT(Lr>!yjU8f=8#X}#Jb6osvjSa%&e8{S4X2R`VnGSe}+cXH&y!Sm?|0?Pha z*hSs&9kW+$cKqj54OfGqzK*jIiR1AGVVT!E-fd-vTt^J&WB+B%sv3j6X@YEY#Q;&v(1Vs7jT(%p5F9_JWhq1x`h{y^yPXF2@0_* z0c}4@)>=;J0!Vsq`Z31X?;-ycuJ}EsN#}eh3SXifC6su4jMk6h&73_m5SC^hUenLv z^Y&)s>;k-}ln;n&c%ab;biT0zMrxX=H^j9GW+^DP+beT98Z0TMx0ZA*C{tKS#3U#R zNQ={rzpMK|W~FSh8Fn<_3MAC})q%ax}LqmhkWAj6u^|wGhO2?L+9Ef=n^=j`kRhf$%)ANKRf7&`B}JVs`KrF z^8Eom!7%N4fM)uPRCX;?&)(AZjRlezj>@PZLj0#QUdp(<6yn_P^~zszhSN|b)IkxK zIrp&$Q%zO>feSzS0*U&Z`r`J?#>L;CEjN3%A2vGn6(VO?ur9R6V%OV3K} zPeh`|ci=cbosWR+EIDCTHjP6_s0TFQU`NbRtBw%l4UX#7LF zF8k)nR&gSCfczx7JiOZ8$A_VjALiwnwb46ubcwN^b+?7AVawvFs~tcOv`%1I%BxPh zKLBD8)~?v2k;F-vTPg*~$GVOdyzKcua6R#oMGcjqo-^sucU_LDeplZY_jm{u`#^cS zJoVvYfGuhrL~oT)N2A=|n*g;yXb7wRufhyx@jLuaoCCX}X)vC*zZ-zcrpk0eH(H+F zaRRKOPHRNv1KOp~=danf>Sd1=`^z?XiF)hWlnOtoOpV`R%qi3Ar?Zbb6@)uOZxgLd zPXu*U3vzPa^ky1eBKZj58B7=#*tGU!G#v!-h z_#Ws9$pw_7l&rnnf)@y+dQQ1;wL^DR^V}}P5~n%{%TqVg70_~}4MI4?*B|MtcUl)x zjHH0Q8j#u{O4zaPf8ahy_~VZDWTUjOZ(B_;R9cyGLLR_?XD2EDDG0i~+5C5P-6-j= zkx1m{b^+KcZN$(I0U z4B44z6ftiyjCsCSvP298N)8IBAlNv9r!GynIROa%d@7IhF>m3R-lKu>b|Q&S#>$aQ zO=|?t)nw>x_5p4NIl{ z-1lPS#n{`BQ=O-R0VmK$r*K@R!Ux;l#l1-EJK?6iWK}}v$>}l}FtQ( zhFmxnp9a`fJNazP=ZCVvp56|ikn$+J>mJ_c!;9?97}YUq>Nec2f4~1$%&I$j z`^LiXnIiaOdY90i9b>A>d`*KkrKp@ey}A2N)RBXyu3Y_f_t%kAe`Hf%f7|ur;Mb|G z5MJCdmT=K2Xe-foUAE*`Gs+h ztoz@d{-PE2f*B5)cF$y0g);VFzi~81txDWRJ}SrXc8m_{9!z^^*5>&9G6$*=miNmL;udO6K&B-REZw%pRx zC&=My{~surO!ydzt#MYWq`ar)u}vM?c&gh5+1T=}zUpwp)TzI*%!;(WE$s znXcG(H-G=hFmeKe9{%K`Enc*eH$9akw9@y_pWYHqGisLoHo%JNaF^+?qZjvwZxlQq z7HYhdS3yNDU4>VhrN?3~<@#&M?-gT*u5RPxx*Lr|hL%S;_kl#f^LsjBh!B#lZmWN? z&Z}!d7pIf-{L3DQCR8@S{^2O-(E;3R=4CjnaoMCuw;&F6NYTh>{MTQ_KUw?IVS$G@ z@sDeEX9y|WT*Rr|(Qmv$Z2(w9${woK*WtnCWzJ-1d{?&i6Q_+4>8}ZA1R}*QNy;FO z6}Bo9)-;s}Nc6KY>v7}qk;~y|0#u*Q0VUNA@YpIE+%lJt{QA4%#WwraU2Qw#w?J=+ znTH!7vgnGQ-!nj!)wEMODl#-2(nR{(Kz|}6V981HJ-I~!^AYPT*)OA3rLW5uW?znw zXmDo>HK~;Y){&*I6A;o?W0{{cE2Q)lUSN@{ksLC_o*&yBt@yM~=qv|10;lH}Q_JEw zUum3^lwX>n>j3zNZB3ySIf`3<{=|oKI(;&KC66L9f#=M z!$zo?@8Yoh(2vsnH->fw{)Z>7Fk>7i<^6ad3D;k4GX7kQ$9aScAaK& z;s<*4y8iQ%=ESb+PXTqB^qJ{w1zoZ|Tti_PPKT>EGM=ba?#UgDd1mw9AK(_^0Ej-~G4a)lBW?%YPf+&sw8X!OxYazu*0}`MKxx#_VRp=KG7mK6hf34MH+&9=K0@#G*ii zTMwLS{7o+vLKxF1!ump(9DKN=7}>va{M@UKnFhWX?twS95L6nNktpP4rT*O4(j&+s z>S(Sq2HNzihw$jr(#^@^C+GuL>@VNEDz~%c^o6kBtOU(yg}N1uqR{yoJm7Ll*tHhRDGDN@H{DLL`2ae+XPYhBpR~;K6*w(ta^u$@;{R zbhgXSh7s_nru^L0r$*D+^sUbBz4Pg5pJg@&a2Ws;bdJ8Ockw0A>YU{lNR(JOPe7g{ zGg^O_#skqNgZmp6Au$0(cKB*luAIVZJ6lbe3cq01-@VpS?|nA*mBWuBYiio{lkRgb zj;Xm>Z#_RK%Ma3*^FVx1GGbpsW~)O+eYU_g6xAj^*9Xu91-ctXqpn~p@l6$Tbnc&% zI(+P<=JM{Mf?Ic+uaI=U>jZ^x8*7r^LmZRTQ1r%W3FURB7<7vLRrgUI0WSMH%`o|8 z_P1=l{Beta#3F4+BLb<}i>9xj!aRBFncmg|3SE=`PTO5x?R{hK&L#^6x|i52cdxLE zDmmt7426xAO4hUcwo8vb(MPBdiI=nUp)5Ur0bm#|9tUx`y(KC-gk~=z?Bam!r5`8l26BlvIW_@n|3EUv&%jIgu`hRW*ZohVM^YW(K$LE_bKi&N^x9i2W zi#z`XyVT&5hDv)pfl2A9de%0rN9U07`%FOtbTyaH};zLr|9 z^Cnb>^V}|X2gMws0@6SU-`zyMYL2kWi98*#xW4@koq>y7&`7)hb+tWo>f5f-@`9f; z&<%Uf{1+x9<-eO-x>5lJ9(VLpJl(ECB(wYX<1z=qgxkXravDF3(Ii)ci!EfMtaG2{ z&@A-&{QSIGs8tx_e(ygAQj5-C`tXFAM>F+y14xDC`;&g+S?tyuQ9@Ghdpc*d|0j9J zz{oKwa+@I}nu@tFg!4^&%^|QXuY~VFud){mKYJV$6%;h~JE}TnPxv8VcTDnrW}jWu zaWEX}Ab^u0RmTsk#9r2F@Q^IAKBYT$t4_!inpwaDF?PAv&3vNMCKCHttHYMjLza0_ zH>Y0>DqR~qxN$#q*RGd${I7X8P5m^!QiKkjXL3PM#Wa|4cmD2ms`sVv)tCdoogqwM;qILtvx3W`W>{ecoDv{5=reN^7?H zFe8}lqd}3-cNL1;mmi?7Z1uwXDJAgYcF0vlHGs9!bANAyKZigr$&3i=tD~iaRqU+w ztTKiCm&B$hfk23IZKrluZpt)RvV7jPC&Q246{7h<^&>_T-&#AMoCwK1{(z|5D{n>+ zMW+=|h;oT^!b%d~`J*WJLXX-FWf`iHeM>@z2#`dHEziaH&K0|5&aT{Pdi^yLhAIv8 z%yuSW!RdN-BV(YwvEylB9*@meP~2W}Ea3tS((u=Cxt4AVSFKyYp{Q}8uEl7d~0SK_~r6Jia()rRAZkc$2sFy@t_DVT% z@?u%asHr2M`*4Q!F_}I069n?b%I}bP7qeE+8fd^ay>2QVyT!Nti95H;9AXZj3sCKM zwY7U;1q?vV7vJv>zW=ARt2=f6?B@EM(&^VZ$#;KLzS>-xY&iJy`~6oxep%V9 zjjg+L;py3f8*euQH>Xa2JH65H@86ai?A7V3f0XVViCm22Xz|6<$V^-s9t$5SHYjM~ zqv!IVF30NA;~(|~p7wh5^ED7$BeoKT<5kTPa*8^@G|NU?{yn#0w{!?Qtolu)sWucP zKF?HwIJx~(3!7?JMr&vz>hpS3*t*D(wADaSEm$&I-EWgC?aXukmKJ88S^M6zD_D*y zBYGY8_}YK46Vqd~{w z+CT^l5e!p8K!XY7XDb#FgS}w@niO`24$Uk8JjLzuG7K_&YHUG=*HGPn4S2GfV1G&1l7DecJ)IS4~QLLD4! zpfP>-8Coa^+z5l|g&>5B41g?rWiR5MG4OGbZd#yZ8~BQZ8ycvNvFf+Z;J67VOm03Q zj<~=reMgw?qofSVcu~7XL)U>Ro_apzC1I^~U!vi&^GTzZ7q?4flhQu1 zT|Zw&US^aAX!eXwL%nQyWeT34?%~M$(i3-5wVJc@t*i86-VW;oBfIX2SPj zCcfg!M^!Mh7tdhytk7|XMwv3f5h1<@)aNZT7RI9N3_~Gk!Nd{=_H34fI1Cml5X>F- z)&v3!L!`j`>~c$HXsYoH<2grN&ts-wun8eSVNt=-sd*klNVAyv5CW_j>_<%Tmom78 z@Jt5YJcZ05NJMBEmeHUZy`fZe^yQh6$(00Q$6yZu?iOSSGmJKr#2FW5It)O_Ncj0Q z0s@LDnur}>2#YDEbesbuWt5WcS`#<@Ye(BGC{?Gk4{`Ft@^&kB2{;U7! zPrtwJXVw#o8GsRFVjuP>q#4kHg6qy2YQY8u8^kFAF2=_ibVGrGLI+x3rs`&OOW06w zi{odZnSc!dM0k$9jb>#zb%QXPLj+>#D9yR$KX%?jPCMx~pN7Dq&pY^%G>=G=W(zbK zgeI>}_;}rgg+vXG`ALZBVcX4buCJHp0!)&E0B&=EFV1d{J3Ymg{kXis3Qb^cel7a>Xw0Rt3j{a^&x?w;2 ze}SmxR9!5@wvYw@mLL{v`a4{7{p18Vpq~`TpJ&I<8gc)URul=HpG`~&1scz4-t;r% z1R5|}raY|i=%+{S$H?w?8Owc~mMZkLq#Mg{2!W-|VaPC02s7(niwX%!lqmsNAWFg( zjL=|i47CWmih!}GzmhjbK|o*~I8Jd5ymMYyPi&zbR4jmCAOn!J0MC~4d*Yx$GZB-i zCP8_$ly4BUngLggVK-ScV`F0&#UdCO1WMT0e(bs@&#F!Uq6UaH=^bF%arYk53i3lpx2mLCV^wK<;$Jw=w0N|utVA1dVlivT~ulHB) zUj7sRvtRjxKinQ4w*7_mB4nT2;4b{4lq?S>=7S~JX3GNHS{3oq7SW;O*pE5 z;rx_BBjxuRo37zl20Kw<$U8CQgcIu01+CT~A5E}IZJ-?+vAw&z#VmE!TqP7Ca*owkXfC$L-##-xWs=NU(P8ixo4y0iwhMiKtW9=OvH@c64NEXY|sKs%-;kP z(4{Vz&yCFpT29~-1uz;3SPUz09q9ZzA_6c>h-Ny+KwXA9Bek7%ntL<52%|xX2JBqR z4uyyWK*YW0?&Dwj)$jhbAAj+?-}~La_xC^e+E+jRxv&4`|KWqr|KOkT&-j=B)<5^( z_;>%_|KXdz`+xb$R4at;=z=dHA1_apbCNwKzWd;n?g3?W#HUG%`Ph}cjgpbdIpV^~F*tI;4$ z9Y53!CUod4qe2E-sF^V^UQ*o_P;lIp1)`yD2gnTOecHr^QgvpzqQEi+8_~d`hMkIp zZW4?NNxP^~Z3ozG;A~YAMuv6vWc3;YdLYOqpi2WzG6A5F8kJl-NDg+Pq=JaK5H{0F zZ2)vxL6-J{z|aufYW#5lRttbJMXyy<$kU5nNPMu6&$PR-M>cwJI$14QLI>SZokSx#v(;-8` zk}}z6W|UnlO!ID}t{bbVH9TJFY?|a}U z)~BuR?**=u21*S`ev=IYK?N9$ga=z=N%gV{9wZ?# z4kql~^yKciTA9(&f&fxy9nviO_-n9slWOP4?O_doje|NZir^z^~yvp@JTot}Y|?H<}# z&o+F4@+xux2&`~Tu?+{0MsZrB@sBthBs^^ z^2CB{C@h+2^98}No!Qvx9FZ>oe484|1&oVAJH{lk!3KswUJ!*2;%q|
    pXYOw}T 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ΝR?>; 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

    9_yF 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

    P>72L^llD+EA? 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

    #d(R2pSQHT?}iG0~Jba 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

    )J97{m_FZ>{tNr zzQIsr{Lt0xEfk=|O~YRl5@L-%B3_ZGUwiUIPYQQ+yCziX+IO?h6ytsyDxD({QXo%A!B!sIOBG}`nhRSCE zA{rT&E6dQ26di*fUfQ>pZ7N*{za=6OKC!REs9JkK(az?8?l2?(;hlVQSda^G zw*uX}UJ_jdh#};bzFyMP{&~ov=`F5C9vPlLtBi$5tBD ziTPs683dFLFB2tUp;S<5(fDO9_|NBM1`%6TUpbQ`KszgFFcF>@vUMzzst&mSx9bqM zwic3WGn|E!0n<8*N3#-T9(G z)xGl_HJFcb%ulF?jG*y z$$>IZ=lrxVB8gB}7$*kinhzIGgcR3yeh+5n`o|3a^OuSKxtSjb#v`vp zz{QZ~nBs<-RrvvB6<8ra+A;a%jp`eI*>6i=XA>yk@*{#5(GLliAH>uCr(_nndK_@| zX{MPmK2$cq9gNOXio6jUp9kjqeYi_}wdL?V$P&rw=C2v!#ma4ydbo4>e7E#Lzeu06 zfI?L{5km4HTtblhserW$iox8FssJHg^u?USSR{P@2?b|Sag9Z)KhnI;qoBb-t$uHbu!f}tuJ^-HAe#H5BzY+gC%FUf%gelVg$D&* zeI+P#z(`iAVZO#OioBk>*e<(!Cm1bgK1+e_y2L~NGIs(rNX!^sv!<*Z0=B}!zD!%R z0KQm*lZ{3;cY~UFeeUmWMmY~-4(z8IJ-J*7IcalS>4g^aKxdM6g>-H@I0BXe7v#y{ zSD)RMIAwSEJ>4_VlwnsMtCz4hUl;iJ$L6vBHXDP_WKG@_yG1=s0%Zg2$w2ha7zRe= zh&zr*IXua6DED?(;TpaJ80~b1Ev4xHotFuEpNW=Z>HRGrfs45H}`?p91y%uucR->n>alqjdHGG9ehIj0%UM66q@yGNQWu2wZ(PrJ#Z z|8>TmshMM;W9i#(C>g0N;fnOIhMlU!~dA`Ibx z9~U z3cUD%FFxnYZP<+=tQiSFS3&^gO-d*{04L{S&6 zt<+j7fqV}A#E|iGD_pIo3BBnQkt?|`BgwK^W){TH`#OySXps0FkNnRPd*Hd(BM=W_ z`QasQfI~0O;e>DaSN|5KZ&icKC`y$j?As~pkx@%du#C;s=6Xz+m_cT4|0nqzc|~m^ zOZ}nV7&r7&Tg2M|e>j7^-=uagBH>*m7NHG5(84<$L4!ut_<1p4=8uW*PxAt)> z>ipuh5OhmhCM9x=0<3&5 z41T~J9iDHr@cxc(zq_EsnWt5GkZc3fG^GMT^V8tG3i;BKNj*`e?Bh@vZ8qFl+g)kW zDGOrc-fV2zuhv0HksueiL=$+mdQI<>lxK0o4UN>rwS#HRQ&^IsnKQy}9gz8!#Rrf+ zZWy!W=KL&O&**$|MAOogJ`lu~otocWZwh&G2Rv)Y{AEldD5vcuDP_5WKj7Ycf^a)3dO#+e+17*a zO#-G*nlBgD4ySNXh{1&bzI)(kKLM|%H}%Qk z^i^o!x)O+itLB~*oc>`tO5lLWSdgG*P@~aE2XoF@O^YUf;-0p88BpIiO`redn#T6^ z`ya$uESL=b-qPu(4z+Jm+%FA|e!HJz^*Z-w;>c32w`T{{Er4_q_f!hZzgCyiQc8nD zHbafnmwtFihGSfkmb{o<^(xr8#Sb}t{Qs*S{OJ_FAl;}zT~wkdG*Bs`ISx(GxHqy4 ziFL9TtLJlAZRj;isn5|KU8lV!60X@ul>Z6uyAJtW#xiLDu=Jy4PJI=NdBes{FoUqF(a--MkM3zn^ zTaBm!^m2ei=3%5FS^z3>&cS(N8i~6=VDbHK_bS!Wshushcdn(P0t&~8wbM3j1ZNDO zosB9<&dum*UE+Y`wz#PNn;-s6Fpc;{-;7KZ?DL|dAM$F^TnRax#-hvJgMzsh3xhMB zRx^PO$40v|O6OF$cI>+=f$|Ib{0yYAqTn2QHT!pVu`13WmAA;@GF~r?4zDs(Z2m$b zj{#g6H2m^k$H4Yt@l537=$ILwVMxdRl@#> zO5_0L3~wbgg-V~WV?^>~T)+UAwmXQGT3S7w0z$ELeIm}4>f|fDb30qQ(!AA(%jK!4vdj zCwW1@U}Yd|=u8Y>Q$-`*Hu~`C_M$itCsA)KmNWjwZaSTcDDK;?*Q#ClU_> z6vI|8<;3qH9deDB*{Cm(jka8f0n0Fm+5m+~{q~k6dUo{XtB`G`3c2I*hsIbp&e~Hr z1m&m_8OAz?BBG+AStdz&B7zVx4W_HI)ZBO}t11EnNk|0*1Z4_TFfy?PyNRms`CWa6 z*%ByMFnCtowRSUBs`Y8?=4AUbvzv;@Qb2%Pkw1bW5U*ate`<*r(P3!$??&(w$yb z7h@O#!=rMC=Oj5NY5CJ%=kB+9Xm0AJ9z0+ zqm0=1Y;k6|$AN<-OMFS#8X&OcsDi<>y4Zy0JctB_&^o^EXp`fobIhXs++Em3D30Kv zvh+CuL#X9Qxa0K!HBjOzpkGN@yhDUgJUI$?q;Pa3(f}U zwOctIY@pFh-0^+W$?=WUA1v23)y@M(dG?*#c@7f65KQ{hB0GxpgnYcqe;%R@D0jlO zUpEgZmeKa|iwru_sFjprFOI&Ke%^z0XWQwWu2|Q4C3VqljNtVlCNj95VpR0eVpx`A z!8l_+ii&9zg|OkVFQGz^g^L*g{8YmRMfl62C3wmlU)*;u6p$qQw6cQpNza^USnJ8W z;`=+6&PukD2wH}PF?m(KZ7t9uGF^90NCLRLZN+BN5R&qkME^lzfINU#*V}tHH+Iga ztJt9CR4|N7RjwPX#=0R(Kp|`)Kc5Fm4{a!NEnx9{=wJMmnPhxGP@n(8v}c5arSAfi zvM5-Z?P)rK;e53&0G-U#(`zx{>Q#LIOZ>#MSXw0fAG0=FA$eFnIE-Z67;xT7R1o-{ z2xWS+vw0Z#h_oG;>-V~$IdkJ)J{Fz$ZO0hA?cD9b65@6m=wdmtQ$4k+@Z)rxAn21! z8lQ)co6kdIz(&q{-GmL75D(=>%}$+TpW@xyKi@X1Dp)kW>2=K+Y>?B1_8LEDr~GG0`O$y}ME1QBbG|p$J*R@9(>T-Da;eQCp=> z;lstNj`!_c&|uJ61fHDYBR9buB5e4nd0|M8CtvsESB-HW?@ZU2v} z_i$$ee!Iql&`_-yZBZkMQG0|cwPMz4ZLL+*s6C6CF>BA-)M)M2CT3Ae5Tiw{7*$2p zsy!mfo8R-k&-Hu0&tH&Sx$b=KbKmFO=N#&O0FvlD!hRfb_e%SlKcOd>V`A!aQ|oB9*>J@IhYxdU7Fs+LDjvrz<+E%lETgQAg&u6z%&GL%*R?3L^Z9IxWGR%9 zbHDuTOf5V>-RsoGL6QcpC&WPV;ASJ^8dD|Fx&V|m!m*|lXuvOF2WD_g%K-LRzM$MT zE$VhRJ&`Y0{&;d=V?q-JK%7?Oqh& z;j%qPostrO#V`5O5ahqmMNcX^(^(jNI4P*tYw47MN~z#V)hgE-i#jfzWwMBeDLxV_ zt&26As5P#f@Maw~(Da|RVAHcXBPw$LsZ}vuvG&N*SwN9ap9Uin)L`Qkvt^9bnReoR zfUCKH80Uh!46Bm{HI+eUEH!h>4dcyq24tw&E2f)>zBlY{4@cE_$?1D<;uUW9(JCg_ z4go9sOY9e7#ccURvfbQkT423N^tfgfa)1Pd*kCN}q!vF|LH={%(62;FbY)B0&yt+G zlr+|m27fGfm}6#=`_EU__iH~Qp!F7me*%c#dP!16r}w*-fZkDa*!6EqS>5>4?Ep(z ztQ(QE23lTer=pY4QrZu_+nAVY%wt?29?YHC`Z1$esn_oYPk9vxQUbog0?-f}p#81} zVSHX+aBzXStn2M@)84n$=d{HU2YNCX{^_3I>poJ%%l_sxLaq~oN07FkNVF?{1Lk}P@W`lh+vDx`PDiP z+^ILh>9v#O&%4AYOB;FQ5N7^Z)fz`J3c9*0kB`>BdK+)j2Iai`G5U3Q(;z4JdBGLk z)_;^79l_WCX|&D|@^UMO!49~zxCDp4Wob`5X>_xim}Q&SGUa-FipH%i$w%vBLT%}_ zQYBfVMwKEYnI3R4%BI%aP$-kJnNRFUj}~eGz#colm+6?($lp=nE*IBQnVQ3Y;++)U zk#;D*pXBOK?z-8j=Y2`ajZFp6h}p;7wuZ>+^a5qc?@IiZ^uc*?L>2q8W3<1y9uBBj8OLh>g0WAzl|i*!(2DvjFRmV>TOL~-t2d2o_*^X+mT*k??EG!mmzaV zvJC!o`U~&p>ZL3|gfvI@s&2J(4Y;`e!7^KUh}iAiF4LST3s|#7tEGg?*U6ZtPs+f> z>o?fRtnYKi+iRD};3tZ*R9{e;{A0Q25mU7)<;;As=INaZcvsA?tS7CE05}c`rJzR z;~|;WJ`o)v7q6c-|2$-x0rUs5hm7H3oUDA5G#L3Ba^5mSDQg>^w-VMb@+?g%fo~O; zCMp=CzY8Gd-0kJ93WLup{d^T9`#4sk|qnm9nq;MAv!V~eP^Qly|BejSuc^|Sf zU1E|R{E?jz86s?4F%1uju$Agdlbv{Wuig6HfvL0Z#)TW*U!kKgUTFJ>4vTCYpZH#BOUOzZklJ^2W8 zxxPJLK)ThvE0O==`!nB%#&b10vI81vl>@W2qS-%&G1{LLo`nPI+KM(V^u|arwfTTC zN}9z7k*AjIRljsdTD5<4q{t@JL93$T?bd9c2j~D(ZKoQu(t=YiZTi^XjUwM+!r7ZG zXT^+R3FvvvC+=h7>QwGDQj>mUsqYg@zZr6g-wJw&-o%*j8iD}qBoT8~3f&k@>tl_# zq*TcWHoq;5MAnJS+$yEaPY2|Yk1U%KRdnhd3jQ$Q5wDq+(SrM+jvbtb4+l;n*?Ze@ zw#hP)v54J+8vGttT%(L}5s)KjPD?`GV{yXU9r`!IYk717=@opeVWrb7D1_!8lCu_tA)DlUh2#EjrGl9_FC?i?!l#1}%(h>J zECQ_law7BgpAf{dD|~;G(^mE?QPY!whie|~hezd5G}17G&z(ACIb7LS2SaRCaAT)M zJb)-5*Jo}BS=qwhan?Oedp&2&#%gwRDDOFFDg8-Or|70zP|V zxXS{KqN0^NckppKsxlH?iO~U^hH$m*^XKr7B|aY={#AB%g~TsSoh&GJ$#w^Qis2%Y zwNhuTb*bAk{FvJc_}s?g8t2v&YkPd(6M7H)YQbXn2fsrWx&MZ3Y*>4{DT0BP$|;J0 zZ?JCm{IZcFWor6w2knD$YsO24%}vKKO?xr;MwPnOq-17xcdhO!+3i7u@acn|W&;iG zxHJbKB%C2BT_YZ*>Yv;zNQ_T2a5oP;NZC(bIlngR(@UQlGO+qg)qW`WjM|WI01!%O z5yke>2VS;fdO!ec^7{R&CT=L8K21NIIoNAOxv?cDd=p_J7ocU)Ll1 z{$8E;c)zlvNj(ewbm_t5ldve8&Q6!CdK7JY$*%vx+q?bR1#Hxx3j# zDVkcQG;k&IW}S|3ZoXmAhv7ti3(?OnCx-a=DLU~*$Q+lcj`+R(JgY*u)G9p<1j2WX zk(x}IkLoQIJD^{ll$GW-<$0!K*eB$FH3sPe`O}E$vcMsx??x^Hf(gL`+%&-Z^eSv& z2o*>+Mw;W^19e&nz-Y$z@y(M)Ayj0R*!#ydDDS*`55iIbVRl}5jMg-O#oQ6*h@8m_ zdzJ)1SCDj9kSkV7FR{FhhEci0;+Nzd9~wk||H}S_$o|QW?Xr#xj5V~sQ#V9CZkl3q8h<*X! z4}T>2>viIKK=4Jd8m@Ihk-$Qrdq4=8!w2WkwY250Nm*;A?z`~j7&36PYPLy4WV;YC zaX0D`6!6DKi(Ifnf_r=~DS%R+$8?4OZb!qw>6wW zE4J8;H>u1cJf36)ZXlYylJFm7i)*a#QtbM| zZmjP%Xy#Wb{t~O5sGnc=MFppQXgtPU|0A|}KVOba0>a3j4kHtzs&jFt02s)q=iqb| zms+zv2u6vE-S?>Zqz#JK+kZIfK7M!pmq(A=XW%`@0hN3Of?P~`1`F(bL6tey@?mpV zw0|wgvJT7B`dwnbj7kyPkMqv?wS$Df>XFy^n#oB2OY*i|Lb;0&+niq`S{9j1KeulfaVT^|Hz^ihPmmnwEufc%Z=Q zfJpYqdhq(0Km_21RtViHFgN%TAaeZbT(q2I= zyR4s1qqQe#MR-mF(`P>2R^~?NX(~zP*~Cov@kA*DNo&dHgTanC8+np(VF_+3IA`Ia zi}hLFW~?u}-?t9G-^k$qxM^X3^`NLcqBIKK`Id#zESqo=z(1B<(%F8s{zY6S)w>m( zNUqAzmE%fOe zdj_?H{l<*(sKmeR%}w83$R257km9Dg=b~DftH@T-snS`%6;!@uzguCTeg8qX+<@~J z8rPp;GWo4lSthhPHWh_btipznG0@N-Nc=^|U|rGk^oZ^ye18nTa$1CHm{EL86?=;B zc6-vZRyTGoDW3ZA?fY3?S-0|3-najhp7E|WB6Sya-cdfgKS69{;b~@X##uuNs2K!Z2VUB%}WG{i=n2~0CR1L zFaV+2Nek7i5M3Iz12gJ}3Gy(1+Rc&?Jp_ksbfj?inaxPEg#)E;8qZz;C zeoR%ln4p3_5*Xo=E#GOy(yxrHg8u<>U&{L~=KC#q19Gp)Ei9`R<$`y;UL088Id#@`Aq)VQV zXETLLkJg#AKZ#m(+;L~$-}}2luz;!Ph>AT#Xl?-g=#(IQVor%aQH=@MEPC74)6O1< zT;`D2R7!+b7(ea$TK{N$4c#rF+1E9xLq{$BVG;@o9LphmT<$VYY0?*yQhVQ#vHAlO z?rveTu#>VXO=8wB35U`}d!%#8JVC}>Nn6$Q;I=w!bvHK~fK~&-FHLiW$IC65t2+0@ zi@`~Vg$sdeAeQuECLfh6>t>&nc{qBOn29%;{au|)CV9ZPyO-(?`~{9M8vO0}w3jt3 zYE`6}6E5lhpvlR(CYL2c;|u8U+6BPzCM!gP&m@quM_xXK18~y^_s^XQQvN*?Y!v^p zT!u5bwV(C=YA}0+nW&3`huTHlV;7A%oFlfeeC)Kzy;F)`t! z{BzHpa8W_66Z@Q$k0Cy%-mxXtvd#J){vG!XM%gqq)ywoO@r9&lg&DUhZ!FUda_-#_ zF%9bI)VPno-qSz*QtY34Sb>`&QFCj!{@CEl4%I&?$k)>Es@vI9cD?7{^4IxyC7-Mx zbgpTHSWqORRBITIC?8)k@Jy( z!5R!<8Z=!=@&;PZ=@VdC?~t08gGAg#e`o(taG)9d1T#SwqeAJ4M8;}RJ|=L^{0HH8 zzCi?$-r+O<3f>{&K5=WQzaJWzz1_GmRJ)@!kBd1(rxYS8^S^(ZhG}&6e2MZqXNGba zqTImsrxsa-{Qk&b>2V)+t}%dEB==YjLu|hhty}@kS6>z}q1iuN++r7K#l?4fF8iiz z>UI&uX>%pE5rA$*?lhpp>+VmYwm+2qINrfwi;`1P?6IEa5NNtPwIfk@2#te3oNF_cmtC-fc|s5}!*w z5&iUB>)r3?i@gIGh`9cy5Mq?9^K3Cg4zmcYHUlrGTT=$6I zFS6?~-`;&jt|`LP+GHOi&uz7RZJmC=G+~D1!#0H)oLohs_@H7crsDoc6StS09W1W! zqIkNvjIXrPPNyl3I#GyU4-W&`zX=j67B=Oc;a?*gwYmmxny2)Dh@O?$8AHz|r`lIm zGj2&7#MS?hkIm8%dNNgX%sEppCKTT#$NW{>9%9}JvHO*sawN(rlwQ23#kuvQl^q}u z$^Dh-iyniMsLLtBs)ckh)Ek4lc;%W4MN|QoKxCKW^&o+=H7^5e%WF5toew+?7A*!f z$kSn8W~msocKH|>B>p5j`^{fsFn*u?k8!FP#nuyR0<7!F~w7)YSVgH5>US9_VU6Q*4*%k9ZA!`0vW-MKS4fL0q3dzsdbO z*U;n*H#H?`xZ0bSuyAKlE|e;(PgT-ys!w{Q__rgeFJ~(M)E_x=l~u8f5$UAq?_bLk z{x|}Dk!UvCZSm`(!^^t<=w5JKJw{|oHvJ=cYSnwukk^SHz@Ins z(Qo-XAv9us8tO)wkmDvscurF-cJVA=$xjjR_1j@-!6mh4ip)I-JXO-N1eBc$Rh^fU zKW=d8)YU9;%+2<-3|s)vr;BN%B}I8>3?shGSq^?gOGZbCd4X?Ft_8Xar>-NEX|PnF zp;*%eoL(eZB-j81paruCGl*GJL&FgCHnY+jY%OkU=#&ZO#|w%69=hA_onF46%mR37 zYD^Z`r-~I!)FibnU)%q7Zz16jCS#_`Ed_wor`~d0_}BE5zyIVOzG#q-G9~*Y-y=)B zTEHwp=4B?+NU9_hMjC_IaKQod)R6$JK7F`bDx&`QwvC?Thy(%zfZC273e^TJC9j74 z!s9ScJ;p^|rhs68#F1o(>f;zY$23%{m*=5$JlUj^Q^kEYR6|La0+n+rXPp7;f@+V%dl!kbI~ zQk+C0WL)78X}^(wFA4U|Z-=VT>(fM&D*AdIJ*m9pqf-q0c> z9d778sW?jSsrrv9LY^oh4~mdyIDgyGSihd+&?=tnU8y~Em&frd^|?%^0)sh7^-iA_ zm)%n%rHUay*rKy6_zq8@V^sbT>FhO`*wKUa72XqhP zmgF}+*N5th@E*$(adDi`zn{HBC1wE1{wSS%d2s5~$v%t!NgJ8-&?@UTnOP8PRYr*u zmJ0kPw$hsq{!4nJU&Sggh$KB%&s}(TF9zl~pU4C*X;c|W)VKSy=^wbkNjP`HzF{z5 z3H33Z$n$9~yf4hJ;$xzb-g}=y&;a+mHH1o8PC@8<%aWiTh+1Z@iax{^r#&Dh!VS&F*lSw4VHY_*oE{#Be8i2f@wnB02uQZN zNfrLscy6PqHoy_X>P7YhwIk&MMq7@Q~xT2oRI+C-@{iutb zl{2>yzBW13PQ!{eG_FwvURdsb!a+4GJ#yQiGG09AEmnNr2L_(5BcR2v1F2w9ER19z zT5{4qMP}9qHQJDZCEVR2y+u|y;sSA&R9GwEitu6O) zIc>*#W0Q?7M%yJC5M`+;I3ttRrxZ~_^X|wW)o17eg*J=ZovvycdOUW+In_nb_up~~ zW3mecn2xj13Y(SN;xCe9*bK@MJ_3C#$~LwWja*LSDYI*i5;UBtMqi>sW`^5E@;GQT z8->CdDM5GVZ+%x~sy?c+@+fTD_+b6jx<0n zKu)y6-c26*2WW%1=ZbBioOF#An`1NO;whVKl5 zVo`lF%{l9jA|bxt;+8o=p%|dK9;w5&^Yv4LuEjy1Kpyzw@QHdtWOq^or{8{}t7L^*o|B z(H_Edfm@NMNfH;?JPF129~?LDneX0*=l#j{0jWvbeJac{NRMbdl~+`l_1*h$HI1F> zWL`TeK#3;@wtW(2ED?<~Z5jy^Hs#w8f|6ux!rPOB;_CBLXW}9i>(kyd8QjnkfTuX7 zrc;JUxbW*_b9O9dzqa`AU5roY$=r3#Qf@U3DUlI?0spygTkz;>-1OkaTBT`=hpl|e zXRVu*a|qR_=t`DVFoDpCEq>3a@&n=NV7}q>brQ#isDuOQ)9j;e_4P5ebqUEcVe*P` zc+cVtZpELl{gEM876w=;E<|C)qiL+~Q$79U%IBWxZwlpPM*28$^QZ^`EU=L~90(YM zvcQbar)_1{@y~D7zC~|@zOPaONQv;$<5hkN(^KWyS54lmMZr-Y=c4PUswy z`X%%neq)Tk53NrQ)IdQc08w_Td|8EXZBz_;J(SaS6rY2u#qc!fMT1%Nqk%NWPAk9q zE4<{X2JGWv{JnIlyF7e2LZwBiy60MY%SRwEBl313yV##i#6@(D{oj|w?FoVk1VNKp zZ9#laND&}V6RY`UNKiAcJu= zOxf|x>p+Xz*}N&^ZnsCWPHw_RFm9IXW12MiilJQ`_nn$)?CZ^`J^uallOO+X=28jo zkLISvmZXx)a`UJ1xVje2C^)d=xbh?r+dj-dDF53$I6ywF4}MzEEb_^;yTHsPp!4x>T53%lTmHz#{TM}m z)FAVt1!}|nqQgUgBgZqp`jBOsV$ocvYm~A^x^f&aT2Gn@?dgz(e9q+Cv6L+1!fAYK z)9~Z_mUKynW}#S5g_UjGX2V2WfE;=)|NP(~`hiKLEL!30GY7|=VIS6cNO&n&01S`% zB9gCx|6L?7LUv8uR-Om0ZbO~M%*VeVO0d0na9l*3Q_QitI(kbi(mH4&4*hed?7|Nq z2{kwm;SI@jJVxQ2p?crvaBkW{2{Rhzrt!^XxO*$v2#6)Fad#-}P^#;3r}Jn4H+Np} zNk;Z{UUay))zyS3p@Ew_o5oc+9o$Iy%()7#PM6*7Vaq{``|p1Ef1j>xLios;hpz4D zP|g$sgI~C=OVL!W{_RW*gCE}z!1>{srDCwO)D8cv+bdmhyb8p`LGQ*t zGMy$C1Fpx?QtLXfu;tRQoRtfl7BtG82j5ZP6xH?+z=+(nsQP+9ha@&`Sw}1F9E12- z+VZc96c)wY7{Jk_h2N$GKsh)fI}HvHzh@y9e2VijpYgAF*` zeys|Rw6Rr|T9{_S*mAMgU3Bhp_9p>ytOyKX%MS$FZRAj@m%k2{qh6}JMycf9*Op^E z2u4e#ta;AI$mn^6V(os|;TJoxAzGEiOf15NVF(b5-6IHP@E3}&)q#MYh*nL zvFaCpUhOff?r#a0xBuoOz7A<$G97*#2M*&NhTnYtcdih_Yp$w#V_sd6j!Ux)KwYf` zT9q-Koe5m7z4ojG-ZmoQqLVECvD$(C<>I%JI?gq38|<*2YI47^!)lIC=gibvyKr@* zP_!#Ig#m!UKvi{&1)49j*>4}xzANH^Yd-ND7uRnq;~r_}Jiyc8zP>X1v+bXIcvPE5 z8s<#}&MuH|5*I5}oq8@+7q3S__t|E#R` zitxB||3lH7sVoWG-~&baioe^9|IANU>IpmqtI*TB)Q!@SbY*30WxiermI3tR_bca% z1fs?*>$}*8_g{#s=QxGFWYpgyJ9Y3AAo_H7C{bp~tSi9Gd>gBfZ1ereM`dFaNlQU$ zhvI_6-ItAjGx$wm?q9x4sZ6;x<@oFco$%=Kft76%`=_Ey0oP4$QyDnNqwRg2*nGwX znhMDy$+_Uu-8e$W#m~68Z?#5}tUPvi9{#>2?S+>-%kvn=SN7ei1TzbQUq2BPWJ*^S zR(2>o+^Wj{yyTqB8dOtJu6HY~nFAXVOziiq<&_@udsz4VealcHMDE~gcmfvVWrmyd zG2!RFo~jg0o?6d?u>0El^5Vd0>+?!oOhq^ZW;a`Ke`8L5u;8J^K<9()HAAesf@m5` zlk_`=0ly+GG2CK!Y6Htggx?yP1{Y5V-7s=`NTwdc6C=Z-TR@ z$I2uBwl^Ob#tmjxCZkAL?O55I3xx}d$9UN>B|DWE{Ny(R<)(5E9#1y4bS=}_YKEyA zk2!UgTVB8YN`#&+;agOFnP;)Sy`I=v#|pZ$^^PW0CpTFH2+BoGW^Ep8DzvS8HhAWi zEZ!QD*Hr*(a)s=Xs3lwoErnTo!LP+zN-ib&T}Q8yAHK-i{1o!Bo8-<032SVSv*)I! zNlgS8{4K)I+KpcBtZW)mK=FTxxc#~_B8YgogCt52w;eYzdBTSiS4Vdb72TU&nm^gK z`qlHdd(3t%_%E65&k4dV->(EB15?;78cN&OyYps?dsENSm0sL#a(z1QL#DLJbWl%o zt1@0kb(AzT^n?UaJJqd)?&#;TP?>}3OH&g^ekd36of{H^tWbF7{;PZ2{}a{|>u`4% z{y*$>vTUb5CL?I>P;R;IY`MQuF!&F}=>wZKw`PAtSPkGbu6ZK2gtk4|J+6OU^y6QD zT&dN}>2dM)lKqVdoY!$7Tx9#GSLAN5eJah!pn6G}z0?VZ)CcF44ZcE-C+QY;ze$_i z_J*mrJ1x#G+ne2|BA=WvBP#cyHufJ6-#xfvtY;5kKuD2Os;ZW{+31CzM*0r7v~IhN zo1!K*pRZ?mE&lD~tPO>~co$%%81@ zXl`w4WAr~Kw+h1*k0QozLXkJ})`$82{ob9r9Glg?&TX$j9trIVFi|3RMZ4y**nGJ1 z?v|ogt)@|p;*z^==rJCWPYNQguJ#poRv}&?T&kD#(IV}8;EQTk7>qjxrpm4BF@t}O7H_R7{UZ;X zL!IO3&;`-oWnZgwqV4U?J_gHt7s&p70IhxMs{0qk8KOz+2kg1Llf$5a61V2Ak#DLJ zUVYJ)?8Y%LWq)J1EcW~@QBXGNwLa1Rz=}9Tydr_g2?EYBdrGSk?}y(<%O%f;9w-uJ z2r^2<9ijr3m5$WM>>p|Hk=wXlPeZvf4Lx+Ik)JJFYPIPsivmVOJCTV=Mkag#zZyjGLheC`u?oykN_5G_D5mCPw>s#>#z- znQ{A-b89v}hSQ@UDd0Hp`K;^r>`_oE0t%px93lI1;wRMbsX}VgC`^YR>`l)=4iGAZ zMCAQ2f6npr8;adniaF|K+?UJg!a_40-tT7C&JUGQr!q_NRS%2F7F(g{j`Ab~IpUd# zhIJ~8BJI(Sj%u}>*SNN2R6D0FM@y@CcEi$U+np3g1{2iK?awdw)A&EZ!@%MGzaZ&e z=YDsc|FVd{5Z1;vnLr-Rq5H!CrzdB%Wi7Uxw;37}9VEd1pM#uj)o6#&C873i3lqAq*1%8*$5SvSYA`u1KpQDLlyVT<1B)%@SMqB{P7PqhcegH zQnEDwZ}jV5#k}`zEu3{p)7!zu4tg26IOi7O&C_p?<$$F?Vj030%|Zrjwrp4?`l{-p zs}%*@1lO{~6a4fgv6-m9Vf7n%)k-LNeZHd@cuc^aDJHYJB_gws^O4eeVlj2In*I}j z=+ycu{_bO>NCHcsb}Qcr#n=?21(^A`p&+_6q-g|$u< z2+f>m=^_(81OqQHy;Mh2qpkYH&upPz=ItU1uW0rEuP;b&4Y|cR0y)IiiBd(op3Us$ zHNm1x8y`u2S?l*U!%C??cAs6?b{zN1qkHM1eH!?8`CeM4zHypp%_;BC6K;3WQdWcG=8^%QrY;Uh zAx*h9*-GikC5Smd;c3{<^{GOV(PRYe#l&qOy)~I?7%e@^ko4r{QF?Md9m5?do#oG_ z-2ttEgucoGsHT04qh*C7;{;rmzA<=*i^*jI9t-OI39=cvsRs6Lvh-8UXgE1iq-tNH z8$POkEB!X+g@Bomw#a9DK60fuu>NSU#@l)55To&;)nH>YrfNbUo7>e!P)Ln0+Lc0; z+;()P`4hhTaVNN}`d#H~oK&{4w!gMR_zEjkIK;DXEZ#| ziuJ<2#DnLWU5$-?boy@|RmoemhD;x6v)dYcjl-xktB9ZMDN{rGAj6f;&ReQq@eb7a zYdL%Nf@vkKs^pQ;iD^t4%&xXc)uVF4Ask16SW+U@Y4A=F{=s@@h0iIm0ZAAo;*e@Y z!Z5NFHf?|+`dw}7;EIko-_Ao~84DNdnnW)=|9+^)4=852GHHSBKY(lo3u*=$Q4<8W z02^dNHc#!L_y1GFXa zwy<&v9bVDnf0dYG#>GZev~CIyp<9qq!tV3xnpa@em^Kc zZ>d*BL|3RpcoRlVVT9<&#6l z{k~VdSO8HJBaR~DAN&-OF9q}wkO(E#yeE@*zmcIz6PJp-V7Y&vY@UJ|Gf{LJgYiC> z_N#Ld%(kTGR|W||R}GBE;8ZM5H<6dkPmSjh-RPet^`>95Nqe|1csaONTK*!Msc$0oTC-pEK8WOG>Y}vak z%CE?U|J59Osz~mtdrpZq=ILG--eD;-y+qrO)tgvCf6DAmm6~u?OblvbZT)R_!Th{b z_Ey4&#@Lzs1k-6%20pGm<69=6d5ZF6x#zV(#Z!}sAK4h@pkNe0vch9_EtIn+0)2Cx+Bbb=ZNS(Yr91fx&P* zf{a|EB4{Ezdu^&hmQ0puTLv4aHZS48Qa`Mh$pz3HB@Y;TwdH7>6VC7@B>&OavLQ&5 zp)pCgsuu+lTc!4%I4AVuah!EE)Jl^b-cN;8ZMXOtcuhzYg9&}rkhB9OeK|R6L2R*~ z2ML-8>q`M4*NXYL5JOUWr>I#{+-)|Dw1T+OL~h$-^~!XV<5e4lsVR**URd)kKp`cs z39ns8cOJe>a6sr8mzJg8PXdB6H2J!5=Z8y*7Q#(^zpt1LYvqeXjyGf|m~8YO8$*pi zFZ@WLo7sM z1m*|%<~O?VK355IBtgb@75@@r6ye@g&*jtpd)&eGOXUfu-^~qC5K`17BK`W^?AEoH zL=(rG3M+Vr{pcIw38DmwVX3QMJq{U!QKa=;ZPWXO>X5swZaoEeqPkT_bJOCYe!zWZ z2t{50Ymi*Y96#H?4NY~6lfl$ZZAoepHJ3Iy%mrNruUDzG*2 z-iRn`sVn5b$uKpKf)bN@HL@g1!Bk&FyWuZPjG4o8&N}wjcBjfL>|2@2lnX($QObSe zS)!tAF)50+>aJ#AUg%8*P&E~(tAHs5J=y~kG>8Wg`AnX>O>uNZ|L$vQ6 zTJBvSh6xoND@Jq27~=YQ2X|uM6qhKT@nydU+L@vPW#I>DlBZU_cnBOy8}iyQ%6anu ztPtRy^-MQ+B$g@99^4mwy#6CdNPBs2ty9rL)6sgl+llTD>dvy&be@Zr(i^vc5m*#A zAhn)<>PfXyxJU*|5dHWQmJ%=o0mVk>%)4T*-V#6X()|Nc@LCm#Wc%#cs;jy%N7fTG zi3ACvRADMHk8mqYX;9C@cTDLqtWT9`zjbP@LOg_06&@vThsflb}jeSeU(K>`*MB==1-oAY^jl zsK;_qH5)%^Fdn&`-h5nO*qV?2vuN&;mSrgcGOy&`_%!6#nWPv> z9RA2677*Oog*4l!oMO$|^o-)hwt=9O8bc;Pmg6B7W4|Rg+nophdSCNrX7QxS#UY@! znj~}P`s_l^LbSi41vR{vM(udUToP7xdzeXphXw$pwPsX}La{bw`u(t>a&A)zuUvw0 zh}4YmmR0FJc2!pHaL4Vgi>ZpmP!smBe}=u7`_xxKkHEuZ>46lq>2fcVhs7;F3X{th zW^wUeL)WNZY&i{xFjDua&kfpL=R(yGR_P{;%as}mrh|m4Dz3pmHUQh|K4ubkKx1w_ z6CLowt@Vz^>lpWpZ{!rFEc6H4`i+)vZO3sTiiM-H?|(*w9wGx?-^DfS4AxD;NL2j@ za->JJwg`{zi6B0MArCyTS-a2unCQWs+L)XypM~`AX{Pe z*7NLFTcNElYOiDRRxgijaiK=YnB#{2R6jD><{O(S916THZh!AB0>%=D9soiK!!rTQz^zAIdq> z(^rd8n4E^p>|xp`s$&66AZUU!3#a1Pe&}m`Fd1(~O{=}r_0MG>BWBGoe(L!~N^&u& zyS{o;S$OBK;cMxthKVvob!dNNSF*U1SX)=h z4f$e>ip_|!9Z)YzElSMZ6`Zd0SPuC!W=uiWuX*iJbFn5RE&jKnu{|V8I5s=mc7?8v zYSA-N@!xL$`XTQgHWn29b9U(qKb8lonKo&4&?8rEpGcG;&U)<-xrkROSFKmSR>;66 zT32J2v!aCXUI>N`v;5 z;z;*wTTdR0cb;#Hi znF0qiMpJ6No=aD+70dM+L^^QES)kaXK;ud>{-ecJPvrM^4F=q z2$$Ue?X5*FAgA?;ImFe;6zylaLd=3vWRf)aRYIIp7N3V+|Gx^Z|EHQDmJw}>E(qI{ zk213-NV%Z#PN!R0yQ_!HBV`hsd)1@4O6rChC}o5Om7bLF=N9$-(BMD5qr^ixY)s|r z0{dTF0F8{A~;Bv>6O8|{wK}z`d z+!JZG9$0-`&Q$G}{{F+$vAh|lvE>(Aqzc<>&0F`X+Qxk6GN;St4+9t4+8F1D<2Q?r><^p1JXzN7Cwo6)`#SD+?lYe= zjBioJB#Xk3$7%v`s;t#}p81**gqu8Hl)$h1Rh&6e#%0I&WB@6<-if3jUJf9m&bJBu zG~CeW3-ePe%Mh>s!_`-YH37%#jyZ53HJnQ4L{d5>M>s+{q$G!QNJ$Qm&M|3_kP-x> zy9DV{x)W9T2nF`V1&@qB=N#!F}?d_s9RF3*sJI%3Zzh z@b=Bdt{2aIYog?o<sI$YE5Y`h%AJ@Qi(0 z`}f5~*B$nzE7df1>FDl5uL;pkx!sqDnrGrV8FTlp3(htZSi(1id-&d#y)W1&_xoi3 z)ziSYt~8yI_$M>D3_0cfFUG=I>wBV3^O_eE;tl`Se0;>;n#)Olt*>(q9qPQ(nrBmj z7;LQd?tNi4Kl;}YaD4iK{RJ}!06vU<3;B#@Bc>=k_iTZ!ld~rRVk^!})c<5ZS12 z5+U?U4cFf4gnDc3<6!V9eO(V9M5uMRb0IDdxln(#x)w`7h|h^pE31d{CkOt^&czns z6Ad6wZKf-i&*UC5=1FFb?#}UxW~WS1M=gyv_iC0-xU={;Ge|ALS#>yxb!wv3Ua4dY z3B6TB8`QbT>oLlKC@3SvEZTehk2QsgBn_s{?iQ8O12tf}b>4nE^Q%-s(^n_9zIH{& za`l^@7vl_Z-cUN$O_eNlh?qcSNGxv%8bFm_r4!mw02ch+%y4s42;Wj$Wc(LPls-Z8 z+`WVJ*~aBtET5&58?Ek}L%1Wk-=m^Z9OVVIxJwZTR)U9o2=36Ct+TGA>-B$8*m}lu zmwgv|d#rym9`Q*AV`$&X4o3~%`P%E9EVWFJ-bpS(ThFC0pRnpaXumRTPJSblmIS$a za-9M$E{P%veK6nnV^4H{`f%f&rjLoy^Ax^O$X@-=|J7Mh4%e%GuT!{%LpO%WQVMvA zu6sJ9>LN8uCH*7kO8?dT${CG|aK0FKHjUkvLs@6G&c zDKXj=t8K4(CJZr^%=#Q&RMKLF^06b^T=#iVG89F|W;mF#=_=3UzIF3+S>h8M1H^mU zPYzVQ9L>ICgDL11T-~Z)NlR8U{-g{0Tzr1x$NY<521&uhvVU&b94`{TS$-CNV4Ahr z17y&g7Ms^9tF;*h(-HyJ;QUNM`7`lX?lFhFJ(GbHuio`+w`5J#o!C$jjlK)x@1x(I zIe4hKzDMa8ds`s2PxC;$57PRefy>{~6g?k@2LGwpkeAJe%g(SpvYZ(77gePg>)Q5f z;~M-7CWOmlsL~A9#fT_h?)9eT!8vAMq>4EI9viRlv}UKKLVg5khF0*x>n=*Mm*uQr6Qj<*dzDBsuPVXtDO9#sBl*%qkP5_nE~^4YagCD_#@V+YYarMc z@#^tq$dkvGiF`nEA~qH#a|297m0eZ*+Pdh1f#LKCDgt|eI^%J_#_a@ux!>IGMq^`C zvA?l1yP`c8f0u7qupM)focx&vsTZ5qJVv=3XL#kw82rS^rZfK~C){d(=`OBYOLQsn zzv((JJ;dJLq3%Y%_3Sq$F=-1(L>FsbJ8(1CJa5c83Xm?zqc$!Dg|}j| zp({DkKh~=Xne$aU82c&66@iibsR$*+(D(TB6ta3wPU@NrerWNKgQQP94+N)meMC`b zF1@i|sgAw4fy;I%i!Ns-_ZB3nKro>)eSutfeKQ{|rz9p1ji~|REo2(*miH}Ut`0AqUJ$7L z{@jb>X9qeMw_6V;7*2;Cxej$6e|cPG99}`c)Z5rwJbK)336m|UaKH9OtI-S~`=r1%?lO5eizP$R+$9KD znml>Z%jXb(*^QM5@$hCykv?XS{ld7DeZas3ORe5;KLEZQ(9_i%iSW;e5OG!yC1?-& zpCGC&Htng{vII9jw{PQbiN-*hf~;96Rc*Pg(O6g4C8Z^OSNXWNiD8%9i?afu$dr^S zOIriOtAcI6ZzT_&wcF53)$39-F`K`86Cf@Dr?PGCT>2z;IzoUi)UV5!dkkzZJ|DxG2ndoo@Syf5TBW~_U!#}h5U}_Ut2GP z#Si_1=W-v5MdFK8r*)EGjT3Mp2gnRTVx1%bl{ePbIq1a$^SMN=9EV1(1f~db#ljkB7l!?BGeHlCTY+3Nc*ECEy zJ@nfdIWB%_GXhkC_YpATmF@n{p3Z|MmrT4^4#+U6+<>{$$~F`@76UaOYpvKa#cYDd zH%@Nf2n_{($K7?1wib#A3~$Ju>IVmfnX&QW*jP)b>DuylychQI;mIivH>eHWS5I z4x$gS17W5lVDr43mrm6^xPZ!CVF;O{m~Z3KK7Q`SVm;Z`@??9!83VA^6em5}MPX@< z;u$GcYPfWzFXKV|+GU5$%Se4L)Q0r9r^Z-&A1b6xkfYkGqpl--uX7C@viN$<~Y%F&tJ1!qGukzE+>*j6?6p8r+O)=_G-dhYU;j>`s!9kUCLy= zAHSNTkcifhXJ&#D8T1kHuBev44eI9`ifhQV_vq^_rN>f5)Qjq!r}zd~VfYx}JVfgw z^Uw+nelI? zlTjY5YVq|lNUl4{qCzw<1Ht{T5fES`J)N(#HQ^KItfOsaeRg?1y4jde9Gy#->LKQl z?jx-@IcceQD!uRjF}PpMIO5?<;VTlLnwY_=M~RkF#*Z<3Y{FaQKXOHiUQd-^9KkPO zfY7HENXDA<0W2i0vI^S)7J&Z`2oKsyz zy533Rfh-6?4#D7uIE2`K=L+2k_(r4sfTPyvO}wMuA?mIl%QfAejTL@M_$%PhnefL~ zR6k{Y1VG;U{+Z+JhWFPS&#*V+cYKJu&C4f>y22v}c4$acg=WlB(^OJD4k}f5emR^N zaPNOEgSuF>X=}TV_k8_Sa*>Gh*AoR}_Qco12~wY?r>?rznUA+G8?Eo=rDFnn;~Fmc&wf+_hF-iQjFgvGaRV@A&!zbKxgo zDAXK+2*Kp2Moi)Gz0vu@RjHEKSsinNn;+9Ej)$+^1WOXlb4o(^b#lP@``y*Pf@OlwS)3Q3DR;LjD-5777g^RzTqB527{$ z^p*KNU*=XKZ;?xHN_AKPNGrKVOpn3<1C&LAdk3f%74(dYMe7f- z$8aD%CI&8*eI;c_|0q_B%hizL0k4i2?Bpq2ky0c7<)o|Sx3wOtAX#g_+f!}r*LvU> zW#tY6u26V+6}rI8VERbnEK<~SUqkB&cVsDtIlJ*=a$CXv<3>SM0mnIjLP7jTr_Yoky{s<-U{j+ z#+p3EvivpKXj(%%VtoZxz7P2#3LH-#a(}j-B)Z?Yjq^GPE#w4gAzouxn7Klqkxrz; z%v%?Fvu~PhoHZ)>cKeA%FE+kv!=87ye?#TRY_(scaK)hSrf$RGxg}L-sD(jOF*XRL zE7p;4bA0nb7Q`&aBm;@+E1dE<>p>bUwPHE8vX1}vtbHEeFG3dW=yI?-K5nTkU%Qs- zxtgk>@SsPuhf7xR_TO5(TO5+`JFS3#YfH>8p2M^4Kdl7Xwql=Q=V8xNCgr{J7CwjC zaLyWs=9ZW#{^qtKUmLjF_LTtpZ*`}B1hQmOU0%;(MBgiM`rKRXAs%Vyp20{Mc&&Ex zc<}HxoHHyehdS83hQ3uHgcxrftVEyzBzVBWyhgj&e1AREHDg{lB}*lqPlHi~>A@2- zI5^|_OMLbjA6+B~Vd2}yZlvc^g3T0iVF?EH#8R>|G(-&d>{$KB#>IEybAwyzydf!e*3 z4MfLYbfdm}iMslF*Z%&jy{}!4QUQo@2&bbO2+Lne?hPLtn_fozPp-jYdx76|jj~mp z>g+Gy=PG@Tv2qCWmr1d;&hvb6{_Rr6$%EdFZw}6{`FhB2-%O4KT>s;(w~*(nR_bry zQ~Z?tRGZ2|T*I0_k4^0D1fM6Fp>~=>E+iw2W=(H;_qDH)nky}ST#O77&BFZX`s7qx z%H+JYF!=9){m`P?%!=~R#m26RdJxpSBd*T@C}&ae)Sz@Wdt>`{-1{5#b!kb8rL^DB zr#pp8^5noo{*X`H0XK(txA8nOp7^Wg&nO=$BB(Gfc&TU&Gp;}lQRWU(wW7!Oo1^g= zvhEL{(a;>g#iRq9@y(&9bR3Y&3e+(ZbrdmY&7Gj4!a@jO0?)z~F|h$uD!583#wDs4 zxg{BE1cC>CR#m15>(Gz8wxh1>lHrtUSdO=pJnFL?0iQa!CBuorJD<8(_05p)E1`8& zV-3xC$<7o^>_{2Mbjfk7LEa+R@V{{1*k+cHKQ0}v6P5a0t}#@QUtEuRz=O|YnBb6f z#qCv!BJCxqA&UH`c89JZnXOOylG&afNAN{N?CD86e0-+kl0)~*PPFe6z2jc2 zi!w*(1T?EELOESiLE(%%4tx;9CVu>8dj7Rxd68(?>L8&7)GikX|Fk&xK2q{L;yBRh zB;eVq#=#Shue?s3HSpT6QU(K0yRlzUx1m^D^{{Ca4HnPQ z&wf*YV(+V0-{dP2Uj{Wr9hE_B0OKRzVZGI^V_Y*ypzUvwsbaXD` zJfiH~c275=J9m}(v?*oMC)>37ZoUp&)~c(?zmoYp90643kC)cOG06&1@a)?S13QaM8j^~mK z9DT*?YYgtI-i)jpTAL=*3fTj#z9=~Omf2r_ykn3y4q95vs4ps?d07lLzdQy&5xL|P z!Weucb0~}*IQw|Bwszo}PgGO)y3CqIV^Bs5LcylN)`o3hIFHPIFIv`GZ~2WpAm_31 zRQ_8pjjl=D{fVR^dxMZydq^3FFj3$8BCW^!&jyi8T4O z9w{6sniyRtj)~E+nyASi>O(^aAXGtU^nji%zpdHM4!!s%Hmg!zc;Fv`?=3hfYs{o! zWHWi-M{v*TJiq63jUlQ5TuFFLoy8npm~K zG;2et4~_C}T$|&&GJpB{7428RJMm~z!q*R1t@MQl0RNoVQI~()*$*u3D9p@LxLrE1 z9oVl}GH5Mfn8vspb^MW(@YJ}s*1RxOcDqV~{ybLV`KD0o(8Br&Bw1jrDs9$*kxLgH z+SOT7#r_AzpIB3vC~5TSdNYo5uL=t1X0JIo-CnEgjuElpc!T+b;O`9QPL=<+G2Cwx zHw%P5zbB-N)Kn(cO`@`#(?v?%DoxH)(U~5~j=uM8#6iPv!8(QKH>!C6@vLd9+|LStRVgLTa zG?Dn-E@VG(%7&DG&;wyUrOFd}2xc&Z8OFq=1XdDq71M%DIE4og6cYrmUVo zhr~{>WSPdLNC-wS;M<@d0fPaBb^bNa6}Wy?hx6vhU12+ zphz(*-uV}sal^?WIs!su+X7elCC_Njxx(fJr)jb zkx=r_jBq?Ak9AC}#R-3TY`9825v{Tk)$`tfiQ{lb{cRGyN7Mfl^FQ~$0246X_M`fR z7RLTLZ(;Yk(sPlzic9CVGVNDn7x5?99Tc&g1@6B?le}(-8OR!6OO-xFVM)&a8{B;R z;Kg!lYv9+O%NE5f2k5HBi~U|#2~<$X%BYJ1G&JdOeC9y+ef;dF_)WbJ zeD->>CpOZ?2RxReFlxt9mGQZ0#f)-HW8TP&M4XSG15%fL4D;$USd$XRUr4fN7CrU+ zWO>b-EMMHTCV9m^vdbS{9S+N>y*cc9ayy7|4(NFq`PwI=`mB{J-$hK0yNiOn{S5%h zl!1nG&_FvckS`R)RisuzyiyIPNuTO`O!4qE8jlRldyx%d-i5fgm0q8wn(MvRr0}xEgCK~4I>EZ&d#_XZnfUW#5PS9J zZt}?O!->C?ZgH2@*qb|__E=ep*aZ)##=50NR^2*bo1xYoO)|2@0**Tx?A`Pk8NQ*< zP>FwHDB3l|khMw%3%N7B4Y#0uPWzZ27!(?+996}iSF4ym*gpB+fSIq@bS<5%Cf>5% z=5uGK^UCFVvE5CY!kARcHi_jP(SiM3ba&V`F4CqP{aLFh2hL?aPOlJt^nu%Zr+mq4Z=Z&WskJq{Z}yoM=7uvBY!xc+V!T zl7+a@f?ZYGBt+|`*K+&K&7a+xjkRJH{zd+Z0h~rL%0Ii0Lbu$74X#-yUkHi-%MjoL z&`R?B?uLf(nZ5?^y>dMIEq8okQf|NCJ;cAHC(|?Zgj2gEn?39*wb^W#PCdP-Fe6UW zEM$CYNz9n50aofOTQ3#Q&U@SJ^fIabx+OCiffo23u0FpP;1c|hqLM;y1jdJ{{L36d zGw*RS^?VZ<1LV&e0J^LaRYq& zh-$u*Ztcy7i>NE5qDCXd>N z`MlOYSNiH8|HPw?Okesb3~qUun=bvpNE-Rfl>fCDh`oJ=T|2bhp)}WTyT`vqF#Md* zC;*oXsjb=?x?<4U_O|A1s_LcUX59h(LeJsZs^5;ucZN3KyNm5GQSQB(x~05&oi;s~ZA@Ck1c|=H{jN%N@gf_%5#Yy*(kVKDs?$1I0ulHi)C4PT+ z(^#HH#h{>BOHg5@)A+C^`+oJt=YJD-3Myd2Prd+*KvMP z%cz+%|DQkMP-1Fv|J^VDAaOuV%1n8)hBsbOgI%~waufxVIWN+HqE8gm$6poPJIGJU zAa-s}THJeTAU!u}*1?!RgjjDnSu(O7Sml88t2XnIEq`+}$gAgiNOZ5001cvq2NG^D zWmKuBfa*4x`g?rPpJsX2@7lgh$dCf+k@S zGkk!@stuk;fD*M0jb3oG+fOf~u2rKl$QbJ9DSiH&2n}*m9sZlqFN*?LhRV^&o2w1^ zF20HLOh{bSU^_DH#WvNMdK$b0M475eXQoSClWBkdqLpwf-Gdv2_Qa=al{Bk;qB+=R z<75J@h{lhOODgz6Z!`Y>H_-3uzAElex#p^>-`L`qA!~tcfi~3FaV?%zo$$pC>|#$* zx7lRzWT=ZSG6qyb{nQ^<@l(ea)~}kYYHum0=j%wM+WyY}8@#>4{XM=S*>BeQoFNR_ zXswt|VQZ}WoU@N!m-;0km6ANLvL@zxM7r0=ukvZv*gTv@A@+vJr{uckOy_EFIZ~#? zTvyb16)G2Sc^ILPq7wbiJkO!ilL=o`UcQeOr|Cz?I`&R{Bz;v5Cj@0YFPDBOuK^Og{Ptt#sw!P&Uso4$gZ8 ziTbwmX>|6GdaV{OCpQlmv#OsWKRGC-phasvDa@M$?m&x!Z2 zTirZzKc)ZWn>TTmL#jXpcjYRi9KXd1vmK-Qv9`8k_JcYR#4su)gc*^Veb{dw1{gK5!LXA2 z4^$vlAA3DSf1N6Ol9d-0n+Wa)>j$z3#_{zy*Znst<<2tea{G&e-YH*cQ?)Xl`8wx$ zbNwU+1|DJD`8s`ib2p>6-qip4tol?;~Bao|Ss;qr7OdLsQz-KAf~yy)-JhTgi7-9cB{ z@%WQw`Xq zef5+zL!SEULH~K@dpOY7dziRZO=VV#EtrD_$1qJ>`twgJO8!Bw)4Yj+d>9}G-WLc0 zfsG$C+I%?&Z{tp~jRUHN(dVY0)Km_rii8G{A0b(x(P$`=1~2^!V_H}J_4^jCS)pfT z{XL$_rVGz7__=_jXH!2m3rw)P5+k*nrEg!t(YcJiHQJ+XzrVM<%`D`I`AU^5|JHa5 z^8HT2$&E8fxu{^4Ls=8Ui^1cX&tf!Ge8p}sx_4#%&55i5kl$yrT9>uv?xggQgPAXl z37;)Q)_P7bbpcnW46TQ@!R)lFV5k-&U{;<3|6LN>CwgW@36zM<%*8$XGcVI@m-T$%FL;W|9xPp>(VdIbW6fR#Gkvg^L?)c=0Y%phEd9H(;Va~mmm)<*y){NP~8 z`C$t7+l8)KTFUu!DRX7OdvDp#%@$Jkprq8a`d%_jhKNa*(AUaawlM75`Pw_fDqA&` z1`ULkBBj2;X9wc)h}VYLwW9gs8SgNHAbG(GpFeXJwyQ)}TuD=7c3sfg&Y&1!zYhdG zgzq@i{SBG|vIy8Zv&({nqQS7qKgWX%IKWI?G$-$qr}i5Gn?W)4lp#AfB#6AK9Y%;t zXs8q7!dp0~t~d74F{m1Yl)zWCz#%cfp!}uU#napH#b*4ru0I*elE%rT7&Of4FR+gn z#0V)c={1gBi20HTH1&Kt#c^edY4{^%@9bL7AMUPY zgz4%sf(EMOC{_4g(T$Hs&@wa4WZf@5cTUz6!cN}Y=f}u^3z$016f%<=7^*$(gVTln z8*rZ21eVp2Ym})m9%@skiL3t7xK~r%liAx`)LT!May;gIzT3y%{1Rl44f512@xQ(f zKR*~{j_WETtl-u`W;~w5*-^y3x9?!cReBf=jeY-KRMPl!$v`{pE+g$2m$?FFJI~sD zAhy&x+pNOmt#f5L-?Lu;78=bSy^u~!+^X2y18;^?Q|v`$3Dj(ANzMNGB2`2mdDW{~ zM!2WKdnlwP#`1k^a_;a)JdN?Br^Suzu@#k%CP^Z zeTtpJ2rUp27UK{~i^(_0>WX9jCku1CSog_HS@Icqhd{nm&MkR|_X{qQb~@39b-F$b z*tBQkHQa(fE%oR>##B4llNRffST}tV+YfvfL2>Vcena44tU=PNaJ%J~xFeiaU2e848Y6Lpzv|iU=(;kx=+Lka%9$C>j?V z_jm?C(DAqr{Mj0jt}X4?9-A(1-u36`r;mLZGGwDdBfrv`{T@j1bEwqffe0PtE1iFY z@+8aqwa;gLgF&VXUu1xJOYY0NYaa1lj5l~*sf@4?dh8#ptga9VK0KrXsvF4sDL1c# z?a8ZE>uT{f}`wrQf;TyV~)5$}q{Ou8+&eCOOD|Xek+K(0+XvzUyf;ceJs6 zSo56mkB0n@%-*V#8l?7VGtO8{;LOtAB;^<>h8r#9=qvqaSZ-YQ+plluSNYy*Uv~AX zTT+jMxhmF?k-?`F?3hFh;l!7Wkai(J_oG>)b zG4EaSxj3$#tqykCPL;k}wGD@Ym>-IvgLIgu|BT-@?52)`%l^SXhu62Vv#6NQ=0>0^ z9}p6nJFr8+!>hKIPvmpqO0(0~hbI-*UvAb{J26%ome8l}J?=Xwbuk_{>#}2w()*OXS5{PQv@uJ9}x=!|wI@dO|UMNv{!#?kk_v^iKn>~9{}7r#-}vj3Qtygp~=k3wn19bdlBv^M9{ zm#0_T6P;`;Pcv6I*e7+fS05c*Z;~?kCVl6}sYiPMpzCOtlq3gXWzC*N^DUcz72FX_ zR&=@8B{9jbOP!WRNa;UXM)gz{5F^9Bpl9s!vg3~!VGw0g`wLaQDRHO2u4`S5WkyaJ z8`cznAB-?e+RaVPt@9ESP~*3>`W}v$X&^ni<4LV+J6W@b=&~b+?S8t z-~fDU9OI7%NqDs1lt{B73P$OYC2oK8Flk+Yq=VI ze|liO5rNa_xubu!&tfyMTCJ@-ngY#Gm-=yAj_w6O6eD3le*5lS`zf{z>wJsa#eIf8 z?Vt4B-Mpi|MQK6YlI=#f=SPCE)B(etu5Wm_tU3PLX<_C?62KRnit}2}E=Kbf`TQ3i z?SP+A`RHK5$myL+mL0ygQO|nS!qh~}FR{i9F`46#Gk)+%(dJ=`lMhenzwWrQHeZ{4 zw(k7Hbm<(*NJ%y=YCM5_wD~+`{TACmm~k%2aV7J+Dsi;v_F3a5Fyrs|lLSRGVi;_; zX{#ukXBs&P11i>O*_~RHBu(OJ0hpTPfM$w73Yd<7Y;YYUTiSWn73FpFZ@ALgWX10Y z86wP1-Y0v?9sQA!7>MZkdCJfGBSd^;{N%R&KHl)Fz?F^bRYYKi=>az>h0L-$)$U^x z7JPKe3wlyF+m8xnF%c7vvEFCMT`_m@I@KUboWAz%@|dC*6bN*xc=q*v##{RJ-VN0! zU^CEDYVQ=QDIrTQ|gHI?m7^d!bZ@X&;7VjpAq^8n`mVRL5a8xXMYZe{;Y z9~)jt5;ImW=4*q(l_nc@$&hOBlk zND9<%;dMGJen$7M8861{%-V#7sIRS>-yI4B+#IiWEkbBhHt+Vrudzqh;U0s%j*c%K z9~5MAYV$HHcr`Emwxuim{FOL+-yy5yLwBu$OcszmPYD-blTQV}u$uW657ouBgqL?j zksZXh`=a*Kva|Ksj|mZ6gERcDMZM~S9(!)~-O3CX7nl4!9aO0+oP}D8!^CB2AIU>o z^@pIb`=1-8+eMiQCw%X28su~62AaL@0}^am$)#xY&-(JK*tnC89MZa59?gekWeF<) zHGVJN-VBR`Yajws(RgYP0W!b{3sRuzlLN>Ce76pX3m$rRqSX?}OS_p4KS)SRspTpA zHfUzZ{+KX$@?yN#BT@}OAa%5|wDGQHV>`SbS_tX`Z=H7V4h%7)!-J}8UYAF(64vFs z@)W1FRSf>n_>|T^5=pgr3}t$zq#QN0={TG9fs{_xOj+Q)*vy2XrR+K7%rlna)Qn#w z){6WEW%eNeNy$a6PQvhqoO{Q|VR)>hZ!920&`=NCSm9{3~`+@7-*yizb1~tjw z`q;E$93^GsatCD>iWSEOvN45Pe7mbpXm7drR^9F^N=XH=&iVefHw>rc^E%!(y_j~! z2~9ojmT$7#FGNX)#@`8v2#@WhsXOsq}}-_-o=ZLuyx>p6Gybnp5$UqEB_((T2l zddgs};1ij;t_3MSQ55#h{cPK|wfyh2(KohZoK?5SytuT9o_%pFvUrbPF}swgq! z_72vbe}{V}#!jkW+^T=$Qg0Z+L7){u>O*~0NMaw%Vk>3TDBmUgT@Pf~MiGb-Qa86Bme zNJz^y{FEQU_wS@34k5@G6nD_x+}@s@T+rV3p#ln)}KKPSdZQM^bNb1kyy4p2ZS6P3_^ld$PxEog+)J`>&i?S z>Q9*%7h*5Zm$M5u{9%N9Bp&A$wYA__$jnN=9J_w`Xo?4yx#9<+;oI(B)&WHts_e?%7mQ6eADvXDq;ZRXi?XqZDHchJ3Jomf_crMP_PD{rXbj#ncW)1R+Sm0gZQy zCnq!aItYsV&ld^%XLlAGSz!sV^OInLU#}RIh@kjquXcsY)mz&yq~o{Gr8DPst|+a^ zt*j2Ui0r>YE_RkTw45#`vHZz5rswU`==`Ypx}C}P*{|2VwGCHI?kgXImd2d#}Dpq*3@@%QWRa}<9cYVt`@FhMzaA{g8?phKUW^5S@Bl!qw7(y^xpU(OJ>GY^ zh>)T#&SF0IeQPyIs5<*&f8Va5CXu1 z#w5O8NXD1;fAg6r%z1ww$AcYyz@=?&z0n8#q33_*6HQ{~q}A(G?nM~Pwk@bNWLL;?q z@a<#db^wA~RI_gBbEn?X5PrbFsDXD9byKPoXMI4{V~g(BL^kfCs){rwRI~}|qxGua zSMFC;o*cQ@l^Mi?(tyQF$GpCrr|)Kmc(teoa)s{GlJou>4j;#Pvw6@s?elU1*q^?l zVw4nEh|y7=PbTsUFif6u1>yPi^cQWv&Ub$X3Z{rnOdM!T#jvzdLw8M&nfmSBpC88HxVGPn`nnyf$WgS|W7sF8YKIPikIU(V^byoME zXgbT5E9|NWwhB6IwgJMw{dS2umY%!Kov^UHrx29DY{O4%qt(#!x!A{g%CJD=_d(Tv zZ9M-uac-d8lXe17`inL&)f|~KNS`~8wqs6D#C5o5qtwf|@bKeNX%lQcwpYFV=13xp zK0AA=ZMYW)@Wi+K8D=G)x}>(&72OFg*Rt$aZU}Ok)zgghcHK7H;dB^2em-+yRIeh) z7)ExQHkdy)A@gafH*Wo3B#J}z*p&K*pnc!gpW+1(rf(I3h6VmzdT*zR=JW@MW|#5# z{FJAbRU%&?>=**j#*?fx5v#5c1oJkg{X%>VE&I7RRII9%^N}&>Gfr9$wWQ#At9f_Q zfPnX!XSLld))M=q<5|Ip(i3`yVgMh=yzYPaX0Okv&8~ZV&?Y@nefr9Y7mhZAH8PB5 zLfP_$0BlKk@b^CZqtp0+pk~w4Y-Kh=>R2dVS!2xNnwl>>G#gA=0_w2fpDNXXEvwYV-cIvGRGgzgKWLbTx|fq{&+yA)KflX=ER$pepF+oXlde7q!Ts2E8Kr_cBw zT5gFx5olg&qLPbJB^S;K3cp_aR*y=ye`eF8ivGv^l0D4J7v>w>DW<})Mi05Ic^Wdat!Tc|l{m}qzV(deSIK@0|Nm~wOII;=`e zTe#gN5z(xXcvjqO*P?Q^)o*=3&oluC(u znAidrAHmvLa+O?Zo>ju1P}M&E|EuPI?BEEizGX?;*dhNn1o!ZMzQKx zX%e>DhM?U#C(9Zw%C?IL_Ft>kdN0CEroAmUf2Ji9)UPVBK-YGC=4A9C>~~>ENUP9$|14%mXW#p#(t5|z zrThGE4*{hsJ>!c%K0QcPqF8t)DYBW9r zhFf6FvE9(b)&axbHi7=+k-EruTaN4 zdyfK}W7H_Sr+1!J{^E=_$Zdq6+W!Of`M+DY2sXblt^I{MW+*i{BYMjpisc6&t?g?k zZH>B0({(X=rHMcQ&}N>xY^WePLSn%+y1>-Ix2LEGmx0V}Cdu2=U|j#JI$0cEE6ie= zn%qW`P|$#X%}tn~_xWz_n^qDynE6nAY)AnD%*^>g$xL`yl>KdROEK%9uvvRBsjP`g zHtzYog{_TzW(-l@f>ZyDHu+JpTNr^Kj&=ke2U1EHeDM(Cg{jS z-KNsmNoW%pN<+ z0ZH-51I`!kkyy%?vC0AoS)Pui7OPGg0(9NneOtJ5f6%!E`v0zh^60H7&exqR2LOJ` z%+Z7L8VLb}Ue?nM>*ao0&C;W_cu*MOJ_xN$ZHnw<18M~3|6oA1ok2iq?N`z|WqKLS zL4T&q(XFKN5ePSy5|bHc7iW2yNVl?Ot^ z7QxAyCJP@tww=qY^3svPJCkT6yBv1 z6${2*@BP15_8-`e2s(dxxz;vawSzyxvu6G3}DvH{Nl#=avmv1y%5jWXBj71wk$N1YE67Aeh>z!VOESGQF7K zAg!?>#65~&P=Ou0$>pZ$^Lb(A>M!CcwpoK~b;3}d@(Dzcdl3kkuEGm93+|KgurGUa zRYJl(LoZ665AtfbmmjDKeaouF5ehb5rvV2qQrJw(c0kf+4)0G5%4NFfb7UAwlnTF`P= z5wOC5#mM}CGA!kH;G;~t46=3GdFmFZHa|apGQ0rJyPUn^d|m%-st;-> z>k4j0aVDij>39Ug=NzfpZ@RHh#J=4z5e5z^@v|UUh(C)d{U5U4`=8DCe;>XQL84}; zt%6W7Y8EwPG-9+ARi(8`UPgr)rB-6q9#Lx5s#Uc*>`~EHX;C9JY80hL6;-uI?!3OA z?|nbs@6Y`QB#-Nd>pIWlc|4C{UJ85h{eGb8j_i@jSU^(mb|uLIY>vc69;)sWw(CsU z5%V8x+qrV*L)8UYlOHo=56^txZ2M1C=kTX(`<6*mW`JFVzJQ&v?HEfsAcwE-2YAJR zILO=v$344o^Ei?Cc!e*j0ulGWyzsKCK74S~I-SF)giq<+v?r<*druX}<};F0X&N*9 zq^z#!quywq+rLsP1jz$T^kwq`eGd0WUV-l!(m;G)6o^W z?ANg6h+enYNe|gRb&Dd>^w(jmQfn8qsRLb&yA$_!O;-DxiXgd^2RHg-!FoEiXEFrt z^UvZb!aXnxxO@JrNT8VbkC_wA)<*5db5jr7+H&7QNs&(=2qUDMIWHEhbL!ugoC2PL zq9X#n{`ngz<)aBV{WOzbYJtFZG+uBmjaza5+(uKoe+|J%J@mNu`bI-t8KfT~3g-A3 zQM0UqK{JdH6S|VF_vnkA9Xe&!5E_X-SwVB9FUcRZzT$zFTfAM-omA$5Mc=()HiC|L z7SOae~&U;7R~oU6#(efU=!oxkCdKT}9(cD=qt{Q9$%&y;gO2Ox(AEo3zT@Cz2fRSa3uU?e@6@asE)5~OO`}g| zGRakHgGdN3`jKyvzq)DU#wOdH#l~c>#G18@X^S}EN;D_~c`R_;d5|^jCeOYh@p9C< z13z5Rk}Qk#S}X6I{ZH&h;5~l#&i!^%-}+;AEf076xAMt5@38=~J*Yh6-$HE6B4s-h zPnJ2cxEmEJ$mRMy<~z<|jeNgiKg&oEA>SS7yPn|4kr zFwSGUY9YcOsLn71eNc73<%iD6F$8x{AW)AEEhNt^a;*yWD?rHgv4fK7ND{j)V-&4> z#b^70$LMk6-_j&nR~R&{X5?d<1sMG(M@ze>VvVWz?P=f9CB`u<`}p#}%*F-|suyVh zZUcR~s}u1ES!BvpA!)SS#;rf45}fMwW7W#Sh?m%lfYBtuM!SMEy!jO~mn0GHC)32@ zTd5a$R$;Xo((lM>EN?We5eb2npW{{7XueC9%FvwGy{W*?s4%}k*1@tFx1DPaT->&QUXQs=}OM0kXon5 z-h806CZ|jO{u&;nHak$!*Xl|Gz%5@j&9Hoz<-rWib`t2m&~C>?NnOSyoOcfEsc)aetmpSKi&TZJmpnuY)9p}K&G zCGs~tOFh6r{L>5oRnM>BooF1t`1|1ayTb(|zN<{&{eLf22bAQ;SG7|+jir$VRHJ`a zB&z>&(B%O zrj;C$K0VD=)W7qHjBb5|U=cew<|>pEh;GT$3BAz=De=A$4L{pdQBXY6emL2e6oDkJ>|LA;nTN)R?2B2YL z{i{CNPy@X*Q0aPhMzn}!T}1^Xx5#x>GOmD+hVnTa2=N^0FYeyEtpW9W+pQ}Eilukq z)p}f^cJ4V(9~VRy4h0a&5K!DucsM_dl+mR(t4lw%@N9JQ78g)&*w-ICxb`Z1^$X)X zxO&Lw{!Z-CJI#hZ*G&J80M)l!L8~>v0Y||Sc}Tx>BGR$;vVh^D`*UWz)+d*zW3JO5 zvY#u+&?_~1z^P4y<92))LHn#t4CFonT_TA6{gCHq5yL=3F*o@;e8wA6s?$9 zZ1F4T$%i4{m$hPGzbfP0OW8S+_^Dny;WciZlV(SF3K7KUNQV13>S;O&y*rbTsYM{V zmS02e?m~5q4il-z(o~L5&!1RCywoj+Orz6ku_4C;)W6+?e3zxEOgh4rLtcv|`zppH z9!bpDU3p^>t^3K8V=vHBVvP1(W&|~RYKr{EJ!YXLS~Q*lOa^a?P1iK|s-4RUm}(rIf$25N+IjBev2BjIu7#QU^^w9B z{hxJsmn3@h1w8uhBZ=y?_vR>hywt7uc81<1#Ug=cu=iVRw6%w@7zu~Gr+$^8E$os( zovXT_re*1+(b%NM-TkeKD$}yA%by?X9o$`tqceAmXcko*te|s@{|n}{U`HE|V8N`V zz{WLk#p_iA4Y%uVpYMt=w@D$tRCB^r&rOchR zh52x6Fc;{fl8E@8U>O=srQIbB##e<|$X}u zb8h{mVDX#eAL<5<ZCQN*F$=-#CP_|Os!+ko?+n>_ijS0`^37kT zKXIIH{H?0r^|upU#8@TSef#iR@681RLJhT|X3qkB4Iwm5gz&GB!MBQ7naL!5F~3|* zL$E*N6`-1ojx?4MF@i!3Lffvm(zE9 zkNBEI0tdRs=t)LXCp||;C~+7OQIVa_0k-_u5tm>((mQ*6lt>kaXb6Y8FiD<%7hd`? zyF?w(F|hqBFGr%f|JUIc!9ZO)QTQMqb#{aW!!2FYoH-R>cW54`?8j){{_Sx<(#z_# zt)RmNVeM)BxN8Sj?1KTpO8Eyk(}wWvfi~B*we>OMRoh6rh2feMED;Y;#rH0(R!qOn(Br=HU}sR#ZTvr0ebUb;Q1X>2U%#9+=Vjd*f3 z*+>Eo79?`;LF(5+yg(7rB+`qw)}bBIdT!|N#F2zDV5_1he4P%+XIr*SG+LD)BA>jm zxBO=-?jB`DO}OHVbWxp&j+Cy1n`nO$5=q~I?sb=Hc)aFnH+IcfODJ@W)YX#dnp_zE z#%l@)B3zhl_hZ_4DiULz?H*LyX9X(CM`WJz_8FN-r1k7okMn7IQc=Ho&0tU(FA`@^$5iSYrQ0^uR z-l&%b<#!R5v{7_42`&bj54MYi$A4X$zjbbj(zflCYg_K3cFu#j#>7y!R%*1|nqZ6X zQ~7M^_Zos#dfR^=WN(!aRkS*fH(r{ggG5h5DDzgL`)1VR=ADhRU}O|P2e4;@o)&-k ze&>pWIoc5abBsq=)q+Bd5fNu-YHd^F8{echq1m|X&$J#70DB64~> zAy*Prv^8_PW)#^G?vRhEw@f~6y{Opyj@IE4Md`HUCNFd^2m;FepB zu6$)<3%{ng(}iqr9@35?!Xw)Ci^KHxi=A5jpJm7Ydn_VXH#e61ejN7b92civ%NyK| zPV%~Wk?j0}S4_m^Q=*rh&bgll%5r^w`s7k+GANzn!tin1gX80ArB~-wFo{A zooNKk`#&L2j~KIB1oAh0ZX~2{T&3(x8nSUMKD`^aspOq|JvG+3kuk1uk64~jubO7L zb*CzE&kK$x7MXLO{8`wJtB1kU(2u$qI^)2$wh6ZaC6vcZZ&l z5!?-t{QesR>`w&Pi`}2&ZjIlw3-%o7Jr^%GUcB5(qpI@D2JBhYpRC{|oQbKAQG#Sz zz1&ggS9znWuPMMP=PMJ>sEyLcp23Ge;PG1umYwxWsOj zR}B@^?#|D#?#yU;Mzm3pTeMr_wz!unGa`6#)h2hmufd^iO0#Lq{ z;AHlJ@ciGQWZ-`|mnC6#i}38~2C1&D?U%=YC}!rT^ReC?{Y_JPuY%Vn(YoJC2z#f0 zH%|SjK6hCLv&!nURJ20<%3DXnpc}{A8%1gUL#tP18Aej&zY01{;UR0 zE0;=F4@<(OJGQbYgVHuo9LaL~`%WXRVsWnJ?$qG;+VAXkYq{>Q+zOT9#H4QbQcI|- zA_st8XiXYyF2-bn@SEl6bkD0O>|vLtTB~dA~G{b(x)4T-44yu5GO&tHa$6CxOBhc zZkFdi^GhcSa-PgidToXh&W^rkh|wg3CA+-pT9g?4O#hH!?$=eDqoHsE5X236+33}Y z-;rWkj%-GAJ+dd+W~|CrcA|+^^DIu^!BDMfOFwGTd;EVgh_(q-qO;jq~48 zZ2jOxNmyN@Qu{n~BxDZv_`}KNYg5p&@=8suZ)09Sw(ZHg%~=#>##0)NK^A?FL-bN! zYH43Ej)0bR^e!65dMiBF=#7IwMY_YVyd0xKUElmJlr>p(?Ot;6F$6zD>)zY*$A98n zbW5CRI?z;=R^Fcc#G8}jgC2V7SiqWGN^-EIkBsDChYUg4*>^KAOIvC!2e0lnnGm*S z2`#n0BpGXuO3Ny*@)k)yY5Y|;th@*i@xC#o#|9(x=+oj=smOSwZX_PK8`#to;r^q$ zbKEb-`D3^#_Gc?zOp&8mhx)T~)VT~*{#9Q`u@8(1;rt zMK0pP!XPtO%oFg_!Jqwd%7Z(+2FC}^w0Zse^Th4WkF>>x^%Gpvn&OppoooMUYnJ}6 zmZ4JvN(j`+vMrS3VV`YptLmn0@wa?zS}|-R2_<8>MWS{!m$#O6sLEG%^7b~Vza8FC zj}HzCPyec!J()ZR)pW%OcZ^~F1RekJ0~=SB{hd(c(3%+#qIn>%$ig9_J*~C!dj6_% z;-U#hWBPCwu|NJ#l7im8a+2X5wu-tQ;8D}4GVo0z#Z)}uIj7jW{^WiUe$+D&aT&Ei zFKtt0evVJyAuazb?^s^S0Rt_ZM$%8rv&sxDJIf%@**BiE;dUThU3dm*19IP*U$<^d zm_y7J-EHINlB?E$V~C_B(fIhWv){MIrNtq;I4)h$zOsJssyggF5$^Wvd?|U9EqMcR z8U7RjhTC=_R1%2s%GD-8TP+8?ii|`qB&al^^wPAc=(F$NG(>wsWen?Hx<7ec*J4k{ z3ZnOicQMpi#>B$8WO5?jh=ABv$jo5TR`6N7)DJ(qk-8WxI0=)T12u|H$kG}TO=7sW zXfyU^muT*JFdrKdhPy-O}%KLBv)S}4QQN|9J47w3YiqRcy&@AL4pXPevOnI5ZTPG)0~T8WqR-7#Wk zAqE!ok^hb=Y{@tV98MNf;)3C8&}ZOeFa2&xig`U6uzqKx8E1?QJqkbE&6^>lPY>sk z09XWv%;*Qs4_FRKUb~cxD9gNlY&;S$Ql>*6i+=*n$``Yl#wuRfIXLJhph3zR3!NWm z?;_;}wKRV@x6nss%UHLSw5eh?);v*CH!W#asOc1EUi7mboKIl=$t0!>iF93-~H($HNmAc zQJWe1FSg~Cxf-u55)|5lKJ=Of-jKBPlIqT%YfO>FSS?n!`h0fx=$4+MVcwOP3{c$} zwHw8^L>`HW7_*+0(b}kp|4#AJ5K4HDO+y%@mt#rFaH~yI5&cv%lO7@n46e9ybead} zK<6qvQkK4&YajxXkJ?ba7h>^n2o1imSpJ5ArRgQNdh)KTc{~J3`~(1U(dh=|a^qg> z`Y;xvnqUjdi|v#AE7#d|r2^G~YHkDPGeXntla1>`J{`LjpXSYvuwuPJDBb4aq@3O_ z-Y?qu;e9G9sWzM}2uJy-VP^ZP@uh(QM|iZ0-rTdNy3s6ithr>cm7A^t=Iubj%~EJ& z$VEu}qWzn=Us}l043chH8VXvLLH*Mc*btN|vr(oP3-wb)IcQupc$FO%L@;)K@XZH3 z`$t_xTQcrP<+z1Ou>qY?`_N1Xx#LrVZA0+MgS(#15$-vNpu5{Mn&aOAH*LSx3vuphk(q%>;s@& zk$3p4H#;O$0NF?F1=|F*m4+po>Q2X(?K{T4hb2<2{%a#=Ss6~y2DsQcHoxU3sW|6X z><%1x6KIKm%QV7pnY~ox2W^9ufl~g~*+~deI|-I{d*7^)zp*(Ow&L5-U_H1@Y22}R zp!Q|T>tJh8Sh%o2QQVC-^PYS>pTaVFrMFkc+PJ1~9k;Q8ta&^+egV8OS~F5mc)0Mx z`klGKiyC})LW6pQxMb`{_l#@j_~dQ4)c~b*jg+V$^taXB1sh(7;6`#<2G`}198o~Y zJcpfKf3PsCTZ5IXlyVS4cZ5Ezq)%# z+WJxrm#|oK;28sOX^W!x@PKgP*x=v|Zav8F(=M}adHE~hI@gRrT)L!*YpFy&rkhER z?8i??ob(=)1@Jp&=<3jp2Z9)cO7unTCw9Y0uog zYs{FlRTgA!GqW>}k<7ekFj)Q1!|zW#{8VlALir|y;0WI0nq`_+RN<+ZNX|6?PB=bk zvz=%<75zYjxZ={WT-(saqP*l@E7M1eFSL5XX|%a_8oBZPiSi?a2>FGM78VRKSZM7Y zEUZ)Jg<&DmOD*|JOG^#GmESyaBp3~t5Ua|W-#OBK)GwAbD$J3iYvV4*w%i2O_ppXU zL0!7B8Ev)%f=hCDK|^_T@+ms#HuGE%V-}V?Quf$*w`XUdjt# zQ1%_Tve2#bA(3ipVvtUo*)Idi9n9&w$NN>(GfXsdqC?TSOqD}g=R?`94*G^rbHn} zMpTPL4Dy=n%6cdfEm6D1ECAAv5uSr3%`H$~EfGPWxK3($2Vpr!H_L@XIcvDzFB(b* zgDNTw14XT_qeQDNKy{)Y!aKHRGgeEsn({o7jPy^7O#0okyuP)Sz{D;=Q^*&vAxEVu z-f{tGh`}#|m&+!l*8r2Q#n1x%cty$aoz|SAdGlT@sE9{0#{z|Sd59$KZc$!6+lHvi z6Qym2=VUyTmMxNeS}E?&Gt06+F4@vA_C8n4)_hw_=1fB~5_yem@;;q&P&J|fQlkhl z=cMUiyu$slOlDX_;HFt%V9lO9KT8pU8JSb6Yf5|y0NuAMm#jN9wPz6IE&;A5Y})^5 zU8Og8gPZuBiYkex(7Itt=P6Pxp4OC1gF(RAE{cXXp*zS%%j*5`=&Y+FOa3}gB=B#x={inbQ-ON~!bWfc$ky`)HYrZA<*;U|b_+JoL5R7rGq>Tc6?CN@DYhCOVmhx^f+O^0kmxH+L#u*m( zdr;WBZzZU+Cy{VmoX>VE1km8gEjuXS*TY>XQ`kG_V`$|xZg&?29s@lVbBabJ6m3`L^{?@;ju+r>5EB)?E)=J{%Ku#eA z117KmZ*qpC%ga9pl*4LzLwN*U43kF2!AAInt0MGevDy5Ki3F9L{vW^{m%nL-OgPR9_)UhfyqLJ(6=r>2cZ1lp!0xnE9(CatDS#pc+1hueUeyNAO2mR+ z+?Kd@4L|de`W^=n1Fwra$h(;?j#VbB#f~3nwZ(c!@%MH5X!DmXLkt;v3rcv9r`Pl z>r*&}?O;toS|<`g&=Wu9;~jQ~Rbuoa#>K*NVZ{VTwEhGlzR+qftR26FU#lzG+xW0B z?}nQiQ&LQ~{&^4oGt8r`A$@+TQL=1kLWS2ux(}WnpMfa7dGNQAFnPgC(az*?wwFhB z>;rA#^SKBt8s?XCE0hm0z;t^tn0EcCjd{0SCDR+%SJqc|Ff!oB6`Fk2zMS)|fK*_> zZ?j6MzHMFtSIJB!r{ltt?n~={*~Lfh`BKJxVJ;>(va=Z#?Q~%^6`k z+50UFOowp_zS_#^WxUa*EtaqnTU6(9{jEE?^mXR%Zncl3(j?=WdHO_y2ibi;5HEX@ zC9Q$#ELmUVog>@|^Q~fZ9?kFvjP zB@&c|QC(2EG=oQ+a#sOPC{2O)tey~ltBy(iSntZicprB(gyGy0tuaQ7Sa<3~bhyyB zK-uZm$=|2Fwy87iCriRqrxQj+%i^u?vr^|a%6X{!gf$(^x5g`2IIT6_L4rFN&Yr=m z4>7AS7QNV?yi{?p&qg@bSosfy&koi5i0!ubOsXHM`)0P0Qh`}dY+Ku~#uK|6#%-u{ z0CMuDuV>9Gr`+0e<}fHYyg;I^Y=*nRdUIpr1Mi?&DxStF<&_5rqz;-j95!ukELEnN z8ePKNxHL&w7I^(7$IQ$#AzGA@c-@;Ohzw13RhMV<{XOUKCeSa(Bmku(0t4LTi3rys zK20r##_8as>Pw&X&onD)cuY>0Pd<67myYj~?6%$U>iZd8wg?M9Jh*@R#u4}AT;9n$ zVcR@ElbkN7_&`4ke6J3ahGZ||uver^e@fNa8Ks+z7+eI5kp2+PMm?d7hDz|`N@w;o zy5jbkLkcA`G|VA9$XjmbJc@XglpzU3LgX|UX|xPc;6p-TL5XVd+gkKnTBe66@Q?6I z`|bV9$|C3$u>^tj8z*Z!ts^3pRvL}&_#bMSU!`@;BO#KmA)N@NuKwhlTdEy03?+qd zx}GPqI{gSl!&j0`9i3scZ&*?#x8I|oSkbh2uQi2811PpVL@jK4{+1wz(Z~SSD7ed8 z@B5m1b_g2;*mgP$;O_jH^~##t+y0qp+9xDOB@J)NkDJ^r)TxWD%vP}I9*EO9IXGy% zFU@{4;l`e|NmZk&Iy@#C+0_q0yW5;mu)6fP+}AdXyj2HN~;RAy4W^N*gwrabyLF0y^4N>KfE;O=D{cxEc$3^ zf4(E@DJf*f9byy#CQ_fBHl1GHayY2CW}e6Vk@}MAx^}R+UN~B^^5xS5?dqxCFRzk+ z{*YH?Cqj=jR{z(F%_#D5uwwO3Xv2pC`5mw9dF2~utyhNd$V5mwo|}}_N27jdOQgVM zMKemHyWMp=IvEU;sKUUu*G%wc&%&^jV$;Mc+Pc)#IOAs~%_kdalzDx@PqS)USy-ci^WqNGNRV?S#&;8S= z%mgeiDCd%69V53c08l-|n2l?S*iQc{{6PvjnVHi;mkMBFM(FqE_TCH1gQ&};8rA#T z+xy48l-mJiI)*^TDDNn34%C z2M}S9_Bg^6ZPT>n-=aI0MCmB(7=EgPxbnU@qbydC<3WoTkAqNnF777xwwX>%)`DUf zBc~5BKxb56w#+I$QZk-+11BnLEI#I3Z_5-Bur@x$4VpP0*L#B+xE`c^F|yl4_FIU{ z(oW+JM@{AfDTwaT!C;^3&7jowqL_}u&Fbz}lpq(fSPU3E=d%uPu)vBSszU~p0uA6e z^(WytlRENbV#+kIWPkQBweGZs_vxS6kDb@mnCQ?oAGIF@45trKW}@OWqSAZPI? zkTF+Fr_OG0Y?Ak6b+s}mza0D`b<0)a>++q-Z_H`m8}HUM^vjfQ`-i>>$bcHZt^ACf z?&~QWtN1gmP3{fo+kypdKhRby=Fur&H}FG4-pj}4kwENsd^(csHs4)Fc=u}9eD7k7 z^&2n^6uUO<{wpkQC5OucCAQy}+T>aLgU*6{mS!dDIdEKiz9bGuU>%p~9u*lF!~5OQ z5+K}!TwzZ|4~ro=LRwP!v9+{2z4ec8G8X9>587&!k$(=SX}ypVP~#`8yYu-xh8y1y zegK1yq2w?#pcI%+bom@GZ)Qe%{reoCJjYras$iZ0xJ5&*^wzHV6{gyoD7>DM4L=A1 zfgE#xp15Dg9EHK#LgDf>z4o!!z!iQX>1S2r^cZ*ZoFk=aw!l22k{OVkNGIY*0taNvR7&E7CCsdsL$=&~B|f6~`d-_!TPNCdX;qdsiauYFptW!7}S zn6@Ic#j!`3_sNB3zvQCwb8H~lH-3Nr49Oq%3p>}O{WgY&I(c&BqQQo;M4;a+a@{p)f$lh@gc66KNfu=F|BsQXlo-PM=WWA`6? zGIK0I?r5d8*qQ3y8ryP+>(BdB6Ot>3?K5NNBqV53%YD_&nPd@A|A{0LiUy1GUA94< zE*w%fAU8^#p`lwk822CH1*b7oi}m~KeTjsVkOMhM`4NwukDdmfEid(#WxT4TE3Zj4 zt?Yf@M%mgd{a<6EFiJ=0c?)WB%=x|3^X=6ae+xp8Sa-R^1Ut+*Rzp>Xv4)KM9XqaH z`(-aq8z3XbnB240&c0Hyt9%eL7Mw`fmz&Ms_?1SQ<>xxS) z+B(SenyeHFygg z(c)2$r&lGTY|)IIHQa%I|5U{=fNHqoDovf%O7;p!xC~;%LYK}o=Nwj4H%cQJtBZny zGop)Tkf>s-TGgXfeh*QA5h{@|A=UThO7YEdbT)?&pmi4wP`4p(6LKK4RaMQvFhiv>y$}!KRLN1 zS>4C|2{KuHoV7XI5>nm|wcG+nBAtkma0W%1Y`JR%FSqv%PdlEKaJ=SoxEP1OO%I;e z*vQ5hNcKNjL?eiaj_o>EbO^V!!{0oJpaA?{jjuM}uH%h1w9Mvww)k}yV8F-_I~)Z z7A8%4npx;c=rZ{XIbz{HH%e;<7Y<(iMC5fPw`a?$H68r!)7nf-*d-lU)kMLd*s6?7T1}$W_m1Ugs56>De#9mw^H?_RFz~OOs@#&M(9}t&<~e>4%+fE)OUva~SiQv)P1ALs|3B^?1ZYKBv21;f zfKTw|$?2)`Af>S;9ZTo-!FC$zr=%E@TBuDI*E{f zU3|Af&dZ*3KJ#R(AD=S3#@VjvqEgHo95UIfm2!lxILo~297K3%WYD*-l_}ktxIgN9jHmdmO+&m zAuI&7sWy!>BED>_{b+eQV|pyv{s$=T|4ams3*84+m8Lv6ZAH zdOd*@St-zoxO?pQcr^8hSV}fcnO|eFtRx)IcRdjsNphS#_Xf-BrbRLPqjN^2OeumLB9b%ghKiHK98u)@ zwiP`T=mzdnwKJ{lM6OKsdE$^?JY>r-NDHohl!Auv=To0$RM?K3>iP+(2!M*ctjGq~ zsc)&wU#QU2?QR`pbI0KxHG(PyTb~`(`S{@ZHqSe$tAR+UQ-S8gv6>KtN0s+A(c&G?%K5ujNNJTso1fa$!ezAJOOuzHHo}M)|2?6F_7S{gd;AgLIFj*uhw`L%2 zRt=UlOgi3bN`a|?R5P5YJ9*Z5n52w<_*>{4Ma6&3r9m#+qSDa(U9__-xPw($4NLl9 z@kw)ZOc3l4iv-KJ7FpDc(Z~$;d5$2e@yS4(&**poB=SWv#!GV-i)+(CLwnH9HR-fc;&-O^Z?}J`0oz&r2>5- z12N`!zx|ts;oFB{M*}TZw2yZT331bzzM^&A~rC$ z5gk$8(C>$e*+?sbK+`uM94MtG?yQlxPmp9te@@=XPaXSXOLIe!a!alH zC>|zS@v6GW(0!_9&FIWnO;yDCxdi^s!$OmRIF410MNh9Q>}WUyNj7M1L+audb*Rl+ zx7$>+`{$Hfr@k2HGX;txQ6oqa!!tF{hHqj>Vop%tX5e{&+bF4zJaBNvglwAVo6|&5 zt}Wq-&Ugcccq)v_sv5qx`LnYj_=z-2=k4C0dJ^^KF~oIJ6cvi~b8l zP~Q;J;3x0eER!Z4uWy_lugAu!DEJC>06W=6YVSnp+-z!#>lHEPkPWxCy{|J4};C4%9 zCEzXrQ+WFXV(D|@-2 z>)Ii&ZS;E?>hD@F{b=mpAqN%DG>}oGK{?$sJckUPNTsB%dGX00(0uM?HmIxo%x&kK zZ(K;wSn5~y&Gp#aa{gTI(H-a^4}N$g#)UO&M-(kzZ9Xe-t*J|jPv1fD#E6VHus?QBy3lKA zt69rau4Kn}=kDp5ySbB^qt41S%I#Mtz|~|dhwqkh?_g7#M*Czrn7G%ZF#(fw2ryVl z`AUk_CcpmFi|4=a}^98?EsGzis zUzd*0@NLoq6wjlLU@Zba6cqm?QrFcIx~y$t!DW+`f_AUtkZu@2UWs3K>cnmg_j+_4 zALVcHQ2Ip`TfW`bf_)4a<$8`Ea;w}s#w`cud-Mr zFWCOT<>Bz;V%Rf7?$_1>VRg^3KwVA@l((o(oEsVsFda;984T_UV?2$g_ z3;aw?w>%V3(jQU29@k_S8s0vG&rg}`CyOENU?S^mMnR;$d+ zW)TuLdyAEa%}<;;?e9)LZPYdg!}zDoJ-qD4Dy~EfE5!t|UGBy5$Ib9#`9E6eA(`ja zxwTgC)V~$3H{S|k%l z-CfDMrk7B9yWnpNBhH8JGnx#}F5*-s8-6IipBk!|_}y>AC)s}=EtOE!>|MmU|c>8G+hza`KAJqn1d~=bcX2c$zqkxBjSy*4#MK=LL@AL&OdUx zfKG@%?){cLCvooc$#)PqxF&*Q*VQM+?Y4UI-zCn+n$&?mi_1&_UO>o9WceJriU7JmWH<92E#%-YPs^*6bG48G9IJ> z^mC(@L)pqWn^M+C6t5Om80PMp&vsY^I?%)jr8ETPg+U?iGVe!1D&ACwkI(2N{oe59 zI}UnQ${A^IX**5xn9A%`i2t;DKK{d$)fu4u*o@0G(rL zI*L8~!Pp&PH@VYI;;Hb5&TCw!ET`)}9ZVZ7cVgO{0nx5tcy#l%8fN`)kNMSy6?&z+(A+u$_p*X`E@XVu8~At4)cdTugyL_O$E zV6?tyHmg3bfz4AF-GJB3Oi%TNiDLC09Uq*YkFr>7^oU2#yi5{AmFyI!7C!DZpl6ti zvm5cs6~gj^q$0RxK*SIRC%keybIZ$C9S2naw_;c7AE=!z!&xjpB@HoWU{Wqobl;#2 zR$Hsv3jy9aQi!j$Lh>(~TW(4KL&f>zlnIyUwwPDVXXQ%RVD1QmYkDaB;wcHno4|py z8{|-2qPPlaktCPgnZ~ypQj0C~IN!-Au>dX^*HVx%eq+whix_UVXs)3edEBTcVmJ$RackyxdbL=t8r z-`6P8O`^AdX{>Qy5#tg)@Q4qwF-oZt`dz0QI=Hwkeu1ff4xHZ=`A7JpPM0Zap6Yi> z{ASz=h@3rq5fw>=4xlKp*PIe5kYSbcW#=d1ew{I~PuuD>JC;-WN2w-n_pcenvDM-@~uhs`*q z7`I*v0b}{G9K7$qHaxc*BSKzuJ$eA<-aqSG`jYi`0@rIj2t$IKKT`Y^10}JVD_e>2 zi-8_bQ3Tzn)jx25F*jp9BeLVcQ-a;Xa_YFt(>e2>vD^1^*xjSe z%_iAHxTa%^%e@fl=R(?>yy(MNIM+sv^uKrUyt`?w-Ml? z`<*L=K6FMWqXi;wQvjsr%gSaR)uz+Hq5riwHZv?gK6$sb5&C>19i2_{L8hOs3KL{T z*<$s#L|3+#mn)Xb8t!YVpp-a3|J*#35Qa{Tt@{@UZTDaCcQ?rJVz9HKezT7gtr? zvq%J3n_M+x#yIl0p|6N|$>bh-I?5TsLWGK;$oKidfS#g~r{#5zB;NRoqaslaU?rl@ zAoS7k$ad>udi+Cv`^cZ>P*VwRGfCYXk5TLO(7|ps$w=8QJ0|`PqETHUZBC)$H@;{f^+)$?_Pu|f)J(_ zF6G!L0T3PHlMp5<4TZ|bVE}w|Wu1r~7yP4-UplgVs6Tkzi*NGJtJ-&*(#8#J!YQ%1 zo)%3xts7lFEy)YF2IXc!e|GfnSAYzRnvok@Yr*5Ki5o5nZa7Hmve%51NuHMYf;5K( zF1*95jp|BsJr)xKUB5dok_~VwQgn0;;`_~h2g(UgCewuG0WC0Yp|p5v$bLunr?}jUt83EakP9^{pmTf^asMA&ip<#fe^AK zOhTLxR)h&Z2uah@ouNB~{Q&~45g<>BT5&Aqijt z-}CFy4Pyi#&zWW`E37m7*ptyG5Z`0%|KnX{|9JtSsa%L6Sy|POHbS=QMsg72i=Ocu z8sp;Vds;qQ=6ST#-Y#ygv?fsJ?vT+6`9@;Q!aB>TI^FhFq~0bm5GKqC)(touFm5k0UPeRNE3vf6q&D2?o(oe{yjPt43oUG|MB00 z=bJGPy&oK(zH{m$6;oQQt8N6a_xTx4&QDl;GOv*+1Nhy|rRXb$P17JF46jwZ8%hx< zjdt6rrJKkSkU4U>C3{Nebb;n?bd$f6*WNPVWQ0i|T1{KD7gD!6u+6^aq#LlONvg>@XV${sbh31jB6HoH8d_x*8AcYD{vWd5#2w1O?c1LjLo>1s60!`2Ol6-WSq5W_C4^+DP)wHW zB$63R$U0;vOSXuLtjQKa$WCR;9x{@Bn|bf&`5nLKc)suZFU%bGeO&i-eLm-T{4@VS zh-90@$P}=S80I)PNrCshXQKgot@Zk~j^=`Wn@#o6L^yVHj#Nrr*&jdB(bKXlPdlB< zXDUzCsZqS%IbYA6axdZF|9(~f6Aqr+-e`Wxd;j*kE8gzU@PWYpwz>5o{oTZ)AJY9s z0=C+u3`rBQKQZhV(=4MInqw)(ExBx+CY-olDfjv<%vn6Drr^|JTRdsAvHuD5He4dd+Yhl1ha9cRRngBylL6huG)R}c61S3XJ!wlqYn?9KEtDjAwz zw6)C8sZ|SMVovwkn`3LDLHI=A7>e1_^qsGfqPT)3Q-%4OxW$y=g$Rb)Y@)GM`Qc{q z@#6hXIBXg5g)9#j#DUjKRi;T^;Aiiv23j?&y)9QdrikkR6*Nq@QDq5LtVa;)MWWhTXhRO53Bj3&^;&koM|MO<1)PRfiPQjjBy6m4+^2Gv9M0ef zMbh5-k4SU4D8%%`)}4micw*7^fm8d9IImJEQJoeT2n7QtRmFVTnU-k7mU&s3cz9?R z)nqTvYjEPO=;!SLRJ`?oO?tzgDZ=Q~JJu!VKAi{g1qjXXN&Rv*I0Q~k-(RmWXFf7c zl+{GCbrS!sIW$cD^Z4sOH1-0ADt@j`8p$EuJ~kAho_fpkcq!e~Nrq<4x)}c6EmzuYXC*=2**E$DWJXgAoRQolAxv zx*yNe%Spp^CrA4>^ikSIT!{?rzT>r+!TalSqokFYtgUDgE&ljg?3)_j=k=o|u4`bA z=3NecRlQ9oF9q7m|89l<&zD{8iPqnU2DGTi7v5AG7y9<(QP)VPQNO*2s`+39MN_EX zTWUSPlChw(YrBv7&AY_cGL_eEsd!5SB6qlAoC@?lJ*+!Nls@RPELOS^xxK<9LlVDF zZYUX<*T~f*aATAzzE!Kdb72!GLWd#X--|nYKC&nS!MeKUi%-L@_DMqR*bKOi!VxRP zAKti;l6p(xkin3PI9$Q8ST`Nb_;nS>VARRCQ28+4X#TNe#E*dGz?Q8Sv}4mwC~OZn zMQ8hTOnCoR|S_FSdPW8`ojI*R(b&Owc6DuW9vXNAz9o*=dzx&g{ zv@k=7<5T3{)^{&Ye$Cq-+bXtkTY=9;46o4sFhCt~Od#!r*)FTK#rn3v+6w%J>q1MO zIVZ(Ll8D5%1GFXs%{OiZne}prbNIJiaWu66mg&EJSBen_q@!kf<&NE#`P)US9iC|x zf*{mKInH!Q1^W;PzZB_V+nR zB=6OP5CZ=Fbs&rVC(tb?#~dab^R_KmCleJ_0%bKJ{v7|1)M+yF12g_n`(Xl8o9%tH z+uBbtpEN7xbjbeNN`2W&x0yzDmC5n5bn~e&T*f);w%>}H)bKntyh}$6;uRNMtd9U< zdIlS?!{G=8rokm=yrp~UZu|RP*m{`m;Pz3PR-6-I1*^Me)agHW#&2u;Z%1=s;ukHa z6V9j5*ssXGUdEFe#B-Q9l7G)cPFq%Fy;&s8sg(OlEa+9V3@v#-u-g~*-XftV3 zeOdeijETPza&dud%K;7C*|>gaO>@6W+@znS6|V;FxYJE(?1eXF!smPcT{(%ya9w-l zexvNtQ}2w1V9tfAuG=YVGyh#!`)@G$e}yDS6Z9s~_Zq|dF|DfX2~>ydxckxOMb1** zRrizQ1#(x%YGe=gu9c@n_DGMpQy*?^&3T}zcf-H+XVUF9w*OxRQeVF$R$Yfp+np#NRQGc zso%^330f8SH-%=VU5-csFCRRyK)3RvHzx9VS8rQh#(~$l_;@+tuT$wp{f9F&CkESR z)qG^X;`x(1-X>5`#=1gjVVSj2cg#~3{jIM;Pu2NgFqu#dV|#%4I*rnUa$fDP{yHu< z(gJ3bxr&cuOU*k`IsGJcvDW$gmxzn6;1-6p&&+8boi{nrd_fi^+ot98M_Fc@N3zq@FFN z2&nia%Qu-~;xf62Trd&ILP_8d4W4mh>k46D@YjC1+1Buc^{DxHhQyDk{`>f~%+4(* zS?cUQ^Wbj%s{tHYp2L=iFRHJ%L_;MJ1t{2eDdPe@i@panfB2+4vC=Iec@?ANzw3d= zyP5OypCvDjP+DMvl1`;T%7&@SQrB6^YCox0uO=mZ=JlF)XNx{qkkFEI8Re4wV168U zX=bWlbvw{fe0oM06nMOELch0_u<^}QD$+I_N?BqH=Cs=M?GtMIW_Cfb+T0Sy_b7zP zSdS>NLLPLGXg#CHijA1}Q89Sh)48l7G%@u<<`!)}rwLPjGxH51P)V>KAS2*I3f9wQ zsB6li!&&*KhCg{Me3z-Xb{4tUSuix!%aZsa7X{0B@b1DIuVV`c*hItfK%XmW?z{9w z$+Kq(70vrdV|ujf3pndeH67}3YR%EZNbLcK^jJE#C?i@tUqb)}t;#jrpRzfSu{i;r zN(|!Ing$QXJlLpso7oqYH&^)m?!)K=BIV!z6Ox#DNh2Lc%w%q^Y@$tvCkZdo67H5= z?qN}$l&WEYX63s?X9piWQu%hOl|bz3b$(;A?aKSZ`A0wzH*bGxtbDiH)L5HY=}{yI zRGH!8cUt#Vf*VHt({2ByZsvsaW^=WqoSd_|{i%yJ+a`aG*drpeuEWhxx@llC((jx| zr0LcKzx)7)wcGu=Ye zv!c|8i8Tn)w#Ac=O5Y|`maB>=Gl_}894p8r~mX zK83r9o7Bg3>U{uyso$KvutmJ2e>BW0v@m!4X%CenG`S z+IwWlCGQ?^?Ampxo|5iSemOZdq%*W%ObUvEy-7Q-j*-!>{>%!8$c8Zek)B2D_cRKk zu%GYY3MR{MUQwVPChotv?@dy$mK;!S<9z1|`KnG{5`AP{Bko z`PHknLN1QY1OEo~vHHgn1>BaCFbae*F$@VVF3Dc z3#i3T&p!%9sM9!mDg}xTfi8t{^Zs6l8dJ>I=0E><^QK5Mcs&fGX!1Q}0bRac*f9}n z60+o05Dc=fnxfxc<=47i;UEFB_!pS95hrsR`{76N!Mo%Bayi~w3iyHT9*IobqpiCi zyrWOk&T&KnR0m`TAV}qO%r)U~Mql-*FCYG~ZjMLAkPeHByMT#>1p+=fP3P;HYNoKI zm&x8n^J@I{QA)WtK9N}BR7z6+pJC;{-sbe{^y$(Ay9-a(N3j0$`FP<5jP=3tjPR$9EAusOjSpOD4eo5kTKQmGKFdPJGK;T8+NN)Q!vAy!w?Zg?Cm07Q7Na8D;$H~YOyP`drmEkh zf(;UK?ZTj(4Y;uq*q`xWHq1aP8^UT<*RY_+Et#lR{FT7uVEd||@RmZl$GbX_v!Y0( zZ~+@A=$C)#=!zS+xWde$=>XNr_(EK9R8=862=g#1%A{BRZV8sKK9^2LaA3V7&RM>{ zlkdKw6L;CYUo~0sFMM>>Q?ooI?Q`65?S%h;4eh&r^HZH?Dw6dZ`< zBe$iTJ2e>cFqT$By^~U63{DvD?=IaaUCPyD{x=`-BjvAQyN~;tT(``E_8N}n%(Kdq zV+1e7#1II0y{~4O%(H8i-4uma@Y9PHfo&lr=DbooEjh#Zo(a2d6;C`gFX$Z1Z6R62_#2xOc_xib*=3zn>qiVf8=5$OlFVKF%;_*9+8q zKM)nbDj#+Et{pJmej#>kY=SpZOKN%Et^nXHu|gR|6~KFQ$N=_%-gQ~wxX!Cwqz6=tMWK2w3;GZ^I2}4eaYQP4SuwEmoi_j!62$NTI0L9s~pR1;ZqQKtWxjr28krY zBqDOub<2k%7IT4-ERpzaF8m_TO=gS+X%Ttw=b{q zSo9t^YVteSf*@~Ivh?lhb4t$^!NA6PWYN!(pc0HXi0@;w`(On=O{?YOcBcE&zP6D` zgcbsjA+eHi17!n|EMPpKK@d#16gE(r!ssD&l)$e@brXLRgiV9l<8f4y{Bs;^{EYy z9INfwLTCHc532*ye8CWr-R<9q9`cJ=s*$&0GnJn?+uccmVo85SOHLTO}5 z@)9k~$*whuKaIR7kXNN5c+%7dC4{`6N%`i+Bmr&70wM8`qz17HsaC@%z9Gt)XaSCK z-s&`{I0Xgxwp_KCdn)hbC~C+eJ=DGddav`i@Lpb#=lI~TG&lk8Fw`sRJE0g^8mT`3 zVu%AwN**eGpy0`T_b}-3D0Ks3@Cl%dV#&#H{?;hxb*1YV82rypJ_kqrxm+;3`?tBk zy_f+o?~_?uus#=v%YoV3WR@_L+$)7RH)muZ`k;;iUOS%mTW-*DVH|FcGzj+LfFz4D z<|7wv9#LyPZ{^)li?{0rv!X_b>Ph@)1@80qPl`-0v56tsRz5zgU8C6J9@S6OvhT?L zsIV;O4>o`x^Pb8RU>GhCvn>jVFcy78gQ5}>qMYlaU;>f=Ez z01rDb%VdREa5DNSxGj4|h=E|PK2OGQ9`b1-7?!|68Ot|aROd6A)p z@NMjyIS9=GB^-K&$kbCDpJE}ZX?{532G zg`*o5+v?kHYsI1AhqD(Ji9RzS^`uN!Yo~I)$DSp5b?v7*>0^_Sq;Hi)yq@4u`s}uFhEM=x_4%=`B|ZFZ_&Q1|uC{-pLPJ~$_W!YLa`=5ruozO(>xt(z~;G~IwI-|K73 z8(rmtXB3<~EOjF?wK^KD9UcV4UY>kz?|Qt{I;Bx+z9yLdT>+|LtcNO3Llv3`gr-!Vodh9$@~U zV&y+(I@o*0j{pV!0jeo6FmPHkz%N5vSKi8=r?}CPHyt|Gm6OBc&0XudF!}Wg`?~Q@ zrwa*B0#GQB9`OmF6*%I-3N10c=Pn*!?tz>N?TF4?zl7g@?>d|^AtdO1Wv;eQ=5m0V zs+5mC@$Eh>q5;q_IDA=ul%JlMIQdn`J+ek!If;_a=UM-Blhj)u-=+1l@3BZB2S{is z5uINzr+qT!svY-^mUHTq2b65i!odXenE7I4v=WiF?}GWTO(7scOWj+SZ+{oi#ZBTc zs6oMvYnG?L1qZV>hn@7!P~->d&1a zs&G4Lh9oQi*UZ0oeev1?OXI#y>DVI@35X)kZB+e7_N`)%KH3arh@k=po2ZLuhl>_t zzIT-EkO~2s2$70_Ms>sLWFd{uzhCLTi?}S--fOpH`i8r&{5sxZv-0hHP7pxEJokKz zdG;%&ZQl1zZJl~e{TW#<=58_+Ubl6i=%(siea7E$mvkJIU7A@;K}jlbw6BQ@L2ws_ z_2m5A-h44GxZ^f4HgBA9wy40YJSLCDj;AXsAmf1voP$?usm2w66~2>2aL7HiZf%Aom(H2`K?xP|gbg<^8RSojhUkweNjjok72TTRSftC{5vQ#%?f!2Pd8M zg{N#zY|o+YkLlEhqhl^- zL7ZeTCrY&Gw^4LYI0(rY%xB(u>Q~NwC%fP9;J9xXQ1(dp{jHY*O@v4e#rmW|k@4Oq zEB!soO>^K+d6weo6taWhmYM#hS|vA+Um{UYglp~h__AwE6@>ZK(=B6{;56zVLF6Qu zdbQ03OyD<7{C@3_Y|_|C2;7&gND~;1Jok*Hve_Ip|x?0ePUg-nD3w)DvCTV zcRJT=RNezWnZd%U)h8hn; zTmF+~>52WjA0wv9-b#SuT+cC23NBgOq?V7*;W7rD#?^S@TWKB57_@%mV}P}H`GIZ?LKk3|TUl%KcT z^Wy?AG(cbMltIWuoN!_iN9E01{7D#MS6O?P`pGsg-`2=v`Pf_sBYGjuI=;u%BKazJ zLlD?J`e~D^y4tkFJ5|^0pmGwcgRsW~0#uhP7;4}~5ZCDHr3`I(tGJ2XIZ+;y0=%GV zmDg!B>i+g8?Jhyxg%*wVlc}r8ms+%vgYL^o)?eORJi%NX9x;g$aggq8lIl(llm9!_ zb|=p@^>}u|+qFi9hC|>Z@k3ox3Nc7ZNKN3Xi+cMvfNAgjCZZnmZcQE_*k6a<{JezK znB=|4ZE#9};K+FEXezMgtI%M^=`aFWf~@E5C-!$Ij+YOeQ6HjC^Lo1A`~cR1KpJLU z7Z7s#sJ83xX1X=q_L2yyi#`5yJ3D7wE(8z1Dto2j8Xr1876T$eN}v>K7=aV?n!EOl z7-dKik22g_pYqJ8JnXYluy~8UuK9IHJ2GlyOsA+IhD8^TBUcGG)#p6eNa!Hs-QRM7MKo1clpo0R1NE5s!lLk3a_}#d@y+`!%Zre$u#^T8VkcTq2{*t!D z6wvpGq!x^1)s!H_wCsEgk+;&Mt^ej(%a?eQa5aFFjFbf0q6sE(s71F9J(lM_9~M2^ zUkCrnVmFADW_j?lg&pYgF1*NCRmo2~vGD^MLISt)3C(IzgD- z{`-cms8f+yORSnSNwb4R4AZ#&H&N^G9g{lgZ?9Pkkl9*tGFhmU9vjiK9yk0k<^Q(2 z01Lwkql4c~%``t0ix_s60Uv8eRA<(^z7|DX~7={_)MNk4sq-8BYfrBE*2^ z*1x`^ww2qq#N=}f46-o>T+UMWaT2;^E~J3lL!6qMUI8}aEGlzB8P*rmWlzQGW$^97 zxlo_p^N<3p)ZJY!XsD9z&LJ`1WsF~amN5T3i4gb2Zzr{fS2$frwv~L>6jzLqGlevr zc&O!^f6;F`>mvT>FR1P!6c!n7Wia>K|IV28k2$}R(_dxHE`KB%ChA4&C7bcxal4j2rTK?0c7f=LefN03fLqRIcyL~$whOm zIg9a?_@1-*w>i7tc4P_3bMiX<5?HitEuW>A*W5EtS_wBf-4!XTbxTc3m3uFuyDRBs{CXvj z-|bOoXAv-@O;tIaIl z*1wF~+Zu6O8@2D84^$C&JN~Sl_j>>g{66JT-IkQ%?RB?9-^Ul6L{&^t;x2`0*6kj( zPnRP)n+CNPw&sV}onmPUqQ-W~u6sG+|H7KYQRXq)9I2Z;>g5_kW%+29uDxC9Nu(A`oYig>Noj^PZ`i_2nLsq3K^t zOq2h0g+8F>eZL6CTX>5eIq)-rbLM!-CT;nilTpA9N%`s}@8jbCgeKh3p9Y`Z50uPO z7|ZR|p9pAPs}K<$BVkyi`7+g zZXL!K9my6^=?5QKFTO6FC^Z(!5C+~=WprSqMaU!Aour;_`OAaSQNN`vGKQ~LL1Sgb zOh6b-F-tK3C-8Pxzbag37(e0Usr}AYsBm zbqbyTu1=GF{Bwm|m7km>fcfgLT!4znZ?E|KH{Wb4%L7^%*#;t7XxvHp9% z{*C}Ammi+5tGRoUjVfbJO3+QTR*6AWB@ZN zZOwjbx@N9WR1gMIKqeU}0?XCk4`tb)c+h%EQr`b5sB9eSe5< z|pn5m@@jMsVsdRY6 z+0(DLPw%n@l~^SQk(L;@F7mii+h!Kz|M6tLKNVIVBOI1d^OyRYswm&bYAibGk#RcL zfP%Nuqh^=D(zppFnB8W=K>P=D?$FTFH~)^Sqt4o zP<^Pz=A6DuJlQ`3)12+&2(_Ymq9|+#3LcZt-&0d|@@O@<=~%@)F6FLtICt*C%F-R1b)dNk==R$jlye%tKhN~a9H zlE<4iaw7oE#JXTvB*%f!VQ@=78~Fa8&WdWEL!3FqAvD! zr!jzR7%bg6*R7I#p@og#<@?N&|0U=xr#Fz~`wI`JO2R~9@cX)n1B zcPxPOSJo6}M`E^uZ)DO>a$@~Vfq%S6?8R2fI4(?842~f|kb^nEsEq~>2JAh|s z*o^kKt$y#uOEIx47$6ay`1HEjL+kTt3Gqg^c#+6W>conVqhY2?{k3n;p?0>KC^3_C zSx5*rzfE10RHD8?$;msDW*nZpTAnhDF)FO+x_CK8dvZXF={Fu#{_4G&dbw5!E89`q z#`N{_IM*~&+oE197dY}2hylg`)~H=x*FBf#x~>c{ax~hBCw=mMP_A}8I|P+j_}%HP z)X9OK9c z*8G%NvB~+I(uQ-vf$041n!(ut=E#nd<(;bx0>*Q+w?TWhr+8uFpg|Cti(0ULDHw`Y z?)(LF)0*J1E+97yZ%Upv0u_Bc zprmoWE0|UO&$Prv^*|D5;_=4*GQFkw*ogFTI^a}rT=#L{l~HrOd9$fW81vyO=?@KF zcOcUveo7WJOTFFHAfw=C%V8@KoW8abzFg(b08kubyvy zJs%W?)Co(kHdj}dZVqfpYb_UGb9Kf$W}kLSx6FJ&NyL+NcYb%5^`%O^T?2t;kJyI~ zZZDT@uod1Mvc-!LT9I% zB(t&08r>MftJ$fD-_F&5!;1G7Po@y^G7sH?!yY-|i8u%}9SuWe9#zJiVPKkSXEXQ} zRg&UV8gc((hc1>}d^5e2HQELLm5fM#o>2cfKR@~3iQgU`2Ys0iEVDsQ7}{7rPmC<&tKi)P?>DBKJ-(q})<3dX){nCb0H`D$sD*ji zYdXD8C;)O@3Xmj%STbnJdE;|*v`|W%NISIv&M!xXjd?!QxVgOEh&#HI3_I7}zO;f~7Z`GfQ^I9O*By8&0 zfk3aj(qb1e42+^M$zN4|#U-N`x&(=Q7j5mWVySvA-)@u5O)M{y$TE*F(bw zf7*9CamGS(ah%AP*rl$d^xzl+UE(F`eMclN7Lb<++g{8ZR~$buZd5`C|E&@=U9`RJ zT@bh@vmJT)6jMg3dvk+=y!=!i5LLr|zk63q7rnC@pOfQ0e!F>p26EA(EqMJFJ;cQ0 zzQnFG)$PfG%IMN!H0hMYdj=4{N88}4-%L&-xcj}4LagE!syaG9p~dD%#=JIFAV0rdkBwLf6AtoAX-*6UH^fqP zvZp`iP8$~@j94`t$+mj2oGj(!qP&xtBS*{FAMP9d2enQ8PNCe3AmsonWK}{(AM5nw z0{d1)isl32g;P^gS$bauT2Rz*NS;A74u?^ckeazY}1B+qxkyBjNC8J=Z}Gbe%&! zJ&}{MXsPG2`kuAu2pV<{)O*PkFgsfHz3zhQrYAgeqn7+ZaAdJ87|VKQ7jKa2qK)+m zz)I7Dohy`RU{;a5FISHfTjnxSoy$ET(J{feJokiBp3Dq`rKi(gIMdnhW z5c@jy_LSwtSPD`^ywK4+8qT2$7}S4E8X*4w*=3_s(OpLk_x_&zSHA>AHc3z5V=9C! zg(p5I%cks3O1G}(z3lI7`xsjej5dF1ff*#);_#xEw>w{Y39m@^^$n`9*J$O#tvrjJ zChd*2+3$v1$2)QJ+3Er4M!yg@iO2#?J+S$k9c`oeG4DUBpG&#f6pglMoiiBcg}4EN zQePu(i6D2(X=!HyHZTyoZ2l*95H9&u>~T=IcA~TR`|Kf*WFR0u=8IxrczLN~YTIw}Kel3=px(Y2^(u$^C5qPP z&N;VXQzmc^{&Yr8#yb;Hy8{fpWPow5%PUhFR7m%+bn)EtB3*fDn4LiN=?r=jitOse z{24!8XIVi+aq7kNmLvmbeaQaYI`xPDkx+7|jGJfs>F6ciB;O4b3Ob zpT-L;;kzya6A1J3V_DBu?hOX-l9|9K5R;G>n;&IV2{X~U{MVnyU|$AGyKW2UDLu4! zv-=~pr?9_o*#xHvO_Wf0^0Kz|?sa>p{?>XS&G{9>ue{`8C;3{d7+Bt?uGTdLvJ3;P z%7ksJ>g^r)pjGwJ3qD3k(WxZkIMne!V3!6r;%vG3QEQ!c}hayeh8>Um@tmXLog zt9WP@NG2HkI>^9Z-wrw>fT`;EnWq=OadNxPC;exA)dR~M0^S8N;6a3dS5iQgx7LO4wO*Oz8UN63PLsZUVlz&#^GyBahEw1<~ot5IX+l{Jng?M)$)aOc}&aOJWS zC!roDaNKJH#V6;)#Qf-GeZo)c?*jPa3v+MicVtilwit#apaFmIu{|ef$L861!?m5j zj87J5)ZPzXFn{xxNk{C@g+-<7Ys&KCmFCkqlab@~FMvCFH22-X1ST<%w)_xia?D~3 zN^bF~Z1BGL-k`qu=lS|mp{TGV$3LOf`}R^FY12o5vJEhw{(pP1Qz$TvIyE`TUOwIb zK|EW?Zbjd1;_{@b7IugQj`ogc2k{m(+TL&XoiI7x2TTr)BSX$l_hf~a#>Zgay`N9E zX;GeI_z99R=AV*GYNi$B@Y{K9w^=1bm|{TiK|y2!6i~Iu)Rz~v?C|B>t{dO3IQAg< zSsx8=d3`$Cxvl(AY--_IE}_ouj=VTOl=){s%4%o5RBg72gtJt+oC1iMh=qV+^cLNc zk25^}DIQku6@Y$0PG|MlsTso4o+l-I&!_W4f<44oL(hClycE+DIUkLZkB+(lp5LzKe(>Dg}3v9z;QV5bS8O>077dzXk?#N4n zo$iF5=k4xr*;Mk1Xs#)+PED}KvfYbmY75uHmeS?n*)9Yv}cPwGn%zo-U@VzF*+ zZ(VPO)nuxAt`9%*Q*FGKbb=IYE5j0XMAlY`t)f)PPwdZqiqL# zRZ@!;NAIEfklnw(N6UagQfD}i zQb3$|=mVrj_QaKqCCGsy6=T}c8=}l-v4?!NNXgC7|^Ba zR2|xS#8^hZX~N>cuawBbgbc}2P;sr?KpSSuwl5iVMe_;Ms*p% z^U3E)ul-cNEKl@B)2W$ata2^4oF%ZvMgCwX1m+Z@_6V_4t5GU{?{U*Z(>D>J#ktVk zy#$UVu=5^^X8D*w(Bb1AZU~2gaZ8K8baj()-lRcD!h%iB^XWIv;fOS6Mp;pjZD0Gj z$62CWAqm&`w@&uXv64}gCG#(lHfpM;I>wcL1HJiJY&j2{!_rwuF+FKo1b9msfc}-SgBdpFd26{1^ITp7?R|v{ z)x}9fu2;9pLiok3Hs>p*4x>YRecMzH%<5UiZH<|sek0U(H*Z$5tEqK_{{k-=+j=!$ ztA^Rd$0da%V52m|G`7N8bFEyn1$O@}m;dY8!h#J3Z|aFSvDK>XaR4-YjHb!GHP2Xw zJBPnROgY*cWN7d(K2dmUBnqSug<}puGGkKHcZ~a+Zuwf`qdK+t@&xWO!%ROm)LWOw zzT(8H+zq`@;c3?IRQ(|P_~Am)Z@%Qi#o_sn+a`Ud!OTx+I59A~c3rW5t8#nZQ>}MB zVD0Jl+E#he+_$N86NtVXT0w*VQLC|3_FS=1ZFX=0t3e@1K;(ouAYbA@9!FXkLuO zN<^KtCDmbh4@TAFBAm8)Rqa~Vqv<|zU7}HvRET2;VThS^*JpUECg!Gk^S%xPlr5`y z-<=GzkD`7VPrcM?i&?)RA%1U@C+%ZI}QugiALP~CW|)LBH(4I>Gj=JaE-@w%N#Aozyxvf2^ELnpu*#ig-#CS7BqEOjh2SDIKR%bKWd2i zQ#Oj#LuwnBn6P?*h>>PYeI}qj!(w1kiurW+5OX~uR9nIUSA-G=t&d>+LTEsadG#u2 za@72ds~(#V5$%=>I6B*6CeNjP_pUth5No;{$%@k}ausBL8ON17`NFA}a@K0I3#0Hg zMeS|R;eOy6Pl|^(PmEMfcFKH7^}VMzGqdaqp!|!(lB8WFt0Dm9fJOZr2@n<=V!0|y z{qix+wQqQ`7Zi!Sepk}&&R?geO%G3Y>+?UeXosZ_tFjf2^BrD8YDx`Z+J43EN)y{ry6nIJAaUO~Kc zMZj>~Vu``1+R}cyX4=a+lI)t+7q|cFo zkN3Xyr8wj@etdSf4Z9UD{7yAuIKIsMvEa+h5{IA6YjK^IL?B>mx*_eZQfcpt3Fb4^gzH}WoYcx+-DaWNYvyh z_1s%@LNJGJNYB`Kn=zxgq_4Hy%}oAIj$o5?xW-bX*+$UGoVtul%!peQ!|U&Ett~6x zdwCNI0O7JEc2P(`4DIpbUaT92qk1UnoePch;r|by&~5%Su6a$>RhD1<2ccwTB|f}0 zYIT$~eNudMl2av!^ZFA+rd60ndf{}LpCm%@L9cmr*^cR7>FhMp z-x;y#I}FPSE~}!=pUS93qQ8^<&1@cAHR@R`r&gPMYCh(c-kADygRS}y7DSb?+A-Q+ z`7O^k7xd=qijUrs5YN-xLDrm8@bqp$_5w}|$_r7#RsZIZ#-9}v?=eYoug|t3cv2`2m=iHk)_eO-b+AMF$AEjsiz3N6gGQv}o)hyE*u8+e#SYz%aPO~qG>qYcT#qJp z(j?L`Pr@Yq$**2i^#DzoW;28BAi zgrr0(1!L4w2TQ!?WO?H1$qe#rnJuKq7OPY?30*do zn)JUmxBfHK2mMP)W*BXhBFdKg#oWq8Y!oMS-5YMFN%0d<7l^U_GXFEJ-t38Tp?LB7 zJ)UVemK8{T0QDn1Q&)k zC#g}y&oF&1n7_>2}+%mNrOI9%I+F+m%Ej+t%;HQ@^VWgoMBdmCtdfE`?6b zxitRSThalkZh3Z_PfC*O?&^=zA2lXr`5ONCe66k(bT5~A5XgHCJC1%Jmb*>F&Ij)6W8x5N}bBof~LT{kJt`q#_!_x-KNqdPILPJQ4)gfO&n zUkb}@tg;B>wW52T98$1n_*&L+QfD^k4K-bTqymY~L2k2)Sf)m+5R8BPcQP zGLvMX^ zPdr@kn`TQT;hngJH_|!!i4)q>T&^AV($zyWd~4^YTPhxmTF~Zn3VUIy&=yuFdZFpl zB_sVxS#lp(hb%M>28lH>48q%ZD@-qm9^Dn23%Dr#Ed=fK00k2SUxFTst=9>#w$v|| zr#K_a&QERFEfAEXdAhY!{>-M+SSlTaM)vH~QQ`>2bJ?%M8*T{boGv~{LI)}(mBB2` z)OzFGRKtVQn^fLC6@yFv)T`rV>==w$Qu^LA+ON-3_%kcGGhN3;28#I1+cDZXc`?Jk zh2zSlY@54=8oQ1^yrI7zefO-Y-DvQ?MGA&4W|?p@3lOW2=9BMyXFpx)o`RqJ);iCb z3lsY#x6klCLp(i2-};;KjSCT$HVl(!G+xwPiA5>yal>W3mtCwmcfaMRsiW(ns=W&# z&Pt_I)a3M>{t_$31X)I*W7w%KohsXb`(jj-$9$Q*lu5kf{1kpJDeO=L=V1}%HBR4i zsYuag!l3`cx_b}{@7x>GWxQACSMR$a5G-dng)-QGJ@|CX{tQA;@q+2&UygZSEx&($ z7IxFwLaOhQbZXlcwr@&} z6hzGPs_G1ve`;z$v5|2cZZM~B zL@5ZM*2SOs%R9K&$8CD=j9WOUgz%X6pyHNNiUafZ+Sz;H8@R>BA2+@RImsIT8s1v* zS*`dw$uGc)OnOU)sJpE@rCZcr&UK*L5`iFXk$F;#Y-%FkI1shIO?6*XNIQ`69 zeM!!8@k((X%Sj=Q1@)~O6NpsnXK~pw0OvYKz5EV+a175Vo3vV6E;ro6eo||v5W&7M zx2(3`-b(SR^Uop@B^kGE{^y}l->0|I$FS|aEwUFPew_KY=*<=;55C8CT4x}LTlO)& zg80`wM)#)B)2|?jQLB@8<1VcFU-{}&iGOX+N%rbS!Y0bsBUIHLcsQx~zgzNivqZN$!M((z(gu~~J=9xG{x>KSJsSm*&Id+@t zWsy&VWx+4LyLnMOh8k-s^+%HAS=AWb6TWY)`IkU9M53A0clB}|(y^cyu-cH?iKkm$ z^+Gp9J~z|;Vfu$IW=*MjR}SqkS21`mT|R$v=>&q|O%l zNU-7Mt(Rvp(IUqluLhlpkwtPsvjV|yv8DOyDjjx9VXsBn(OXYAs?R69rCZ+ebfCbDnjc|GWKe zuf6uV?{8k8%b>WOJH3UCDUL;79YMO-D97fAc7JHwW$QIM` z;EZFh7*QsKljZ!?-zpg%TC>$pSc#V&MIU9s60_q=Lnb?%@hc}n#v4nVpVzZblDBcGTX!bLeEjKHU%?;2)JxexY({|&2@ta; z&y>l|-gTfU#E@ejMINv($v;sUt>SGO4}MkO)d{W~@a_2b=BYW5#yD|#CgC-%P#Bi} zH@EqyA@m3cZlDdS27%PH(YVL`ze0`VwPbd4DqkF7IdK{m@Y&zzk00)pF{l^)dt!`? zg7vvMzC&2wps)oCjJfmp@L+rAC_+c^S97?(ocwC!9V?^;oMZ~UJ-cyPjfCHh6XWu9 zxbaiQ%ro-{Gp3{jJ1bAXOpR%W3m8*yyN~@2uR0jM+zqaU!VABAAbQvGTV+0>MLU$y zPT@nc%h1Njz~8H^k836s5=GfqiD;$eNUxd?=>U_tBf$}+5Ybfu@Y6+hvh-7O^8I3! zGexTv6ht_=MN+&tz31#8*I_)9Sl4P+9*6!wr~rPT3+knmon-Hm;dt0uzcb{~YK>Sj zT^z#q>JY`z+ix2CsA|4a9Bmq(sDnz>ubCm6ITGd?_8hVlbXBW4vX6&ie#7*>+wWs% z4V|z{a;nzmR!*@^*;OHK_~lyVW}^r5!=(DHdKRJ1icsg^q|1$P-_?rh>K3mY;9-1K z{BQk?4oj63c2D<-d*;CxOG=Fc&snl6HN3IHmE)||K^BbKCRT8^tk(36V-j&DFX}UZ zF6@}Sh@4|%f;n_Fpx~;hmy7`JmZ0z;Ob^Ch>HF{*f)w84Hu}O-XMQ?9>OX9|f4KZF z89O^yXtHEUMf&qaILTSK(N{9M)Ar`@gSoQ5-!(|n)oYSzoCl(hN3qep7t|y-CE5|o zePLnykU7X4hBZzmgNWsi+D@M{jGzIAkV>bq!6nsmyV5fINbK04xz|0Ieg zHj)@IB!2%}!{kM(vzqm1-Kt|vZUE-H^>x}dCiFhAiKfrq(;SD?a)5=<`{M!ppMnY) zxX)HKr9TWr>HO78wUs|SjfexT<<*O~+a(&`U>RFNjEkf`@~-o|1c>zXc~pfIjq=Fj z*NN}I<78hsE)LD$;hyuA#4o|K-SxMuH5nYGNX+u}BRip-b_%JmS8u7vf9L-N#PNXt z#Q0J!EBuB-7@uJyEGM0_CaqPtSHn9^&k#HYXz@LhlEn@aGOQ`5I@d30uFad~%FAFZ zjX0W^e2c)ccZ?=LgGH+lFpZh>sxI-is{4NzH~%Mj^O#QDD|z@s1H?NYOx}e{(F&=U z=Swn{548)m9UWSzaeDuo`Bcn0rFnnhi4{@{#tl*u{_!>ZQXRX$4?vq{ws85YKV+d3 zp_Rrv`xhz8JCwx;mR5sO++HxnsVM{3>=sSP`yh z__zba4*h&<&E6H-YV6;@fM!V<-F(OXlHf3UGGOqzDJIo4`=6hshhFKs6C(vrw=r+o zD~@NrcX|J2RA<6epz}W!bB=at6Yxc&nX#H!Y76KIdY~mcU5O2Z_*SZ(U(-Oys#|Qm zPQhf@{j}RwnCMvIk|XR9gkSIO0@W0s%cH|r@64C%3dze4K>d1`UM<8JT?1wK*AoC9 zTwH7nRd%f2+Sy6(Z;A8z?JF_v1P^E;id{puLf=zgjHYU7!JORE$fLYSh5ckem8;6I zELMzAAatF!yoYc$8KJmga(AIc$XmZFppK}z`n1z~>+-AdwCNj9FRgm^v$vSYR3a-6 zin&lJIM=)Q`O^28ylWT-6}#W9jIxT4EFcl`l)O^hU!n27w1Fqj6q4bU&!P*(@VLPm zA$!K3jF%N1%Yx)=by9k=!3wvzINCz%fOg3XJeJRG5KXg1L3Np8lG&Ye$w`d6$nIWi z*+}en1&e|-(nq#7Vbnn#Ew-ZcBkJEut82rHIC;mcvl2LFKUJ+(6;i6l8mCEB?;WFk zrIE@!OPe|^qa4yi-j1dyG~iBCM99PTF*C&4=Bljx0D)u_i7dYAlCDA`TDGi&@1z=y<{JVn5idp~;#o|)UpdYCg-kv7mhXJQ!(yzUcM*E6*AVm{ z{H=9?5_pUh-9hM$mGH8aroVK^vwG9TlLu44n()(`r{XCUZJ`(5YVdCkM7H;Dp5V*& z7&p03y8@~SbQa@*t0dc@Yv}&2SMvdMZ&|(ShG!%m5>Wr=C}BNGUi%qN@s{1~c|s@y zpngvlnheIVJwSdh7qcpbR7J8gZ{_XqnI+>L-!^&`4RUfz%m|g|TP!7lvQ!4y5p9cP zkp?%v$7Kz@UbH=iS4Du2h#pdH?y`7a5SeH=6Xt0G)=3*YHQSblYdn-ypeDby({?kQ zXC0sXTbrt1SCbJrU|`Ed3>!proBcL*874x$v6K7|3rX8LN@0bU(*D#o)u`XFX!02C zdh&%wK`kZm96<1a12-P>j(D}mj=bze1AEi_XB@fol?gbE!%w16S$tz zw!=6wss7};`W1(-tduw??2#41qGQ2qX<8kZKF?XJczRk-75FEa1XbLnPtdT>$63S@kn#!E8y z;T@US%ng)CuP^K|C?f1}M4b5$Gd6SVV+`Aur*oImpGQ||TBXyHemAoH!~J9GEu>S4 z@}?PKJgm)LyLaL@^TROWdqli7qgAn9~CI^+Wi#yXp*LRoFymVdFA1!4}5?NCVdg#9Mvra@$VQ0?b z$F{~rSqkTWeb&$axOL_ZYJD`@^IPZHhcKO0>rHZAw54K^K$};U-(}4HUZRxtnG6AP zFNHBnPI7x#NGU||gzN~G(hlk$~ z%btE1&6)!h7gnZ|;foN)h;r>tP1_?wdiElvq|}7JgcoH15M2fT-*uyvB}zO%u!M+k z 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

    }j3r&9Li;cpr)rr9frJ1qi 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

  1. e;yCU;?^t6J#LxZ*KY}=KJJinGYMoJanRI1 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%0DINA3IHv(T(W&_!{&#N*spk z{o!k*b4?2)$m~+{>|vrc6t|Hwh9f8$H{AW0o&Az zA`ln@%BtEw_h%lO?BDu2==$hzJYDrs_wma)6~j1$IS!8Czu*ok=K_I#?Wit%b0xhy zY}FYf94vo7xGcbok4Xfxl*cb&Pj^iwG(6zVKh+<)-P&^>3iT|MbhEmwr6r$5!z5BE z*ClDe;$fTfeWU3-7PZ57VFbuVzb1x7RFOhj9m7*`tsVL(>c&iY6G4^rP15wiFr3SB z>JnCr33w^6e}xouCP=Jk&iY!-D>v4>W|zN?0%Wi_Z#=grpW2!KS;)uqA~4t2Hu7?y znn1}2@}Gwq5|)|mf3u2b<5Y}tR(pYcJmda6qXw^Ya6X0jTB)bK;PUw9*2o|28?N~* zp9XVFD}RWeuWV@Z+uy6x3YjyA*mvcZqfG`5Si>U%NGuuJuIm;*=)YGrPfVQ2AJU!QbvUOQZR*P<)j`$<% z^<%G@Xj6AE9NrJUf{BxO82Y-@bim+=Z^KNCxzpM68}4odRwn3=4FyNviD4ZV%HpZC zg=B)g-}TPLnxE}hZdlwN|G(?DK+M4Zyz~|4T5Kc}?rseZ?5yS@*(XSTcss5;GZ~gIRWGr+`~YhNCAWBt28>(#*f-yn3tL{qT?n?rsppK6j#j zStSHzS)K$gfG%viwAp*I-Z^gC4E_GYwoD5}8`}+ISm{~qS7l83nl0j&in$T87&etQ zRieOmzb}p}Gv(iXNplQ6I2mB1mZwcOXuQoxF=YKJ=gBAKx);_u6UH7q5k2_!bgTWQ zPP~gl0$WM&O%?6IDkd2nSckKnwU%23%cxw!6|P@Z9POX3G<}YEDI+H})-NTB`K(gk zPM$yc!+*~Ij+Quv`x8E&{MxVzu!7gNzqU|xL#SK_a!Xyc3}_-pw-xJ?N%gUENS(Ld zH|5^61l4p^|8ZSsddfJbva*Kx+UD9e5JU7ae0&egUjV@snZh+hxTvGlk;QrcneM+p z={7EqBn$tbJ|EI{oHY?C7`w2|o0fJ0-1rf$c4W$z_HOZV5JVhl&L;vCdUrgxTz^aV zQF}}*jr0i6g8DodO*{ts&l{bpxv4Q8sPHOdRE<#Ww5=_ds~4xNby3{GVA`AnSnDxn8Z z>FBNvBj?(_WjFz2J%Qm%TYItuAAz*T7;ywqJ-XO*viNdGb_&F@U;M+Dj<+ASTpfCj zTil+funYrSK&f!BN#HsUtsd_3Ar@4AHvRCn2S%9DCZq5%Yg8!f}x~0X@Pjab33#^WF z<2zSVUsL1$+(;xvX9DBw>zR<8;;_`|CNn2)HIF zr!K-==cV>%at%YKuJNAaI?$SsVPJaN$UJ<6lNLH`%Ea z&DG7U*PinKUJ3u+4QbGV(|sWjLImW^BAXQYHQ0~6A#hK1+~=i=ApC;jG>R|i3 zItt)79qbNelX^LX52WP+T z>**<9-?uHiGv}!!A6H@eqh!+eY}M(itL&$r#Q8?8XPHna{I`Gh=P%3dK-xEubRpWo z%OWCT!)OLWATL^3MX5;d{;bY&>{5T52zYi(`c)4j0~E4C$#r?c#IXHGsRO)U=CR`A zMAIiz1W)J)mwM3?866C!Dj5vYbIu)4OpIKd#Qi`Wl3vz+OSo4NPjJlbA?N#Lkt(v+ znK57{`gl|Ip0{^q#^2Wna9F5sO{SX#amDDz7?^@?i*xO5y7!GQgzuicFA*+%YjM63f2q=CUwuT%Zz1jgsc!9vte?bSB`qTYBo zjVyX6A3Cp4eDzazm+XvdMz}Chc||E@!D(kmZMUXfo@(INGlG+<)xJkRPeXU^YBjJ6 zx>{zA;(^67Gr(L7qI(lv(ssHQRg6Y9YQuTKaHP}O;kVYbf*Gs!6ZBF0FEmjx@<13} zPvJ&FaOi9QZxy)(d~iZ7<=#l}FgAQ)q=i{B#Uw6mdrbN6d+^zs8(L`LtG6434`i7O z8~$oFfAMg!eiotp{qpM4yg(KU;auR%!BEW;!5GAPEkg-C&WDv(uRmjIbmif&16lcC zVY?2qWUh6(w@8Xh(P{ClAk?iXN{t{YUHbbRuEShhs&-OJpIg7hs$6}4U_>^ir@T+fwLLXI>f_09VmUA$GAlDus^^ht%NiATZO1 zmvx4#b9N3woUd3A$bVhF0wy89P1jMaoZ7ewl~ERzkln_J!;PP`dVIJJXK;;>6&6HN zwY{e^DGroym!6=kfSd-5uFD_b>kYFfgj^dU#{v1(s?!y221ZH90DDapUsd9=|xlJfkl$0>(8;vzD-^0I{WE7zvLsVfZH8%muyAIOq9L)qyUa856JyHGFSRb}&R29ho?>-UYM+`|4oE-$TOIhf zVn7!;SPeG#882VXGBTKQrq^-h`nwlG@7r)j$n14bYCm(?Dt#NGtaEj}CQMPA_It{c zP=E31C57c>a|9Q0y72whSdQ(z7w;s$#)AyO{PetinGrAVOB~D|1|}w2zK9A%H_s~I zelD&Bykz&WtrK{~tmg`X-A!a;VZ6g}M@6v2k#QOTAR=LI(7jDVT~{Ee3vj>7*01eP zhYMRLXg0U`0^v9Qn1%J_Isti)*YIo65EO`0EI|<4;&=eGm6JL(5Ks^ZTqJ`6>6pXH z`yM|V>7uQ)6ISSsS-;r$L8ZQ@hbLB}j_2jYRBV+GYs1~Lpa-Ca`u_Kl9->$fB$Jzy zx2RWr$+2G26MAV@MRFq0JA5mAf1Lbtg7~{(frhQ~q-8I^B(J2G>o%V{c1~>+2U1Q>&oDbq z@2HElpSead_-HuA+fHtj2|(wH0O~%`gw{0xed~4Tm!yJG67p?Sf5Akm=i58FT1%8c+>OkTEw+P;2s-mo- z!4HUD3jbJXSCcg{O@5O|SNgclL3ZyziwV{V`&#Dt;B{gmag0-etg7;&N-MrxjFVS# z3H?Brk!am|`5MQr{K2D-zFA#Sky8y`y7J4!9#><-=Oug>tf57nxB24YTDsV;P55{N z@H+3|GL0g4R!}EFiY~)|pxzxhy4JfbI z-CgaAulCmr5xJD4L=x4RCH0V;45-9fdZ$Yt1m{N{>Gg~?^KXK#hwRFu59>lA+${&O zMYWoBdI=Bc(&YG|wJmHZCJ0VTO)+_i?cjsx1(NGU?<{X!=B)UmHBq^FV5)cxK#% zxC5CrTU(P@%?{o9siM!BjdbH_q`h2Mo^xxSMOyd}*jjmOijvDjGL5SpNK=fci_fVE zLzK{9T6(PvF(97AsPFrI>dQ#}#hQNV_B^B<ndO7@tZwr#B)m+@Zc;(WtdYILV)1$8wn2!VO8V) zTZ^O_1TD>v)c|G;6T=hcT-EML728nL=Mu&~VY`i5){4)ghc(5K*-44D4!jrjJ_Liu zRS8xcJ?mZ8*|!65JbX5%SU#k-D8ks+1l6D#n9V|qVNtdAHVt&usb88 zt6kjl{x*?sQ-ELq$H1kA%{d8hu$y{j$FxrSc+(w`$w#vJJH+4wtgX%sg%}JN;ZkoI zZ(iVBQ;~WxF>oV2UE`zN;=2}g9@(T$X5gN~R(Sn#@AG*_YMMy>CtA{oWlCN*x76}O zCyc+?Ry^0cZ@Dfe{`~ddl?`SU<2eWo7g5$u#`7XBEOa{N!n5Npm2VhD&b|ewpO=wy z*e74-#z93A?y@SwnnhiJO}U%-D>LLaU~KhqJ*ii1)9FDn`cJ-F+j8zd!W?@Vy%g9JiNq@8sMaSpBdLaVW-7)`9PSO0q=PSfpwf%eU4=~e{3GxF4D8JUg^DTh zGjD%UBXEnqsXK@&uO~kPL_+l8CiZmosHWYPn(+?4dt>bXJHNmOqvacOLil${bzHUa z08c@V>5GZ56Z)k2nL7`!fbiYk`sKx^<)O(SZC*=FD=>Gbi@nZ|;w%QXj%F{sF1mH| z`NBvbFEf(&A(JVXx49uQCo@gNyY^x zlfD4T&ersela5Q8JOqTdcSdKe*jhJ(e%4G^0^JAyK3?}DIm~5U z5RR8&2lwsEY=w-V*b}1i!NrjbBnpT1@z!G?aK|ulU`vzp)qX}rp*@ViI0cCtUkv3} zB(ys_m=O}4m*L!eW>}DCLtjRx>e#{6ppS%i(i@m4> zbHQX>LvnWZ1JO}!P`n1Ps8eb{O#)ni5}Z%xZ2wR17EXOJ=+~wcQ^AUC#I{8kTMRsQ z^gAmRzKW2S@q0ae{Q0D>`MK?5Hi=%m6o(B4OAq2yaG%x~llcBrF7isJl9`S;eT0Ue z9abVYP*9rWQ}c;WsG#c?v1=_LxhgI30h=p?2L?h+)$wH4j(I7v)ow=@)dWUv2mD9? zrgFuZJUwFZY$z}dlBoZwX(EAxT&5B0?7NZMld#6iY+FK$Pk)cVBI59nXhgw) z++F2M3?Ya3kKwO%G5jW-k3nGarT`v@lWH68djV;NxEMSqB>y1W{m@@Wi<#BmCPqX3 zYewSbZu!ZF>C9Q-4Z|w#`XzGZI6Q=2C%gNep+yUNmg3lsW1XriIQSLh&skNHY1V;? zOXLLdoKfuNn2i8lyRt&e(=+AqR$=y$QQT!wL|nVCy2$)OAn|HVuF=wkvpICB_gFK6 zj|+nVGzk|fr6xgutP|%E!Z07(;|UBU%ac(B+vp{=+#YNv)E#KVdw8Pp+jppoHKS_1 zyi7`(%r1~O(iG8(icav}6dJu7a{11bly*7x94#;i#eY~Pc~Q?%HG#rD>hPOJai&dU zn%ZW*`l1t{)(e+o%^#fpUyd$eQPJIRxpZ1ZP=!u~OLn~PtM`M|S}d~}zeIeO|B@G` za$W;W$7{je4Mu=WCuu(nBtNUpy`|Y{7f_73_q(?*5lqvbPj`K?r*VdGHryh{Z2Vh$ z&ZKlVcQW36=ZY$qQx;BN4-SXFpE~>#d9bB|7UzUgsD0z2QW7 z1kfP@Engs6Q+H3ljc5*}Yk1L45dhzY7>pB7GZmNorO6M7?PHo||HPXgl(7Ur#zdyB zFX6@5p2}9#2YuWVjtadeE68Z#w-Ri!JK6I{Z%I`E=f;0QqzJ?`l?2m#yp(vk*_R-D za6WIXruc`-Ke%%MOGZ);>dJMXvYe0wK=Cg;VZ|eXxwfr5yqM=J>0gxqy1UtY=YbT&~_kw_BzbN zlQ$XBov1pQ;PqbnO+r^okMsTZ+tO;PS0~-!#}=o;?4A~e+Z+@cnM?x)FqX#j;@>;e ztae{24Uagd%Y_@R zU?yIrNtDuvEZEbwwf9PE4Yp?f-q} z-MlgPE;Lcc_deIV0Q?(2Lso+YzMOWs_7b6*wSE89Vyve43LG+#EM|~?=AmwD=|04~jP;?vl z>gtrMHG8h%ecW5nh`E@j7Bh#=kk2!p`to6yMSwUf(cFAPhJ2fRJKs3G;|Q?pzCkZJ zK~LzY3JL@)FmvlacXs-ATiyt42?hQ!{9Wmp zPYU|m&iw7vC@tf7&ZLB%Al0(lCePBI6GZS@2&8%<>lBC?!EaQ&dO_7~4eH?0fnm5p z8*|gOW>G#}4n$~Z1-1v$#@gIZY5$p2@*C;WB)KDEFl;~^NNzzg7Q3`F-n!9cx%Gt` zwi1$;Dm6U{WDQ7t=dH zyEXED@$V(ptD#$z6S-g-5=FG_T{9D2_k|+gB|osBEo?R#3EH2d?7Y9E%fXG_J=@+^ z34IB(P=Ld^%_uoiOd1AosI6{m%O(IwJo))fQ#8ZE%cA&B)p1A=(sR?QnrY_Q5F4O`EVlFRSS^t1d$Zj)7uylF)+f}$#LKIN5T{2 zB!T%`6OlXPW+e;U}G0(=M8~eXZfCJlWQ+yCir1gdb4VUcX-q zzJMtpujKYs{zVuVqvaec=Vl?4*gA64)pD+)k8f>0sJEeX@dvOqnP2nn#%~Z=oPprr zPxHv`%zx^Hmy;48vroLCD?|JF0w*rzn3D!7f|t_FR`?P&gAR?_H)J$}n!f?l@UpUT z=&XJ_R;(|P0p{RMlnE-ubSsIkhH^k$JRTjdU!{-3bHSLvL>P#-@Idf;)7TL37y4N0 zzLm(3HQL4-mbzMK`Rvpy)_QqMyHe`j*KZYmck$d(t88y^REimPwkh%O+^sC9;hdL? zM$n*;&L9nq7Y!RD3QmerS!?y6>0Sg+) zfN`U;0jqCEUWaN%kI0(T+b|}HWOoah$bITV?<#HUx9-W+?PtWa{XxM0x^W|67qAb# zHnMis(`-~ zqs*UfJnBsv`BCfs5kaGlL5Or}XgF7R+Z9?Lo)I>?97~w&j~*$h2z|i2D0_PP*s)}1 zZ`6-F;^4IdJ!vFI?ap7PctF~k0>BEiAk5Jp8;m%8oJOaiMY97y$#YWd!YI(f<&CCt z5F*Q0x60lHl>*~{U$svxDKkUT#HPoWg5*DJ32-rUi`(;Pfel}Xy|b*AaGg0@JRmiy zwRl@yGJW$y1yJ6U4Xf(EXI){kixf`0=&0*bO`etW^*Y*q=BWp+zcrxleA^KNLYntj)eKezj1w)GZ@4w7_QiAm`3n7Q?~JAXxu z6XCsZNMWc=2QXW}sI;a%=--4vkIyOKo*p)8R591 zvWn4w=DqxUrLxpbK+e^-2pIYfF zcUJ&XgJ|(=1cXx2SlpH$`T$2@6A{-$ zN0x_KCL5*?XT#&%*4YL|Eb>a|GrtzXyRze$o|GZ2c}46Zeo*~Kio@r0*uo)3ese-d zLKUPF^v40JDoi{vNV&1{cWZkKy(ByZ?6}UTIRH+#(S;GNqXjjn+(Hm>!VVp#XzZzW zdU_&v``%IFCBYBh#%!OBCwCNpWUeC4a{@rj*2BkJ7wAsb(Vyp!qyc~Z#C__P8kt)4 zU(mR2pz=M+AvM%~?wVso-_Q{0L&Na18~9;dXkS9%w3}TbtG#R=2!@xv%o0QM<-3Vj z)jvH0icme0Op$}qnv4OvjY~l=FBB=o`vPNQ0G;iZ+7%t+Z}on_W~ZY*=k8>)`kQ9U|de(@wa z4k-9C6Fvsoi7<)qX*)yU-jdcPR|5mg22;xCOt~$u?V|K6g2&9eWJHhAFb;< zRsHVROl6@J38G65`{QXbj99wJLmPKp#cQLcyKOYX;jQS8Q>m%X71vyBRwUFFuJ)l| z_q%Hct{$`!Hw$fhcP8Tk!!DFcu#YGT{S4QETu!V7Avvwx=^3nc9yE-3WeWd#0lw9i zU6RQOdl>JXl7tn#oIAAYK}J!jLu!C`u^9~zFh?`;Pfef&K-+~!b}9hIhM9(WCrUZ> z*u{6*9OEVek%Jk4TiCG-B!hpPKQ0cq~Nc57dC3|JQ+NdWfxbgeB=__2afcRx0uGdpE z0PaWv>xW#s5_axp^qoPa_RwpGf2_C|`CqW{q6L0u_6>v%vc@2zWu&;F$gb-@1SSt3eN7pZEeY;%&)LI1)-19;e_Lk? z2x}I>`>@;*Uhg6q)Z}()(HI&STgYcXW4s|EQ-fG0XHNilvQ^k5291_mc=(c-F;etV z4<|*(=`5oqZk~>#^$e&8__$d!VWg3f85*i6bZK>4M*BfBtsb%$45wk=wO@|pPltt; zU2mhR{_`a-_Ium8c|)Rx-do9{jxHo`novo~Jh7@Gm;DtW81Mf4oQOrZfQi|RQ%U&Z z9!(O7`VmcouBJ#&*hL;to3EYJY;$-59A3F1=>W0kd{CVH-}_WM;fcxLl2fxnr5;HM z-YKRyr&DUwdM_;~c0<-vcz>#$l|e?Bk_h}H;K=~xfcp0T2wzm;@WZAn&4E5PP5Y{s z_}=@5_v7S*-^@}!aoP}yB5kg~QG>(%(-#`;1Le-Yh~C&SV;vA)QsX?D1U-SRpnp*2 z&MZXtPtCU@!t5n{!ym^oBnP+N48IlFfQvqF0P;s9LT2>eb@96Wnc!&sRx&*9( zR>+d`U*7~Q!jy0fdicupSCPH~c2~0m#XTG*grh?2C*EH*c#)1GGD^lpyYWM;SnxBc zi4n)7&Mr{a~RHH|;PO{)JzpZJRD%`HTz+HQ;3zX?3@?q)o{v>*@@tU1Zq8clcG&|_}_NB;B`I^-}n8TsaI?rSL!vxg~p7y zYojp`h!p*UAllpCa-&)W$WXSr=m!Wys6~hJP<6Mmc~&S9^@5N3Bqx5o&(p41=dzC?hw#NA)l->q^_7xxt6>4;xKT5 zGd5VqUu%2Pca<>T-*Fp{oo3gwpWV7pK_XF-ei42eV1eMm^zvJTSF~JpFKNWeTKe1cPfnE-Bp`t|BQDRdC@9) zz3n&+jQlt7p0DDIqe0JbWb6gPL}+M=z7;6Il-B9&1`VAcQa|Ubbi0F?IHw|d7wuR@ zeGi=LH=+jUvj1M$n6N0m&)+{NN%gCfd)%H(UTq26xCQ^d z^utQXE8;k5A#nRqFC&&K-B(>fztd+hE&tFp$R>shQ|~Fan(5AW?UhnG!T=|sM~g)m zAT-8DLbI=thk1IE*DuqF>HUF0Xc8C^U-ll^H-ugjD4S>f$McUuT7m7moPgjd6g?9J zmH~Srf*T8HCazD^@m&pf{3q%cQ)fwpFlod5Q zcI7KQ?z6s+9sWE+yK#L@LeYIfBJ9&BM;ErHt=pb97c)?GNgv6I_{iqHnuf0|o|D5m z%xrf(UAGmb=t>dwl59#A(9OH_^~8GX&p`_8H&}M3{jyvI1C_(oXy38nPQ2 z7WelFffmWyfo5BEU)dao_lDGNRdqc@oI|Zwh=93bw9G%3XJ&;`M*6$PBfUQ~J01EA zsou!+ONvXR&#>gtW1}7r_p|04V{F~>L?vk1VMVf-Q6{W)W=1rpo6S`X8IINYnTFSS zzi&+y*V5zEgVdcaJuQ|;M>TKS8Pu5~VCxf?vNwtAWA(|*I1q&P3X~bgxfeO^zJ6;J z`YEdJZ>?o79!k5!E~ZCsI6GNWD)X1|oO1drQsA6P_(uJZhgZ4m{eGOQl2l?JGn1l$ zi|3{1qW>tqyh*Ikz9{=k|3+gv7t=~c(ON{~!K1To(NveY@VV)Chpy8HiK7_U+ae|! zJHowxs1m0W$W{q{hrc(dX(SmaHGt}=9w8=KOsAEJWr9X8PsV@FLmv)h-V+O7N$umr zvC4HE-b2TI&X=Bu^n)QaKmrXVk0TD-DY}5*<^Ceuh@$@AdsfV1Yc7QmX`)@#w`Sk} zmq_|7Zdy02VPi!jDcFoA|J40qr|R$z!+GDzZRO0+0r{MO`3Jdt4_Jdo)}k*%=y6MC zoV}JzYcIbUv$8a_4!PzT$GN3L%$Jq)0s>TLt9yh7k91G;eV4RYZ~hF4u+7gOFY@|M z1Jdwr67m1~g56xm7%-ptkSv8=57?idVvTDa+e|2j9ngz=O*T}Sly2WSYmW?}8~>u# zuEsI8|1yUcj!J|lyV;5qv2+;4i^JRk&Sv(wU`ohtk8q&iFR zy5hF8_s}*or$OTR{V*}XZ<1C7sX(}1Tngf&DLAIqr?mOzjSb!6V9biQUH`*Gha_cG z`k3kVDrtM=>-n&*+!pckGoY4tw`ann`^2)sb z?q5DNj`G}?UN+*;k5Ltp)rkMrYNA3tK$*4$w`xPE}|;Sj(P8dU{1TGb4)y{PzXOn)vjYR(xsAX-RkeC~JoX5ww=@6F4? z*VZ=wuGLh`nn*9DtV=E*rlsK^2=^FeNrST!;_?J=BHg#ir4}|Mz2zp~Ytb3(Z@rmB zi#Rz2)#Wn#AWiT0UzMkY4jA*~1l$;h>mhwKJaf<10>fw6jegJh0YFwhD}WQY0u|Ex zYxy+L#@k@cc?t(f2NGLf7cJt9wmiQDmY7kqyE+%B5&_KD9 z)3u4e(HA1V>zuDja;EuJvTJUYbKXrEtVaWT_4;J!7rM`HkS$9kgN-tXK5<%g!ufP8 zG*biAad=CfB7P!{Q!-WQei!oj)ThgMjA;6U+~X_l4L< z6MY5g`)YaPp+!6fwB2QMsu3gY)%%+)st>+5g#`KO>Vg^is{Peb>`4fOou1^!-|Q&k z&iycfz~tLo598S`m5xOFSvxhHjqC@_T#8=-Qg4>GwK^obdSq9j>;ZQf=l(2*#u!^F z&}f+Q{q}`mAePG`<}CgFU7^WM_J_WyqK@)?w=^G`?Ub63NrA4~Pb7j=+=y)7pCzqS$%x(QmgPl?rW!}LM;zH?;6TRpMBw#%xLG7P4ov->(^XHJtPgfi*63HbOP8v%vR;&FrZC#!F!E_CdG<#;p>hx2t1zC_?%xlN^~KYK zQ7LOP{YszBKXR2@dkGMS1%-O))*Btf>~uW)okuJDF*Nx1SUh&yRH6QHcF#}Ccd1gk z!5^c@{Tubc)LwC^JDNhX6Xu2S*YpmpKNoNjeH>>~vw}(HFZlF=_S}(rxQhkWy%nxH ze_LMjr0p(NR1+!10W8lOSv+k1NVm5{o$UlVlGa*!llyo}^yJ2CTYRqRV6&?;yrEd$ zLM({*hCWwa%jW9-=B|g$x+_UxN=CJ6mZNop4D3D7UE9_Rp9KX)5L%c>Ka#VL_jeEksjFEda;GzDoKzL++xvGV?KZXE>eFJ_#9?$GtI00~yUIKhKb7Hj z$;MtA7JlUIrj4_)_HwoK*z<)vl7f#3zb>Uxd&i~R-tKHTS8k=V@)d^8<@ z5iB9pMT>j^(Zk9F=qsl@ax@q&33U~+Q>*ssOh{|!fAl+h*Q7G*(|l>^a)#A1#MamY zGMqFxVAmcs+Y_tJ*YD2+SAQ>mKT!;4Y~ACpD&;!5u+s^6{2wYE9GU=qNcyoFb?11o zlw~2{;#_dH4yZN`zZW2c^R?rj7D!R9pC-`5KPTZaVs21PxL*I?3)?Jzd{@##>n!DJ zCaQwLVq?#1KkV&1tTjOPthj-~~Gqj#+P$j73B~)!%a}G?=+t7$GNr3znEzJT{ zCp<<;j~*Ha3r#TW^(PPsf~<85@zM#aRL+JEH+>;SusEY%8$N}h5w=yeqjh*KSOAya z8wiUj7gzRb&;I0xiJz%>gJ*N9q=uq%0uPYz4w8{R69AXDOc5B;JnQ^Y5!oX9g}~&&~98>QQJ9u{EBLRtNmnx+6yR|B47&Y zzxQ{HsY#k9oDE*a5262hFQ|K=G*DpgR4KdfD!m^_?aYcADxhodNG}zF`>Z0TW9Hpc zz>w`Y8D%ha(HbZ5V%hjSg64Ckx*38dvyieZVO7Q|%k4y3E@E;mlO; z?mX>Bj-UF)DQ~`#dcHjq5>Ci9R=0xdiSpfbv2)3f6xiV0^T`hzuKvpZrR+TVcz=I) zHFqFX(4^E%?3oY8GTwnG$4Uo^q#wiDc0KfP$D%oC=&h>7{|?7aPug zXA@Od*A4sjONE7mz4Gc>RI1J0p7cA~t1rD~d-}d^W+gC}W3^ZknXLuWfG29JGrD-$ zjDC~deOQrjF{|g}E#v=(s<-fKx{v!t#|QzDZi&$$9RdPw^k}3cq`Q#@k&OmHN~F6R zq`OnP1*D{;1SBNJc6Q(Ad7X1T|HAhDed=AW|K7Ksja2oIvYpb_ud#LZZmUfa1`A8% zzrepsJRW)cvD0_FhW1(1O;`GElgXNx0F7cLww}_z2z-5g;9R=n^V?%*b&RZP;q$Dv zqv1$^>Gx)x7*&>{`FiQEEadBLKjXgH(`zs*<3(XXk)I#=v!+zHi*{5D%L3w!-ml`8 z{JpnWt{92jo&E7fSck3OtO&22A?2*@Mi?0w z91VN!p3pTUM`DAfS7z@1p#C!6^*m6q!t(yR=Hgxd4f-*fL;@#$#~nP!YjnWzaDLE3 zM?m^FSceyk@X{D*R$u&Qq#nlF3(+$K!`{@UYX*GBVruz2nGovsbd@dC-<`tVm(#fK+K zI`$TuvJGXlUsY!u4B_Og-I`C76Z*%sDc#&Y#Cvf(85asdTm%}8l)cJUwDaL4YR|`r z#?pe2h2V@Nj$iu)y>pt)ip>vWWg7#%gOV8Fc(c#45*_I+ftmUrb8CB< zFm|h3O>oZiaeeZ1>5-T0O1e6&st1P*oZXRgAMN1t(86*M|G!er|D)D}9o?B29w{cI zV9UxVnlbUUn_Q1a@)~2c_3s{_?ys($qQY476GR{q=8*ns^#>{JK1`vz-cFBKi=4JC zyyLj#;T`i1su8TYt|NQm_r?E=8R_-?;95GR#~%Av2v=h73}}53Yf2$>Vkt|B5yMd| zG-~Zw=I(L)RfpY3Ju4uYQ#w3y92>VWdGl_8>SOym$!H7)&7CU+RJ*`Q{hI_V*)pKM z+`H?#C2#P41V@;aA}_i@5+;N&4HL^3gw-qJ1s28gGJ-evXVL{YBvNI=? zAo2ua1CT1zfz81;SL-*6+w$W@=h948B9ui{dxdE|@pl+x_2yLy7}g&6`sM2Z0LwPU z?5|hPY6lz|CiIUNUa<)%+L> zDar2lM_ZgXk(>f8(@%=QUB>aSM%WYPhtB)<>5T$Biz!ywbk7>qU{Zi8R&toU&2Ykb z&PLDe88}?H^TORI2zmGZhcazD3)*s&Ss8B4Ld&lU`uF4imw)+xhO*7_ z)YNbQ7F<3Le6697;@_a{o}Cl7GC!xcL$VU}hWzl7)rMT+ZJej;%|}(L(COw4N|$a^L(Z z!3#Z7nG$I0nzZqg?y!@B=V8q2` zC0awrC5+gfeaO5#5v-_@mH_OtijpXlYt3bws}gG&>UFR0U;DiK*xCJO{!Jf;#`rBi zSUO6>dDg-5E5S3UjEb5w%cKS){gZ*X82{aC7nninw}lgfqd_*q^=up|p1grWsi3>@ z)0X3}xp_?XHYAQD*-HTiPClfQaz^b$wl-3AW*Cc1Ms!#nAxgMy0v%5FZ{613B!i-@ zwR~Cq%@G0VZtdMc-6p2K1d=?rc{f8uud+WHrGAH4t{7(<)`LpdIMm&qU=MIx4fs zQOL_OD~FvSy*qB!T!JoOjc9voD+FR5&EJ+MO<>I=B$bJ-GDs4UyoCNtLv*33n1qE; z)b@WB_GX&#F=2GXB!Onz0Ta{9kEc674;Ex`oDo;Zi$=b2>TzymKHx~cpzfZ0?+LLr zzL>7=^GlsMKpJc6xKwRngl&732Ch}>n*Qxkyv7`rAI89o>84d42L5==Vh(8{evA% zO~no_RQA)UhYOmTc5LJ7`P8npz;-ZYGY*)HU(AtP^FW1?`Hf|U0C$;1d|&iPHfW|uQk0bqldq4RkrElahA+-U3?{%_aI1qDqZwu`ad`sx*4ay6M_Fnivv1%hqeYyxQEQKt{%D zK9Z_=a5+F=kwK78EY((oTSV~tLFNY<$!*9~T6JZ^5|f;a!K;2ku-s+0D&-$Yl!iqM zy=IUwB;Ux9EXhZGCo0{$u*fNCR8!;*DQKfPZ_Z|wg_A(1wBPe$n-Ip(;9h@#z>5&IWFo){q{c57bs?k?5oESoSS(jntuHzI2r`4Ipbg~k#-AHkOw z!lW^2Sqf@PX+OU3Lgy^`8_tb4<;jHrZC&Msgq7Tazmd~h7OEVV<;h?li#(o=hypc2 zG2r$hBp@DUfP@LNcymhgs?#&<052cE`p9__%VU%N<`(a45247%o8$0ZfT5GxnByW0 z5jaEx1WfEMI4F8CP*y*s8ngcyVq=H~iSTn|-^VH_Z?c7Uc=KXK6uwse|k+(rh{f|2g8Mjafv z;1cm0PKXj0y*ZgGil~sf}`NY6uR-Cjn26^#~Mk*fto;ONTcYpOjl% z?XGlt^RulMG3qpTpeGhfjWwG1W={3#=Nl%p)O#I9rE)fgsGa-o{(gh&*O0^0M&mHR z$CgN$zvlUwZ%PaB4E)hw3cRatgQLuAUi3WjIZ2r)Yld(eo~+hnbJuIPWjLKwHlc$u z+MAZ^9DVl$K`((KZ6x6QuBq#UBEFZ<)PFQ6NGzR2qIecRgUpIQftjRln~?-! zaOmR1OZPG9WtpXfbr|J1#T-|2DP@QAH#5HQNzTRybefyk<0E70akCR;fW}bI@$GZenxOv_xBB1^i-iqiXOm*BZ zMOazp{Anr~o{D<>{hxe3w;v1e+s+tETKs8ha$5PPy+)Z8jP0}ivthEaX%9PvGlnyd zi9YWLH)EVWRNRN&r0OZ>dej0JHR`Pf)xATV_(prb>NTxh-lLT(-^5K zSbHzX*HxU1MOrPBe9Q;x2~j!R%o?jXjwiR^Ya)!EyZCL?VO!ZY;(QU6|CRmy>yj=} zit<7hT0Pa)c?hkg!KwPPsvMc*f&iix$j-R1y&u{Jh4-GJ5pPzwk(a~6*<aX;Oo_Wu+A(V*C(JGR<{j&|o~ki+Z+Lfa8bm^JU$$h6sYX_v@Dvq)Jw4Kp+O z%}bn=B(@e@YLaI?!`Ip`$y?o}7(Ey|AmdpdPS-J?I8RT0p=T%CYQ&v6y{<$$DFAWx zi^xhPI0QHrDB&0){aZ-{M?i@q-*Z`Qh z{_eRcjjOxckt+-87ztf+AON0Xy5U)r+<@{bkI$7dsq=uy+C|-5EY|ZvEIRMwwIz+x zHeU&4ZS8nJUSt1LFMI4@iHWU4^GgwRwX%)p!$WCB)~;D07kw7;eLe%^DYZfB1E4gGu(h;4%p zuz+|6Fls1K(3FycYUOzSLsOPvZKT zKC*^-gC^m#J}%&Ve-rVUX)J2Pu>D56U`Gta_1J)(QwT&25PScb zQywMZ8!YV}K1rlT1LKz)0p>tp*)8I5d)s28*^y4NR~Cdd_7jU`0xFEpWa!l>jr?YI z<2iuyLMn%ls{;#Yi*KJn>Z|Wf_syg|oIXX@xM+9TI8gKx4d>PrqSyL0OSLLmxd|2{ zUD$Hd5dP&tTIH)CC$g@4#6!Njp9^MS)bNxC*K{+aitg=5EthPtd{5g};>*$bx3qKT z@uJC)nOoc9hJ07Z&?8|$Oa_+~N1pbg!x$=yMWPM{r*4ElDI$BzV_SsLX#Xgset9yz zMu^FsFhdC0`&F(43n~}9Qremyxqj>@Ui$qk1j6nMk08dTiG(+oMwqiZ^KU@oj-#UdTPFcwY;g@- z#V`U&2yQWV#?>c=-(LXk2ZEZ%{wgAx`#F$&5+;(aYwdO$MbL*0NB10A zNNZ%@`$<;h7#PC2fv7yJn6t}gUUWlFA4n`L%NZ>@psBd(F6i|1-JYdkc_csLUrBDR zN|?LitIN?LD7F34gBWT)%QON;0VX~#>4H; zgyEBvk+irW2LRZFPOtZ)^PZvFAHaN(HUS^GX3VPp6Xt?K1aP^!!j0lL2G-f$nK@0; zZ=xJd=1VV^0WKfZ$8dqM#27-d3BSjRK~U}BV^hB6zsEkus-WH%J=)_9k>(mqP$231 zw1&R#OXzA*O2Bnfkb1DnL@s_hU&;~^vlppDh=<;xAdr_y_`xrUwFv6;Pm9-09sPd; zramGMM|7sjn{7*oW7TrB>m9z6R8$xC4x}Wz{yUv1P=M?7pj zM+1fa+QN>p{^^VGSTTO;`ytSvb2W=Ycv#Ej3O9Y0lETXc5*ok#{_?nKc?nPPd}R7~ zXJ?@T$g12s8Qh2V>j%UZJr&}X#|txY+iPCT?~fbV^O9<1V)G2af%mpDX3kSZCmeymL?Ws+?gfZG7RlvdT>Cro2P3P~bN8-%O zmsEc}C@SRS$;G)wmQAx)`6^eOIeKK+TyZVV?kikYml6lg8p|;m@H_;5AyD$=ciLk?@GD z3FHu3-r{|W8vid%a(ZPy88IKZ^S0L3KL7Wp5^2THSR#Q4_dt}zx~ivVq#+Q>W&eqA zj-@>_5x+cHYh-@BS)Jkq?iQX>?t!TCwgxU18!Zcy zsov=m4qO9tg`z-nTP7Af&WMMLh^FuB8CQ+#?N4viQJX>H-)Cj5G}H?sXz^xu*4{-I zHzqV2JMmGp+OvysC>wbgQ`w4XV&V1?$bn^WiE-4mEj`v=A|4%%4M9QTxtrjs297tu z0>T-JGCVeBX)UH8MG{)`*iTEW&|rRW4x^?H7q&on`uqe4hj|81m=vd9CPPLR%F3VW z(M3T@I)#q37rAB-Y1I*ubpdT<_@mpI#ccQ_q%f##nfO$4Zd{UuZq`EX3^Qkp{B6RG@(gtBZrhrUs6z!#yiJ7XK2@W79 zF@4E9gZ;~fq6U0S%222Ti@zVIWPLDuK-FRfY@j3Pn|Bk zbl`5%rYxYD$jZyx-h>un(AF*(Fh5=!)hvIK`Mur9&~t|_U#LG|buJS=SpI)cp4Hqo z|E6=}Tz$Iqgni1D;B`2nQm?CWUuU;CJ@Vfm!^aZoM*hiPfDVb2NfK)Vyrxf9&QQfS z8&-B59ToLx6WA+vU(#M)xVGMPr_ZU+v>KzTzaqCuQpXpppxey81YE_ONaQo1Zc zb-my_$0u*{BI1e2Sol>%u_<6 zT~_j5p4#}6G}K)WSY-GP4e}mzH)Q(3zskonI`T5kl7ldC`AYS4#kI2q56TI4(zup3 zRpSEISTL)7>B8;@d6pD(%?*z(I6S|!?J#R>YZcU;IDQ?Gz|WE zo12A7`6A2##2OYulI*yNv+8SBs0>z|{|#{1M;!F*_xMgh;S@!a9P1eI{7qiqLdn~NFCyLc-xsyhc%BnQ(6_&4ct24j zw`JgHZEb!Y;04H1JAiGRCjAVuz(P`>e38|9*`@MkUyz&Es40{Q>g*nNU?%J02R?A% zY+7l?#=xQecHx)yx)bbN36ilC3V(fP-2Fs;%+g4G@4C^nx!J=d?-i}aYDY}AvXbW~CyN&Y51Jf>-RmymH>C;EixzeB z@Ydw~8Sxi}iNK7fTp0Ugx@T1{YOZj`bGMLU?lfD8q2A#%hQU!djX#QMu7|<2*n}ojHG|0h9)2t)wtM%T+z?nI zU;dwMV~Qv3K7V}oHg|JTe2C{>>YWrZiRp`w!N6iRG7s8wkG;)PROH#e;yRTVLlw6! z=^tYMkt@z}f{qZC{{ zUl}*{N9#tXnZi?iy;~d?YQ}GkGtCwnsS*;T|7HJ+WbRTQJm=;d4~%FX;SH=qXlCdbl@Rz8@67?T0Q9BPBB(jWU{N_W&~#k z>f`YY@Da@?o3>QLCB={E2?JDq=!ooZhybMltRCIkf6Hr{gN@>OPkI$@?}*HQC^89F zwA*MOwb5s%-uRmYGe?WiMeH`L5`=gQ#E5s|zmjO`eP7GvMSmb4IiR(yFJ{=X^owf# z)oDJU0N#>zwKl8u*rv|I0L=yS*1Ciea3UMmMR?YlmztkPRtDz39|h~|Uc4cgApOrfe5y5s|3z9M%!;$;HS@Z_)g`1^45KJvLs2N za|mg;4HLk?vX!Uiz}@$B7v48#1M-zz7*heUB(T`MHd4mtGScVGFtBbqEOI=YhR1lr zM@@k8>oBMc)7^bE1~T~WtsFaB$Q0Pi4bz)oA}cppN9RG|(U?rl9M7jM7WE1C6sfLG z5LHVA@T$`Vp*j#dn^Qf8{IEAVZ09=j&_kHI5IhU@vAlAL`5$ALx6T7UA_AS)(wEw!tGC`(O|cW!Q6^SkQYvj89@0TT&eESa z1%Luavwc}lHQTD3M9(#Rbm&H$0cwi&>Iu;S8*<;maH#501yDx?WKf zi>J+{y!cTQ4|BEh;#E5CVGBEL5m#!~eErL&R;+wfag?Oeli>0-pzs@~h|zpwtfGpYVMGR8rqx_t8y}k^f=*Vedc_RxKu3f_rx{!rlWx%;@J{P7LVQa zDZS}1y;_^_ct-wGeI^W-p!|yJ)Dp?}WmqLNA8m)}1npK&8SRIM$lZ##1sNE=H#<~w zJI?WNu(xY}&{N^yHzy^2f8SDJ>;&AWB85ama92+1kk9tslYuCMe=O5~;~A5%2DRJV z1S{^^&s2cs1WF*wWjbeK03#kSUvo*V%Ob`Wfm%YWRDhVx{`!P1zC8U;v*$EFrhmVr zf+m}qEyL81rGm$2x1}#o3BkHDeI5}uO}Rm@#(4|?FCcO2ycO=l1n*RmHZN-XU?YmN zxMZeshu>j$nmddk|GE_b26-XNM*?I@xT{EuWXFvhJ)5;H_wzlmZ>@p|%2bPUOWEx4 z+}EajV#p85)+R649S&f~f44oCjGKWj_poJjmq0g$V^lT_v^6pkO>8=~#{7&BP@70d zXnmyUtnS+pYn}KlF)H2YJHaQ|{pGk(=JPHfIlS*+5cdj8;NH(={*=?kygx3<hY+6cU}#FAHxw7ccU5DQRA^jkwJEuqEF{#zM_Ip-?7^9rQ71{hezl2{9B zji;-%S{KzBp6whelY9GuFx%r7&dAsqB9o%|RrLr8Rpr&*84C$n{^$+CVJS#043wxf zXZV7;vR%Nbyd9Vt`J7G|IZGq<89QRYH6|LM&n$9vM&=tVvq@2K0MI+adH6{A<{w2u z#T5rJe2^vcyJqf`6WI?rjKH4pRQ0crFP<7dW55z+*uR1r(k+%ra6{9Q4y$|3o7bLg zj4u=gSM(dS7Aj?%ohV*@Xu&uBs!(AAi6&@!XYqrwoGSYun79DZFVl8ykscamEJjYU z?^k0+?WrrwQs!h;U@?l6xE2qFkYubL)-UOqE?2XKV@b`m#6JwQN>*onatrO1-w}t? zVt-(cqie7t7Wge%Mq)O7yvG=gazRH>UDSRuc{Q*kV*Sc&H!?SllEi{YkPIs=3r0R3 zuIo2?j&2ZIBb%Fo@VvxdUtwQ*L-R>gwp8t^+3Xo6hRT51la?lgvbi>hNb zjF@83RW3@WYV~!{E0=88fUjq}v$=B$y}L@pr&tsvxOOm+lO^z=Hv<({A{2w{SH z9qcgk$dNY`Z)>eYC;|hiD{#d*-^6QxFz`VLgu{wHjFjb%Vh+ye;K7j6zk!;slsGs- zSP9f$Lv{&ui1_r(vL)G&qIEXq36P2kbFTvG{?qvUsKQQX57QTe#Jv&ETyPk<=eG52 z{J;8t&w?(3kU#GM0h~i^Og}Toh&xz`6Mj5Va{AyPp+oaUx$23f!Y&{y^}1fmRTq&**+)o<}Ko23Y@2i zozh&Ax`jfQdrv8sPYgoX=F1@e@FodVw07FRVKDbF2|xu`z^v&O{2A79LA3frsNv5H zU-?WEKmNkaxp+ojd*cxTEyyib4`3lr%iN}ww@0%T7AE^F`~7$Q!{+WZgL{CFN{G!n zUtl-ie;)>{C=qcbaMK+9t%&B+hp zA;!U=5_JM}2Uboo3)nZ5ydtPVAFCxMoU)QiOVZg` zg#D6J~{Q+J_)$hZ0Ewgu}9BbO}31;1nWkxaH3d;{`Ki!(v`V({p1* z&-JB^-=S3?$gZ@6m%$S6e=rKq9vs}SasvpWdp?3e+eV__K1=Y%w2!YaZ8&}iq`r=j zqNcfJE%POh8Y(mIT4v2EnqkNtmOu0|TyDbn^*ZIualjyxnUn)@cret1{o`}z=6iPQ zISVWiQ;py?K(&!$8a~M&e0__v4>qkFTG{O($6O~ca(5E^dForp(9N=Wm)|5-#jVFm zO0@;N%25hHp^K4&!P{vD(c(XTnK}`z5EfM2F?1~UhWN92wP){ASL!ER*_2(DfMFpqv6wSPS*c|V9 z6h&oeE#_V>BQ9$Z!X1gx?kgcMk&eCS@GCJqBvmh^gme+OHt%(4eh#DYJ*TT;(LMgJ3~I@k=F z274j*Hh0i9Vt6(9u5$K2(wWIe9Sg06rteL70m7h6A7v~QA~m&I ze`;H*V>q4>SK!_$IGLK z+~Z3gD)Uj3!9&T)@?e;$=wCllRwjMR;Mku@AsEV7X~E9$h|8KhAQvt*P@((z*yeRz z4R%+(TvP!BPxaR|EBlf!b}s0vJPG*rqBy5AhF|FQA5RVI618BoKSV7@Q&%5>M{{$Z zE3E=Oh~Nj{+)?HP_uXZW=>ro`G<`VP^A&x|_?-6G!^#&AVLFv=-MhOTn{`^i>y!Bo z4#fsyDvt8jD6RE{^zU`)j-g3p)J*qL^peq4jdJ_eA=nnPAhWXM&UYD!ZMd!lDm#$G zQt`i~s*<&nj~~`TzhGO4eCKm1*|H}jgtLqDdoLuH92a+;J8TCqmlA(#X_R60OD0v3 zGn8K}3$AElm#||N8JOV_H(RpB$7eZk$YmH=pASNN%njr2bE!6nCi$80+R&;XTi>Nr zpGNk}(*_j~H=s}(-&HP`B!lmEK@av{^9 zQ#I1RyS=n|c!3OFK|Vu{!+KHKs11A^xEb1n_y504fC+>C*+$g$l&5>+xI?8`J@4tX?f=6wvBx24^JaC^;$=oA=iUk2yQ>+la{D zjjc^pkR;da_pi>_lpXZdaxd0!6TjK2Y&y4663UvE_j#c= zNv3J#u$X~IZeM9oEMz`*&>t$@Z^KvdKir) zeOxf+ROF-d-S{;ttc91 zENi++?}FMu?dhmk1=Vxjk$olVLM9UAzrXQ4JDdIFqk!PhsAp4Xc60|%Q?hInVa@@Q zk{F>}mE_mNd25}6O=8-urxK0XDAmeE!j6m5@!}en9@P?57vhOGW&a9O)bv$z-xn^( zc~7Rte&DO+OY~q-oBBB$RovW@j-EP~)&0Af|JzEyVaUq?3qY^O&tE1?R_H`kY~~?hY(CGG*6^bNCliUCoq`^PcuGrJ-k*|?zK2P@b&QX% za9WskvlNj>%m!)bf;)8(;XJMn&Ze?r8I;e_j<*?Q(N+|)WM&>Q8XyGC1h47)CpLY3 z>BtvNqK>tAl@Uw2-b?{$RS9XA!5hi)m1@*mE3&nvm@?K8)e=9Mi}Y=?Ry+CG0_9Ba z=r-nS?E*=0)5E9gvi9m1!}Up3PPW393U9u0_qu#}#rj8z*>c^P&YybzPB*^vGil8` zFw6)|<>VyF!=E!ZPcmQ+zY`Ised{A)+3ozV`f!srxm_ z?ThlWRBnMj+mMK3$J$br!0W_NBG)1~=MJY2 zj>2dH$y7V_e+Ia}<+jKrUtJnph+yjKzM6YNz=qm>;Lx%0`2o-kQ1~JDJ=u{rx<|cVO+has!!1_Vk`i#Waip=b$DW@J4y|jqh;fS}$ODzwY#2+(v znrd__g&5eVr8_tN`o^D%ssmtR)W-lBMq2xs>0LX;uvR_#5fOsBzzvOqPk1e6cZ^7O z^d*AofKi^H=k10+dsnJU=Ag7WH!U!&G z?3cRzLor%{Uy?$WnxxyP=Uss7B`gwKUHVbpJHFNJmjD52fP32Yi%VSs=b`ox zU43c*w&Dceqr}%>RT)7+h2{yh3Q`Lkb~ybgaOw>BAQ-PB!$?CRBKSz_8teYxqT|@d zE*!$lMhD_o{c3qlx<%ay<38K80}HpEYQZP^ygEhtlKnqmJ2?L49IYsbP_*JAF9QxW z5F`ev0x`e)eYzK|UJ>_mLteC2RVxd}_{4}j5q_bG&2n_I{3zNF*CG`Od-lkCM_k9( zA3f4volZu8VTL7JD@P*flNe!OSwkVeCSID};JkEW^wwk=NU$`X83i(cUnT?(i43Z} z!9K!SReysq?9^450g0$q>6?fSv}ZZd$@}A4?-xJy{s`#u+bqOlzPZY~8i*rN>elno zTyYVCtG-$t7^ip=F`4yU%V>Vda>|Z+xf5pmnnAO+_66v*n!-fW-<~AY;pQ$QiVfA} zzOFTX`c3%eLUnN)qlRqXJ+iOWPs{p4sQ>>K6C z*4sMqj_Z_a7oK|V z;VK}re)aQZpooltsZ(4Ic>_ut*|g${ayySlAD!m(B>pTozNbA?i~B7)_r z18xP9iU*nh%&gaxt+GFxxmZ`T{xVbs;-); zWLuDhlgESgv&DbF-B9>FCO69iN4AZUl}LunKcBnu>K`HQDiYn=N|Sc#`?^Y$#k7rL zlCSxnzD)zf0Y07O4!5`&=#JT`a9=sy$u4qMm8)dI-*}cNU9y2*)sv%~m86D<*)R^`U8~Dq1*$m~6YZ zNTrE(xScOGg>2eNe-T&M+@m6aGo`A=3ED?H8j%~HT3D6jimeLN&wW`qZpSrY82y<^ zf+dAB6K|&fyUH)smq2@r6b#*&r>w(FRJO8nHB!>#r<8Hb&3Z2C3i27cT6J1sfUEdT z@LrgAa^4E&{a0ec1eKrgV4o{d?6?qW(}lhU7h7+3sOb8mB@c?nJr zzpuTGgvG#qQBTFf<3>)sjNSm5Fjqlr8Yc)VZ4r-BK&0>&15Ekmu=0+WsNal{FoV3+ zuQ0>UX&wbe*xxd{Bmq%8gx0^7Q}_1#BBsE-nMxaMAvgn@!|36!{V1P+90B9~zwS+8 z0dImX#hH-JGM3O{TGL!TA?Y6H1J$n6cYriFnl+7qrKb=={uA!Kxqf7y7;7piO&sRE zh(jF#Dx-2J=xDnVIc{cxmk+Z3rcHpRt@xG)x=`_Kh1T_0%4#!kXm%~AX(c=xc!kfr z0Acd9#)_)OqhU$&ith=jTCLcZHQ$m*2n{spp%Ih}smO~X>+a-x?Fl44Ks@;FO_Eij zO9^YpV4`QkOF^sO&X4AO!@vIMfU zf{bxWrV0Z9B)5krM(-zv2PDwv?nQ4}Rjhc4JZ|g+lfQ(Oio9YW{}WviW5+Ua%lJ6NrdUlTz#nT{blLRM3f~CP}9vPQm$MN7mur8I4_u)TXC+M z=?VSsL1)KsF3$k}E^$2qKMXQD4hGR_IgccD)cjp4EEPte5rzKpML}10jPYyVcntud zutp7FycHi;Wm&zs6jm>}{FtGt{0Tya%;xsVuiTft+hRyGZX2BR6z)wOg4ue3ZX?HT zh!@?kFTP|*6ZDM{ERqxX^A2Tn^*`_v5)DWG&$&^UC<(n4&Sv>f;PFC1-M}<5*GlC1 zB~2~;^W^aa($f(OhK_;uVoblzRWJbl=b^i(`iS2&Sv|jZKFvjrsWN6^=q3__rbyw) zd3(^5%=`YEJMwQQ-RUnvVqG99v{#3gfl$X%=t*xf){Gi)|NFE@+4``kCI{n1gO?s( ztS~o5>kWgi^@bDilJIs<>f`|+6IJhs-sxO^)yne{Ng~v(%Zg^JKF04>P$H=>4oPej z{YTx%RM2nMQRqR#0^#aDt0DF%nwm%i5_rQEt}9c}nI=@0F3Mc8Gkf^2jjMjv_pFti zxQ#L(jR)&#ReWuBfPetI$faG0b=mD6=NcVV?c0xSSxzG3cC7Z#aMLaKq7CR3OI_Em z{7kb(ME55W8hQv54id+4v4w|cpQ|%pF$otBaxsKJz>>W`t*WI9&iI4e>;&3~ZJW*5-I$WW3*nq81s@CiCEc>ha>xo#8r zkD|avBNxoa(bgKQVUDe+l0N6kK-58UwYH<-1<@hxVuq^$yI`} z5Q)?yBcS;Op+H=En#jOEQV4)F7`$eFeF%;habh>4g6?Z%yGw=3E{`^!@ z125wzEk}(+&bp9kqu;#560xvG(X-bGRe6k#z z9zQPD%b%eT8XcvXuQ@0GQO|BSo!8PVm}HUTKw|pxZSj8}1h^Uhb~P1HV&o9++)v zf~_>ET$mgGu>H%Bi`X-rPgma;%tb`pqO| zFSbi)k;pz170&4-&LcSN4TGPtNNM*|tQTASg}KXLH$q){pFhTflZB2-6tTjH<+T^4 z>R>oCyusUmt)hy-4*tjL+W_=nb3XHA+Q@7srdcyG=ua zKoM>m5%*5#e^f#G45amu!5t_82R?UbM@gR&bmVcT?>-`8U#KmCO9rAAQt~CDItYa^5e7pbt zY7hSPx3SSQ1Eytr_h{{n`)lJgW+Tuj-U#pd(+PQOyuQVY3wFa6)6YQs5e1>@}p^7AMgDn zTE2$B*7Aty2?vr(lYd;ijoq`N+a~tGj}AfMRGKa=@l>8DP~~A~p+U_jJ_nC(gW$f% zmMm%oP!R){HX$|`iTa=WA*gKiLbtRQ%>YO9R{meY!f{W!ApE1hA)l2xW`9I9m(2v% zpMdzzyJONC6!eRn8!N@PV5;$k+lu0bqQc1(WUi0W_%4^RIamhyFp{Q6;+&u5U zXnRu@vE^Qqkmw_ZyhKqVIzEJ;#Il5;JQBkKt$)u>P%dcf0d@3$%@OANgzw+Io#6^n z5-LraCj!%(#i^=vgMhj|Yk$Vmgo5Xvu5ZzzKnesPHd~5yeblX=Y5c*^A-@2F0A8xR zL}B#w*O?N*)3(kWT0(Y5oO9cp=-xwAYj?`{Z8f+}FJbyzVB*ph^!Hj=Ct2*3I|-32 zp0*{9LXS=8-VaL6J%o^SurvT)>aWP3PZM;uXtro7Atny^HG?xPdM{ngLzPGxXQPS60F+lmmlu4w8w9oBbh$Q1OHn{s!9F7|^H?06> z4K)F)&hPa0X&9i|=k?P2{VY-v6TZKPmw5e?0||^ig-*;UT6ap0g$8rLqv(OpF{VgU z`)bLW5tfF)>^X9P@JAQVq_iTmsY!QkKs>A48HrohJ}RD^eCScLK^^J%?0XvOcH4nl zVG%c)2KJRsPaw>=TXi{FK?}5FVfH%c_2cb8rGkVIiK4B>eA!mJD^evNx%o>KLzU0x@9ci@GcNDAb8P|(E^BkQw-8if0SDk8=KWJ( zd@^@S#rG|Z731Id^cpW=IJih6sY%p_i`u&9cc)~&D?kS_qwnoxS%c-|v%8mxH$s-I4N z-!(JRV1Q?QA$p-6!De-|MowCe6BE|OYqGd%>&8$z&dvyCV2WFpqVu7_!`G?x5hB^B zaHrlGQI3~GDSg!U2{PfI$?J#i4fuY5=rAfgd`9Y531G_5wsu!MV=r7POzW?ACM|eZ za;3THcP05421yYgnpq!>SYP#9n-xeiFDdJKhgQPl7Mi8Pqe)*q+R)WM{iZ4zg-60- ziFx<%7k2N2-2M)eVRJ~1*_%R*rq>`?2L8VDEV*?0(DrUllB%RRA)N-4I()gcp@#+71 z5Zr&nvU;fzhBz*Z^KD%@RJP{7%0y9L?E(`CN(4<5jJr?dnN=^XG5|h%hw#D#Y#X{K}^Q0EY_> zHBeM_#LwK*6n>&@KQudLJ|m!j0;smscC@mButdFed;~~8l|_A)OVo1_;VQw~!aE`O z07V^$?Vznpfa%;Jf(ltmzba*{oa*M#8i5Zo=$ zxV!b~wf3{+KX>zf))-Zz>igbmaKOYC@)xen#P)j=p3O&CyNTKJVJZrZ4W}2}n7wrc zO2v>4+^6b6D;gsIW1QS(L#_Tx6K^L7;m@_(Iy;2nutESIENn4lLc z(x!HJ?2;$_d{k)^)E_}`z4t}Ph`%JcmPXTVBB%_F-Tr8E)-}9KZp^}e&$-6JX^zy5 z{v-9|Y_xOz9(r!MECjV?^bd-*o|4{2@pzTro?&oUJbc4M&gTn|&Bwgt5!pVyII+uD zb*7i(f=3S%6JyYTDzz1mE+4pmXqxNbBKX2?5Lg&sMu`lL53qa14SYp}K62bgpg=p3 zVQ)|L5HSe!=s)^U@SJbQ;swJ3-zSr$Xr2C)ny{u&mm}#RV80ET>XeRO2lPaKWcCzU zFdPA1Fulw~ykz4uVrIC2@KJa&ZayBHTa_I;t9esq14xbmLnbGZ6Oh0i#N{`{Yur}e! zr$swierhL`3>*%e0rFjKK5c?dJTlci-{r;xJUD;IBPTHKy2n$$9Qni!)E~>}azJPZ zDh?H#X>QVfTi%t0EOK0?6|k{{?xNv$A8GtsL~fdMj9P;9!navDOZy^WXq8YHPEg5-{0F>T%P-L~3XVhykyeHPyKO%C29 zvM{O?-kset>EYPz7n$n&B`No@m-lvE?Q`YZ;T$mH`+Ev=HlR+iJ$HGR&oNf0*_=j2 z3LPd`PvksbUmaaJJ3l!N$+g?1%CCH^;OCu)m)Qr7iB2>G ztcB~8oPb}Kac;gab&BWZ!j>y#oJGFLUGjMK*j+{z=rKQMSOnRK6n_*g&xqrF26`R` z5{mQcZh35WaKOvp-#q`_jre2HJtNeEvu;@DN&Cr54=wdSMX*%5vCp@)$_m3((oOv5 zTfL23!;6QkYqyrC7}~7xn!bnmT9r+fD+cA;@pym!LMSV{9JhS znDR#<#$jt6c1n0&I0}Fd{X>`Z}ZLv6ct3_;018WW#_7zIE>ic9Z-Sq^1~Uv z-H*9a3Osx7qLeAqb%7!{Q+Qnrjrxe-!=~>~)R!{d%d1Q~?dOdV@;}^aEEPt|7Tpb= z=LP6;$oC>}iAFExCwtfSeAPww=G@!j*VF`&MQBKA5=4auGpXj6pg3RqurXp#*L~i! zGByt+-O}EQ;p=okYB@qQ#tqN{^-x}8eHkI`|e1Cu~h_6Jo4Sn10OHS z+Lt!3p)n-9bO{x+Zft%{b##iIu%YU#zXyZLgQMjSb7)a`Ts+g9p1Ul#YK;D4E$~=T zOtjFod(oN>vC?nQIL9ySkBohmIGbf0^!M1^TKsc+T7fimK=v2_{5Rto&ZAl%GQqoI z@i>nnW5_@NwxuPVnYEUbVQ$*{cO?^|WnyxT^6Ko+`{x~jzffJ+Oo^6YQ@4gb zzrFyw&)A0@%bJkP_9kPFA|t)OxOQfEyA&UjnB_Z`Jl1C;fG|-RUALWisZ>=lBK6E; z$Yymm$w@#1i2RtZtrpW*!@rtBc`=4zOwPHlh>M>Cfi$Wh<0APgmZ7V(t7iW9fHI>D zW*vkT-oNRuY-fi&`!(%hq9E>F4K-aOetav?$V8xi@9R&D?(sejE1=7 z;}!O3J&N<#O#HJL!}casy!Y;?sa-U21Eu^Ao4(TuUB6?CroCw&^o;dGymz_?$^cXX zC#yi`_sjD3D#G_$I7k=S|SLS|MYcn zb3>d67%%6n#P#w3Wn}n{S$?m+OJdoZpU%>}y?N#pfAt6`ggfxGtr711=0ao+JU(kF z6uUu<=@I^l%djx{g1JmU`g)aClamm8+g9vXR8L7-=0QF6%4eTd}Tp4k1 z|3~lO0sD*si}t&okpjN@_NB#4)w`T2D2!Z6yc4h~XY7^>5lm1f^Cy0Y z!wT~m17kbVgq0>YGh4C4w|a$)R}vakhg0n=hH@_S?1(PCecu;3j3MBX%UobnmBILp z-a#UCrOOl3tl>zyD0(m{TfrDXzw0&-HSvKZ^k*5IVJ$Zba&Q?2!nQBCq70QAzZ{_y z4Ws72~jj3?_8x!w%6W$OumW67-H&5Q$H;@P$&P z$5UgO^^ExnJHE92ipu1GbHO0A$bbrUkycM!<`^=cmo zwtjIuSGK!%Kln$Y{tT0h{9|6YlfCHeT@-X1U>gGI+Qv-ASI^Z59DS4A{A*;N6>V(m zQX#*R{ko>n0o^lMD`E?#WtCPOQ&!f0Cq?J_C|J@b)ABW`E{$WAz!o38$gf%pURANJ zVig`+(g*>9d3q|zn;Ag0&ED^;-3b@rf%*7yvk|SBsLp>3 zoT>`TT_eG6#lod@xbQA7NSZ-4&gh?jkv@7-Ky9rLj%dhTaCBBe*zh7DT#RN8fuB_* z$7wJz6Qy*ER2N5rM}`^csXy8q_h)C}ivjK8hcEXL8n9(cJge4$)>EBTmsgO60*PRz z-Igb>n^hf-(ys{+16)nc*g{w7y-4x`19!mAV0N8_{c`MZgkCDMjqv7$uc6IKoS8ai zS=|h+&0*iRk-xA12gCS$^JX}PF3ey}xCVy&H{5+BWC}rxfev{>3<3Dirq=;zv#bHa zTWzJx^mSoX`*sJJG6W?5iOy6BMa;IlwB`7nx``AYmo+jbOm!{w<8W+(ws?N)irQum zZ=IvP=NZ7YAT!&rCg4-P3Oan@{w>hxBBg(ms`H=2ZA31EvRMr^LjT`kfdf3B$gy-D z4daIIraXORC5a)6Npw%2A7=J*ebsV3@5*&!)mK8Tp^Ww4IfD{c>EGn%<^s3es@s^( zz7+G(ifOv}s-OS0HTkH~Rzh1N?_*6KYB0zM)tDcxCmh@9%U7y)SAXd4m_t0=ZDp5- z4|f=cC)RB>B!CmRl1yhz5Ur&G!l_6E4?TF>W#)l_G4hsTIMWshVSKoPpd}MT+P&7C zesGF* z>Q$RZqjev}%(QUTij(#qSSy(cWJXrIn9~I=_$70ni>d;d{E7O?Vm})rAaR?bEAyD( z{L+h3c^8T*CSHdJe4tEQdLm=pl$Wb~zK-huPT7$X8UBp`TP4YgOEtJL zt3L8$xGV^1ZBzAIwC5|I0Ow~4q;=DfYo&+!`K#vn0{pMjjg)RG0uu$^G3TY7zB;Lx zr~_lx)XZWmK|!i%%r0;emhr*%`C?t^y@-2#884lXjhf0i_8jQVNWjST?TPS9Zb0x% z@wnN#^3Nzxq75C%63+LljTmR~rVjR-;%XcowmtxZ-KZ|lxj->D16IBTTsn^9KL6+V=xG(Dq2*tc^N?pKY_0o-Bw#iw{@(6R@ty!Cj-Z%Y;(IH@z$4on{uqS@0bpV(^aY zh|K6=GYevl;pS#*8e(8Ud}Dcgv#u+=BoUFi5q;)FZSG<6N4d`1kfg{s?$oWTw4|1A zKnf2pvih9!i}=A0vSGg%O{S)VZtyd1-xH*hO8?#9|AtbFp^1S%W=0u-*O^_NnXb?J z+5c*&>gE*N!VMvC^Qz(X`pSci!55xi?1hzn*NaRyB^(aXt-%o4)zq6b%$w5p#&6Y6 z-u^k(n_D1uY1W1ivjzhGpd&Yo>jnsIA1gcEqvI8GP%I`n1|qlA+jSvS7}KgC5`d)! z{wf5T;Ob2OBngc=)>V?v##~hVgU(bNv72-dHIkg3e;cBtAozc&GLWM(sE1P}xqhh8OqwYBZI|Lr@jP2O{)&W+ z5Sfs6oc+iI%uD%6m50RT_1SkFrciAeZKF9r&BYQvP12~GRx(>V0FN!8QM(d|p*TM8 z!XLS|2tNtX1|?ZSq>_leHsbzqSB^k zRU+Z-?|F&ENeqfyZe;fmue=Owu^GNUar%46im_CfoE^`SXrW><@!Lo^-%iZH|SI>r=gkc}(r zvZeJs3Isn;A;@pitv4GMEq0D=#0E(@NVb{MlU+{KiZ-bz<#1I02BJ zZ7nG$Nzg}WAusK+Gq<$hS7HAvhlRek%BnkzlGigh$9KJ>M|&{3N!GYft~FY?<}6$o zryqu`n5%3Y?>DAT(>8~>)hdBJUQ)7zd*x+<>%ArJ|& z?mL@;*fPZ|s|#K<+LzX5vo8~z>jRmDsIzY*yqs9ST%kmc*0=v|_L7^CY1$U(zL@iW z);4jfrNr9tr#L>gh%fC06J+r2q>p;rfTBgL2%hmm-2ZH4J}y_)QS}0+Vn81+Y{Glv zr}HZqgYBI8lFHk&bNq(@dYco|4-;J}clNVMHr$b+nmk=(#P`Tt(dCLIR{CQE`7|0H zWHLc>p{=Rj)BI#wV8qw?h_bBQDz0Lt3$2@-(wO?-?v}Q--dw$Rbir~~F|fhfM5!5K z_^&2S8#YC91;IN;wGc4DT@Y`vp%)(sw{)(YLJ@no;-@LJo39$yo}~6frqfoEB|vziPO<=0aK|ov-*T>k`=jFnMyp~Omp+R z9a#)>V~OSM?r6D#!_gPzogG*>#wX;E^YwxSzBStWbE%$h=rYlBg)2_+9-Afvsb~9! z!TN@sC$_*ZFVK_@rmY=BlaKQk}ZQK~GlpmZyY{o3S_IgB|p6`^-HcsXl z`s7fH1dppoX(|p>JVmhwcS`KcYjbaEM>AA_ikf|qW@RLNJXpzr)E;3n30Z0%SH~ZE zcNPf@<6?l6xA<@`&jLoD<%_2eBgrp+y*~z;i~>V$t%o=HIwVgYTTFO!WRy^p%$D`XKGVJ zqgT&y@}$@^$@7JaIlz0o1WW;xjqw9Pyga<)mW0$yf;pnT!kMHNkFRYnTS5FlX`_(#mA%CRZbhb2xAzWCD^g(uu9l`MJW3AF zxpC6eIAU+#K3mPlgd6)+dVJ=NM1#+jIsj^07Ok!dAQ zp3@R#Fg1!R!WvM0S!H4+P0#U1oH2PU_Fk%=djbfr6p=8no`5)_0sd8U;|90a9`86a z7^*ixzlZU|yjJ`70V%Lxd3&5=j{=L9|C4_{fAqg3J1NbD4_OYCa3X}y|k>DIozF!EhfNK+}cBj#nQfD@DqKX zD6|%+J$$g`e683VfjgYZyiT2eZaaCXCbvS?Ju;=Bp((4gwAQ^?HNIe-ejB-eM>|j` zGb^{pl%knQWXtzQ3tq!}@oR*a%rN}tzciqJS+jvU0)pfi65ug#BEeDFn1ZV_mzNOX9;=?818%w%`OPJHJLGzkno+C$Ui8j1H9P6lRs<8cdSM2Dh79KYzAlQ zt1)p!f4`wB#Vf&j?S6=`z5Xt6qk@+A$@vJ+YRgJaR3~ml zDq02c<{aNhV>sZxG$OlVkIjyCQ<5hAmpbV&`$)-s)wL)B52J;)FaBo zBjty>$;$K<>e?Kp3%Rf9iQzp#OSw&&LGXWB%ZVId#Kx7mu=B)F5Rs%(~l_AT8Cc__G`K| zhwq{4!76gjuR+rri)@}5;so*8S2snRK#DHb`^lUDXuT1ZjnP|J<&i^p*Rpm4W!d^4 zG>7PM_?SU0?#+AtYXUh$r8N5`e!>*yuLuaf7k@vTIZ~D|NQnPhYVztM&L=TFZn?9M zANEm4!(&TJMakU1`k5*bQC{{d2qWP+4iPm0$imw+A4-aUWu1~|H~}d(XrKu175NY= zd9|Y1fAE%5^(6d!cL4RS2M>>@i7lVqNCvFt z7)M2kP~16xxx)^}`}SwKQL@x>ae-2jCd{vp$fbucQ5|LJEWy%z@yQ}zJ;WIqSm#Q& zl?86qTvF4^&o$x?@OReI-mfKhH6fJGj&GdtkW^lijoccHtl(2yCn}_SCy^gC1wu}V z$KtpB`&P%@^}(hj*wUvK7z^U1GrftO5usPWmfQ=qAt}^l42)7Y*+Qf@6~*=OWK=Uz zKiK{5UQWDzSmMgmM{Qb>P7+lo$~Y1O4qWcxS4bOO?&FjiRV{fLV?Kwe^NgdB)*^xm zy3ep;m-SWFzEa2lNNBTk+;zSvF^+|a0l!ao{xu>;`}mFo=NJMrGDcN|NW1OkO({~Z zzEmHgzXfBwMm_kJD|9SETot3RT)D!I#tweHRa5AqVu>yoNx;ba^l&n=& z2EzB2dybCc>vm5tfz$4uT-Au}1rRq|y2uAC@d~l-sNO zt=?`ijabkD#<9=oH>D0iwh{*n)wWqo0@jS|#!uVENZJ5)&NJ!0)?CydEhRd6{HvFy zyxLPb&T2evw(4~X7L-VI=;pOTEuX!dO<(-4f8x?3g)tmTF6agF7KtG5A!gA^t^ljbg{3GbTBg0u59C`_1%mSS3kxPikzqw;3TIPurR zdw4QSRYa~fvaugNFvPw%O?Lu|*~o0>n}EU2xN633=*r7#jO9eYJ?s4-Y}O-sLeGfn z{=V>Khx0R^a865d7lz?vN-&iD5h;H@QUC`H!+|^;>Zaehdf&4594q8ag7opaZ5E}j zO&GLjTKw{?YY>IUF9;>>CgP@Hm=jP<3SWMJ)Fi+X16sl1>iP}TcKd&>11j&WPg2z1 zs7YEF24}P?2Q0qf(8&IPw6!3A3TVhx~li6-9UB_QPOMq$dUZ7;*puvY25Ft(wuw-Vj}CV*XP6h zK7y#x3Yur&lN?Z+*<(6^Ux8>!7Gl8`#bti%KR(KO~V`Qp*) zfAd=bgjx(HREum|^B64e(o9+atE-scEt%SlKO#Nu25(IJbFe6tP^iT`_)_6;B!47$ z;>rIZvisaPt${=GhgJsOzh6}NWb_!DBSW+Il*{Q|3(9qb_$L}(kc5k*-)nt#l_}D? zL@o1B#g2xYC2lce+yFcc4_6&I-h;cIAv>{73W*{YvF}~FK;nFM?Yz+!>>$e9Wlezu z+V3UdO(s{ny0#_e2k`p{PT~IO>MqaVU#B=U$k5WOW_!H*rx29sAiC%I2M!x;HD${D ztGF^60fKuomFmds)+=SjEeNE+0Nw4?<+okI-t!+jx*uQ^Dnr5GI9)f z(GPnGm->qjpTy9@eh$pB9hBxXPGsdrY6dm&i_>Cu@>E#a7R(YY5>@^3bN{EP1bpO& z9>QL%#Q*zZ#pix&^eajrOJR0aDUG>6#xj5VI;m6Y`E<>M!j;fjrs}QV+TJ3|=gzB8 zj>JVBxon#x=mUg9&)#f!Mu6IMR(gNGO?${+K@vo#(#u#$g8=UH{M|S@FW_~rX!a=D znH8?ED%Acc7U^I3==o`IP{?wObb(M89#`1lP|HFg3O}kwu3^Vk=@O@(VW`a+%!^5H zH6CfbvJB(be3SjF(EIc}-Yc$|P=gz{e^xDCW>rQsN1<-YaOct#ZEvPy+vEtK44O!u zm-#`mT(WE@iY;F?s;ds7ir}Q-XkwGioZDTjzF-T)7aRD#H|Rwvhet&&6b2|W@!rn= z-p1fCTTwcy1{wO!alUsU7B=sS+5W3!B?vv!DHE)!L`dh$gu)3&ANaOQbcbq#GCX6U zDM}}~B{8gAvtRa@_qq=|VF?Z?XYhF@Zq(Ia3-=tZKLjv07-~_zqph|#&syAynUIap z>fqw9U(8%WxpIBV1#x3LnY-0%yd&z>9>$E4L9-33dXRC)=kk1lt$OZCMcE3*f+Ne? zVDtYV04>OY*5;K7K7g=>TRP80|5l;8QdfN6b-qrJeApHS2QKND7wGN=yzKsTVEddq zAkkOFN3EaQtg$lbWeitJ=2L>zP4V`9&PqKh9cPgBHuT~}z}(W~Djkv4q?$Sihc^~M ziBa72*9A6YGeAbQJ{C=TVzEyHqeBbUG-oLbWGHHT4frQ;{u}Buq8&>gBs!#FQn?Kc z{2?u^fSCL+1-2s;-!CD2D^{A)^NtW2wbJXP{9mj~un?Z#jz2B!PN zDkWqZ$A%DWyob_%4zqm{Mt&ESp7Xvi_o-@zPp7@8NKN38ew3L~sFb1AsU+C@Zq8?` zsA->L)5d7Gxk>grV3lXeBhhi4%B5t!udA``I}1<^nW{&0q2#inW@VY-z|Xs_E|&hQ zB$=9S>NzJ#yriwHH34-z`Uujz%90}xaV1de(PLS?hgl8n$)zfeV2H&z?p{x-$WcnV zkKrCh|3t5D#8$K941W_#&B!|7;a}dX9iFJG`S+Yj#s2Yk_O~2=7iI-xl6}rLN7Opm zAv#i1$1To1SgrwOkvXt9Y+p;$6MMw%TC*3@{c>UoEy~KoJQX8y!J7ixSF-U+Nxkgl z&eQ&BIir-@TBgG_0qjA=tc)O{tCXnwnt|YysCmWLGb%%HBLSt$1bsxgLSI$8{iXN1 zQ>1VQa8=Hge)`Jd#3ZdH2iwcS%mVP`nGP^6UpvqH$ra$ZsqaMD~TApksZOHe+l zXqcBel**&D1PkXa+&Px6vH#5B)*`U_CZ%o>lC5t0p)%CHs)i#bF<5-N(I@E>p=VHp z2`l}}$Ddh2-Yc?Q$P|7TH8rE7&Cvn&gAgf(5V(6(F=`;u7)oDk=G-l{rq367y{e+n zKscB0P3;xZ1i{2TD$c>h}VyWn(&=yVQYvf zA>tZ?T=3p-Xz*R|R`6vPi*p~8h*q(uD{Cc2p8b}-3gI=CrK<*;2d-TqIaLahxxXra z6X1tCpLcy7QWyf2yX5k%DizBW%%*L|`=;1SnWu>CF_^gUE-eh=+#4{frGvBg$7xc` zEz3S`ngLgDe}2881=wqLsAx z`$CKeXzr0gkHwdIa_5t?X^>;}O-eLUJc28fw~PYNuo-LXfQJjIas8KwF{bhr9QE^! zEQHzP*5-){0vrF`j^d6P^BspVkhV z<@An6p!D|}8}|_~Xwa*847~h*c0NP}pcn|v$W>@xQDhX~*}R7%wYnnpyRytfiQwJ z2cPrbIYLYr3nUN}et4fGlw$dQk?{=f1=%;u|Gjakmet=uC|S7NGwB&GNpuBis`Hsr zgf}|zpic4aC5a(5plymDGWqOXzr1S`evDmfR!o<8Qt=LXpO~?>e5UDxDuT$;In}As zi+fB;a_^k^g%?9ojx^GWku-CTA)zR`K7t}`!4z92kkv(z5XK62kek|j;T428`S&U+Ll9=2< z?}`Dl>I6ulS^GxuA;(kU_^c|XQ#}0>{?)G z9vCF}q2}@*EAZK~V?hKgb4mSI=K5!n6ZuOygX-3cunBHzOs1%OM%kFy>A^33FoFJ< zup~U!zR&5SxrhKa0FiyMg_}{ZoidF|^i2jA*W?vvTn5S@jY1Nu1vj51M62>UE;j{- zrnt?FsMM*Rz{v(Dy)BDnkrx84)Zc8e9JlSz7B(T2uYhyij*qEGqjd*xPive?yECOT z0wrgiD|1yA12zTZ81WHYG^Pd^+;)0WPQgZolVajcJu^=x?+8DVxxODOe9u6Gzu?#T zhCbhR<0m}Y^KR>5$Tskr)DDq^8nt*#uy~CVtK67h$qJK;)Q%eOSRatWC^_IJ>`;I< zcL2R@i=ctXBuy2phnqkduU0(*YHjiCEFn7{p@iMdQpQLEJx&T6(2K6vC5y;zR?6+z z2{Wclr5bYBAh7lgi4Si$+sgxdv18{FY3ouUkMge>pk{HzCL0PZ85^~+lI3$RHblPa z)h{f_Gk`=GkyYTYN?fZa2{);I6|k+!8@f@tTg0Xo5Yj8+=P6?rJ5v}tWa@cR#mVKJ zW+WLtUyEu#H?KHfmh{GBH|wr2)9#dQGzyF|Trvhf)mA!-kjlUhKp{bbQHMI+UQ4ZI z6bS?`pS793Tc5+s{{;Pml?dABd4H~)Vd+UQT0%f^hu4xW{o_cK8XROJTOag?tthpf zUQFy=Lg%wDm+Ki7CBFF#CjK9Xf%VVb6lP(_YtcdQq*4~m@3!JO4jG$!{3%Pg0v>(I z!mlIFZaX2ccT*0uMfoS6c9!ple+(o45>H{F#1S1Am(dv@`bN26$qr5)V4%_e;IkY@ z-_ScOLjp9F*^1JJXg;!80UAo=A_Xtf(sp;!@Oe0Q*MwsWYdp!g;6@Ly9hu%D0ite2QAsaW?sojQS)T=povCBOXbbWJJJX-=LPQ8ORM3LAE^Q|3qn1p__R4*q zAJXw&w%Xv+qhT8tx_aTUX&ann%S)KY^LyqqHN-udh4uWB)+sDGw?o5Z#e9Y$AUmoF zz7=F(bD}*9YZl(~>*3n>FRk0@>XZ%WvU?&1#)Wp~sN^F$jbDmmq9xP~n#98rA9^E@ zC6b+*nQX+qy#RiDGha?lY+qft%+E2b@dwR?*z{a(^_m;obcI&n%wFU4Fu%uIVo8Bu z3RvoO$8FzDB#Zhss1xiT{Hn;nQ?uQ7;FT&QAs*|YbKp}*Zm|q_xN^3~MBhY%-+k#N zXr~JA{uV}_^Cr-l5l-zBVz^e517TKqV1rNoATqm*$qf#Fh+s~pWo_LRmFem8&W=BG2E02&Y1+Y^9V&@I za0NK(#;)*}MSJc1ot+RE<Yj8nfqThD8eP0e(r*1gBK$|TQc|2 zLM#Z?8whTte6Jk5mnSXTjZ5*aaT6>0GbCYiu#8|*jIgu@k%gFGZOjP!E#tA`9_eXC1Pm1M?o1}e#eLM9C`)cCyRc$eFyqHgh-hQCfoOU{GNyu-AG+L#}V90OI?wsUq4J?j6XIA zXiRdNMtkd?2$YOg1UzhMf)fJAVno}#j6Wg+ZipI{f^6yGNeq@tWZA|naCH>!w_wZo zG%63+x-hrJI8jomJ0t=Dp9rO75hv4{E0D6B1d7UQjfl7VLzxXY6>FL_^tG&un2GeC z2cT`eDFLA4MIJ7sVxr?cR zDe~TBFj3_98>wVQB*`*3ONmp?kH)ZgWt0`92_}4pDgcQPpZv`o6${F#9$n}KN^^Ay+fbG)8wx< zuA}D}8rr+zYQ^VymFPb!MNyM{abh~2Z{zS~!`Pm2l$i$5WTusnw;he zW(SkiYy}yc>olJ%dS8htJ#Y0=WE=0NMoUbH^;s^UUKeTh{Sl*0o7d3rGsJY=A~u{T z)I^8W_rQdN};TafaAZ5=1~QQk7(J3DDf6=Tb4mw6riuAGcTrRyf|%Qgco1otm4`~hw0Xi zYZkeX1X@PXm<;a@FtjGQv=@qE`7QD=L{UwxmrmCxo}+AAke53N8I8t>n%OZ~K2tke zGX2;f;+Wh4FN{ZvCkb-#lc5{e_z`pP&hafDEtW8hpNZfUDU#7SfNN?sAv%0vHz=Op zHT%abqcfX*Wq!RQXG7#?$HqSsUX$kY36^0 zO-dKk=^2l+ru=$y$zJbLMvE&l8WPpm6V!#k-*SVgLMJK& zZ;9rA7r0s9=vR8&Wd|bMT9ZLwn~1z0yh1;j>0&E(B(Cqc-@?Jo zkspeKZIs5_Qx4ho2-RI1~SQCmzU3YKuj3aDaI)G55mz1}u1 zYMhHi-8nm9^4k*h&Yybq`qiUqdq+jCLQ$0K`z_B7^|UfPn#G*|@k#N2hS4q=(m8Vx-sk9^ z;o>IJ(sgtM(WBA=spqbjg*YuuzWI#}_x7r3HuD76)8Or>$RMpm%IuQd>|h)Hg@e0x z($z&bKHx&nD&~5t*=Pr7wFApo*pahC+$mfsq`JP&{9)m<ozb}7T;zkBGBM4th2Hl-33?h_Yl-0EL2FswjZRzfjt-1q zxrMD%#h^cEp@wRAxS$AyN2FE`$??X$Jc2N%{+0Ok;#dO{j?M7%__6$Cgs`Nw0U z8Gg%+BY{H~n;;uGxSkZaVSZ|wp2<%>R;v$NBA!k@6JK5~(s%A&^x4SKZahNgq3>WHDHCTMf|@@gQ!_n`@SHmpCABrd zp&&am@v$g6Fry`@t*3uA)Nlz7S8d$;wb5u|^dZ?yfSZ#aS7XV;vgL#sHN+su$1zux zSv>v7|2RTfzFCRUfJjTm97l>~VYal&5Yj4=*060%>SyEc-J$e!F?o5*J@CCa0!&DQ zz~7FnL>;Vin_OT=aN*<8vQnnAu&~ou4RIY~76hl*6B}a$a)(_yLiZlZfWkM$cZ&vO z6czK_@!j*;DWsbcnxTLSjK*YK95Bkt-Y6xBzo)i1JByfxpjt)+Go4@ym*Lsd)s;P1 z)g0--Yxe5OUnJmX`go~2KvM=z8pT8}G2ae1s0&xuTl5=ODQ+(1*+9ovzsiUiJSJ5M zG>eg256Ixj%`d7JW#p*fM#kSelBKSWY+uzEsR_{hUc#zSfEJGDNe9IHSr*7lZbz#bT7{!%q8C2I zDAYD`dwM!n8?m&t>ryi6-T`kZhox{?!aCp^nrWesPuq0guh;+^G@ad^0Sv8sXO>g z;$C?Lnia4zWD&~~7|$bNG4j37=+Uw6^7XeMFW$`yz=AF%Xc}o!y-N znH;^$_$D7zrD7~C!-#;#SwgQlcbDhD-l9MaLck@PJsO>^&zbb|mZ8x%!a?ZKrnbvS zWK@~bbCrtG;=gU4d=epS&h7ybruQsry7V8Vx2!mMmj96SXsWIvX4%n7>Hpr;GGDI{ z>KrIR7+t|k`!hCb-h6!ivhjN5q^x4$Xg$qeq-n)on(;3vQ=&PAwBA2p&nz!w`(@{{ z(kM?U-$6ANQsL^LX(FeW04;PB!`E! z6HgoFz7a90)%ESf{w-~qRAQ_oz)U5jr9IbZFuOV5Qy`CBo_uY6YqMk0jOezWH!_|u zg=UJE8WldZsDcS})c`GxcqQ!`&2F|J#tn+!ta6S(84 zEpCgoU}cq(5hp>ew?Gs7Uer=s*y5mGy;JtYpOD~VlN!cI(|e8~RPDN6GxJqM6FInJ zZ#`ya^3`v@u`v}I8}K^w6mXUIO+`@!TxKVRVlE^jJE*Fh=I?d%-%%l22fHVXL7fkl znC5a4-`CS=y+>~dR`vwz>?l9MR*?p`T7_@)G24ES0a{(&W!<<S@qFHi!T>kZxF0n^5k%3lpK5vdu@ws=Vz*n{S!y3TGyyD6&>W8Duk^ zPZ#bQO?0%y81c2cN%oy0XAQoFKA~NjGN^$(D60HKcqr(aP*de-!I4=;qn0H-*7gii zw7zQsn(YUR-y+!Y?_aXNYBi6gTXxrYo?pBi95g^Bo|T`UMB8Bj5QHKgiqniqBO7Ed zsNSy5<1>2m{BHtz2{?iV=)w{SDkK7%1%xoc98c>;p%t3CyvJB^t7d-21kBVV&D?2t zm7Ghg?hh@(QIq3*!!*3GP-lO2Cql=q(ac7Rsz)6LCt>nwi4;iLz#s+i{Pi(g`2(#2 z>D?GJ^mcG(#_#L{=-ixA(;~kl4dYBL^Xtmd5I%$+!YZ3DgW$?chiVqvpFJ?0Io8>f9f`h{9)^Vw`Mx(8Ea#Z*3{Xd^u^ZVv~j{|_*b@8 z8yzT=o?aD?Bn$yJ5yvLu#>;CXV)~)cm`?g|@!{acyJqL^cY0`tFx%OxC6k1vVZqlz zJ9zif8gFfH`KH(*CsI8){KPj%wFEstcFiSbWyWt@gXxf&==gZIjlHX*mj{cM%{QwD z>Z6jZRfyM=6c}<;=iNu8X4cNSK0iZoQScM2KZzkU6VNPK>Z~N%yZhXo{xw~R*!8Q4 z^lWV{!QtNs$OMSRWBYpg4$Y2w1bB70if{CwGo#!-`L;IB&=35GACZzZO@^07%SM|l ztEZVF;jg_HVX&lBH@9U%)$oWBxP5Gg_Q;VL;5{FsFImucd62g}d3qn?+K|rd)`!x; z!-_gO1P@EH$%F4Y0ijQ6 zU)Mzgf?qeDvGoGEjERH9sDrti3Gm*B7q`4ZOK)Hm1}v{U1YB_pIj(aU6Mqk9rA_$$ zq_rZlW1z@o7uIX9ql?gfcVzDiovCz=QOE>=ve~%t;c3pnScp#|^nRXSI@U_?C@i=m z0T@J!yWF95Vt9Xkxd~Prk~GLc__)NGufKG*b*|stBqsXKvgR#cItiNCJNJ>XRMiqG zKe&^pxr*L!rsBZKQjfS&1QrjeFz{DNp|9QjY)aT1etEB4y3XBk??4oAwE)}y*%{FJ zeAt%sRbr*s|a^qGq$i~x^1l(SXiV?3HM>m%$O&nTipTxf10Vvl zN3fg@R;R#LgG_qe9n7YPcyzAcuB2yMQ%!&WJ>U{`ldTL%9SNQf$@=DZNG|;H>!kAO zVbwk&6cdFz4B)3DvzXYX=y-%Mk>@UUw7cd@Xl{PhfO#`VSHa6KBCngwlS6O zn}&J}ibOjTx7}Zq<9eKK;gR!;-iMo;Ap~=LQW|tRrrNqU(Jr#zB4uul`NANKHut~z z%@QIvo;uf%(P_%{lV<)hGBE*mKHxQAM5)FaP*Bkr!0&qx2P7g-MFO_pf; zy5)FkLStkk(dZvtOGnc06`2iiI$%bLmK7^f>2FU}x-Pm+%J2y@N!%7HfhK4c>fn(? zHMP0lr_zK=q}5cSUstr`iRUTktqoGwT@AcrexDibg)u9Yo#QLy1_&tG8l}YoROvaJ zr59;Xzf((CI5n4`kdRe2xKLhsP?gTOh}<#1j2nG8djjO|LL)zs1!othqPkkj1Qh1A|@E^6t8Y; zo{(Ey{(fxld(B3^i8{BNc|w($(Vq{8A%CPfYeXGLz23Vk*s7VQ*xP-NFN&m2C}kT` z5ghaN{C`xvhdbNx+cu1%5n7U>lp;Zk+N-G5SW#MA8>2>yT2&Oasi;k;+ND~=-eQl^ zS}|&m7*$2>sx2aKe)s*{_w&5}K#n8d zio~tvdn3$DKAzXuy(=&e3~bI$4GvmB2%L>4uI%UK>Xi=w!=xjsy7_59z-8D)pnL=J zB_Yt)+1X=$OO6)&)hAb_ZJtk3yIxl@EXmY8 zwBg;Mg;BakQ4E4$dP1=7%~AFom5Vp?*wN-Hfk;owG;g<{4W*U#+g=l8zijUWzx}n^ zi$t6^J6v8N)okf~Bex{nJ>zO2az_Y$BGE}&Seu8UA6t(05BR^`N-eoqo$YtaQ{_v( zWvWHx|8QHzKc?FoP}P{274YWJ9|c$jLauhcBkpBt-N;2Q8b6 zP>#8RZx2Rtk0nQ;;eeh{C>0$9MXBT2R3ca26z{iGdcvcKo!dKjZFaf4m(#FAvDjhW zan{JC#ZHOk9|*JT`M$w9kKY*|y?m>1cDeCvEr&sQJg)YitMYRHoq7y=0{$J`IsCfP ztx!s(BN5BMQxwC*V~n*E_Y`_ZT&+(FY;)^XBta<*06!Xb}BAGmjAw)jzaTD4D5^lwfTvkTD z1=t@0?0+{O+dCzjX}Sm&7wTYzDI)y*7ACvptt#*mfrzYp$t3HCU>=waGw6k_Hr0S= z>+OR-2S?tnC(a^v^_a&!*3Egh$#lsKM=xzSLr z3IhU4;DSc>C8`u@i`>K4TJ3Vuf`=q_<{tBm);enLHC5o6FSeJkur~W;1iwzGKF^E_ zq4Jh}@Ok1kxk_O?6jsNOD!?vHn=2IzP~+>W zU8KbGT;Sq4X^r%sNFf!Rha4p82fyjC{l5NPxCLr{`0ieuQHIFw$@wLQu&9|Z_$d5V zP=Ec&_?(p8`;77k>Kp1feGT>^RUTE_?cJB$i@7zkKLS(-h196!q6WXoUe7})Bs954 zs?)&)BR<=^h6MHEwyZC*+| zC>RoY5DM1^*c%C`vyE&-HMZ}bxIGQ0@=_343M9-(T0=*|2czI&WRGH5wj_4;xgOOY zUo9%Nq(ww%XzB8pz^heg3fJ4+$l>ZCHB=b@(!zgj?7xmn<})4#LR8-|$(Gma4jFj)pX?L$rknKMGBIcDm+s}f z?Tb=rOl;5RlVX-tx0UBe)VrJ5xa2b|etPI{!S!zg?DZ?Tni&R3`zm6@K4{yR36*+@ zzgX^d8!5hW2RPxBf$>K8<5C`iLr92cX?I9OeHVK6V%f}t?ntAph>4pY?0Go_%b+kR zW;vkij@E5Ll_k|fCiRi2RM&D7N;~@H8mN;x8t92A$S zHtxh?$({ik7>uKUW+!P{>+|W@DH(A)5~Q3l?^FTcPZenY=GRe304SO7i%@^Uh)#uq zCi~9Ph?_2WA?bDSCMbJ?d-$FY9As?+iRo&Dfjy~#LFbop?vINFd7r!Ey|*KKklDO$ zydZWMg`8o!1j9LTux+UOHZ5}^xs_l{6XHcqzQRQ@#EIYy*%;2*BY6#QXBkoyzkHOQ zxQwKlykuATq5)iqg0BcEo^2fa=MoeVRBByMo+CGi%O3KTqYGSfo@QWIaX6LZ+oE5~ zd69J;DKyuH=R-Ij#?oq7WxCyD!@teUS#=efN$?vSxx0IUPvOi<7UWtg*JE7&CvAs< z>I(iA(-A~Jnq3vlI#A0x4(711{&!xS!NO_xU(8faST7iFzg`@N>c4nnk8!}%(QBcj2Mp}`3sNMen_d%m-4Yj^ohDI zG|at3PAUF=gp+o}rHYv02GN`k9a88JO#QdYpSPcq=v$W|Fjj!JcfC55 z(u#NwO3EWG1szwud&%>WJAm)*T=&@__aM2wky374xY+gRN5_*v*lH7dG+$l_mW07x zaCMFl6B$5VKC>X82JWJXbU;o+|Bd2Wp~>Y9Q^0+IgZ!L2FDpT?^<#PQ!W9iW{FNuw zBLTmK-ubUJ3yXLw97TE$eTzWl%Zsqfo9Ej;xySNL4w$cRGW#+EWU<$KB-bO^U@qcZ z9s%a02E8#fxs%Y{uqC_hS}w2jE=vv6BT{>0YEQ!+X0QLVhMpgndBmW{Z%}!9o3_IG zS2SLBP3A>#`z~hc0~@`aplVGXb5h7jR$9O{Wo56A()=I;3M-D>Ix@C79>!MZdlnKj|m*5)Wa)nCeqZVaJatLwQ!rVHyY z>|Ep>X8EZ;xPfXL7mm~BD+omovaRpJ7}Iby*zvh1IIv9?AOaN;7lqCj(t=xEJcZZ* z;SsArxs`ZF()5wx=LFAlbCkNJw^_ye#LD5lWFpyxqe zAMO-9syTV-%3@^l+{|KXQfT?K_108b$!E@Kd~n=DedFYfs5mstER_}H^@PF*OU03f z6G#zZT*TION-l;ko zfAg_LukDEI`@GL{vfF5n$H!@p>F^-hAAI*cza(twQypVtwR>OH-L|@gJ6#^PlqIP}$^D^el6nl>93aykGB)h{HTKaIkDYJxOs8fFWvK zw~J!*Mox%w@EeALLS*mn^RX!z-T_VE&8R4fhk2^%v21h7HjjP$D8EQOkFqp4-wshR zo3?kFy@C%1IKJJ{b|KG&ge~uBGK@T}f}Fv{`7*|WNR-5mGd+!nhFd1t{y-ZW2B22V zn93Z9wfMEmC{mEa1gfj`2vk{S8t|#lY zJ;H)gYM%gwxrqc~QFDP|wgc*3kNgOxUPI_ck&ss5Q2KTD(9W)eA089L8O^NP=^3Hh zn}+{hDHtg9SQlMaQd}EDKG9HM_VT}8_Qr4Fm;i`2nv^aSdz`Rnj*W|AVim+0x`U*_Bva&AK!O3XEWS)jW7YL4F3qH?9R?ts69PvZ{kr%+AjM}T+sr>%T-UgE z#9uLeKICpiXH;~!yYlZxDsj!reeY5{I805H0f1Jcs8LP9Yr1efbI3~~RY%<=PgO_S0~tahK@D^UOH!%dJ-X(c;+Q5(yfyP6Ys+?7EB zeeic{0ujMSr5O7m31F2@s=7daUD9u;p~-4-!3lSWFKOXqgfI5j!2r*<*V}I*ejj-s z4n}$nBhc0Xu)yZs-tw-Qs)!9#~K;dP5wor*ScVw2o=T!lMwC%0;Mg|8cDMo8}m3sW$CEAY2I}J!6{9D_nmV!uENeL%Q zB8=sGmC6mryYn6AH>X1Wlg%iZX;YroiKg_X^FOcD`m)2-KzLXck8DX8OmF*Rl`i^?FEQ!^oW}Xuc4k6npB&hl z;TV~K)P1b{(E88x>48eX3z4)xX=1*xpvE#XL5(G|+U@NL?kd5o$L9)nCw}h*A2_qW z7*HYX+RBM!r{xsuHpB@bZ-m0Y0;r-cp5j49m4z(_{_`_z&11ESfAnn{rVJT&!?zj+ z;>ga8#!%&;=3ya*zdH?y>t0JIPRwBdd?E>mpQFHoBukuBDIm+Q=p)p= zj{U+cZR5wcS&kl5GVV<4B`wSQorvbDNF>4pW_P{t>ya3#Hw=|J_>;5gjx%EuuxR!~ z!9Q@w+0NdzV~M+l?*vXiKgp|kOk>zrShDLyI3)KW7>>_6Nnuc^B)^tVSEeKKxytRw zXQwmA$eBs=R*T-P19a81G>1trv3nKt!HpxW1W2t(X(t5M|I~$igFmTe1it+B3_x^y|;ZYg8AnBHcf6+c)Igl4Iu+8TDnw{TIgPPr<`I! zH8(PFfA5oZ)7lw>;8V0mle!mBWc0QdBfv*8o^ul!L44? z%F4+niZ0v}m?gIYDE!}aNAsb^V|%*^u(=G%z?Ro8U{2+Rfa42RmCL$#1CYQoe{-{A zeo@BJ+k&g$(7jcbpN&Ib=jTRi%5ga2W9*?vZ7qXvYbYMH;t=dz5nl7wI62S_3jDMpt5w!M)s%b-I?#D{(o$C*1bv* zg@zC&7%db);|bMnSebDo{>2l=SA6^iy|F_FmcMK=^+aYLe95I zl!Km+Urz6|b4M|JPPr2Wb~!GP!O!4oUac2>?F!yXPqh6C7}R{DWn$tO`NpU{JXz zH@IO$;INi7^`R>nCK8_^CH@Exu$dN{A`dobhdTaL)~(OpCWT0E;cr}^z~c}l*3~mk zIDTy}MB&HMNl3K)hTDM;$4QYz>fonGBAGI7;V~tY;F`O=5{X|rxhft$vb^Tu>>|YA zDMGX=B@s9?ej|(y%`Le6?NFcZ+jqauC6I4EZ-#6+*DR}O|96-0pBbq#%COyPIP!XK zV34Q=7xMCNYZH`(TSYN@`em!A;Bs<4!YDyEtXCq{+fBr6NZ#^ru_35^@nl7=Y_mzwO`e1oDhcJNiL0le|f zm!9nJdCQ1cq>XZ@+{b^AR0ifcSr#g6x!E+~1V^;z()yl(Bu|n*zY^+&k*xJrLB0vE zKG2t>K&o`Gd|}WG`!xS?kE(^zqj~K4WiKJUAm8yYN2$IpMR?vkdwA3zFci-25cVO% z6qG=~y_}b9CmfBB;o0~jb^!U}Fc=kVrbi$J)GJXjEn$Kuz6qLrL9y447#ZF6Q#g_+ zMx;un6yMl+J%BmE9VCX+*;eMcm#T#REj&j(9lDzE_X=)q49iEuqYBgxwKSwyvP#Ug z4Y*vMaaIma+fvF&Tpr#ZXzAUKUY47mKK-jK`P$p#Z9H;tD`>u9e+A=WbL%W=e9U~U zea~_3J|p97)DK}8q?4wG69Tf%(zVAfT@Gy#ga4v*?+Geb7JMI@Nc$7d6Q9~A`>U^i zV8;)zvvP1U?DL5%uMlIr`}Bxk>IzPORY=xrLT4F6;>J6<+*s!6;AMBA^vW=F&~rDJ*ZcScsM=U+ksrVYNN#tgrq z_K;sy6U|8OGX;v{pSNvv6UKLHNf|ef-P#wgCb~8t*lJ6NoA_F=Yi#DBaF(YTAUf($ z_^F1=t*a*i{~^o&sT`5v<+Xnug(PvrrpPqcR&+s9@zlrb+DcLm*M}ZG&*^PG-Z<;V zd?`#mJ>6dp+*EbBB||P+i3+R5_lJ@hQlQW=1-f_R)0cVMl@E){;eeo?LKb%f7)a+yMJ)`kbVCwgPHh;@H}Q_cfKL|cIhuk|8MpPW~wy< z@GQ9N*$b}8)NQ4QZH_v($GuK{@Gl8U=Jb70QCML=`H#FTNg%pVOFQ*CxpEz&mkmMJ z@!!?zQSYuc6<`8{>jXHbtzZ4FbJ!Z4A7IJLR8By=m*29UD1c^!&qr%26r;M;7Djq1n!X5_ROsec{cYE*t^Y(d*T&iF8U=P8oHKY&0Wdf@CXs~|cg!gl? zVDGN{dN6|w{FH^csUFwV5z^Wk(0G_rQ3C4|y~zfH$+|g-YK0y(kk5VuTs}&90ZtgS zNc&@1uF+TH|5Rr{0Lkvhz_H|hfV~!{;BOdfVIKQ#h!a(Yj_(RndBUtiOFi`RwmA$b>i`Mg2G_A-l`R|MS9~hd))!QfLoeD$_fA6&RCYoZRif`$Hf7sdP8dGo z>o*iIh@DDZd$3ya^Tx(ETNaOXbmf5*fBihC)E z-@PX;KBnX&I)4Yns^+e!4{>0;a6hv7DZ7RR)Mp{}Qxwad^@FKr4Jwya-xuL`ijD0G zr@Wn%N(N-vrzchUVhnFnKPFDWIJ5`Us@S^;vK_T__0J#OMM8YpB8p^^-JB?UbqfcTn6wJ{rf1`VG(qC_YAiO=C~FLeMR3 z9#smgo&IB3sGA^@N1Ho-TptrG4S76OPdaajWVOo@aD~ZYlb9q5p`Gm(o|br=L>t>* z^{^O<+|gRmBm0J;$)~%05pi862`Sbb2f-6N$_}+u3v3HF*veQK*Z-9BNz{5n<06Pv zzta-2DZ6;%-tfSQ^^L8m+{JR-+%V2et=5${tlB<|m)S7FbJ#4^c$0LY5;BtzPJgRU zfMs~Rq+W|}Hi{>!WT3#+5Y3Jm47!JxHr~{O&Q>1O9rhJLQIy#rxIJ09c>@o%4FQ~GGC#dta~Fk)NSYM;>%Me`y)z!0c)=2nXQn3RrA2X-l3v@u<705;Mbyq(k%Ru(QjA1(IGjFC+$~hyj?@NA+wq z6Q?ob004-;kWteyY+icxrT_f>sN2ioP@ z&@1_XNaF&4NUUU6Pk}`IpTmne(gRFAdzJr4K|^H&MNCR3zeb})Z3#0(u;K*2_BGBg z<*~zI!N;joQ0*g6rYHu#<^h^=!Tht{OK#FLQp;3r>5zyey^eD~KUIuSNqTolQ6~QW zIODh48sq}&tk;)}@!j6_dO-FPv#mfv9Io%ffo5I0KZYi2`->h5-7qcS7TY>OwKk4&!< z&fqdjbp3y}7(-JfN|~_yd=}T$e+k7EkB=dpmozaRLVL~u?^5(~#x;sPQbd|pS`XJ2 zrAl4jC-q9~dL`a%uv<)eW0C5+wNZziT47s-N~)U3Lg;Ql&F8Vm3BFjCy;tGkvcDF_ z!4HMZ9)(gt>?~&3m?6ltgzieQFFszB)#{3hfyE&|GWqHF>X`v~6gQ|qmM$($>mIpm zw7BLnr8RMD9dKwlv*`zl0)BmK8$bBAnEcDg)+ zS>$D^^A-M3P6&LIjSa9h@&QD{>nEOaY|SM|Y*oPwoCglZ0$h^CP59B`Gc&A`@R?y( zugX2E=LrR&Y$zD~vsl{+GtBsdcnvI>0-2@zQ4C}15uhX;uGM<)W!FpYqGWq-?g#@h zzXo@O+_8=7n*|6j|A}s6waCuBw4;@cKm|uTPOW}*+I=b7f>(AWGHr|3yVOk@_FnJ~ zwT=eh;7>IGcFZXT@CYEChPr_$cO?0XV`J#4E%#4SX#8%8Ooaf7dcAsGdxN+64^FH4B&i%s{DAC} z#!T?Ap0dHehwjgFtiH4Zlnb>)a%qu!p~@fzEfDN^xwC>IucFTgy9lrTsIFwdG@xtM!3q?(1I) z-)4LW5f|L_qs1_16+Lj{1N?!d=s-%o_fU}kwvR_g;_AFqG~gzbsiuUQN`eJ!MWYy*PQPDt;3L7)%?b zp8@BS#J48yHKgr7qqrjcxfAL?vY2TsDPuBL_AHyPXCXAofG1LM=bKZ??Mk~MDGJ_&g?-6acLDSFGJ*4Jglnw%y|ljIk3 z(OA~7#ks0~`s1&hVn7{$*_uZ+ROz7!%UJMfLr2SSiACOWe$a7lSRBcVkcKpFbM4&; zIqVoMAx@K?s*slcj?8T39ws^isegtfkpLg3o=KKagt@ueP+GrIC;Oi$W^=qy3GTSF zwqHXn3Bwjc^Y!&p^YsC-fT87SV(_~1)rW8jut=?AGeu;l=_6p;krd62mQ5PDe%L0e z4f(k{7lIOxxmH-NB4+ayZTtD(2dVT7b57hONdZ;!Gc*#9_dQGo1g@Zkb%0MEQ_cb?hk5}Z{Bgg=CZMy!d)?3~*FhioAWo&FQ`BtH_Gd$D}9$ab*U zR3|oy4VkL+&OCMzFJVzT@Psb%;ls`{pwko5+BimUOBPI0?H9(vneAe$oJ2z5%+^Vv zRWPUT%;GQUoZ72|>voR)S?R=xDj|fZrl}!27I+}kW#&Fi8!h=fyuh;Q_o0F z$i+T(;p%Ow#{#I}qvb$_-oq%gs%{l@kouK6l!I;cpy{g3R<~M5u*$rLn#SO#I!!ox zGAtCt)WrgBz`yyZRi5ycB_up&Ki-#-NFt`WwXsQP#q*|^u)XS^;n!y4;WgZUvx(j9 zt-Cn)?65eWGdE$f7WdHx_NM@{yrcDUcSDXER7_2U1*#zXd`3IlWdKJP9uyz5;ZJaa zkcKg;ih9&u@m;B+=20rhVAbA|HBCU2y z#na5JpS?`y9#WXIhVKDioP}M_nC+13A7byb)XQD6F$?U`8D|9 zBv&?<^WIAU)0KoF9b76HW(sI}#Qv5fe0e+YSf!GbPC8*Eo{aDLSF6V>Tw*TG)h`k+ zM{vz`h=%||$kz~+Cc(`1&mXGv0hF{!Kvhpo?HDEpmBPGtwOV@;xIF!t(CTV8(HUT-$Y`Lm6Wut zPyHvd_F5t`5x!X{c6rylZm>`m?>dISjolzO^6Xb&*4mPQ6niZ>s8KXRR6%6tTp^Hl zTlnp*t{AjiCxGuYC$Ax4K}DJ5`Jer_|Jr&gCy`o7h|eiYffjBf&~YA%py(-+@e{Yf zjlRyD@jjqnAJdB`_oOkTUBWt^Qz#|7^x#&@`Zq-N@pm6}CLS0HCWtVZ!5RqgQ?j)l zvVM?qW4yU3?{etD3dNu2pw$A`j#1@_O&7`5PHEiLRo!d{;g& zguFm#2u~OCk6oNQQP~MkN@i^GaAmc4(ssf_g~Wxmml?Y@oL~BQ->18`4-54baFEwm z7l>lwDb}#FmWaFt1_8C9EXk@aBS?Ld2EvrN`7|v*l8>?xZHHve;|^|od7^eLT3F-V zkL*Rp+-cUwCPtDeAkiv-j_eqZ9p1qb*dG_RG)R!`+0yz#l%G595-OX08c8=2R`L(q*&JKz(<*_9IA_*6WquHrT7N zBwtms(G^18acU>+ACW16=qK4fSVUgId{6tNt2G`x$P9<~)22LpryJ(VCmF2@`P%%u zuBS+TD}6HH7)}A9p|I;?`WBqKL^`zC8~nMjb6Co_w`sj}73!d_&Qe>*TuvjJ^V}qT{qg(Y4983IE;?wiYea~V^`kui{uVej68yl}L z9c$O#Ex)hr6A=YKtACK>sVW7QP0h*nIK|_d$uw?l6GXPg9*2hTQUSF^1=F*FeOo4r zp?_hmLQE}+8RMVuhFkf}z@l_H(%XR%b&+e#VnWHb3 zPIE1|$d5xTWY6mEFCZyCW}ASmaxr3Pw(!DlS&~#CCh#6OS&hGUYSZv?ynj}b>98b|- z05>agT?WiPdp_d!aVwZZYl%NU{fhvBbvB93+$1YPWFE({_{P7%;lz#Me8Twlry4lM zO_2Og!Et(sbAyl&(ozgDMYW_jXau&0x1iP~XW?PRqVkEZ)B5u@z`U6>@?YLI9Ox2RcadBx#p zHm=E9@L~>oMm*XTr)Qpfqi>$yy*9XTbY8Z25SgoZ)g>|Wvn_)polR*rBy2|?y&)gn zw_|#Po4^^4>AfL-*IJuLoV@C@5Vvs;XwG`BL}^EtM)ZI;ys%LKFvTfl<(b>wg)ADsR{eDUp|}F9Lr+3UCNo2u1QC-$S$-$vn{+=- zN#jm-W)kHUpEqoIXX&>4`TCu_amoPAe7m``>N$G{mO-g%-ARQ;QAJP}|CyaHWStvL z3^3t_XwcwZ`^`^G>(530`kB95Jer^|kvY{1aFTB*``!|l1W^`)z<9zmLc8o;(eXQj z&a)Oxw-4$zC-6r{>32F?)RK~t`57`ZmmeIQ`3B5x3iRD$@7kyT^FLz-8AG~pc?F`n zOt$!-v^QlbcY1Jmu3*%hJvVoNH8FV{FbuTc%K)N&v?uPVSoU&u-rpPH=9=d8H>=PNEGW4%xmQzJ$!eaD4$mhMIf5(+(tlvYSuFx(DDFb|p<6#D~*KK=AuD33o zED~z!LtDlPo6&1$3d%tf+SUB-sJoall zs8V-HDF6ssQl{z`S)|9QE=IDrsSL!P-~qq(_n99(g}`XV$P8#3>1gR9>P4|Wy?82% zQB700%^NOe=XgFE!#s+6oG5@Dc?Fxg&8h$RmGkWDmJx}#fGuq<;}3y|4d^>OF#0?G=Ph5{5S~cL?5+yc3dZ*)))TXv!lxS3FI! z`G`bzY_2FVxYBa9L;(hZh_k*`T_U~WNHLY3Oz7)-At;!ixkerRn8DIafPD2I$|v~& z(jT%NJPRvUwfkY7`+lGPgyeab0`~8CmUK3Tan^s$X+=DkCCOHDr16^@^3bT8+|q&9 zV9Ee_bBsDoiQ0}G*X6l#pBSc!m`hgWoI8?2h`dmvVg@^59ixj;k{y>W`NIKGI7pnn zK)w(k%sO-t#R6(uPnW@A@nim)>;;B7;{;_a@&PULQcz&v$s18~NdcozH4>`|n%dQe z`qZ?YHjj8zW6%u1DrUCr7q5!EQ~A@uOy6v6t~a!O2iFfaJvCBPbP!@wII0&jyw%F+ z?7x!%q0vl-SJ?ydJG%gSH(oGn2B1bEx4wUtwJBFd1V9$w#f zN^|)COf(*(o-kdx{6JD&6e40M`{J~@!RTYa15I}S&0ak`QLgTnr@{wNanSmG6-B+L zpKyLbWPMTpS&Fl-xZ01Y zP333SWx1V!cp>qixxszWN_3qIl$6;m)1MIrR~syFouR&y@(|EMK`#$G&ycNQ0ss2< zL$A%!3e!@%aUMAFwnR&GBBl*6Mh#OjKV_hwTb+V^| z+Y*Dgeac)Inbg;If-g=tXa;*4xVcpVy)tFgV?Py2)mLn_Clb@a5&RZ$5^j#vfc}{t z>y~XHj;AIWZds35PquI~p2>0j0`CF?ZMis2dJB5`{S)?-6{YLf^~fg@4s!_0Q~%z4 zjEqg3x9UCqb)vV^KAEll;(CBt^nSK6yF84155VHBUsXexPc+fg{A}X0y?`AW*5#wl)?!C46!~Z#7%;3S{Y30i&!tCf zs3WQvqZ9I{++O+eE9qi0SLIafRCCK!FE*t>-{g!tE{y4W6~8gpY!rNiG)j_A32M)N zZq+ftJz*d~Rn|wrgC;JWp1>l}eQ1h)o~{{KXaN9kUlqp>J3p+k+%Dv}PpQgI7tZW8EU$Qdua^z^8D4DB1A=_Ez*2XnbD01>z?LDUTw?bkrUr)R ze$}D$1qwyF${mKhgt-?#c9j=MO7~DISH=qQYYq`ibw+f>?ZaV$5Ke0FU+*^>5R*b? zkL|tJv!{Cs^;6T8SCv=N#{Xw%awk5mE{TqNP5TMW zkk{v%C<2Y5XlwPCpX|Z{!-tY-rC;97!6A# zUDQ&{c1f}=Gazh-|JpInT-O>QLoksOW_IIxl>|9p*y(AVa&{WPa%#%#naO)(c<3_4 zqQU)NCYy_i&)&W$G&V)uQA@V$%9A#+e?>3p^)e1YJw5H_ArzW5|I=UPeunniO-jmtYOwPp7h(;0;p~9rs^e%4m&G<9;bOXahpg4U{jcz7uL7jn39smFjJ|i zF&DqAI*R^tgyp~Cxe($Nk_Zc(KA- z*O#?yE=9#`QB1Iz+Kb_uIP~V0qmi*YE?BpPL57}>-ZdO%Q%sRB6h@&7hiBNhaC>p! ziL%eF9E%+!H6GaR=G+fDtrEo)^^dUtK{77fwHCE4ng3WRu6PHOXBV4l4K>x)G1z>d zd{8E2V@?77Je<}jjKjI5v{q~=X$}%h8OUZv?ea$zLI^563{Cw|gTOPX%}dObYeEIoHNF@llBfkK^2 z>e0p~*WryG0U29!sRg$q!_eDRZoC>yMGmtXaFY^28X39Do#nBHwjPNtkA=jxJDO{U zXpDU{T3vmH7BU1Im&k}*_@T8q%(?i*-;N$Yr)v|gp>9X*6IF?l#+Z%B7YSYXF&-|S zgT+R2NlP3*Zb8iQIos-|J_Ez5g&D}|S&PA4_Ie@nwW1iFFWQoQp;aaNKpSDu0CHk% z#q+sxVn}a#g<9`XvlJ!q{Hb1Aq<389(S06>c8t8^JAZ7@gMm~#VRfg8A{eM|h9Vio z1c_2r?Gt^6LwKiL5v7n$7q?lT-WyJf#BxV`%wVU4aYaVFIKC&;Dz16E;p{acAok0A zW{&|#QavH`)=jSRTT_j;XyNLLc!6eUr4t2;NnYuIwC#so_XlEj&C6Z_lpM7gUchv zi>C(UfYZ(F;z4{yQ`k_bMgeApEg3PZN5R{8HW}Z9G`zAeGWcj=WqhSr%i%pG(@&-v z5b%5Z?OrxG){#Yk7qu=e(9xa~9OtR+ETT%@22QFfX&njbm{eXjs8trL*^=8X?(Kc2 z$XFw2Mgs(gNral!74#lqc||cJEpkRCC{#XqhxA|exMrB;+f*CRIOmT#TfNJWNbk0I ze31Ins6tl}Gj&byOjiOL@FCdg{~>JRvdNoN=zlHlPYMT6&zc2mG=@$uBY9cU>W4np zzsL}4_>wMT8L{KLH_VuJP?OK*W#*jGa}-%<57{zd5mNATuZ7P<%L9iYlvd zbyR&8Ggu~cQ&TJch*`O@X$;sqQ{uL>&|S)OfXpTcG)d#ONALZL>Uu8xKJQgs zWfng#f9U5&5t6Enc0yl1duI*4Y0lnlAYVswT8jS@V-?hTICYE^a--*=PBk%tS3rw| z+$*#+418aHdEz1k3X2u$mrMXaRseJW$2+Wzx_gF5SLHR%+CUk!qv+Q88?z^v!cU4) zED&SEI^75`+0}+pucMs{)KoT9ct;=11F5ptHWa9eNB0?Do09SG!3D>q-*^uXBwSup z9W&G?lvfJn|0#a9KAJH1`z6PMe)qlL<^2>ry^>qy{S}^3>VGGj?okO=QUX^&kX2IJ3w&I$o`Ywfoq+>jh2leLBK%w=g{ zJmx>2VUUGm@6StMu3kN#{l7=3%xE7cbX}ofu^DN_pUKt4vT> z8&}&Bu^di$>ls#J$4dz|g}=D&cm*1TQyY#T$OeAylD18h3D{D10gD*$JOZi-SfD4e z=l5?21+M!~_&wGESq;Hy%g|^K&1bL#UBsn3F_FYimT40wLom;SkFAUVlvE4=VOS5i zM-?S~r|tV3{z%p#Xusn|u@&)r!&4z%UdlC`j}GNVRTXbnx6@lk*Cf4O2jsJ-#v2eM zTs3}}Ya#~?BA5^8w+1;^vFh8NprojvQm*~i&r9>m}KAwRQMv#nmgQcbS#P59n*Ek^l z@3v7kdLl z28K@@RRWIg6HP2SDJsQn8o6fs=qKI^fqWX;Nc9LTN22(mNqEuXx*IG}Stl=sCKvfE z%YKYwErpmgTAOk$E-Ja=j39X$@9#DI)wkOY{A`@zNUG3jBZ^s&%*^Y{P)+sGIpVi* zDS9Rn+Pal2yy&gvnmgWEs!AQ{!}eN2Z8BF=0OVQkh8;-C-}y00g`}{ynpuT@DD;W# zLBa}D%66>8(`U#(?(Zi5O2H=C+ngj2ShUrshnenb%v+MN#!847%`U$0d5z0@(dd{$ z>yjKG`{4Zy4QXUFNRL!l`*+00IDAo_!P`_T+7+?uk$i*PQ8^G+EHiS{P>hfj{fDG? z)h$RNKZ53+P+V+;@<1cZGu>|7K-|-XxXpp>`s1 zC5VbtN(x)a3^mt+AO`yjlPDT?Z&6+pV!OyuZ_u|&QPU27hDc^_k zBIy|-{}2}eA0Oc}@pW8M(Gp@``Hdv^;T9-;Ps5!BuCyzJ)p9gtbf7f*<{)(a{_$T4e2%~ zr)@wC5dtcVS@o}zd3Yg-jj;rKMpJZvyiabXfaF^+8Bc{Sw-XX6#LMd(Q^|+Tjd=K7 zB4eqZ!KrNUYXze=z~XwCP|??2`=0`++tsQ-LHWL+L~eQg@cHQOo7u|`c*Hwt+G_tU zd-QRzvk@S+4t>dR^sEyt9-{`erMMQT`pNaqWNsq(rg`)54gJQ?TR~}%_%u%|7Fr#n z=J%{<*!|}74b-g6=Hde{j)z)Gd6}}e*)sL6M@QvELri|eCN#BV{8O}P1fSpP)Z>Rx zyF%-P=L@;C=8yQxgm!Eelj^StzFy+_8a9G>#AjSQEq~~^QFkO9BLWwmnALAOa(z8G zSe!D$z&Fc8^QvS7SMEZcnU+Q$uj}?jg#-^zTuFmm?1kFaJal_-Z?mDNFA-SihN%*}e6DK&r zca@{gD2Xb(gjB6}M$XcbDYg`3puy5%hPXORJ^QV%w2@lTJQ6(4=?odUw2xCJIm{

    v%T&C8F)Q`)^I_bz5r+hItdU0trz;VH_#+d!fsH(ruw$g7Wz+u3RH3 zxsQ*#f#-e&lC+tK01o+eTW(T{F7E)V52Sy<$(}quP6usnU?1&s&wCH)`g6qU>56dOCF&5O`3G^{`tw-@g>B z?aQ8*P!nJ0m_p~W3OYwh7K1~~EbeQp`lj{KWj1}*Xcck#%+DZAo(j>8vofV;An~6$ z?t1EhGR>EoT^ieDEOggx%rI$i!I*L1q=xYnZe-5=r;TpO1=@4n(%OcmSDj;%7i$kO zx)B3(ctl7xgIP*8U?|x0u{Oj^-qd7HW;4-zQ+tE@xK!I|XaJp?<6DVVuwl9$86)IQ z8^fbk54>*C=^KQfHHWNXxV=GhpvJ{H*>wlK%;8?)=`wg_-arj1{m9lSW%PCsOeKIy zhejR;C3O=%!^$_ZC4!sg{bA5~H(Ax`dP2YmTlv!D zoCb3&m@h@IKIC}`&(5ue#G*V=JDqgCYtSUO`& z_jr(=dW3H|fUd4czK^n-ld@&y{dy^#e9ovNkN_qzqk0ehV>SG#>2!s#9jrM0>sRAZ z_vsFYJ}OV|jT%FoC$CeMOM;p-r?EInvBoDVBJP%L))eB))@G^8O2=2>9tJaJX7l=# z-&2NR06fNc1xfLqL-&c*LVx*PsXKpOWO%8Yo;(tyzUmr`yhcIB9Cmr%P%m#r6ygSD zVu+&A19&1))!}2^;nFPBTYWO70%TCn@HgVWEzt_9kt+Ah+{W{tf{JUp;X@4K&(UEY z&{v^9*H@S$9&=_Mi(PFgm`N$zwQW>~_GqT6IZ_qR)COSjZvIh{kDUMQU0N8@p{8zW z-LT@uMilm#G&<5e$II?{cP~G0c^LPeGsu3Xi^8Os2Ug}LJOuUGL-V-^7~Ay8AKF9e z#5K434Kqv4(xb`a!$p8vvx@cYY#%5G;{$>Kz1}Z;3|kH2t^{V--D_M zAoq=VT@#dCTiybyUoW<_?7;>QtVdMiSw38%p)n|bRDv+NYq0r%Yo-ubkg=`!G1I^O*5XxM*u=f??5L`VD(qlv^fvnP|Y>;zzCH2 zISXSXFci*1&A--Pj)*n>x2|OQJlx(UEYx;v-Kb(1LW_81l3I~=^itUi?ZtBedPkRp zdYOb8`fhCzIY{HF9$o5UlEUKu1m3X=2aIZ*{)g=@X8;V%l<@q6@`Sj$y0fn1ri}YN zhbJ|UAJ>E)aYzMrZf4>QKdM_`61Yhn$0WEtwaV~o_4Lrk39=+Q)O~D7J@^=QTRX^( z@kxel9)G<{*lj3JZ2J!2p=n-7`lo2HKJ!Gj2C#-pQWr?5r1Sm$e7k{*H;wzzu540} z{2LTDkFBs{H>@r3aAB5jn6F%TNF>FvqEz}_elu>alq|~84)+0dxRA|sQ&)o2S;Z+* zSYw#nzpOM8mxagmsQ;_~BaHRLwvO}87zrYsc{vzZ&8^hpxxxWB*h|J=e*e0!*368f zJX07{S=o81BI+Al^mnj72Xf^D9x#d3GClCTmzAU5Z>97Eh*8%-YH66Kd7)8Uo5#nW zNNSlZ{O{lSh{kNJ{G>|i|M7A3c^mt!}1BfTR2wv-OQ^HVv$TBwzalSHFesQ)dn57 zB~^V3*VK_F=Gc1Z)Om3}ZkT8#i7Dh!1IyEsf`rMqEA}Q3`Tl8)w}N{~ZcqRy$4~>6 z#7HDkEmeiB;>>E$```IgfO7RW()ZP^wic<{5@~T>MfBky0dhv^)Y`};>@2q9-eRKm z&?>Ghb5lX2?L^=)f5UHwalq7b{+h^HH}2=xZorU#`I5nmL2Wq0kXWiNZ?2fJu*+CsLeEUXv_VJ5RCN}NMVA#O z!j(R9imo#;PfBG zc1hj?=~U)Ebr^?=ms%T^SI}6z+R9M3U+R>Hs z<{ERVui|p4$~wVD;-PmuH|Zbj4#ES=|%rmYC%lTsq+<9RbDopj8uwy4h?7&m(_P= zX^##emYM&F2=X*~;idxbhCpoucq+LSQ27o6ZgI!OIY{Th7i9e4ZiR99-8{!+Q$sEb zXh8<4aQbyw2uq-bc7$D-Zu93C-MjcYIMP5b^wpN(dNWsEATwSz_$}W;BQp8ks@ivn zunV{Lt{wL$lQvh~S6jBCAB-GfcY7p^Xr1Y)eQ9>v@#1e#?9vMp+%Rft{@g5A#ow2v zHU{qE8fhFRJ!PjGDBnfev9CSf>KpwXW@ctglalulBZIn|fyY01Z^~8Kw`Z(K4-EWF zDcd+J=r~BcT5Pc@dXE1M*oVAmT!h`(Or~>@6x`F+7nn<}S6cx2z$tQVBJ4C!zPZj@ zYTd`-5Jz}+I=jnD{OeFAOa>6iFslSayJ&wsbxwN$c;*DbZq znF;D_1Jwww2VAsMj;SGk#&gTpu&nD_sFK_8C(&dO+N|nK+~G{sU21`hCDC~=CFn@w@+(Y*Mb*PXR4490A1$QA_Wh#e*GOfx;7&ez!% zD}Rf32hF314-q2qQws}|H8nMa^+t1bY7iCZI=K^;9{TI%!hb52@Q=K^@E01cNXQC3 zp&;Yz5|1|YFS@23|LOVp=_!4$IC#Fbl(}FpmnEJo+3cJ6+HpYpVsnAoUn&G{;l&v1 zw}8{w3eo~MYDc^;mzGz_^FKm$3l9d;@rLVYl=MKd*$fW%ux%hqO18>t8?a-UJ1A;u za%VFxw8-A)pe5&X=H?+4@|*-#D9|k@dj)dg5F>VF+jS2*`JyKAGXQ)d2gMW>N9=5f<|W=^3f&*|Uu) z)jryroMVdLCl}6sy1y}M^U)l%_~a?XZfwD}<@a-k;Dx;rMMt-}n#LOaW=-ivEiZa? zve*BXZS>&atE(fI6FbKVo~w)5n>xCbecy9>n*jxUf<*B|?$2f+;gFpMMwM@jEAJ)Z zl6B>Lo)$~}9qTl!@K5r>WFH^&ci2W7}m5TF&m_;@2yG=4+WYDxcH6+ZQ{atKNvsf7+&^>kPG( z(_FOQZNVy;MJ)9`sJ6?Dwdxp=b2g-ZWGvb-JD2GDQd22v$YAg*^f>tkA3ICM#YKOe=ys?(x9NZy+J06x?A-P_ zphcXV4N#4b&0s|u&65h;MD|g{zzT$RISGLsiFT@7CengDJd!S|^BwlW1E=Rji9Y&zWq%G5WDho9_gCNp z+u}wBbv%(oG`+tRHWQzuOS8S(6#KkK`%Dn<4Gg2w^n*HzGC5tjbDw3UZz0 zGNlSC*6NRpIQ+-rMgtQFov?@|#EG)vF4i?+UIo2X?*CSj;h?Dab@1i-Vel}nY=+9XL0ICC5R{i)7j2B) zshbVtF#V<~{C7P2@!F4F1NR}+2gA3wI#Xr=v#7fS4GuNH`9nyp+s z{E~Ew)Kg+QM80aX>o(ks*)bUwt@a5XH zMG>>JXFhJ7-w-bmY?y)S<;z-mjsd2R5AP_N$vXrK@Cvg(E%nU25$FWokGZ$eHM%}4 zPkOl1pK@oZJvY zY?kl|nAj1Y5dAYWLXXAR_8Y>(_m%O=r?cnt;da?IVJ{OC&R@Xocvj~2)aE0p*5(Zw z+PGORs2qY`S>`P@$$ozNfk~GU1SYkSFfx^9*vTgJvf_fVJ9*X z2%qiGW^OL5SKT=(8wo$n^5?>ZeV9`TY+_-!K`k%Ii*x}cC-e3hHAuk3=?n>(KY{Pv ze~G_85XoMwD3wxVmf)iS9oE|M0Mk;C(2?-boRD7oJ&H;(dg0j%b2bDo(_K0m-$EK0Y>Ig#I7JcL zf&%v#N(FA#)ExG=NB81qJIBJ#!diu1=Tu@2KEGVAdz`fTLKmqA<&E@w4ZH-A6&wsL zgo}+SX6P$h0*>#Ui%Zdid`ZcJ`mfTy!AlgZ zKsQF8@wLeInkVK3VbRA*1HH!n_tvk$BIUkYD<8{<)v0^TQx89@pr8(Yv!>J8F@_kc zKcg`C>RlN9A_%|qkC z3ULp+46Z!9?_KJV)%q)2;KeZa zENysocJt!&`Tn1nO(o*Hi|(`W@vA$z^K0EM!~lETByNR6^=I>M(vL#cQ|Az)SRdFK zKslc2SiJi%M2AZjEqo`R;%t4dXW%>#ltz!GVW>zqb=KY>zi~} zKOTm?n#^*yLS@YNkI?NFY1%6@Q+_XJrZzb=ushq^J~)~q&+d!Lo?P{{%Wzpvs#mQS z(Hcxl2wWc6{*uI6wD?1x{<#QK?2q{;2Gr`$$O`M46S1v!F-{wGbjvLpZdg>wQ&$0< zW-ssWRMCTAEY!2d{L3zSHGL6WNfSMsOw}fc5o2eJk4@^A~5S>4vvA3wNM%H*6S04yx90O!~xz_=j${^`M}8g~hVa|`p)qbaP|Bv06_6Mv^K- z|1MCe`Od6l2je?|QJ-z*m!6HkXib+-R%g52zj72obY*!4ob6<*w!<1wvX|Zm;TQNT zj+uYHOx`vKKYDP~NY=>D^lI3Ip8B;}hVdM?)`Ub@ z=zQ4u##q}x{}Jh3S>}gqbxL)jseQ&(pKqjmwM$?7dKpABi^KV~&mJE3zKD%MAJ*Uh zK$8ZdcjR>YhhrIuJhj7|)`SeEkG2Mf{l=)z9)M_{0yMmOsrM&)oHvBFyU73|? zw)uga>JA_lQ6?nqJ{jv!%B1Z4oKHTSMrRfj^h{*>%k0uFTuu`?(=6O+Z0^GA9QUZ; zBnI$cJ|tqtFUPZhoy0BGS|4}2m?Xr@AjY(|UAV#9*yxO^mKh!lvo5`#fR`2+3N@=< z@*Ded8?7*Ka{Yg#ulPOL$X@PH9t|1o?>Sad-i|R`yQ7pl)_rw&xMv)#KhMSnHkD4j zL2uILqy9IHs|JY60W3R1EW69cNlD*F1#vjEOgv@IV<*Q(uJbTBV#4Wwp#9DUCCp398ZraY7ENOS{gCur0k-yY&7B zB9+?&pkpscn7OEWWD7F5JGD=;)DT!>6j!(AZj2N z+~C9}g1C?VtPT_Tz2QV<70;<=sU(uMm*x@|V~VBIG@qX()Xkbjp6xYWowvV@vu20`^3&9n#cRj`5ci$IymLuJ@}9$ zVtqQ%dXov`85-IFaK!q<62KMC?Re0Dz=uae5*ajR^WRuK31P~#*V*G=?hPII(J?4>Q8h}V6oaikC#sVvNisXqLn(r z^M@+i7T23cvtw+2aKduf2y$<8BtxQKn^-YOE9D!C_yrdpr1(GTNiP_TMWOX}JJ&*6 zb7xBMkF4I`k|NbWdKFhJoU|P^J8M<1ti$u)T7el_lKDLB&NrqTqSe&Yz>W)ZQ<~^vjF0uORVdyI^(=V5n3((k*i&X~&fgeLLddqa4 zPv6obE0TpHNfH=R)qL9%3H6WfdDBlbBU0bp*?gV(S8ib?#f~x3IYs?-`+#sf;G(Zu zCEx+t$z!Ah9B%Nl3h7QKT(;(pRVDCoJJ-a;)PnOOYWpUoT_%tHm~{?^U@HL8r?!T zb=d57L2P%c@rpc6I&>S#Sb3$8ubjj)ujVJND0!{jRfqJkERR~`-bK>Hf1Y)ohi5y2 z*D|Ce;qv@UBe?b^{6&-%)Y>o;q|TipxL*rL=gxcVepjcm?XouG1t4*qXI^nH zzqi;Cov%`($okH6gI4RXZk9t*zRHa=ZAkgKNS6NzUp^<-0INfy!_mkfOSPX-G!Lx8 zod%zml4|yT84)aNy%CjqPa1`$e`e$H{}tr;6J>s;=_l(PUM8abFX5TB*y>kigrqovS9(;aGzjsBb)`l zH}=G-q8IrQW!udmKV+6*oZ>_?Kq>)J!4$gzRKOTxGI_6QpHNeAwhdJsasy@UAySXUF&`7$eV(; z}FSFlwLxsa=1LR%|SLFBAtCfWi>l?xKHH)IUP-*&@7**aTQ zxWPr)UZcks4dHQMDpzI!_2Nhd6PzWDkq&s|Q(%h$0li~s=mWKg5FW z_8oH-1JC>aB|JtJ9xS%As4^=yxM0y=e?Hf81!7eEe*+maOe8`&Z-gp*>bU$9+q}>| zbv>Hnr^Ku7jH%z^Y40*zC|OcJZ~5I&cO7%1>Qy?vDq_s*ZrRSv#O-(3bDpzGI%`;1 z9SHN>0%OdF%VG7S{o(j?x7Nuj3Wj(Fq0yM4cQi4J5)wbk1U!Qh#2?HoRj|SVrc&Qp z*E{jGvuT@gEW$f`YHB10=45V;U~r(ee!C>~APj%;+rA3^3zSm+(kVFPCL;mcl8lJU2bk(8gofT^Pqh5lFPMBM7||C zr5;9^u+|}y!DpbCB@w|8(Ni|8>G3uuz-^InOZ=t$C)1arC_Z)+-X)t z3K>po`!rm?5-E>I&~#pk2LVN5w!tH$k@OXPEMRzMG5C`4qMM)+pUG8wc@V0Qn~7P! zo>f3yQb$UY0do@M`5ZsO@e*iDzb%TdfF^G1pJuc&MeBJa%~)?6H@m15;RmNDC2X8~ z#Y>B=qy}tfX`5BG8^JEx+}BcoZBVVS>`NduD)V3Zby8aG-(2S}-zW4*gMbuG7UCMv zh~MPqInvwcKEhviSJKf{xmqFp#@sTU+!S*%_#O&8y$>PEpF0ew>)j+syU(1}AMtqu z#huuiuwJBH^`m(T$UnUc%KsNQGOGM1=A|1)>h=uqXcu`dKMxTYUss}Thkam7z`ZVC zBpOTpP%+=B!sitzBwltc@;0;t?Cj$(DO}ID*a}|Btw}XKy+3DKU#w~RS?I1RErfwh z9Hl>>IJku6kXnBsJ}`H(y}xg}y1C850DlBZiR|+ivL0qmMTHSIT-2K+n^b$=-TUs8 z8SJ8$G;`B9uY{hoFO?^^z;w4jI-A+NKNg;k-s^XXBo!FvQG4=*EY;S6SubhR>uTqv z7+9U`5%bZ+z5PBv{FcYt<7szYV@=Ccs+EyS zx6YrgpK!l|u$p({1#DT7oMYGL=9qBcNa_e79jLjU%QHnC0TU@(7suyPYYJ6*NLY_0 zwV=TD*tCg2(~T@2@GS}7U(U2$iY=&yfur)xtTb{nXoL?mmOIKJD%`eZG>Ptr#o@Bs zHmL+Z18qXY1+{AI``}7{n)fd0QAVYv z>iqMCTV|}b7`yRK4T zs39$-^g!A6znRD0SJ7%`M_DP<&~LdvB&;!)0;dv`n;6#n*X2LhG8FG~INY_uWubjN z(JFg4P^crjfLGXmQ*RkMzjfUa5`ZVif-_xEu&m~gFO^=nMfr@p@$tYPhlhFJyGD97 zNujTwj$X=m&Kwt~gdaape$H`r?-d92?DWsFLvV^@8Mt0-WJUaQi`h#{)mwTbZ`@O| zWj&~M#HEsM2`MV(dgBSrqe8EH~|ulH5@X#Q7ab)#BBgX%Ej z<2GfA3ZhcF)Sui7YvNh`T{o3ZvE5;^ekb1hl%O8=FtYCyk0$Gsd_2E+`ERqKQpT!( z)I*@K>yg&YE*qky902t%TL?+JKl{m)h(Lk4w$Wm@Z zmI~26#{;}K2a?jt3t*l2nW&hSiB|dyal#~*iz|D7Ie+{&{BoQiMwy{z!u^RDvkk0? z{>!jF8Xk6U-wUnM$|ZT zhrj&kK31`}spn<7D@u~#+yf;y8z%7Zw9ti zsC2emHeKzY*F!v45yI8$w)SG!x3XL^vZM4ufPSA<3jX!4hy<@VH#>WQ_KF}C1A{~i zr4Db12SG+4{iA*=NWBp8nake$&=&fe&s4Ra-Ilxddvah~<)?BDp}stRButljLfF>X zeQ2xd@x~lwEth{z%%Oy=$7bao5R zZq{~;26fNw$cbeOvcG-gT&yyXYDO-jqWTzF?;^i;pHpjF%g&(F^HWLp0-|eMxpU`1 zB5%y&!@Mtr`IbKx7&qfq3G7iR-i7PwHs@n7F<{S@?^DPj*m6vU%nEQ!JrP zq*IE6$0w~f9>&fV5$xR@+6P>(J3|M}A- z(|?SopJ8r}9=akFn;|hLbnVt_OmwFom&W>u9H*E^V32MyTeJ0A-DvmODCTM<%W%zV zf58A7q}T*I5q}~j`Eyu2;Qmu+ABnjZhZJ8_C26D?xt|cvHBIDwT~2E5jPdP z9>a*$W(8)l8lSU@^$L@vLLpjWlimLX$UlcCn(ou)o$a(A=3jmZY9(LycW$1=elmUQ zaS9EwfhG4*$iphZCOM)|!CIQ0dUbt3-p!_Ez7hI7)k`9MNajeQMeYOsD^;FVxVs^p z-bt({>n?xUpR+sphCxa=At6nw*jkYxU=n?`czLZE@IoWn{w7`3h#jufiz=>}X=75& zl?lYp-H7Z=V3*B&S&S#Fu59FvVFUk?z5h3{Vi3Ud6OzLDU@?hJ$MnM#_!_^p3$XnW zR+N&>Lg%hn8oEJaZmbAN;AGbDEuRftC!0e77d^qc=qQOK)H`@PGP!;x6zrTy|Me;}d-W2&RS94|Msa#6Ps%;F?h~+VB6$ zY#Z;3ZMM?zl@kfSA_hPB{J-NE&h|X@JC8Rv6F>H1nr8S6-Oq_1F9}K^_rixI3v4cwbh14qT2NPw*zc50<0P|sSsZ{ z$;ZbDsC9WA-So5Bz@?k~q znnp#r#UN|x`vkx`@#5JH5ja*J15_hf*^!@OVva6odEySI7^WXiXWS4=fAIXy^RTOO zi9#{)nELdmj#fxAOR(Dc;{&eVO`;c3{Ei~l0x)ri#n%f?Nw%z?JsuxFtebX>>1E2C zf-kRkJJ1PabN(KBYK6hh*K#((>5D9JRpg%lsY*a@7c zXz@hbD_@-cqj)Lmg}}c^jAiLO_Q_U79DA?95(Uoov^7pfE?R*6BIV1C{C)3BxBs>) z{nt%H2hfD1FrtF@s(I8Yq^D?HZvg3}J`5@5TZGomll()TVRKQYa&9CP427@y{BYzroVz@o`<|Cb5^k#eu7U#I z5{6!FtjrWGJkDS{+zY(R;B z@-=0?f5JL(W%+8)dR5`KlcJ(hUNR3=!9Qbhe~Hya7S=oVw|i1ps+e@)kuWlDDiD2k zYUN1Glw7s{muj@HRmPN{gZHr;A+-H7A%NcDNNjVpzFP07)KgBxtK=z0+=G+J(WPd1 zI1PLk<}3_zM)ssatfT`Qi?=fNUkq&;!)rDX)q0!R%SmDo3edQma+CMi$Hp}H-=~_K zbeYn$C$oa$<6XNY@0!)=pa^q!tcLc0ina>CJP%fP9q~(VL8vI%E+F!kmAzly7(?#e z1_tVv`vpz0U>&na^@0j&%U6i%(pNHQ@xjLLxkdsUsVffs;hRC1za4xoyEm1S#T_oV zM#S->NrrFln=QFsIvk>eV(L~x#xQwDvz>G$o6ys0JPHj3 zPe1fPIx%c~}<>QSkpeBwT+8C|4w(CtN2s8A4q#p&l3qr^$|OU2c)3wp{ww zj~nWbs~?)=FwH22PoGUo9tJNmL&7=P=; z6PlAIas5G_=iOnaLpQ~)`xhx63(}be%Pp-if`)EbyGepL2%S z-jQA_!Xv7v3G9TtA%Ik+mQ9Wu@r+c%OvcMK`z`|q(_(aey(*AiE~(}QC1 z_2wHIHX$Kh%l}C4T=ccKb%e`(9B&I8)tTQ98fxY8V3^CelF0ye}SoeH+b^ub5ASrrfPb0>t0MZ8!u@9)cYOh3;3 z8m&$wN%`IOb5^OO-wYO6&u$j}TkZuaT5S04vSmudmU7*HwEw_u^6+dQvA}4_4X*|9 zk>o+s7+A4VvWbWUMr&pD-LqeZ{Xv4pf!ZszaWq>(`353Cp0~U+7!u3B@EOaQ$}{LhVVZ68GrM3#r5NS) z#9A-<`1w*J-GO&}CUfAp9LXY$KUre}W&|HhX?e&tLFV7Y;U;2v{cKt}^i@l)iKUvv z0F#e)fswY(jmN#zaTrf^ki z84plHb2BOGZsX?A;+wA|nDT-q0YQ7}b=7HMa_wed7S8JIF4?zs++?k}Nzz!HV2l)3 zBg$R1r?p_O!l#tEGcSIGCt+ky`hgEGFsx%yE93NEx1yr0Xp#rN=zO46s(Si*mb4N* zJu44L^Fg4x#=t*+GV?@wdPY!cy^Em2R*97UNsf&^*VX>ik3f&JecV*=bJAKQDfI_1 zBoeZ5E3lU|?rkp5{im1gKo0#lKudD*)L^AQH{JM8@!EaNH9U+$lhMb5WWiYKpb;5b zcH0Uo$NpT3s{=7*`}2hj!z9#7Uu=X4@;a7n-~8-slJ_8N@kjP*=3`NhO~th|5t|6} zW+ZGFZ0bNIuIE3zHm5j@_Y!;jqBN-WBc~Xu*?BOL@p*P?@;ea;HQL8#W~92-Mh_;< zMmHABh2jQN$yH@|Rp1QkB1WW0y*pAp!>M}8hL{zgl= zYk)zcOC}{6=;Ld9_$5`Ot_!M(-dCl!t?^%841PloME1=dcO#VuDC4V4!W}hbf>=eP zH>WvPX;|Z0tF2*D()tYVHNH7+G6B+}go)x(1eA=as`g2lBhA1l6YtXu7}$)F9(q>+ z^~Yj$oL5YG$)3{H?!2ZeBvW7NdTohHAAc0s>5754y*vucd8vS&7MFBIEdC$JDeudh z%?FpJpVheG&R0fD1zvdJ$KnG590js87u{C}SQOfyasEC=javr_c$gTFNOLJsy4&lQ z$3{jm4%I(0w-jjz26}o?_0gm>tz^cI>oP!!R>v-Hs?prq1QQDNa^2*Z1?tKS=183$ z9s>&&UP~y-OBP%{{#sV}NTL%gqp@Ef{!}G-lNpFOB zJz>IZp7VZ!?ArA_=Kf=uzg5Vu)$)+RGm4icS^w~;k-{NRbL02Dr~ByH(f7BI zM}sk@CwUD>nh2v2(z_tEi!#tqmfAnrU~WZ7N`!!PtYyA0&EYJEG$pA~TPk;l>xlBFi_ zA`vuCpJjxH0#6Q)hLPzbC3^#|yo}TvbCIf~uSIO3F3#ymZl8Rl25VR^fV)O+TK8dKi#$cFKkQKWFtns`Uj<@pzHe7Q=`pMwx$cW_^|5b)5^v#?k& z&rcBlhF?ViU5A79EmHFh!_WU)j`ZI<#_mBBnlp|B^M?Dw+Qha2v$X$6J#&JS4)M7A z!k)Ow3jgBi8H0q~tFVIV)H73?YBB`33KOyj(k}+4YQ`mbdEo5Kf|bdjXvw|lN*Ud> zodyOa}6QhtX{;)Kk_&i=t7S__MQfuRSn&NH&A)OY`*gFr_h*Swp>KatLl z2toAdpinG%L9&2A$W|DTf#^|JNY%qFt#~r^AZcA&rJk9TL^BFJ?8)WkK90i(4s)xpvO}n;ddyRA{q+u8XvqOTcb;6nyR+Sn4v^iDA$1a-mU!f(u^>9_ zD6n?P*^(myzj`M2m*m0o8cF7LDQ3rtWFuDX=%a>C#OZ3_79m+hNaf<+hr=nHLpJ0OBac`ojT z2ImoEAVz?5hlnC?b5Wnl(vVeSRN*(DOH>&e6vzK2y}RJ_iK)_2VhA9NROQ@Ky#`^- ziAfZasfI6GL+Q5^6mz=>J8p?N=4>P&HIT$0_gRt6S3UhWeK?bFwsha=WRZczOJ0gB(Qh|d3`2UB!RB9pw&XJSCcqG*3q#dJ$$whDW z<|-x1q8##C=5=r12DK14noXc0izG<9z;9W`{FRpzhZvbPqh~CU=YoZwT>$pRjG7vf zUM;&oy`*PNM$@&C2HI3sBw#G?si5$7L4ommo-gSv)GH`~5VwxBs3gk4eup4E z4Ru60U>{&safGRUH!l%Bb7m9G_}X4Raz`wS-{uiZe%OKodTo!3sW!X<5K6)#jDhWi zwvwiH#pE)g+gsdfWfSHM6bJUin*7lT!mj6O^o0DK zkWu>4w!Sb`PX^d@Da><9W{##%xaQl866xGsLE*u~xg=u-peJEu)VB1~7ND0Vlp&Nm z=I(a&zeAy$S^~EYS*0lG)+?hN-h@XBj>pRu8pR^k8;IhtbO!hJ*j2i#cCZQwkT%B{ z@8ioMc}s+sN^0Oah0wDJDkk==gnBwZD7z|n3v&Jf+f0xK{KY*H@5ZNgYq*kR?J`uj zVNg#bNR>=<{|E8nclXstASG~}3%^|P%dq@Eh9N*@fIHn%&dVmB~4_-&jZYReu+%W`npEVvIH1e-xPxh7{trdB)r{vE{*>lBh4@k z-?)_}ryAXCIu zR|+4)E}zn6>Mig1CoCj=@m5fR^>m|%b0{@v&{&pfpt{K+{%SpJq~?nEH?WT`5@~a; zKPfdbry>Do;xLTb0z(M_8w5Q_(kgl_ALA`{PO9AH#;32$#28b z|Np3z5e$|d4cXnDRZz1Vx9$4iiD^_VOx9Jl<;tAK) zj~2t-rF?W5eM)4vM1vX|iOV$sf$Pa^{Vm&F+h_!5&jUjg-p~uHWwpyWix`26Q8w3k zLB8_}Z}-Db0~dD)s(nZRg0O*$p)_VyV~Ic}*V1!G7P*qBeVUr=B8Cwbk9C30yV;&o z^!e25wwpt~(`#}S_f5;e)QKyEHA6A9c)TQsLS6RSjd(@{Iq|mDIUgf;nxWU4{zGudlkH8Akw&$ zO|IF81bM2Es+iw;I9@}@GL>}A`G`6`+ODw(`SS0e^=EYvkkJ)6#V-{GyIH2k9nL6K%d!w#@ z{Io|xqMBwa+SNDH^$y!imwEHq9_hCS%L-R{%YZq7ikf^tfQOWwOq+-dKU`TkTCr>2 zMgP~R0RSGj>YI-MgUlr5QzFy9|JgcpD}1gW#)o{I;cw((sR!bGIUX7Kpq>(Hh`Zhm z8<>eHOoMwAs8(GaNCnV|?~Bl%pY>88?!0m2i|DDQ_&6jw>(N@Kb<`ZmK@eiwQBM!W7v08KH=Cw~($ydvq1&-J8ENe35l0 zJ_6S;q$}>CxX6-QTT-b|7H_*bByhS+wO`zNkZJ{VL+k~qx6z; zb@&-@RA$KQ^~uQJ(C~Q8R)T8zxcY0bl}`+miTC~&Rd4waW!Sa-5+fyDf}k*j0@4iv zL$@^2B_-V*14v7Yv~+`lq~y>;2?$812na)W&CI^;_j&hz_Wcjcms!_&u5+#9IDYx? zq9Oj08mGTo4q_G=0rr)K8 zQ*#v4BEd`v5X=B!UrLuvjP1Igs&~p(;F-0KQ*QzsBMo<-GS-p5AQK|BV zB-wgge2SLvgCFo=9Z%kClYhn53kNx}_q1R{4M4Wh%WjbSYuIOCB2{OBWPq{!Z^wz2 z1=zEYVfCMT%Tk&7U1R@Hrmf=M;jg&<@Sx9-fp!eK8QCvDzAEI5q+v`gY$M5p!@;ua4IO9gJrZ zK(6IbQ?YCPW>A{LFlF4tN~m{nyu0=FiD7w4avb=9x{$Eg{de&75A$QMB+nQtBkQ{? zxYRY@%MBH$)B7&JJ%sJgj0XBNPL(j0+VmbpeJsk07xYkMYk_%dqSA%Rp1;4TrjuJ@ zid}%&vcul>@=;jWX8CYzgH+c36K*k|>5a zT_KcKCRa{7;BbD8ry}G7n;-lB%giq;IJo_xTPn(oN|k-b#)0U^x)KWv4?R4W+=_qt zP;z{~0fJAWOv?Y_v2#X^;Za&3u^BVR7~9YMAl>GzE{Yz}DjlE97FV$FNZ{Z|3IadQ zA9MmWb~VNa6x=^N+Ac^mNrcH-^0_%q)FkY#=^5^0XEuPKzNe;!X-ld1 zJJ2yPG-wfXJZ~an{(gm4#c9&?R=yJf^yiZ#Z7Fk}INWkPQs zcx15UzMa8K-9q6s2(lj1nxM@{hw&+VGuZfmM?m_aWkJxv5Z(pF4{w05CbN_BJNGz4_U& z`Vz~dk{zWvXY?`p*pF#PJ9X2jDvWo?c9C1<4uEV3DP=o;Mc!;3#xR&uHl?R? z<;uH_&7-c$^~Txb`sDhfUglX=|9wb$nrDaJS+1a_wPNhk$HT<1GQz-dC&QdFUOQe6 zW!Sfgb{(bu3U8=vY{}qAs^)Jr@cBca7?rcHCsoB&6XC zccEj7XppO_(yVJmGBHaYh>m&QV%<&k4&$P=P=m# z+Im)->fk;v9a}i`@^H^!ox2fZtI5IY5%*~Iy9_EY7+gEmLPhW<9|n2A40{qN@03l8 zm~MDv#VD^lI>)p~)8)S*ymM%~cE7=B|8UoFK4VQ6LuI3imC2RjVoDia8b)g61lgxq zyS7fidj4DkaJD#85sc_(VByn~35{_3U0H-dU*uU?lEL~u&6sxI?o`<;GKM=dt6&%o zky}cmd!Wll@b4r~V>@4&*!j6R{x*r6lG+tCw+uJHpmM!Q!10MV{D`)Y4Dr7XgI-z8 z3}KLGM1qEVmC?26F@x_zam65$};+3>^vL z%mRfF@tW&So?}ie!&6rt8dWCUFpAe2@EFfX<$|6s?=nDx^;4=C<;aS3>O#MY+(N&&!QBhJ7&B|SC(XTn(4;?N^te|JXQevzA*B@&Y*Mb-B4D`t0< zYT#-(eDa^OAl(xE>Hjp5K!5Nbn?EXdm!(9(&Xjv>rN;RMA?nX0#3ng}?&~YLNCC5N zPi+*NNHem$>{?QW=z-1g&;tSnB&Y>W*4`p|3Rr$kB?h zKygXQvZ`2dMZ1*98ht8`IQ}AOuer{=c8+h8A7l&Ne)T$Bjr9|JV^1*yv$NnE5zsy9 ziXwXZ@d1L~fm@HK7oQ>TW8f76c6*2CQn946X|aU497;O+i)R3{cD`hkW&dtxYqV%D zn=9&q3PNGs$4vnSc62|HJG<8FSEC+mi&X1{Z0h%CfN6#gc-(j%eRU${&(e?FZF-s7!Z$>% z!do-PS~q`c0KJ^?AfzrGCi_(F?)E+3*y)J2#a?V+Iz^8ccUNdqt;IRH;_}D5hq|P@ zvq0QTnHokKhRQ-VIK|yz2_Sd!12k-CekVl~TLZhUnkoS+-lBBmXMw4-Ux6>UWF;va zW(8BmwJR>0fT>Aj1jn*6d9>EBZJ|(?#4*I#VEJ0qpXF!gnUxXjUVoir*B(hGA8Uk< zhajPLVNd^ptc>wG=CZIL#>x#HRYO>TRnngkM5Q<@h3PBUrK{N-AG(E}@A)pPcw+wo8u$!3nWaLw>5xA06Xm{zv{8=7UL8r_ zb12AD2f_-|SeI;#$S|X0@r)R49uLoQUY8A8LSDE#AJHP%$5?(DzhVAtI)llYGE>N_ zIGuI*(7xV^-N<>!gMO$gW1^J#4A*k9X$RzZqxh^GO!E&1{~00eZUI=2kh7lelPq)4 z0jRC2a(IOun2h%8wkBj1dbjskK3rYUc4vuMPBomb#e{>pqN(X0*EZhvbi-f1$8x;H z*Un?)!rAe#>*S3Zf=m|UnTko2MNRO0FNM)86c6~~&5F-HqAxW8+4%oApT4b&O#1@6 zyOOZd2pr>+P_#<2*1KJe@v=+E5heo{rBJ4^FMqH7splJdvw77Dy&n;NwJ+aTP`RV3 z85Ae_MO-+3t#+zbo*)4P#?+p>_e12ZwQLS@?Es zs#$Xp^@qSwiQ=jR6kNb3*TUbAF7C`E&4R}U8y ziPoXy$Y=g`YIY5bxC#AQRG7pqr zbB&3CYgf!n2Wh-6d%u7;8W!j@)FTC7NABE)LW(gXPYUxx9LD-PK6z{m*K<`>C&-dv zFygaBfzs`T6LY-$$J^JE&zDRlJ@up1Xq7E7avPY=;0#yuh@@B>?F1_kwgnZLdWPSP zQO+3bHjhg%s#J#w>X}QFUJq67Ex+9@yZ$Uz&l*Lfp6Q-WVEu9G8nV{v!ZfElHbvvp zbtHSdZma)UK$q8yOV{^NgmlzSlPMYnq|zdf(X~)h+t*A>PtZI(A{vbEWH$z4a+yq& z(|Y9#@d#;Rz!7|eM=E3LRjs1GuB_)OmqQ>0b2DO&>2FFCK( zq?z%j?<}-7CPgvC4Ms4f~_ZK)@cF*?J9;dRiU`A*SQ>wOc zg0%-b;Gg?j?<>!`6K5O}^*%SU59BG6CzU5WoZchGE;VpHCR$p`>Kj)=4g_My3F(U? zWy4rH>SefCG5KHQZK}_;B=q{y^VD5aAA0ZWvx2wjf6Fck5%bSnts{SaoZKGTdx>1c zrClYt!yUR9(>$NGHnLVv=}A)$PsNJEkO4=L<_vDn#&)hJ16H^IBN$5|LCI8Blu_VB zPP7C1=X$94l}-h_uGI(W?scG***zzSNVCBXYfy;gP-6q}m#G(7s|%%%uL97E?mUxn z_sB?Kcu0yTg@CR3zP%Geo%Q!`EhTHi)iCq4J`ja#D~^#afP{I+VyPFxn3;NjK9XJl zA-*FPq()?*yifvgS%p$<&O6o->$oTGdkhfnqJ=AmAFD}X7dH!$yYBLe%4sKgQH0wB z1{?7YBzv%sQ*>b045O&Rw>HY{=qE$w4Gl`t%8CSp>{JV^z{Mb&VFpm^N2ZsgoRR|D zTxkQOF86elr|BnnP`eBd=&L#?ke6O*0VSPtnUdl?++~2XpF^sk(x?*j_D6IwIs?UO zb-v7Sd~bjzL2kt;#E0b0@eBg}K2-aEd_wn%hbLDsjcF~ z5UKo24HC$v=!2*0p zx&@O1Y!-Dv`iJ)tb&`$xv;`IRXb{N-h?CD#H-3(=6uIl z1>}UrFw)Y&T8p$~kuHombIx9Ke27b**Ia-K*|D8q1XzME%I~?M?`DSgK3`7xsU<0` z$H0Gj#Sn`CW{As`=Nc}AAMhhER6zKOR4jcsDH3B9W$aQh&JzLa$!h}4mGO9`gm04P za%<7&=(|%<)n`wf5Cn_m(v<=&?H1P(&4gvL1avBv%jAssy0$88vnDT!W*v-1wp$Jwq62pkacj zC{`o#wAkVoJ|SOr%Pv`W>LXn^*{l7#l7Tc;AYK2o2o|(%pPHz3p!Dm9+t!`w7(0Je z8o7#a%apeRJ=e?*?9{FE0rw2Lg0IKfbROU$3H-}_QCn?KixONW?kg{A(0%+FrFi&@ z@@zedo_3sFfCr-%;bW1peNM=$nxP=9|0_r0vK4y1H@r9V1no5U!EFZqvsvcDYnU_| zd|Pk@Yf6BAM;D+Zk@uHU(7;u=RCooP2UXF?&V1GN4-i_T)}VIpP+W3<}dm+ z8;~3F4e=_l5GHj2>~e_jD}IV_S+d34F&tz93}7=7k^v-)qw1xk0I>q5-ih&ue4|gW zTSP$;A3k>y+N8a9YH9F8q3^H7Vkqq73V#-_x+Te1ZfXkRjLJjTTo z0no8okdu)DhMiG{*aP|=7AiXA{Oq%_4dM+J3kJuAI??(!6O%u)cT&-%q!@j&Sfzyu zhO?YSbHxhg&oi2@=Mh&vB%Er;M9cczh(J2nJTxKh{o_ov4ws{W`xsUx4Yd_Ged`}a z5ME97sErLvnhda+W9EBIOPRgFWK0bgR_jg%z!S38(>lxAg)ZZolLamq2r)>g=}s-j z*1qKS!u3cT-~M($XON%co>)bsigSt{c|Q1&p{E!IQV01s07phxp=lkpvn?zl-UQu% zPB16)S@s#AuXX;FTOUvrIg=B#*|wDGWoco}V0;}Epx=|BGgqmp@0k7NP3m^6s2;e->lf!?$-LY1K|7ttuU zL-cJxK}p!m`aRs&M0O5(3_~)bWb|dB9RGFc(5bMdAFuI{w>YOnF{RU5Dl`pm(X`$Z z2a56#xLn@`uO@js+;n`M#=O<_zn1&PAeDFjG=DaH`Vybud1d0#`-|=uOmeAMOrW$_ zQXH}>ejPA_wM5=sd+j`eZ>aNUh*{v|j_23|DrO!LA~%rqmcQBN2zteUz8cSzDc{9#M#{y;LB`o7L8`^n_GV{hrOt}RttTo z{HL(#Zb3g~l5e~wJkx7x0VvBhSE4x8<4Bbsp*XO?DzX-Hc^UO3)jRGjSMEmDj_L(- zZ)eaj^!YuX{c*L5TZrVPtr=y*m;#sY2V7qI1ftfb`nxUiqlQeScq)%ZDPQQMdDy&9 z0LCU?$1VedCq{c6T!wtpFZU|Cs`2o;15BT^YNS87Yi!DJNhbGOQ-@bzW46?!)5c5F zNP`!DNV9dneL-nR5Ow%#-}g(uujn)2aN&hQF)3r61O1(87v3@|Erw9Z!QV>s^j;Y! zA5+Wy9G$9VUnHiBlm{XzV71z4M^q*c3h@!m5PFPmA#*R(D4lc8_7E@Y{oue1ithjX z(oobFa+Lv=W1+PSPjSIldaq&6tM-*_x@D4M-E}M2JTTc>Pkw`EhUXKo*60_Bf4e~3 z4Xl#C+pVl_Xknt&U0rST{xfMJpJFAt0LBL(LYKSjk6qRQK0)i+ zbA~y@*wsuZ@}jdttkxFs>rXJSH@tO^J7*U#_O&00p?^`xXlXyP#%~%Xt1HaN5;i~+ z6CW$)pi(taAzE;EjyRIhhAB;%+;95L&m$B|=63}MEB-l|+)X$9%86)cd5ddZ5N&Gp z-Zg%z%@*i<$&2kC5_)hjb(Hb&e(sey5e{9@doAzmb=ErNTDV@n9xB|+^}D;#wp~u3 zZA^Hkk~ufwO|KN??tY*@qp2Bk_a5_yGkXG2SY)gg4PayDU>d#S|8SIj>u$udbAdiJ z06Z!t{bfFqTu#T5nL>|9%RKTp()@d)#Dx%{l5@@1tj2b+d}_qwDwfbkK}jXh)(LS!{*hA>b1L#FIaoq$<)K9aOrSSz1Hdbsg#xU7p1M z<6>FF0YZX6+$^w++Fxn~J55ia)*a^%rArSnr{?0FbMb^DFWM2?U;eJ=;6=9u0L>RH3icfR9619aWFw*!|Ky;A9pULuAT?Z^L_fBp}O z1Zaxvv2Ksdl1Xvi07+lzFU!kPOvWl`(8U)=A@67w$_}-&f(&%ZI)auocob zr>Fh>?d7p^v*b3*1elpKvLpR~zA)~oU~4{CL!csABS)#HN~vs71LosumRC#yN!5l6 ztpS8QT<9wiND^OaD3Wgtb}sd5fQGgxWh~rwWT$gSqUl%x<3Oo7;hbCnOiMQs-Xjer zkkzIrREU(e8Opm1Tn508$u|(x9bC*FC;QM_{0om{sWZ9dE0BLKAJ!HHHF=LO9W4$YIGwK>t~w5h(cjy#;rX8T=*M?Q-31erx+OdKe&4RS;HP z{##9}rVlS2TVfC5tsu)gvGiyfR}LJVYZB1&1!VRO+IT5yU==Rwbcg3bi6w!_Fk}Z% zOjC8;ael}9S*Q{yP$z;r3^$X|AT$-l6LT4i*buq`m^p39P$nL=3>&X7Sf!7DfZ^`7 z{bhctIO;X}f$sjg2@zIwzkWY|4D1wp>B)G3DE%Jx~~B_#;OASJHY_<;%ODmyti#ljNeT>Zj(sj%n3qrkROZBM89N*KJU;UfV?2;$f3Kbd6tBW0~hyd%dz@l%}3(V|I!5HNOr9@)(RILWup|IYM3xIyl@{MzC5h5v0}2gmH}sj}jh~DOmiW z8MGV{!EH#YN=O^F%m9%q^1J+MsTq}!*}a=N8SVz90IFwO1rW_< z9Drq~O9j^&HSCVL-0#h}OvG<^0==Vdq%)9gp7H$)*I&Xa-+2a!_L8s>WZ+6u++=tx zNJ%n z&)yK&u+-+vkbzb3viXM>6w~+=wS4)!9FK&atS4)C7{%#VR}) z@ux>-Z1>wSr{2a(X>e^Yp&}kq1VzU70Na3--?}|qqkp1WtzY}93x?cp7PT_Q%7@is zT46>H|KOD5Nai!N^i0s%Yx*l?>Z$qDGg97?nUKb&lr*AQ0TD0`M8aR^WLzL1AK@`e zzS3LJ3kLKND*N?zpK^VeWkc6|mkg_RiCfMh4tyV=^CVywzl<#x9%IqbDX!kW;C0ylCvY+%uu~ z`FQy|w~K>V4Pz>EO}Ps@KIqOfB#E@VH8@l(^t_`c7e6a+0@>d&Hm$7((B)-`9jJ@7 z03*+zU?4`RQ-fM*E6Znj2SKm47pxj3@r>ZHX<8(U0-Fx}L~8#|{OGzk+;V#97*RK4 z46pynp+X%NB`w@gh-W|5arL&lFyiHr7k%B)$5BuN0hWo%=Nc^b2s~3g56by_iJgS0 z+Uh-ZNh#Bb%)u6qNG3f-s}6N10)@rxX+dcfzuBxA>sbc}C#PSs1S!SNOvTPB+2ehN zrHj>52C97`b}%aQbPkz^?W)0v-fP}HhD!W!D$OG@oRx}dMmbV1%7#D%TppLM27l}QM>fjBJX!bSb}2$1 z+&uK~0lG{Ojy}Fg&NxlJ)7(UNq0a5mh$`e7x*fzZLdLHg$)+X?4yRZBqLF9@N6f}Q zRSLO+erYtw(|l8uqb$q82_}u#Qak*Btei(IxNh5pTo&9lTEK4wlffu^)SFpY7c|!y zlH2kT>%%W1A;&;^ALHc)?>Iffh=!2_4yCj=jS1Qtb*R>@3Wg&*&}AcHR?iv^t&2N(h{3m}k9mANxz#As@Q|r>fI5N9_gBV=`|7wV`ti_J0I^-XmUOA{ zW0u8X#*s=>Z7T5LeQ-c`a?Zbk%Sp%u1N3A)X98`4gx;eXnvyt}-4_QLhD4Zk!7Pyp zyS3+X1`d#D%q@_X`$|Yb0kU8|7HEhI63ix-Pxo3Fu66pKERbDPi2BfekpBzWD}XYf zTQI;WCG{1}Dnwxz9tX`=-L+!05n`O|RAG@{#q!>e-R-0A*Vn3F5a9qWXTSCQ>yV5u z&=a>9ls0VGsUVOq83$ z!wHb8|MD#f02+27fg0WPK4-9l!@GP&1k|9D9`OPm9-r|qumaO+g-;pKH;IUY7YDK1s<9<^%D_*yh7*fnu*GO_5gs#(*#gH38qUegMomC$b%nV5-afaJD& zv=lnC4n;D@D$pmaOlBDebCU^AIr&?Yf(W7ekM+ORmtJ7tyML}%fx^tlV!Lxsl(FZ* zLE}}9bygDLr?txqn(Pa2H*sRy{mdPRYzx!hcho`z8@-`DA6S?2wjcgLjpmwNOl(`i za$K{c#hz`Z7mvh*-uI80o5r@oJdg>FRpMQRSViQ3q&>bDPr&^TaJsa9UB@Zj)YeoC0)mDf@d zMh{l?kJVtw7Npd-W#K0^11vg->CCygd;s%ljpSWO6(5WxIK_{!MzM z%8br#N~^xfK!yr+p&0VSJ@6W(Q;=Ch$Ovj-#k@00#7Z!gy@0Eiabce%cY*3`*TVnOxEU4PWe@a%v+Yo8#(%v4P|XzMa+|3R+5)n z=5;uDQ-L^IT=Xd}np}{!EGGAztI}Q!v-pFB$J?*<>4t8WPwk2&@Yg80k>xgD=ZTEMl(F z(6qEa>Dl_fSH0>JL(oc%^E0bHNeL0wxB)jGhU22)*UHUqKC zQ&;wncOW;HRS}=>Z0F@Z*rA@aByn091M`dU!O*UrN%MNn2 zs(F1rBlorA3eKQ(cWYmnD%d0LDU+4kZVIzsNuqy8O1i-H_cP4Z_?X^;*Lia*Mo@k& z-pGf=FzlI4EX-+0j z$6od;j@W4MyDK*~H7NUB@6NmA^<@=j<5SQNNc!6IT+CPO{uUPY@6DTr=YH4o+D%{5 z2pVhkoUf-9!XyCWbVIAI1Cl=?b|#H|JeJ(ecg`h7M{k=0BOg2aNwsKLLQMMxX37Zshz?6{Yrn-0)eE3Q=F>7ok#mH)=LK66~9MCcB`Ib zR(4>ex_>@}>76e6Grf?vQ(>Z{;kqdk5FdNdoU`%7l|%GL^!uItIe9Nmtc||e=S5(= zi4J5U=$nI8M=jb z459#)Q$p6%ksupYA_>1gYm)U!u5-0&vZya;ch6x$@yMNvaa70eP zd{9*6djL)Y+{Y<8JpgiKAjS@b{9d?qi=R@Tbow^(ez4+Jk($P63l^dE@vu#61Coqh zN1~6=erVV|dKE2+Lu&BjUV;ej!Uht8eJiWfb-Y^d!Ss&kdl{Kqw$2h^2SYvJdePrO zFa$h*6<@XQ@?6(clgM>;NWx>&gqrF-YND{4?lNkWU@-HNLB8*~swpmjhvsbmNisv> z>rfiaOtsPGi;24C%&uo2vLar;V-%{?-v4Z`uKsWv`ZMU!$>~v3o>7gI^R3tu$z0q8 z0j;Iy3*hVw_Go1g<=}3eSP6k8twS;FfiCG4XP&2(9es1CwDm!(=oA^oHWQBl2i=i{ zddb%Fm#PpHrHqC;h1#NN!Lvt-uD`RCSDU9Z4%_D&^!@4@KZGS%5$w)@u=z?pyiAb7 zvzr)L%_q!aGT>6^^4sOwe;q1e)`#(fQ&+IeVUuRN{jKO+bAm1*I7_%NyQgxoTjE>Y z!hj`RxgB~!5ijN@NqAaO9?K2Xb0;`Un$3RKZDMyrXwG-btFCP}L#l&!uXb6p1$y#C zQW(~;|Epw5Z{zUP`tL1ei92jh^BET^l40%y^*nY{x^5YhM$(z#+;q{&=;KRZb=<{5i+0u8dL+i_aMs_ax#^7AcR{A0U|U*#kB%nu!+|dp!T+ zli%}suwbP1jo*~p!{g3Y?=aeTjA8AAp~$N|s-BpR?cfaK%gvkuwU$o-AoDN+^&Vnw zZ`1^IFtbi9h!x|JLn-V5aeVUx2Yr5e{ASF~yy5wkABS=3>6T|Irn~vj`)H3H(twV) zqTigJmy=r8FWuTRO)hpz)f%i9^(65PYKl-S)EK4U7|KPBtl(P~8a$^dIz7fk2Q+e? z&|bvj_w%y)sL92iy+*ZRfo7t+Xe}M>V7m}}I3vcaBmjmAI&mjticzzq?upB5SLpBY$385? ztb|WuRPd4a)4OAIg@5+K?i~lA6?%p|j_;H<~&u}!s7oYQ(f^Ws+=WBWiWLD1et-zS`^MQj-2AkN8xm^xO$hg>4QK!E3E9SB&yNoMms+Ia`($6b*Xp{g z5r>DtUawq-WC~FiJ|fr!$$xPuU2p@|cwaupLESaGniSExihj9`Nxqmf`RG|jIwdNh zv)g4G8Ib&=r*QsreqDFAnF01|g2-D>I3ZRg@>fcPGGeNf*Vm1t+_hP{%F&%J3?yM~ z+$WgCG$4E8+Ew!Rmq#bg#Rs&~ZltkO30`G$&gRzPt!FNcAd837+6(b7y6N@ijo3Vs z%bri8DX&cBBSg_Tx5m0V1hrY^-hL_?UA*aQQ_M%?pzIok>$%ka-z%HvZ1*Lw&bQ*> z&wF1JeRaqH`2zd$-cMD+J)hXI4GQ1o_ivNa9Nd^i6DJ)-9QV_!r(o2i z8%UTTMh8DIZ%O>D7%Qzl2i{}bC6Q5{+K`~tH+ABZas}v?oy#&y%tQ=nI)4mG^Y=*} z*-YZ-*_)RlKeTq&vrV%w&4ud9Lbuj?Ql(Z<;0KC-hq6kQVx1LaM2y}juPwA)ciYG6 z7c!OryhH@stjB+=!0PBeIv_=G7#Xs9r7B=4YW9~7Z37*H@jfv0K>Cr;KLyzsmG9Qo z*qcu^^*_FrTJc7uGIih&XYYAGj~EX8>E79SFhd>#cJ7GheT}{xn|c12av?>hvx7FT zwqOMD97DJ6-kCB7`LlN1sy^WTL)~ZU4g56NDNp!^lw3YFH0=-_n%Dm2Q}xx6m6BKe z>o>5r$W|<;vUeD$9TVRm*_v!O=E1Evm)jFT^)Mo zbqk!l$0+DEx&t_jHD${xr7@&yKG&Y-H7(4{9QkQ5cSZ;-giCvnv~GzKg)6TllH3)2 zE0lWdV~sn@D_^yEd|c=5{^#5_|6N!~&BsTKOCtILIBghI3+zMg`AT1J5Il7p@wEQE zWf~Bq_o!9`g?5#DYv>$YhEJ4leE2X{QGR1I**3_3@vIpuE8}8shH=y1Nep59>UESs zo7oU};ILUoo+fqh>RtD_?ucMNm4r2EgDhB_%+n4FtDl}}g3yQmWz4VCh|QQMf!}t1 zg*Z7s&2ngqlqZj@beP8bD@c?^UYCniKQ;S}@O(6hb|L&pf-cPvjp)_TxXT#dFF$06 z+cKu8<*>ffq2%C-y8h{A|K5=+zrZ`!Vw?qxtanB@0?sDj-m$Ixa`zmZ9){=NCR;Xf z@_P!!%7!22blSbvU}-&;!;SLoBvvSX1xN=)1A+s z{(eG}x0t%|&L@mci+9pfYS1yP#IK1FOJJ#xn?m$5SspL-+vLT{tec&44^@Sg#QKEY z5C)B12GeVaA!)MZw{cptjxD-d=Wh5A=l zZ;$#b%hexR%*HY61SdykgZRb~UP*F>JD{6>WQ*|-5idp$y&U;b@rwxFPZUoNzlcL? zy5H+~GBE&obCVWzuM;;667r|BjOC=6NS~s;PuzrZ3M?h>^DO`PxQi6N%jw^yOfplm z*#XsKXu!RDdQu6Qu1Nhu&UT%;qTlWCS`JDOiulcVtiJwK?MF69%62!$Qgvs4`hQCK z{~peefu7#&3X;sjYVPvIc*nJ7=~D`Kg&+2OapW)JMJhJE<5&FX-9bJ7$heAf!E6*& zw_E3^Z3Gp@$A_Ceev8<@hGL+%8LR2-Yl^9`!k^P;t<`3K}Z+Y*`lLn^sl zNNT%1%kY+a@C9eCV$Z`Idb+&`H9$he%#T3F7~YQ>Ot$B-)S_QG;}Z6>?Xqgf=&)dK z5V{UU{Y4nd)Z=kTA0vDoy_(z=)cjz=BU&Og74v#yw&w!_SulIGqif|`s%k2c z%$c7*|Jm8O_kX{`@W936i_Dz=LYwn&$!;+*c4Zj)%f6j4^hI*IGIcyB;|se?9EPIn zkt0=yDG|;ky{ct2svRstAYZ}~$3Cz?_ry?uqeP~096SB&Engo+iZ*j$n6hO8vi$QNEa7pO&V1&opN1$przl8 zG#02v6L!AyC;Y=iuNXO&mcc3*=Y2>IU6B%et|FgZnFE0w13Q&fuuSNUfBrii{fzY+ zI9doD$&A*-VhRXupL32a4AW$QTTyw{W6qg$lWRvIR_U(S%iF!$8&o) zS6`k%PoUibvLN|T($nMHmpjoGpR65l1ibWxve+jwZ?EjUg#-i<47L2d;~0@c5E^B} zg0ow}I+AU33wInTY%(%jw3$WMXp3faTO2HtxxZs3OEf`Rs44eM-}4S-tL~;(w;fmYWdVSQiea%5p6GJ=RQo4 zSN-Gu4x3iG&&FNAm6*v6i%>%@K6&yIbxNQZdp1KN!k5-T{;@y#W^%*TX$xwHA~z zt;rR-a}pA%G0ZsakICL}bZNs>CdtT-3PN!!u9-V=Q!DQLnMAaJ1zvY)5lZ}!S0=1= z1oMi7#_iD%iatg1+J=2j_;OrueV_S-Le|QPm@krzkKdy}D0VRjPtCkJDQzHN{!dt@ zo$_FzXZDA??``g!Z9el@DBr8Gr+SoFa<`j&_exus-B^#b|9WOCL@q=r=ahd9mvQ$Z zWEvyq8OySem~3v(ct;<{uTs9TNr$%1iXkl#m9CW!Ee+jtchxCoJa89L<&)@|rg zct-#`DnCjr#H0M%ig3-spS^WsF+N6F9{BrnkRXy? zP`pUu8=$nd*~gy!`badk`;?*h$AR&RRr9SrpI#ehF|k0;=D)hSM)*IA#~ANVQb4|C z7PoNR3Xp|NB06`BbJO3h=!k(FEaHvYW&MKg{ePPX;N(TWJN}Q?Kb132q_BGAg@Ovj z^B@%3jn0HQu2|XE#|-1I#&bP^A&N$_4yQVcl|d#s5%gFXYgdwzM&4-^ z772ZkZR5C8ynk?co7Ic^KQmq~zvJ#cf5-mwVZ$RjQQk_>ZY^Z${V+ev7Xx>3`I@c6 ztnmfw9U0DFbb(A5Bs?kayN+ZA<0f0u_lv+=S&+~l9yrqUSQoxtSSoV+FZkRNHF#{* zJ}0q6TRzQ;^sy7BE;)$HdNY!cO?5_u5r`o^^DQQiBH&VU=GJGC<&*eJ74{PY0TpUO z%fmrT!Dc)?JD;i;@Hx|1)9FG@?bv9cz zS1a?jFj$BbHOleC2#Ia_@@%^PVgz0K7}|4j+x!sWE%2$I&4Sm;{YekXa3DA-_LI<( z!as4GO7{#5T^Qu_lxAgCD-Td+uc|UlhlHj!`U*b1_aE*&3FHt2p+`QTRsY^Ig768fQ~akM z-*QXK$`%jRO}caevanCQk(1u&BjJ}WKlSmm7(v;0(b=@F3Z9b71re^U#bjQlbv#`?Q79aV`Gmbuva7wc=<@hWsHqu(LjhK;N zxJR96KIWv+|2X&HyZ=P zHmH)>@@t5wD@071d|R}&E*xVwd;5it#n8?l^tKtrI+W>lt|uY|;?xUpc{E4>mXN`Qc219GlO6ECRSbFS}{s zr#P~)M%AjzGW)60)u(>Sd#AS-K4R;kysQ3IZ#YK(UVe||iZg09{~0x_9&{ut|D85d zwk%LMAkYXVk?-zr4-NPsK;g%~6n+$`GPI*BXsV&zk(b&u z4qI3T`ehgo^rjb$q(iHgq6JX>9Pb>Uyy&AROnq0OhjMWSYDGJ}P!s|lq)wQBl+}G} zW<~G;l-d0G^Q*Tx-UpWC>pE&IQ4!G3c~^CWVkyqD)B1*CwuJ0oXQ>VBXH{FJeV8d! z7WEW-lBpO;G61`OY?fn{&+v;0!~`UHF)&D-{F!+g@yh(XTyZY-!z7Q?=@7|)eV)8# zFimtn_{N~u!{XY)Af#T6@l{PoXdqHx53T>dHOXM#2Jhf|DUjB1_aSNf;B$_Xn9cu_D>~T;PAhB?8cKyRW zPU}2@0?otYpW!&9dg2b|f zRKyh&g)nJCc-I%gjOp%4r;ZYv6Leg3&QLCR=P=gO3X6+)vLb<^$UpCCVodM}X>yFP z>u$TMb=m%#>@svL@rU^LAXu@oD!#^>vN=m|RcJ^~LANHm+O7lrjOgFkbR42{X}ovO zI?Y%JZ^EH>&u*WL9$#E#gc;w z+cxfP3>+mLk|PDAI|N39G=kC%f^FyI6h%#6Oj4zv0MR`6zJ3G4C-!79p$tHush?weYie!&jG{>Fk_2>~0#4iZH5Equ!H}|;h4Z-ojVoQMw`>6J!BhY=30b`;32$Hbp1_?K@ z2`DiQUHlsl;xlv}o_Vo4de%{m!(%Z^tx;SdrBWY9Fv&_t^f`01j{XrhXGx64=Nz>1 zWT}_k!V_G4L5_F#b|!Rx3d^rIoqx5zW*#JoO@40{v-eg>S$UfDwjTQVbR~L%is*T! zs^~){9&ryBw;D?3zK|YZO?E)!H8ftDwv-n=GqXtT9&EE^TS7{;WF(VMEq0Tkkgv<(2aXX@g4)eYsNrq!9bNVIm}fWP^WP_-$BN?klm$Kl$jH z(TX!qTEowVBtCBjy|f7L#B5kQ>IK6-1fQ)YgclAH-6nHBt8XXSUIEC#DD`ct%F^_f zO^*u0DKLhqPq(BW_J(7(LxPWWJ#HUJPfKIUs_9=dQPK5;7nGzajXKjdDU@DB2S-#q z795D2`Bhg(&&~SMn4pz>K8(;?Xx(^+?YIL;A@xgU_~I}^;y<#lOo)!1w6 zqU6PoR=Oc?WI1{rCG_duX1k)UB9J@Z=Ie9j5-~$lrmq~%E9b-{{^2@A{ufSrvr;mb ztZ%;=HGOfj_!}@-#l$m{M<|KI%VgH)4L9@FP~%dzGdJ_epus$G@7(r?PQm+6=$#FP5HIyqwODW0F1$ z$TUY7K-4NYYzMt%%kwN{b9xmM?=EDL$~-k!RA~?o=l9`y~43 zR+Mi;@RZFCQb%sgHfbpd(o5q$RJ*dFSHBv$rI@-N=spU2u6)GoK^lGgxTC#EOu5YX zD7+-_k_rn?W4=-wyv++I|3@6L<@+%bvyMDo4IAmkJi+Lo&9ef{vYYiUFFmy|zr#~} z^K5YfrTKn7dP7^R{_5$s_>EASNIx!y{u3Acyyy;AU8-_E*H2I$UN&lx)Q5dONJ%2Uv|4GpQ zIl=P!cAw?|mEe+f-)d#?;5YIFKSUKwzRin`qXw&{%i6`=%R&Pa^)|H(i^tj@P|X_T zD-z4vLO1hksA=}oHk7-}bh}>B0FGZw8GlHT!O#R>%xpYMb9fV0(>$_NVE?UktIRZo zNp%%t=Iq$k&Lc9$!K&W&VZT$=@1J3bUoY%+ljx+q>tp;rW(er^hD1=V1$RInRe9p9 z0*vV*9oJIpQBCk4zC{<-iBNzDl9TT?7Tt)(Oj?TGZjWTY!}}`sY#7{60K$bQRq?#6 zoW}#IwVEdH&;|F+CBK%P!F3>I?N*b-%dX9)x&3DrnWU;am{_j$wd8GKosY#Y@7J4= z+>i7GA@sQ8xH$Jr(ZHB`LrD{dK0Ee3huzE+=p-T%WZtrTek1H=4PE)?y}-KRn>Oc; z#Ob?}bH6dp?&8_Fh4NhfM1TWCwjn{#G` z5)9bz@FukuJ$QqiiMWy~q&RyV;qm{5vG}}6P;D5xuYG7nf+OW)L8GsdvF*le#M!F+ zRLFRu>EniF7hrXw2Wb5_+=ELi{It9FBjkg zfGA8JpsF6NuqbYvqC$_Eyx*>rx+}a`==o{^ z!{H=i>s{S$52D5$7fjUJy>U(f=kGM58c%QJghRD1m{_uo-Lw|);4_P1BiW1J@Yw;L zee|9n9QC=%lB^X4N~j`OeKG?-8e|xK54-Qa#{9*Gz|>(sbl;kGga$XJQ$|TWXN};o z;zwUKb#^eAI8co^3A;kzil~F`kkChJ&x&^X7T?@0w-I1rerwuqf(=F zDjxPakdtz+eBAbv_ryz-sMt3PS`t^V3_>;^ve9|ZphF)tovX4?K+V1~7TF~2*prDp zX7_(kq5i!}1ub&XRFVl7g3yDxD7!3^T^OHczrT&1Tins!C5#ztU&P-v)B9H>@*^b@ zrViIg0mB*y1eF1vEbOFcY>KemXlm}~l{tFza^-ovsEb`}GI3j^(^zlBU;a3E2xaF{8zTYKmbpOGG zTyNXK>@I@ zQf8$VbE@@^qLz>%0di#|2zG_Yo@+e?MRpe-HdvajvcFzQCk%K?*qZ%SU87iGLQsPi zp)m*Lnn0k*c-k+FgSweZCQp*Dj zE;(^&BUB1htTo4Z^zI+#C*~!_>Mr~Y^D~^(8TA4Ag-cx!vVaHlET7d*-rnB{9OHfU z$T(=&*TZXR%Sx{Ew<)`x=elnai98|~H)uJ;V2r+;uz{{+@{yO9_r6jOY;aR(D?8{Y2!_`g!e)*) z{hgf5=m3$N=yGSnN9?$fHq+Iozv~ybp01tB1<2|DJF6AYEf46vIhifpQ{=Qr8ehFz zni)}T8ki9q0vud8fAtFu)c^rhly7vLGqqEqaVZ3edRQX8S@cmkg25!Dc*WQR01E$G z$nAi9XYk2o*m}gt!ly{wpF2&{(|2;V9C3?&i6$P2jE^ErAPoW&WIoc)spg%C zOmz3%*?V7wZtikQ8>QoueAZuh8d**V3lH|b9)Sc zg1V%NE0Wq-CUUWn$xg?fDQi4Wkq4(|KT80a(Q!KStcd#?enR8}*&!Nb^=}c?!Dq2m zuVpFCi<^_GhDwb^g&WRS=(e=<0Ix<+sLlR%RQ7JzaHtJVgXla_%&XfCkFj7GCS=W% zfz!<;xsKUEP{ZvCra+A&`c6EV?j4Gb5ey+0(-!{fs+XY-0>kJ9F)??$m@>?r8O8<< zfGq+d8Wkd-6Zh%&x}%Kzhd1H#;i31Yn4kBA6ByK~ZeLOKhU7=jHMS#s`R?G8t-HUU zPG+FvpzWO|NAJ}KGJrj#lq#Q#%X{|MlVBCY7}i7AKHtOXUSqgvVo=VVY!p zXGp}l?ilJgMH0t~3@3B~!BpPcfe2&Th0bH{cA^82PU&BD$IV^%@m&pnAFZ*ZI6xp7cIfurrD6*u%Iix}ue00op2zTm`8)!ew zX0}Tv*&mXQYV@MdlTz&;qE7;)Q9_O6uO-j(`P~QgE1EG$N!kk5^Z4XcP*y#o@G@6t zG2Vd<2l|qMRHRJsH_czvQnh}eK&Kp!)$C4oSUU6f64Sp{}u1c(Qx9Md*ntTRgPRA+a4qmS#EvN&U>krxASK6V-zGRGl}bvQ{}`!I z^0HNxt4G=;t(cvPzv_EhNSzjQb^h;Y2i=?_2$aju%FaICuCsdefzeo;iNPlHcAS_p z(YCB4&@5`Y>y=)v6dEqDiw6gP*Ln_i(^HPVp3GvZ5yQp2JNKC5WT_w0Ab$uTxGcO# z?mm;hm${br2nhLoWz~tfo{{$p&$YT(er1gs^H?!wTFCin7IL_%gLB>=IPy)X0zfXZ z8^o-Ad{m#4-)Cd#)ApgefQJoNvUXY2?5zy~Bf_gn@o z>yGz)r{;KmYt8c7og{49H@7>i>l%!A7Wubl6pQ3?@{ho3lHRu=rgYet?0CT~E~@Mm z?D~m5uoTvVh=6E_0*Z%NdH3>fM$lCPvx{fw=!VmP6Mu!{M#Ks%kMa+suBNqe)T@Qu z6&5Mc5&E@Y%*`>iR2ID%4~aA3Pq)`I;taH;!4=4sEXcAO+ZbG2N3@U!0&w-^@22HD ze(ps3sZd|EJE?v}V^eV?ll=GMdgh3a-XZBX>t^TKLF~t!Vb8&OZ#5#=DKlVc-|ZO( zxlAr^y?uZZ_dCZUSJ=SUPXJ0K@&a*)Qp6O33AvQa9YG)8bznziK2s*(J%Qg2Q?GtR zG}o+FJCPK8fRt(kU#J%3$C$csMXf&{`LcTC9W*`Jm1}#!NfxuPF!S|-;@aH1&FEWv z$*N1EkzEQD0E!>vZO<#dpeEygLuNZV&l=?6l8~qV`;=koq(@!NbEig4xw0{fdXZW| z@;jW`MVPv$kAJ!~l=$fGuew3Y)cuV`6&rf;eP3KBNQH_HLqDs`8qC2a z;83}mi{Q~z_733DzTCk2$-*_chy?||AlLkJNX8U!%BQYjdp`$Z_CS0%T7p4HHsZlr ze8TL>;-85ik2H35Udd;E{oeZY4DCYjq@}-a03368FnYX83;B2ia8PSeHFmLQ;416T1Vzr#fmv&M^nQLLL8?u)vUV zhq=U3bK}M%%t+$wO0@wFR->W6pC&0^w=qj9-~;4<0s%L3tM@${57R_hQUDMrx+rNl zk6PnWd_dCseQhm-yeQVA1d2~&wQ|(gnUZ+^|uAhV+P9OkS zeT$SoN0P`*+Wnftf8J;s;mMsIFYVT5nQ7vB)HB@HexNoH3%wc>zb191z|+XJCKVsz zrR)D$&m1_rj+cws>fhMWZfE`>{0OSt!$ku#ka7*Mz@~Z$#VbN40?->*{t(k*e2_wf zp36e<=WB+YAJV+~lT64@%KC&ZAB1oon0Zf4&La3_DW%Ap6j`H!LY}%+7@NAfoynfJ zd>!*t%YfvFF}&ZM1Tv#Yxf`1~Rb2Fa5aW~daa9DV>)obHta$^X5gfh?FJ9K7y`}l$ z32=KkS_W7lixDNkG!jadj6-2{79uk%lj%JT+xb6fteA8@odq#UorD}X%E~VDEC;=5 zmB=iZ;tK0rZP-*svq3Zv zN~fMT$P33Z10L64nlPK;argSsYDWEXTNXG#lkki6<6GK`5PLS8a`n|6ymnGjq781&&iaEO!|@b$Ks^^L%r&TG5j;NK;^^3q7dU}|4HmVBAAp?NQ^GJOVx z^s)znH8__c5qgpr;+#z_M9hxk9-&;$a@Cr>X^Fy*6lh5cjxZ1Il%_F#ceDE6uaNi2 zmscAf!jd-bb?+7h%`?lOBhU1j`2K}hZdC`eOG7F@tz32`FQO%rd~Gdg7VUfEsnsp7 zueU~8W6l?$TwkrJ0|3#9Z?@e`+9IGFbDZ2lQ^n(szKwlf3v@O2<&vU%sam0R2<^&d z01#dTTm-wpGq}9VeJ;h%x7)UPIl*uzdv!c~e!eVze0KH}_X2&J1sPnHeH<|b_+h=z z*3ayz7wVD4M`|bkRXD?0SDw~Jv;Qh|lXR72tuo&%4+wnJeSbB-Oi&LmmhpXORsYd1 zFj1=K1&E-LSfmfiRxgUz%=D0x+b}9M4!a!72V()uyu>Qs!CtTJ+JPh8>+TG95*sA*jeNe=aB!j`zp&7NUb^2dVo_6xEB0Nx&@t$Y(f z3~E$~RC$uf{aCitbv#(a5GLYo^?&74)aFSyVtPLnX8oQBTU?tMneqLze z!;YKZ3w$Id%e*W1;P9{JSBn@@!W ziN*ec1c^>@)AY588(vVoh7*FE*UR|B>KKDyilj$OxdFNhtOHH&(i$v)M#i`zW~XPaE!zR*1to>cyC4J`7)) z^#RHb1*{o^MCE zebxf7zseFZOOV?2-?MXku2*T&sYXf(aYIki{b|cb#L8_g&8$>zaN)2$mk z>!B|3C^4on!Wfh1L@GTh1gm!xYb)#%GxE2As~3-wD`mLO3AbKVrXcff@>5YcBKRWG z)`mQ2seomaCKI$CB++v_HMYNO#$2L4H^iPw>8c^_1ijBs&+FXe91~kt~3n#ac8M}Q|YKB*}%KMK|*4dJle%8`&C&Vz)mWh(WIzv zq>$##I<?InOCkA^DUK{;K8Vj6Mln^81p1A)R)zakc+p|Mb?oMNlk?h;(?Rq*-#H zW%&U61b{NnUdi6v*%UvZN}OpDRBt3Th}N^rnnV2L4Lt2)+=zu4WwFGRf>d>8$b)4N zUvxJ@o(`K`jy&AD|1N)b*<0<^qVjT@fji#7Xe3qBL%h)H;JH!(9bX<-`&>}Ze&hL@ z!(g2rL9Q4Pj?wCyk9@`D6CE{P-8;YsziP03AyUcQyh%!Hf$K3~3ARNRUg)3O;9iu!RGb~+@m0htRFTIsM-&=P|pyT=Y zqdE>8z4$r3C~z4i`Is)l-gb$Q#@bdt_-2cIzrBf-JEaJ+pb`fn0zs!)<>Z&^q$f`T z<%h!FNQVbJU3LFj-r3jRM3kPG;zmP&0Fn-zbtUh@a-%sZNgdc&vzRnVOXH|X@uRSQ zNId4)~#^!l<_NV5eZ2s)Q{~1}Wo-@g2b>$-}MOESvQ;3P6 z_EoG0^ZxZC!Z2of^*K-5#a|Wje7S?p6aY%RKL)wNxrPBIr>7snulz1>AIFrJkH{G3 z1g~tZdulhOj02JwQ2Am{lB+a>BCOzX%;Co2L932cDufOB#oyJl6<`3jDCh(|@Qhkl zU}Gv92S~%;*(v4n@b-unIaUj&w{DS1{`(iL2=jqHMpX+~)w=iK9DymruZ31R`{m+Q z%ZJj404Z+dY4-DiyuhD&Azjx63fmu&ezap1X!Z3?}{( zI5k1(oCG~|caj64g_*D?jJ+D{+JXUpJJkkP1(S-Of$@1D8Jf|N&`EGh(_sF^Li2BZ zzsi-fH@h>#zTV{*3wBXFNo>TUY)T6{=musVYZ+u!(7m@7b-(JTR*#{$l&mr}rLBgV zCqufkyNz#!L`0rI;KRRic8FAWEG#Zwk1f8F2zq*PHSBeUjYK**qMes6j!}4(>X|t* zLq}%SWmz*U`WZs!8{tTmJ@Dr6j{!AWMdif-s)bqXv9eU}TR&%At6S!??H|dSsI{g* z3N$Je>Gejb%nZz{XqPCYR_(dtG5pjF+8Ihrczfv531N017r{wr12Ztm=wDd_WwC z7i2x3+4QLQ>A#bfK&3|j@iUS`-J0F$n>*u3J-O9Y{+O@mt06>Wz<%0SriYf+o)>y6;P+7w6> z7?1-mE#pJwTl1m0A*5h#$I(Cs;-}wsn*IiLGpea7J+D(zW2`v&@!W3Idd~gRN_H+{ zcXw)Pss$+$OUH0W-0_4V)XRgoT*yp)U^sFj7&({<68QL z6K#g49A7RZHS&N#z8`R#pwgbo2Mmo;A)Z_MP)5=F$I) z9$JY^?ccRqMFm_*FFhd{&8q!_Jo~q{KW%MT#`-aN<0|M-vSCAVhyqP+ge%-9c6_ya zmxc6mIkIvt`eSmq`Z4=GpXWlKC@=0FtLOt*GqfK7QM~=Pc>8bj4!H}tOoAF=zjtL6ctm~0a9E`bN9^@4q%RKxUtgV{as*yg4^gi+}bgd@M5uH zyC>Khmq^qW2M^-U1LdEB|2AOluU;?JPnZ7L{Xh zY?9CUUys6n%nGk;)YgDbSaw?_qJU;{qq6&Ull#k@H4yO7oh0Z2fh^a0SM-pEE1eTm zl-n5V!`Ks)jyb59y771; z^H96J_dP&k5TOwTO`tSq=a_S<#MQ)v9i7#Bw{oeIO$z

    }Ck# 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

    |C#BAMpu zZvNAR1APc7{liI+?pV5SN9 z9*AlPm&|{>%2{@$)Qe*z4Y>_l#M419{;IVlFsgPjN=z5pX+74FU~zXjx9Ca)m{1wW zoRDJi0?l=F>69>9c*oIA((Km`BXP+6JLZB1L>PM~@d~H#5jinlw5@2A0?gf%^-`K`=Z**rra$~bZ%%@V!3F; zs$y7)yoPycdodZuXmJL+$ru0T-Zk)J9vd|dZz6*JV48mAtC}B0S+_199xCb*6=`@~ zrrLNk#L-|&)6CB?z#CUY2Iv&}Il@d)!g4Xea9MPTQj1)5XNM#-jz+;$%l-I${}_qn z`HKS1BFl-k-++k^K21I;J_+TP+kcVGTj-6UlNt{{9!r|iqNQA(Jl^pQAYSNe&at;x z`hsbop~6oX&ukwMhB+hp>+I^QUyRp_?Cz)`%X3mMGzb9ID|qoo+pm|J02w4%qEK(6 z`sxVkrkex{;punz9H|XqEpm7)Zi@W~f=cap?u_@>_hi;UIt2;>!g(c0@LIr6;o#oB z+RfGM)=iUfbI3cu@3AfOqqc*BI`{AGbqvG0G5$|y(NPt_1$8VoI9y&M0`67`uzg&s zfzjsgo7$V=OXvp2p77iVFz_Mr;j&~E_p${YR`jX$G6;v(KHr^1v+Ga0HS_$x^GqKS z^HuLicMEE7fzfG;JsY^EJL=!AI)isCVMmIGu#%sTz4w7tktkU#vXqiUSTi%#8zHp% zU$-0@nQYMc9{fg-gZ@*?3V+jdH<-6Nss#zDb*UDxImQaDAr;O4`T-=?2-Lz3vu{w3 zBy3ktsu2=t%0;y=*<<@swQ4_ah}5wxqG%Mg9377OJC&;ZYE&{czoZ)`uc6h~lY!nz z*#av7m!3PR&s_&uh3KFs?*DlT>O;2ZINsou|Bc8;O+sE?*Ys)SMa#_hIZelgZl`6i z^g?AaXhbVDd0tn<+Bul?a)t3>z*pDtyL-!)SxtNP zlhbMWaO!9frf>{UK^UMM7uRIFH{4{euLpopy|}-x9Scm#E*C`I2-Msn+6t{-IyL7)*jA0-7D(i)$Md=|7IzqeXA2Tv4f0yGG8v z=ZXP$tmop$Ygwd0+bHe#2&#xWRuj`!LVhjljxIg%5Mt1_AWzy#(CrDu4UM=;aJB0x ziBDu7>eqNKm|hR%gXB~O|H|U%qGKet-nr_;QKJPtRw{i{QX3C}@@31l?yL0rTqT36 zCCCufv^wOHqgt`E7UFNcGpufI&%^U}mq&7XAS=RFfJ z7ysaIAau*8L`7qLFv*1lInPn|+d`};(^oJK8ke5o&l1~t5j zR9N^fTlY9b~sXj&}mpMR+S}4voRki4Vog?}|1COipV4>w^4aLO(wy7*hP1dOW zsfUX%PS+#({e{&t=K^6Q=1^^KlIdFQ%K#fU4UJIx6au%;s5jgE;M+mTYk*Xw@Zjc0MA?p1u_bL{J;jAF}_9Y$SN00j9D1S+%e zJ_uuzb~?Wi48FU-LC@W$@MjH)2sBZ}n2U|Xwncl4wF?e7RexZ8ZsA{@!b`m7aM3Z^wzuqR80Zdquv&Z7fuiYX=9bYs>>^);^t?ncWQ9xrYsu{{1YiynQp zr%p_M(XesOC;9J#CMw|RgC=b^+X0M^nD*G$2oL?p988Wl}gEFe&|VYZzrP$f-qljg>58!j#WA?SswCP6j8{h||B9EAXB z0yMNTWU{v7+pod3!5`tGA}=4m#StjI&bq<4$PPva;G1tlhj8S$$SR+TtP8=Kz4-N| zf4%0dqPJB&Gc+`ULxsJ7X4Y4OogL|GN~V3c0JC~aweUmKoYev2xRWfs^UEq8skSAAjVcJd z-<32uHC1Yl=nwj*07u1mz8}gPU#87-{(ft5zkC4>Cocmd&(2emz}TlO%fs{ligXh8 z&dDjq%>7-htEOKNW~an2h>u3n4x7Fgy-e1}3xSx>2;rI;?S_f_qE+XzK}C$pkZ_g{ zP|A%Y^)<>f)86pOmo(_X(H)_=(RZhV{Z^i?w}ePqWhE9@CQ2TZHkaMKmunEGk)G+| zHX<#7I8sCiIxc<;S8vy}5bxNb{<9x5bkX`s&_+Qd(f#~&okSRkvR4`{MObB@)}8%k z=g$PrqpJ&#+NRFVr44ALnsK0CX%kCj$DyIveBYjKhl|QB%uf930G>vO>^hU%#X*iF;{#A2n`uvjfl${kjN>8M z0VLo1R?9R6e!VaevPT2ryL@(7hqHi-Q0l~A8FgP?mA~E?k5Jj4JW)x&{J{HwRDQ?{ z4Wn1*Z+ew6;7Qq;x~F$fzkK}X_1*w11RXGcgch-H#Wv$RUQneW2OORBA?m_T)YiB> z*xDbf)|-qT`gIa$)d1@`7aO6Mo<2FoZRq{ZP`F-j&29lAT2vd~^~DV05B~BM%{4M4 zw9Q+u_%3t(zg(R95B_OB$@>WXb=k8mpEYe$&6(wu*n!-z0mq3ZNwc1339ZSR)Ys2~ zZcb0S?L$4hU|WdqKO$+;4-JFExOs$15ZSI2)kFBZrt^g6!^-tmqv`-pq2 z#^}}l{n7O~T*jQxBwWUKH>SZehAE0#p`qiR2^$$?^}+vIj{wl{0^0r)e@%TtL;#-; zf#2qS-OBxXh9a$JPwfThkA(CTAGbwms}jmm_U^Y#FWz5z#|XsI_;zlVNl(VVD7MN2 z0Oew%{!h)9l!6~VeS0g=7PPj^r$U}@Y|?DRLt82Nnq%(Y*p9*k_tjUvxZFT>pC4~3 zGWtK}AEHJ>_-67wuRO=k1qOSqDP@$O%=Qe2DFFO*Jb??89aiKNuU>+Lm_HL(h1DB(X@F0F`}c^w;}8bAtoHlxNfT^Ym|NSv zGVAX*eMDY}s?#HuI5%dwJXm9AxvhL~NJ|WGTt~T1;GZJE@j7@xSlHV0$5X)qOG|?N zFGKHV=ki|Q8TESOocem0_?6=(TX^I1#xWI|WSO-+n0NYbS!Gb=$jk*it-9_s&DlEC ztEE=MU$RRk7&McoMT3u8z4cke{vQ9T_Pt-#P~12wBw;rls~wU0N&MX|;On@7Jo=iv-*B zAC1tx63wD$0Ls*29siQFg%6AS*!s-kEq3qcxVM0DlEZN$z9M_ZdYopo|9+ysLLTSX z(y3@bcV|zIC#(7|Bj+ikBU!X6E97T8SXIWbO)=^^^B6ATieU{`etSH(`=OYVkL%b!UmnGG(&pLkX&9R=%JLvP;yt?dEe97n)2R-$H zTvw*L#qt|+frwGtGn8l^UuM>*gn{E{_glym2pH5|F`h<_;yJPZihl4=E=)!7Cn;WC zs#k{i15^&rF#sno7S%kh@B$3ZNoX;Dp5ayGtGZ*vWo^x^9(8Da1mX6=46~zUV=@Ix zsikK_Ouh*LkTf9t4yi0Rr>QqYI>gnVPUX?BK@%Kon@LMr(wepF5n1x_YaB|~i>@Z# zWE8R)kN@l*F6=Zt#e`i6fC!tjU2(+VPxF|gyXiElKRLCR4PX`}f1@$jU|N5B6{`I1 z0&_!Dbxl9!BHfM_pFkZo3hQWJy2l{VCik~8l747MV2I}mT5?0nCB3T3?0I)htR3)0 zSkNN7%`Uf`6Y9?mYoqv*j5Z4ayGA=mqMVQaGJ{u1)YUpg0q0jRenAw^5T0{%gq$pY zl%F?=*-f2KJysB;Jiw2O?B*944Q=skEFQ^UCs}CIc5~l|cI>M))K&HL$N(}F%js0zcn_+iEJfkq-;0b z8V%-n%(}cmx%Rvc_~uOlX1(g_PbO~OaCvX=N<&Fu_MHVPHp1|Rw?`v9v{_DYb_2f^ zgq{`=$dG57;7VDxUZ7F>i@l@Dk&hV$S<^`0ramL~-(ZFVN%rZU@ns6{e?N*Vhx#z_ zA18cjy5Svuz9eu&3L!A>WsP7F6CF2V+{K>_eFgh~TuTG&`h%Z4eJGYuJ3wI;b6vWM zyz+$!nt(Oq@UxeH|7*nXxAHwO{m|aZEO^P}tr4`Y_}BWqQ;wR|qJrV-=2?(DO5lqRb5$XZ1bW#y=y%JLkO<@#^YE*KV`0g>HDMph) zi`M2up&ya?b9|ei_i&jz;b{>TaTAS9^*?lGvrtU8p^l&#xZa85*uY@rhiUaxS9Fjq z@P(-yhfvsb0j_{ciuX%fszhHuqvRm0i4VR3Q(_K$ymE>e=qDNba;@T#f*c>VIRYcgyXLSbO$9NgdP|Qs=Dt(TV zijQbc4wHKVdP3oOkIPFZEd}`%EJEbLzpM(pg>8;1YtR|-ZIW8-^Y6O?{Fg^*WP#7n z0l&__V`&i{!)2Fd?RYK$M7-9F89|sr!X~uHPA}vn zQ)P_ab@>P^SO&&c3Ru;#|6l=XF`B>rTn+H8r}l0=b>N_oNOx+Rt}IHyIFU4d=AS9M zrpd+Xw;iSCh7Hvev(_SiPdg# zGQ{L!LjUO)=foySROf5IT_QFYDU;w8eq+hZ9uah(rTvz6mRC@)7k<3$Zx%08h+CSFeV>yr&mslqTFN zaItEPTS*~Hg8gBdVrM|YR>~#>o3PvY)>HV%H*H}FPWE(+d@(}Gxf=gn&}{)CJE0P) zb+PR3K<5pi5otb~STzAUi~b&3;`38ne@4C997b~dbYtZAJ8pEYAe4c+HIocnA8)ld zb6Qg7k+S_{bo!or`eE8GZVX|+TPXH8`Kl$Q#n8iHar#6h)MNt@(o3Jb`kGf61&ikc zf2LCpm;2B5^ns8JQ*F^8LAM-BvWOgmE={z!`phhXxjl)SSF-r<*B`23BetmW*FuoV zBH9i1!E(EpTH=UkGS#%~VQ7ngtzw55Ys~1{!L%2u?12Px4r!tEhB9rJumkLP#Z$G3 zH_TDotuC<6i}tE(7&wzA!bM29-0ZoSKw=Jd>k$9u2q3JW=>w{=ms!@v-b-+{(7pL^ zpDG2U!&8>j{#d^y6h|?N=s+veX4)R1>*@T==7Pa0=AToLKWzB9~fyY(agy(-wq4~lcF{gN%4>61|$aOKQ}vfI7osO9SF9v8KS zIbcN!Y606gI6&k&7=B7ZeU3ku@5$Baxu;qH?ZV#XK!?rbS?rtatz(x>evH!KK0JD5 z`LcTnH#@#IsG~LwSe-}1*_vkUsH!kn;h6s}GTjyg6o0eqR%bG8GKsWGEHWP7E5dXWY=mkrluVKmmcKfK16H={18n6SfSaTXgox!~x@3)gsc3>Xz=A^e$O z&-%p7u$o2^oXuL)pAU!M44Xowm{x1VMjCT4qqX>3Sppxuc=o=#+}-YsaVN58p-RkM8?Ye3B)=_)rR<{HU8j6XP)^ z;N<7LvOst!v?b?Vc^fcoE~AyV2FZpJ5-`vxhe8XTJby2~rDREPZ*@ddY}?IA{5Y?M z#bc(XKrbms8H`UoMX)1SMqlljUpxysqdbfo%w;(}q+z5iI6Z9P8wP`PoXRJ2fA=bB z;UN0IIYw3wjp`R!D;d^2i=hF5u1+V&EpOr&x6WT?i@4zI3W@2njHXus_7R5F_GqN; zOeU@^`e|WvzG>qnVEiHitOHEgpz{GLadqk|{Q{|xKp0&3tH>UeF z$I~bk2>65f(q%0z5FSw6TV?A%fXo3Jat!QnD%6au*&8o7!q|g=xYNcyES&oRap`mq zfNl?VT#{gvZyI-a5B!rYgepCM>LG##hF_#tbo`cakzonQeFg+!-OHaCSIhG7IE(tW z-HM9Fx6A;9A&4sS@p%L(F}83>@l38ZXyGCmptj37kdlKqhM!ezb+%`K{g^! zFVQ7vpZK3<+Ik6Kh1GIcV?@&dCp}23+y6=*xX11TiY86EcLt02DpbA0;E6`Z{D%vp zT#Od)(!?e*yBQ865pj2jKILVb7z)#*Hl0gDxA7O~Q2M^$Lf(j?Nx}%4EMG0p;X`9X zSKZ}=;**luPI5rp34s0v%(|v%hKefrkvOXgUziM!OBmjCw`lQ}U9~5;RrI+L?!jL{ zf?&ia%?Ec(u0~m)6Q}V#Im==Ir2yusKoC03MGA**xUX{&(MrswW<9Rc-47GzVD;o!ZZ0BLeRn1a z%TVQl2md2xw_1*T$Oukjis%Qu4FUO21w3CnYJ`HW7X}vSyf-;Yq1})B0(G7qRVG~Q z>&`li+*%@{-w$QCRG|Ws%^8mk6BBe4ZMKR*@#q$(rmDDH-@i?u&vdA?U)lRc+2Mp| z5dyTJ$Yoc%`(h{vFe-FNwzlrtW0nU?LbFH(Un|YH*Irf{O=00v(@Ph@4-g`ysB+(D z7N`uAX=;5I711V*&%0j$);B~1if=1XK)6)Iw6fsu@3Q{|^h|7??9|MX(PAiXXIp&m zVHry3Y}dz$KJO~0-%QF1^$|^|&3=y>+41~NeAv+Vcss6QearY#L4N)7BDCz7lOOjB zV$=0NZsj=fUAz>yDJ>U!?4S8(YolxjaPpkre2YRNm#l*YeRL4^Tf7N#r(*ygi)xEYsA7_U04fp(pU} zo1wWDTC#_STWnYz;Q)!W(ko;KW&P^)+#F8W{Iq`V4U=2Oe3Y*X%xP8eFYK}4KWVuC z{iGuMrnNM7*S5YsTyr}b{4jr!=B#Hm2LPHXb9SWOYMGmYNKV%{#ow{u3#wa2*D11`@s|46?)?OAHH-}ON0Dz~`8{sJ zxM8SgEhgJg7S#d)v|wR9hRzoC<2IMeqpP8Ej{fbNJGbeLep_2Gi(*_>eXb$uVDzir zqa1i#XH~zOh$Oh(Y|)F~W?j6gfJCNd67z%#x7&ZkpC9c19-&l<4xJr&n#Uz(JUt~C zCebK`F64#C$8;`3UW^g2rB+V`IdY;f=oh)aqh>vsOvd!aWjhx@q_(!BNE&&IV8E9f z4=&8gYo7r{m)B=*%LR4Z(+$~TjSmk>Gezj=>|g&XwN+!l*5~)VruTERZnqkdcZYQ{ z;qtQWY@zS;Glg?ye#VGjSBHnUN@(iWPEoboKj}A6gTH#d<--k*q)vfI zTheI%UK864c>S4s0<}0BBlvkD zPc5SV#SG@X_6#eDxc{Bu`PJoqi))UArq=QP<|z80zT>KQ65i&o)Ch^vYCS$;_49js z!8xMAMRA!TsGUBuuW2z%l@P9*s!^j*tBNBBuBv;Q=jU&DAoW*iyv^kQ2sHKBU_#%O z+sIrrV1#`o1Ge%%ga!wl(n^6@)WMJ>mysUd%Uc4G0R(>IF@xH-8OKRLVUR2}Ath0E z292`D%SxqyhwoB>P6OhjXcs8R)qsim%x9)r;rdAgQbiNd#5HAw*``_*0RY_oa(tcX zW4gU)fjrzdnjxW&=E(eRGczfNWx~O;@<@;uC)Mk7)@HvI;nJ&1P4ls9`Py#?g1>iD zL5O5SA$t;JJ`F;a{QunC|4Gm-WX1m_8)3DdoHL-=slFN+tD6biJwNv}PRTAK=~&wf zvVRF!=|b<#i;7wzBd@&MY&>KT?uFQ;5Vo9UI`I?9+%*f*#0O)=ytZZz)~=gz^y=4Z zW=P+Fe{V%!U65Ey$I~*$Cxqc+w%N(d+FN(iIa~rodS3!aF!Ut%q$xt0y9Qi!qb?qD zuR1c!MT#u_DPF|x%=p@=6rYSuXq3Ek4`D$AE{%^$OeZthRs)CNWjBomO1XIVoA-4y z0;=!5Jh@JwWi)fB4Fi6;2^QGn}?CQOE-OG*+fV00Q7o;z%DMCB57a~}7`Mn)uhFT`iQ^-AO` zn2cilMaw>j$tun&ITZOR@V?NYW@}08v3>ic*pbQD_T|5q3ZFVN%qPb}^ErQ~=cq%` zpB@xIQ})(8mETANegsTAw=}(WUng}x-}@mr5hczZ`;A1KPBKss;C^iV>&Qhaiby)( zvA}bYM^pl!W^PTR(CE3JK!k#cNyde?h4|CH_0p|+FR=4{-A}fHx-mD>H4-_R5Yjg9 zbjYYC~KD^VLVZx?W zd?AY>qmb|XMl8JGiL>fbH!!n=B-rrz3b^Q5a$?@|4PsQ|?bBwl0OZ}5xy_!Z)gGUj zj}$Cr%%FZXZ$4}S#acvKO0NRwYZ9xVsbZ61g_9 zo^>iL=ohWK?;9ZK1GQf`UMV)#eF!hAU>PGiT-8jep=!0a$R$*f@- zRHx>*!C8i{nBvVy2q8Z8aJs27uDl?~eDCo3q0F!}o}?_U(+L#c5I|c<_NuK~=nIv; zqif6w=tp7DuG=dCdXKl?WGOj<;Zc&AZ-4Ch=%D6W;{zb3hC95BYG0k6+ZqAZs15R; zTE4aeP0jc_Ki|R^ygQa-Q0V2^xEL9glck|_LB>tP2b5t}rYm~h*L@0W7<*DU`Na>1 z&N|k=_tpp7J`9J$|SKH$2D8Gp({xAt-!L>ek8dS;d5M zg+E6(TP*MK_(D~*KW)kQClN*&_5@)*0c;>#VZGF?1&eY}e)nUklHPT-Gq1`(VBK1v zg2E*U1%}wWb)RG}UCA(tpP$c1lZXg5{|n9fcfiXbxyPYY6`?;qdVR?b{%(|F zan);PTcya;f@Mxzu5oErJ@dHSc%N31Yu4>_ua66@+@vCs%37IKR*&lk!pxr8E^!|z zXi2Y1F5awpewLz5sO(sbp@Dopu%ri%xFNMEt?)wqZ@K3_AHDfG=06_zv7_p?Vt+>O zsmCPHpr&mfd44@nzPLY7o`y&VB=>evAVkAk5mHmQad1<2o)XBj50*O5CKE=Tc+UkP zjLp7!yn-g{mrSZFh1oaGjpU2&Y_#~jSocwu0_Rm*(3;Bw@Uu~NZ(fq>;{JXmCID*C z=+dE!rFr=NL~9uHRJb7PuDqm*6ze{6W)HF8T%}q}j;T4UM*~*Me`Rye34zdkN|o~S zEUd;p??g4jzuNl!Q4PU0@X}PqKbNc~5S^qo6sw%5^ph;P@?0*ur299Zx}{IrM~WEE zUcy}+4u!E@ffEtek-#Qnmi7KO@$=a3g>dz+HTE3oAnIPuAc+K+$}-eFg$=WB)s!ibNhf z#-@-fe5sAE-J-`tG(g3K#*zw$5tWT^!lMS!o%%oyhV=!LnBlzJ2l zjLa;xo?=$Y01K=vpFPd_pwe8weWKM_qqvibaNUZA22yZ+gssOBHZ> zOdu>0wU^nyyOU#=Uh#L=FZdskmNzd-fFR)VKaedh8Kj&`mN2mwi^LS(D}hbU@rHsD zT4x+iNP&2<&E{3mdJqjy9Hk0>rfY@I;(F~(Raj)>HG9$6mBQU721N)8#q%l_g=AGI zt_0D-xr5Dy6l*nOKt~g0_yjA( zs&~pR67`t07`R`i`V`-RuxiF3*$V0v+Zrbx%(5L_LvC$FVs`_Llum~aFqKr5CWX;L zdIBheVwK15-cp~q+?>gSz=!i4gVhIA4}x!?9~Hy;%M@k3I7g#tgB!A6h{Rh*s)H}E zuxs!dLJo5@YOOOs?>csussBECu#B(f#C$RczQ~-b*I^s49;41_>uA!}XTR&Hzk7X@ za+Y6;1&fc9I-y@u(p0Zgx3f^-75yk8&4JR@@}BC#Lxio~HLKk5aGzMQ?PZHw7d!HN zF3@DM=8xusig?~VUq*u6SroN@J}bDSO<18s!M3TCmwVl1nJ zH1jeNd2j=Ln+>Z4WVAVIvDr%hQud1g9#8qUzekC^C!9X6vju43`EA>x!TCGREj@|L zkV@c(_d~~5OkikIR=-mMBnU(uEKA6_*e(Wn^Y>*k+%#uz^@fv?6Eg?31XY1rVji3W z{C&DRrD^O}x$F>$&ItJh{J74w+K%@2s2wA{5Ux>BEx#EK zWLF?qFY8x=7V$q#DMxPn{eu3Qcg-e0(Xo3ba-{0r)~|AkxFi4plpZS#VQWbyN^9UQ zg#1?^R^PP=##Jqx`g=ZDl_S{M3o*_jRXmsE&srEfyFWp8JoorK7hicJd+x>4c`J}7 zRSGUPjw^H)FED>lh_z@dauKMOf=Q0Qawq^$p#)2Boo;V0Jsp63pi&9+;%5DtRMa#Y zDD};op!?YDO_yBu#%^55F2wP#r2G@UV49-ldntOhDh_sA!l45xK{shgnQ}`SnsHL)oQF{}`+iMYb5RG1Le>n6?=oa7~h#v<5W zS1-!HfKQuq`%lw*IStftElk7{#QTdHs07y*^mF`FZ$NA2d@yUzrGC3;$Po6pkaBqb zHsl)AD4jrY3jrL-o8PUmykhP4)+99wBHTu&p{3J$4z-Gz%vDysAhF(Wx*c zuGM1T99(Hms8Hc;%bNZj1&mX-3-(3PE6h7hBeE(|qLJsw8_&fEQ4nD0s*-Fd78is6 zg+dtsj*5`)#eOUC%vKrqjEj1=y?yb6yQL}%h5PF(?-X8E?>mJYQd@0@S1k`)w_^?q zY^uLy)Mcd}-#`kJNx7?u2&uP@n&q?I^BGk-IIhx9P=b!_>9o-5h?J0zdhd%CLKq>NxGf?q#k7ud{+WCm=ktCcs#Axpl34(zCW-g%~nV1XMaC z2s}1A8&itB6&Jr|zxifByoJx+rTNM_(oo$~UjDm0!4ca`fXY+g^?!a81K^z7DGfSI z{As&7u5Xu7&=kCpwk!n@DNPP3b(HY4Fqdf0Y>hXWoeNL~gQ>v)rIK`YdryLF(7G&{ zdQ$5-{dWWaA?CXEBLS;J9ar#xZeEaM7u`g#V`1o*qZqzr4~wvyt!^m_2n#D&G9tg6 zQK1mOl!fI70(eTf9|f9#R!{o7{X%_gu~@xWFh&D9j_^^zg%~RV zvw~YY>mD6)LJLE-@W@@0+ZWK6MO`e)Y5tlmMFTqpbhIq-> zdd`jfP<8pA6BLLcqplDQNLpGfnKWRZ9C`k83OHnsp#ciK{}rNKfTtbv7A6n>D~4vx zL64fHrof$8o6w-j%8l_eQi>~tItdecR2~K=ux6V{t1e4eylL6r*)P)RPnk?7?lA8Qb91kexAsx;=m>~sw&mjY36$`f-s7^gEql@5 z+qqOXR@sy;`&+YS#0@`bHV(!Emi0YFkZ>(6jVo*|o~SP^g(YKtfJl@+Bgk+=GOS3R zQ4h@yS@X@x#ASC;^%D;0y3}L97b8XLpkD38)h3Env~L~Kn7|p`_$^b<1Hs&kMQwXW zjqgO#bW4~avXY>sI9ZziR?#hX`Yq z>*f|B-kNOGFTQ=CM%^3Y2}6Z&!{AZ8-cwGZs%@O~>a-Hvsj_7-swLCK%%T#3P-%Kg zW?7*dKyEO(g$9`^CarTE%ilGeaAQ+{g5ZzCnvd}^%BdAe1T-BJls?|DxX}C7=;WchyzCu2A6)+T(FJ42Joe zVxApK!SSpuosx_$v#CYD!pB57gg1xYodB?AZ2>4H?Fr~waav|d{f^F~aJqvxVrQLb zhWk4g6JWiObd`ajj&) z4wk%U>3amIJA4cnAH=iOwe29^OxF@?e2Op^HL+rrL~D78O(!8!$S-D{0$BcaOj9z4`EwmSvXnDSM>KiD=U9?-RTezO0> z=&b{8)yX@Gc?pRFV7do9xfx~j$>Kw(71k>7Ms7{3%$i?w0w$HffTZkDf}ms}it0Z4 z0D+nPdZ`zzYk7gn)}`bMn@)HDS$XsguULnRTuV%)UrZ-x?d$(Ek&6ZUdWhup>1c0D|MO~ram{Ywc`+57HZOEvCuuc=V~d! z@}=sqkh1wd7CElAhraP161_3%%klEb*7P(W#i%%(0_T=oD_pI4G{!=WXnE4B!PsqD z_^)^;=nI+yGCm;*dwv;3jmx4gjQ6#(c5Z+m`XEWg4R4%2MEA$;r3~Yo(&ZayBz-ULP^voWw?jDhR%j3sEHBT} zD<2Y~BqD!zWOeRKdj#S`Te3r~mSKwJZHKSTa za6in=*@%xWw;UM0mQmr+n<%xlZpuyrVUpPnnU1DOtN!%wy;=b1vt(1y%{FD84U40x zVp0Pw39hBHt)KRv>*qXb=(p^KY3g?6z{2)NvpK&JExu4bm6tZY+r}2eouVANTm(>0T9cI!OE39x zCgec?xz<)oHW3_O8=M?U-z}H^S%oXGM`-b#`vrEKO%V`onIVZ{z|$|CMH&xCXL-C* zdm~@`eK%Qv(uet3CxabaU7hqlB6C9P2Rt8VzwAXK>5!YPb5K zbT8iO{J!nqN~-BIc=YB?`5sFg{{HXfeclD52bg|LAz~SEvtOTSMQ&VaDItnz(o6)i z@W<|t5;{0gCe!?iOCpemvPgK);pqBN|9i1*|KK&exZ4JRvRx8Mv97zj0|6|=EmmVa z#?JpFQ3$%vPzy%i{l)_X`fQjHJP*1sEvxAw+n&WM%*(7aDRmoa9iPuI zAksbIJ6EL&pX9wMzaRYr0|7^W7TeDD1s@--P})w8E9X)?*(PSH@FDRs&a-N$l#m_B zwJ5~Ptel`d`N5XS?3AJyPuUtJx{Tt~gXqxUe!j}#=~}(G?ZbeUipnXAa?=6$`qVB% zTz9~eh6}Q6#_U{_7t+UG6+}*M@E}y20~9B$ZJ*MZLn0+($}4`P+uaWmcXu%o1;iFP zk>XK9kN>R@ERRMnbl>t~{b36U6k5J^YQTrjqs_w3c%UEVXg z^B9rhOCqjG`9^c- zm&E^gc-SF@#%%9qLwBXS+dGv{FYGJk0)Sd>^9NRE|K{7qjI9L_F-E=sKv>joHyZ=T zuU33tUNN(^bM~91{T>t98f-z zhbjjLsf3&;veFX}=5JKLJmL~UIj14RebIE+sNbW#G|{BZO1Jprx!-biD-BPpK$ZaQ z3(yj}^KLIC{)+ipFKjKth0C|qhkbdc0kKf?(I1+@nJ}Af+jJoS3IXd55#xvh7n%oy z4aN_Ri3SYtWW0CA2ZVKgnAPL^pjd9EG$Z9YTO3c8_#h?>#+2t$Od*2WA(DIU7}QTN zFb279-}pWt7At6X_mOmQ`s*Uqw`9-W!GkF)**XXG1NW5xspy7hwiZNTbn&lAv}NVX zh71?>7uJqh3>*M8rmypYT0nXH*gaex>$4Bj(mxc!3kLRN=5&ejM1#|#APxsxp_(PP z?X6qk-?F@46%eq4NdQ2>m^m$;;!!{J(Tl3Vhr8Ile;8K9bFm8%^ zld=8FFN)t`M(97c$cxH6S{P9UDDb=x5+0%Vv3DZoRUaQoud zbZDNoLNrWV)F(5?UAT^qBCXLTBM10%<;;C86mb*LQ@>hkowbw@%6CaJ5j@27&hR1@ zR0M|)iaE|>kCZ?cru~flA7>_{!ywwAl7{;g18t|22W-@xCM=dag8U8uio)ssKIv?D zljOfPAMd&K@W=nRa{B-8hURtDzfL=juFZ9l69Ao6R`%^nzhCU=xyZ?EZfN#&RlMwQ zC23@9xhJ|*utZ?i-my1QwRCdQJwCa)DV=Q&Le5D&5a@ux_4Jxj=(D_-(j2QNS`(aX z>497e?eq{-nC?Q1ca7$$XP$nG<{+0Fs38OiaPYU07y@VqbAFI=_m57-roLhtv1a{BY!GAZ zdc&(1uBZ%x4dI1^Mh3AjF%b~qAwBQe?ndIO#!%Ni!`(vZrR|J?Dt}3_gz^LDJd46) zl5~rtbEmpoVqoBU>Y<{=JO-^SCT<*iqLld}IT9kVnf07^xM!7`;d)2+Sq1^YCB87= z&_d*oq!&!uxaT6h;wvU9#+?O){t4g8W?0~ue#MF&yoNMMW=O$z(4({!+F>u@$%&uK z&+$!74V4e}WV6GN+n&!orgrnsR?q;``VRj`Il!5u%dzK2<+B0&#(FRN@XMB?3Mw{) zv7b2Og3aB$*v=o(4Kfx)3%pdHMGqK<+6E`jkF!e;X3rLG_l zt%pKj!T5)z$*X`r|MZ=dy2&uWD|d?Jj!M3Q_d(_ZiQAWCnJb_#;oGHx%~!Ef(Wd5s z+slg2esvADm`N;t;4ZG^((9i!kdAg%$ZX(jPIT|GQ9NU|Cz>**H1d_MBHQt@PK(rZ(3G#L#=tb z!`qPfuNN6B>!zpH&Vx~>f5w*&)i1?%63F*1p*}<} z|808F+sjEL&*2yTsARx3Gtr@iM11z!>&57v6f#Ivo%}fDTRImJ;cWfvhM#w7!zd~3 z@;CkadK{XzhK;AN(xveqTUWs^#0fa`OH6;vl?#!;yXV)+>W>?{S89V+%05iZwRKlr zP4eS*RN;GbLGcZ-3u3G|K!(M^O_Gc|S702!6raVA_dp}la=mzb(-Vvi6J2KP{m;cg zo2tlM)7MuHcdOiJxcUL@#3fD)8l^sxmlJktg39L`G68EW)!EtoHpy222Mx1;J zn9f=iyx^(gMv0N1VTL&oIg?Z3nsR_2ucm8Z$*-vRL?&gp?1nX`l&b;MeMfSp-)(%O z@%oM3payU0(&a^8jjI~!Zz(CswNuJMOev9p^4ST@rQ2Fr1MWE`<_2LSo6}XRMq>nT zbT4>5fs4IIr%8HX#V;f%SZ*wCa=K9}gkpiUubO~*c*8LZi^2Va3#)eh#YHdvvAObR zSb6-w7`Pa8g zH~z}omDr*PazEKKJzH?Mb1zLldWS*lr$Mq%VJW;d+xcP1BrwODqzVZ4dROxT#esMJ z@a#Y(H*tumwCwlEg92GVm=GucEAvkBt`B9BZ~m~9nWo+y{vvTB+W&sgCcCQAaV-}FaB^50z3j|m$7TpUm?O+#9@d$M z+{fvIBSY@X+ltvZ7Emt(QV@`3Dh?Q##-$%3{YV+2Jk+9tiosH@C_!ufAx+~ z!5lsNwZ?GZ<(=ezoUA>juagFs`1q-0``S{Ia70Hu;KOt{?yua1#@WeaA+7u0N&z;V zC1pm%9|&(VQOlN}?cXWt%0>G!T>KF^0bAq3;bF)5R~yHMfcvf?;ym_-^pirTi^0YF~ih#Q@og4#00kQCyz-c zd^8lFeqhbSSK^&FU6nA}>5x$_t14Fi$9+CfBCTVgd+$8`Mu(IydQe3Z&K!H@1SK?UTm6ypP4lR zrZmZywL7V1qMznOkMR+^2B}}Ufs9TQz$don{%-JiKJRzmu*2dbD3iLPVkez~nt6#e zJ)V*&X;3tTnl7$aKIz9F5;;DI=OGj#X8fnL3cA@4JSHhv?pSm6eYa27xMwG4swlP6 zYvb4jf8N{I<9hjoySb=&;^82J!i(87?L$yhH5WT~F+2u3f{4Wx56(Q5bRa6uuRU3y z3@9A^i5qj9?smWX{hqrK7WZJ+#S~9!oHa!&(~a5oz7c-wVYBA;awmJ3qIAvqNjQS2 zQ|9YK*4IWP6zxeoq;oKOxp^XMz}l_07BFd+5_M?IVj_9Mu;?X|jHE|)y7 zJ2!R{&P;+Fe36~)@Xb+8g8i}e$a^L(Y7TwgZhd+E=_wP*^!Z75A zryQfjpvTSIZFfzB*RQ{ z&0&dXKD#!Wz$C_g+eUSCHrPJ9;F#WwCrceg2U(@1^}D2A~(ITjXoa5 zR%X7}vcOJ=|3tcQx-)(#cfBS0j=p#yT)2=8W6bUSP?=)EO1;ERdVU$sBVkFMi`E0! zoAiEMXGGaMq9!4(gXhx_1tcYvjYah#-8*8`2^Vo-r19$uK2f~v!nZrleR^6UEO4Wk zGvfz+^O{3?U(=Dpk7*#6)- z<4;G$($PPRMSSUnQ&X0M7Lwu^z|J%a{MA1K-sdHXCjLc7jN4EA^P6R`llxJy7~Rw9 z<<0d zJ50pJp%m`MU9YLIi08wZ7>^_gCT-u+eGLcdzpLM9zA0B%9^Jq#EzH4RR0`ToXL#BGc@}$XU}$ zgydh-JgXYF+lDV=?aJvv7|itK{;AE|)snQP@;Y_ClKitje-0^DL*F@P-+aH2aAS5kIt4;PlWkBzsGw@gu^}tGifuuvUEtrx1iL<`KA@lVf~Qj`Ev`YM z)^JCQ2J2{v(^0R5vMPtz+p}|;bsmUzZ27*`+e!9+D1f5wzSErU&D9byS?`h#3FID7 z8vy_=8rB&3$P4Sq;w0!lz8@~6TQUxpgFVF-Xjfa-j^ez=42k&Pe}y2_Hd5LQL}*N3 z%dTZEjgib4wil3>=w7i}&QnkX2uGxl?%>k^RbO5t4*Cjz8gO{i#Tu;^MLpzz+DiZ> z9Z~-0$@`}ZpQqJY)hl0@aXY^QdSsUP?`YEj#)>vi<=F(DmeNZFM)H%aFrZ8K+MFbc zRWhC}UENA$0H-wV=otf~IjB`}*Psy$K}m!#24K1oOeCpCzkw?)?2sSG#vmtU^Df~x z*O$pl9HqnDtLYkc(hj;DIK1eF_h%c%eyPvQ={ z1;BVI@5>{>s4?wpe?Ndzsa-83Bo?ogNl>j}02N(wqE0JIm~tu&LFn(aF?n zc(%r=Aq_DEhhr30B2^m*ss%A5D1M(NWrBnVGA5$W+18K?Qm^h*o_U3| zR7kZm8woULT}fEkD9u4RroaIr2`}!xUvfm%n-hXS44z@6?OQ`N23F1}r}Zc@K;^v~ zdx!Se)?u+#Wv+~B)K2H&AK&cRa?YnCGC?s$9H_fR7{iGUTDObU1`h=^xOe>ycq@+U zmjXKSK-jo@NvhZqYn<}qe~oj*Tn_K9=et`Y3Rz<|{?3&xvyG@^D71_3))!+1W^RDB zk^50l!c$63l2^^Dh5{b#U5P*&r>KN~Q2f4oZ93%@Vv&Jc(by(DaC8fsklp_du}DM+ z;mQ7IF@O{t*Jz_zLsOOY;nDtBU)E#-x?U^Q~t3&QLnrk(J1S8)z*EoC}gq(vc zcsG1#a9FiE{kt2W77qc(O_^qAoqt_CX>Pu2m?+@)B9bZHwqRy(P^aw4{f0ps{(3LS zT3MDJY$#1}dMYR*W9FUPsID4hIb+JJg*kf+xG?VgSdD)mhj!Yq!VMON^=~3yPoVUX zKm{QXidbjUz5HH(&=4Iqh(Z{%H&tOUpzB=+E0ji=Foqd9-9YuptE(!5c}OtZzF1C7 zTBPkYY%N}k0SqX>ys@kZ^lEmKCqAFiU1jNbczO-+jvaBWdccQRhoxgyY$t_*K&ux@ ztDVy#VG)s8yiia$YSsX#|C=@1*J4@aHV?So*M;&L-k}~_5fO)b zy!$H7Ge`bUTU&NS8cQBgY5o%Vr=DDcd~u2*ahs*#;FK95BqkjcTjzcriuMG6;8m^- zE1k}Hmnf=Y)V*^U15D9{PA;=au8~TsbdMuRa$&aM^sP%TJK|T1#7&M>hk(B^cmQ6R zXDG+3(<~*n%Jb>H=+Du=h*{su?MjjxdBehkx#h`Im0ow%_!MGKaA%#(SEQF%l%X&H z8D<@MrCT8HngpV34FQ!abLR#d6u!(nPreCKfR5%av@kV)T^pXJIMj5{c)r>d)Zl;X z`FifT<35`nNF0+z!bl|l63rn0V;C&Zf=Z4+zPAuW|4Z&=ooQmU_5-E@CNmV~U1rl2=WvCZeRvQ9J3o$ToU)x+5|sHm%oJc; zFq=isoK^5DWqA7g9o2?J;Ga@Kqoh(3AM`MJhI$b3asNqD+C|x}S%}j{M2F=gO-O7c zz(Lns;(bJ#{{GUFe!i<(_a--1YVWnZt(!BbHV?kPEcp1S)8?b2KIjgL>l)pGFex{r42eG(5a_+tRbmLoY?k`iavNw`?mc9mQ z3f%C?nU}$At0$*3de6uRbuF7X*US;8zel$d`l-H^oNu~$;QzX7lIC_j-^w{GX@nX_ z?wMjx;Rg1)maVIP8-ENLyOVkjJD0IsVTPlvrTjQ8GVJ^1MqO*+XHW+g5pWnHeHw5# zM>Ssbx9r0;K_d8qo^qOPe(3$msm~za!Sd7fo`?&dC#Ef@SDV!FkeKGRSeT-ew04}N z932DLj3kV_r6Yd-PHmJA@&OYdEUun$dI;0@rx};+GBtW z6&a(g*Ta&4Foe_0h4pTxx0C~edu^6=kM$H0#?H~5zIWQPRB1|?*+aM!0`HIlM#R(v z#y9UK8c)x}8@gMxTH59Hf4QfR#^d^FRGHp|?ycsEy2~>VM@&z{$)5nJ5-yT;MazS5 zMIZ6LmQ+yH=w@!&zL_rTD=yY@d&ILTidprvVdU(5ofsGNcQHO?Z+BqtB&a$LZshZC zxkpCc`V#K7yfuM2)Hs^qg=NPnrLQI)Fu%;!^=8)F)njV^L9hPg92_J)t7qeaoZ z0cmC>T1Z>l){TZo06_EC`GfgM5k?=?_@c)uwEd9J3yUpC=3Ot|mvnOGMG9=}LdY_3 z8JB#JOvvoy$;fxse5q7QHW{LQFbpCMy5(hm@{1oZ`zo(#c6C*~&b{y3udRit6&FiA z$Nq%XfGgc|G04=DVU6cP0Jc5-4mm9v$&rIlq8;9}Kk6}X{bS=US4`b|=jMAJn!!gq z+ev~7w$m^6iMVV){l#K%)-_yUK&D{6zWpA{=+ZR4*T4Zc_rj-n%gU^MT1keMLF4Yi znX)0WtkCo@oXI~a!>>uYQ;S`XFFQ0y<;zD1zF>4{Ga*9;U`VG2iN}}bu81-#Cqxqg1qyOo3sVbyy*Wu?j+@177 z7J+d=1=)A1H??h9pb7+jiSR!*6G#S?I+o{v=<6!jTo#-y*kJdnAs9RU6EP$u4vOz6r}$GSUnk@FBvM0zK4|}2 z?33E?W@p68ZT1UrvzL9TdOM|r9qr&YCrO5$1e`3g`fLKVoM&>Mv>m%5i;FNw`uK!t zCE_oI+0^Qx=lFABQjG~-v?$s!U5u|VDUu1Y;<`DV5=etAO3YUqLS%32$&E4NIIsXD z#(0cqqb*nM$1OX6eAO}kN}gQ~_hW#fqL}YE0M>&R_r`;qgF_PBnRB1W@Sgs$5e0M% zVHlZW(izT)i6o$&rDUc=!s{&B5-vwd%Ke@Bj(=ep+V=dyP77EQ_zuDqMRaK|tI*3E5#ir*J@Uc2c_ zxasj;Jwerf2YqPYyM$1H?%a!}M|OU6hRL4i!@y6cW%GM>i>sY-3EfKDnKgOz+B0kZf{JO_H!Hc7@czeVyfM|mNx zr{{3pZUFKzh)hl<;6|R~$N(zA`y6v}_|8cqlc=NdJ0sJVW_nPk-Y)}d8a3XT=R0mO zBEQx(cONtow?H7kYMD`ahm+%k5c%OZ0)jk3iy~YZhLo!wDOnzOhpWxZ0MXe^9LQ%Q z6cHAaEYTz`V*Cg9WyLLjnvIR*y*X7DmCq(&x6k~`xWUOVf6z4;l`V`(gkunFO;M1c zNJBD0RBAgrOyo=+R3ro5eY9uoVQ?x!ID~sDKMK5SWqHwP1S5YuKCH{*)bwv%Mo1h5 zV8e>eI8oWnCkOeD{$p= z&4g{2%kEO-(3YW_|Jd9>8QOKGX!r)^?MaKgavm(s`_@rXCsS(@#4K`F3b`X zvd(N7$GZq-mj6l3*G!TP6i=;%D0{#;L)8SFd$r^`A{U4S-Nv{vEuJDseDV~faqj4~ zyut?fSd2xn^lk%|Sbv9An@xxrD>ynua&{q7wFQD*G(v*auc{AHs;GN{A(?l#Y;oQv zwdd~7Y=+Fd8Z<0sV??@2r)9AhjN-$O*Ch*k<@U|{Pg!w2F?`%SoXJ*g8pAd4(%bo~ z4fO`9{BAB%PwZ>^onOm)wy>aYtmOSG>Z&DL)$u-^xQR(8G;H4HEo55URbxrLF(Ew8 z#9r(E{8Cf-;YwiY8zSE&zEXm{N%{6Y+usbFV|YfzkLT&3BUfiqtOwkiDsmubaMx1%fq@UzTA+z;vf`zBnk$a#oK|2uA*4+ zTKqYHXm*xkV`sc!mCl9Et}u!Dls@&~<#`$=I@nu5-q`eD&3YL5KPUk-R#; z1R4co`DV*Y4P_PUt!_;r`4Q<|I=7V@(PQX38|sYZ6NW)EOWc#d!~b%mtiqs)+*9t> zB*(7IzRBMd+2yH>iBo_`;`Pt1*%v{SB~lA8Q2bsVrR06r=%%FcVB1 zz@27Y@~hP^UcREv@8-L(i*oH9DW*?zoSB?KYJlcux0W|b*Ez_7b$$v|AuIBwjL5riX zNHu_O*Y{;#v7&1v)U2gdT}H+PBbpSh`7byxXD#GWvVA|6ODH7^5nlj+PNz?oB)?B! zzpbBUGk(iOvUtH0kjg0Q8(HPd+_DoO;GARkXCPZP!>fs219WZy-AvQm+-gy4A$1$> z#w@Cu6W2cJ&#Lq#Rm;rX5%=gNgZc)mTW@|yFTHV3`Gc)Vjrgw>rH>Bu8Gdqu36AOQ zir+G<{%TqhH(1{%2KROjvtD8fb@R!U2GwL=QAkT^a*z-~b7Y2b-JAMtk(Asa&-oR6 z%IB)fPqiYq(g)?9iyTykRQ`WP3xv#?1+kM`F3^7yT9 zj|AgtJf;X-;%irU3=YU18jFX7p6Qi_y=GIo@?`S2Obk~ z)$p;*!aN?4m(Ew9lJ5%oS%W z|8{U^(uv*5f zpMY0osGmmK`W$BQWi(_!&H^2lVG!@$Y+09cPQvX8bN0)Ew3n+{mdR1zUj-~A&%kwP zoGP;PyGEPaayA~L(lR@%|B*NF)9iaPw)AGx_d>W+7sTyqiut65)E_YMPuENfr>21U z8=^Icjad{IB{Q|P=%u|dHNex;9Gpnw*r>`4ZS?fmx!t|H_U(fvZKo8d56}{`QA~m9 z&7~h41z&J@xBbQF-1)xVB{6!Rt&iT>!TkL%-miModWo#mk2IRWj;!M9$gP3J(FB!x zk)ooTNQM-VED;WZzUkBXTCclDKYxBZXZsu+9YJsTRPeQ6wlcadn}lKbLLb3`xrwln zl}9o}-e?Ez3A(Lnynm*4`H};JPosR(muGpeJs=MbeTkKAe0SACS?T^oNRw*}(%rPff)%3lclTbpURQrvf9B~Z9*}b`H_39Lvd-FIP@ga;Cg+*Ws6S8A1;|br;EYU!1DX=yJ-v_$*By5>&fUd?|EgAV z^S!g6rmb_=b8F%IjLTbQ7UF5zdTQ5%aGwVJ)UV!R3T|)@99**!7Jh2ct$Z5#SS9}Y z1Vu3mFs7#mV}gOT##$6;WB7oAM%%qDrOzf;1)n0~sIP8UH{}TClmi=V`yBd~b3X-S{=u|rv2k0T_ z8GJ}*QzstmWy+@yzFNKIa$ox4ke7?&88VK$rn{F`EP>&B861>p`M5(3r{t;As8E#D z9&UF~DtKN9-Eh87DW|V4;}+oD+pVUp|M1+)t;T1Qfrei*IRdhcc-M SH!K!)0yXNUQ)FfNg@ldPbX>26^ZsN5aK$!TF`zP&aU!!) z3hB~ET&|ytmmpTX=OL0^7F%VU%Go)iU~!?6d*Ut4JL?@UTfPZGg{}yE?#T~T7f4$5 zl`To*9@=}LfBX!9oQ=og)8;2>o-SeR*62{RCNX76BS83|{OvCv$A8pGBH5BDYA!XD zF)K?`F1QN+_hC%|F`ri|x)8t+MCV=Iv+;NC3|L#oip+U4Rv)a%Qomewt`h$GE(fhgCRm$1PE`2_Z7%(Gny0h(UpM(dB zUr>f}qY_YB#du?QfxX~zU7^s>d!t>tzeK6bIm5#3A0*g8iA>e*+`ILgxfON7MGVDtvE8 zWua|srH8y{-2Gpwu*cnJ z0WELk5MJtE@{^Xu{ZCLF57WqqOP2&igY}xG+9-gi| zamO*06urm|6=W;mkON*htCU+%8Cna>&K|{s5LpZ_3iytW3W9+$??47o;&mVBVP6Xv z!J)4<*76yDp9VUV4!VI$pyT!wX*B6@f9Zd#RcOxW>*LZ=)%187z!a^Mthjp+$GW|^ zrYR5=B--jB-4Mn`0F`a38H(6D-b?qQk-+!x;tO4Q0+iC~3pW182csUAbTaHPNvUW~9vUmiU#621)>5t>gvY0Ul@+yN2ufd?W^Q}j@Xf@Lox#a7 z;?h6N!`gnA%f(!;nB91$2)WntMA_}c&b4ZI#1$i|69Ek?y<(R{$(InuO2<8{ zyNh84H>y$6;|P6Zp_Zf+wZRk16VTK()#~!=s6T0Au{596!i^1($WC+WigPj?O8IDFy~j>~D&gY%#sGG5>kGM!j`sk=ElJ6ZfF43J(6at%kc#kfEV0Q504X%yF7nCxA~u5MlF3l1CvaS){UP7T76{Bd76Am3ji@)G2LTy zLxcg(w|lv5C_YOAFv6@W7mBe=>({TuJG?fSxPAc0_%)W}Q9*T}8a7$ocI9e>{B67R@`(ms}^?=bps;dpJ~W^zLG*9Zk3p zC@*Y12o{I20U#i)F{e6;+4uCQdSFy@_;6Z5yDy=--?B04PKq2E$!AJZrboOl7cYZ{ z2B~pA6d(GzS^!64rrlY?VHkF~rVK=CWk`aksfvxVPWXqiiNlfR5hkz@Sx(25<=ao8 zD1f>)3r)tBdwQ_lFa&4QVG{;^OfaUhZG0hvvBlO5k1R8+tYlcSJFM4qoG*}O^kPJ1 zZG%1vr5N@ytwrp%Pjav@;!h9O4|Yb7bja%j4EU!JG%}hw;>vmPaA9u>ck=yyZYJv| z*FQ)~oph?_TzX|Fj74%3ldx?L4E5T6nwJqM`8S3`NlMozm^o8mjx(1?EHMyCgIxQd zkAJfs*~58GcfJbb%;LzsiZFX>#b6}1b*o38Wq{WX&-H#`d}}fKMvot*OE1X2 zany-hzo4EbCnA6VB6ZS}8ntsAjCx_ErAN!DP^rr-(PVK4@T}{5m-JOB%ids>h8auQ zr8f$teobY;mKV`R<-d=h z;z(O2Wn~`>fivG<0EO!}oB2sZp?x%C*eQ+r$=uO8(#6-ecXk%<&F#HRiVn0;rcXD! z(^Lq_s=rRoqB-#Kmj~wRN1-xDbIYGGy>-2ai8dk`d@S8wrx`?)(p~EU5RzewEMoLL z{3Hw-pe!TL{D5GYuy82ba zvb5f-J^-*RgI;9mlg{(c;e7(XuAGSv(W=UG>x*VzdC!_8fZ=39aW;?wgLpA@mrJRDNi=_Zqe>2Ou}jn=Z`ZJm%;_mBWQ?qlmTO+0M` zKNtF6fx7S_E;QJa?)wjF?H&g3@zCq_#G{K^%dP7=00aS(^64?Vej-M&p<=q+LmY#7 z!S9xR^St>ru*pouI+d7$i2`uEyY^TG&KrCm#&BLk<8x`XUO#w9p>s%tCoo?KaSc!d zjT~<~8O!ha_|g}6$qB^dQY6k{)-u6}45=2c<_+^tyS>uQB>6<2W_DJepU9yHQ2gC0 z+IN4aDHMtXW^=#OMITV6rf#O{j$l5fFuh3~jwa;3yab%i8iKz+8#ZPb13_K^m7lMw z4bzW7*hE3SA)mu+>A|RWyf)yI?e5e7O^v1$^ST@1L z_Wt zL0HD|ALE~v-2Cb!($a9^uTmWtKXM6;&e8?H`h3086~TVrK5uyYQ1QOUo4QU;Z6-AJ z;>JTx=tn7hz}DzxZ-@?^Uqvh%sz2tZjjuAR7@Po8d?*`lSnZ-nDAFr4thRMj#Kq4; z1`P2Qn@LG)w8p$t?fOY;q4-BY#J|70^zK;#;%5vIwT|AhuZI%Y-kK%Dzy&di=H-*< zsE^}5Vmxk(&J`v;7-6S(1rV}=#A2(36_gN;fD(7NDZ49GB)OLn<>`}yOb?GaV0gR? zR_IX*ph)@jDno6ur}4>w+*Cg#@FsqLPrLn(*z~Y8A$e64GE$+T+{|2C9rXb_kKpnI(;)-s zm}Y5Sr=u16mtczL=tX`az{zcw{zK~;!We`GOF8yp{bVg`+1ZG7RAQ;gQxXASL$YR& z(_`$#u7+q*r1^jA#4@~nMLatWb@CbK+6iA0=f;xz(+H}V`bUxe#U33!te#7|XjDt< z&UhjJ4QXV&v#(auQ=t?THapPq<7^LYrC@p60q6@@05SZba|;tmd;a^Lnb_gVIi?jh+H1H=dqWRU86-}zyySO6z7fQ8b){g zOlghIfTv)^sjsN3Hp`bW_wpaj`>G8&Hts{`Oay^=ZgIByJ0%&lQvargFRB<~3mR)& zx{RL!e`xGm$9;%YAZhc4r8y;6MZc765S!RJQedeOV9Dd@?p5^G{X7dJlyJifr3tZq z9h63vSg4=kKJ6!!_HNS6CB0GiRgrHS5eKlA^v`oG1AU@4IPiQWpHDQoY^Oc*bcjoc z+$A0-$9e6?E1mdL?T|=LPlV;4tunqSE7K3z(I1l$%;1KnU%>?A{u4~e_i4s>Hs&ei zQ$ay<@SgRBqBOZ*0tNc9hVdh{T`@mfSf5JuUl{rqy1zF0TH$A&BRRfcG+wT=wmi$! zVgQWj#hI72m<0xE{Q$V-xy;x8jEEVZfjE?8>7cG;TGtmNvbq0FP7NYdY9gAtQW(FX zGByh`Rmt4G)dWUxg0J19E1zfo!e9kOTDaG|ugBK{{mq3QAFS_`YM#}*^>dApic@RS zHaM+hXrNbpU)(M)P6FPL=C6-7e!{Q~6COf{J-L-#t)xr-knM0!yJTujfH$$Hj|l}O z<9Mu*&lE67FamwMbxTttwDmumy3TD zR?QQ8Qd9?#E2wu(Q(*fj)yy(!h1BWmmD8MT96z19&i<^A*q48s`K{4(kf?!>GXa&_ zmXLVR>pUpHQ=!G%aLLgkdBru$+N_fdEbaeg?(5xUVn087XXf{HX%snp2 z4`YG1kk?3Tu&>7}n?3&v_=iFPC!H_PD-gyWN0*eB7EQaOj~0z}we<d-%2bYuiGCpSz*5R9uXG+Fk9o*aRGtBNG!Ut~{d6BqzZ ziq2`I+yLk*yG=3a7E_)h=ayQLo~%{(z4DqAJp~cEc(^sGN%GT_1&E7Zc0etT{HXE? zfK+OCflLOGoF2J@Fkn65YL$dcN6_l$pZ#Q#Syi;TBo$|;e-_BA(eYdnQ!8z_$JVGr z4|j`T5mB+$GH*U{fYjwN3f=&X{{@n3k=^K^?ny+v3d5~X+P$CNw8e1#HZ60_X(+9FrJ;`cAdE>%I6 zYahAR9ZzID#b*ODc^tI*kWDiIO}p^nXi=uP6hc8V1Vu|cv_+XO?kb%g4ZMNy;E`f4 zGHbN6A#~7ws>u0F0?ArL*eotSuH8%NqKD8>(4kt1?f5+fyg?Y7UI(P%QR|i^WG_h6}pf z_RpcweDZ%f3)T5lw0#_sj;qrUTA48Lpi{~J14izbr$krh_*^7lIqL|)6ln7bCirOw zQYf%+j7dfeXa8b<=FB3shL!Cg^01>uu4(dez7_oo&S|A{9C$4Nw7QA(9L1Ir_aM%7 zZJfhpYwC{p?%yh&f%O@0lrunqj`qsskj=OJPLA7J{gaO9c7VqtjJd!UOo)Z5^~l!0 zwcWR7R~P^G>%lh_IJHP!2ClbbjajbkJvV0u8^iDqn*?=qsfztOvI2j7r_$l;-%>%BckiaP_QITC#*1qtWqfz$-Xgqteis3U+ zsD9WZaULyYE1AHCw{?{b*Q?Nf?;H#{S$Ed|!aY3VejpxiJ<+U?N9Yy>rDh%_L1qN)NNzjN&>CCnl)~1#esSla8 zfYP%R@$vYj3hj1GmjAJxJ?_WnOP|y(^Tge*RMGQMu z4g()AhgOtd9)Rn;gej(c@?Q&$FQgPF9awE!o#rnH!tIHsPJU}=wcGi^f93A*AQ%Ba zMme;~zrEK}1GVZ8LYJ-bZItN>qw0Uwu6Onsp>0lhhJc_;uayayzv-4{_2hJRJrB)wf5w2{r$WGa@;p? z=<-2;A_hf|!SRr(f3)d1kYXeTx~U6mspd6P1}~O^)`uvIKa$t!QF;$`9n;L0N<#lp zl#i#`<+ZH-1mqkW`~({;fYpNAnVBr2aS2ruI?grlUPy!#eaz|~kTT$H4W6gJ5L=?#9}dTo+#Xy|MlndT;et+vB^ZM-+Ojm+PGIg*=cU-kGv4)x}J{sGSBOBY_x4 z&%ZQpKQPXT=>KZ3u}Hg)Hg^&jX~~ALtX@)wRmHT!`m{TkeleQWgy(fesa=z0^sCFZ z_q|O7vYY1bZ?Z5Jg@xk@vHu`Z`sl_->+Ip(G4ibw7*R-omZ)B{%=ETHlP!fayXevn z`n@OU>}VTyN9OVEi|V;9<;IM+eh3629Rhe?#2aea(6lHp)Ql^t$%9gR_{vX0T-@f` zO|`}cRS$OsUWOjaH?l;prq&8*YHB1{B*y!;SY8H|eglTV?ce<$uFgCf>OcPXpBY0l zvW%fZWH5v*!%V0wV;>S4QpmnUvSe3eEM;Ftwm~6V%AS2+vV|z2vhQTcmYunC@45G! z`~Cet=ggVUd_JG|Yk58&&k8xq0Vx z$*SQ;*2NB!K#tqOOjGJ10&#{mM#FE)Z<1Rd&`MQFc1j;@68ey2h|INN(r=c&AImf? zSNg%5vsr7|*U}-pv|qcVu0Qwn_iZdJ(y2VGT3mISSX1|Y$eit6W7T0;Z*QIR@$rtq z_hqcRaqIFoegdEUu7MrBRD6HYvwLp4ycWN1T6U>$^G_(r@WKWl?+H}n?LtXL3A)B; zr|nfK1W?k8b!GDoa>LNqb>Ze4)7oGNVXg7!E#oJ8C;u*LJxrDy$TiUa5_x965O5d} zM9~JMh*O6W&0ACMtG?-uT0q3@cN}KUW23!ZDt{HQFx~EJ2Nzgxue`c#r^43g*AuEz z5KWd+2IDXw!HtVSmtUCwKm5r5AsDJ4Pi9(a*-5bYjlQ`03&wcgA5IfmKDT~o2P!}F zaF!pfbTRoW$u`CCFE-!|Z5tkWC3a{F+uY7H{&2^b8I@i#-B3t>G1zUc7z~<>+$CKXX=1$2ij0dQB+u;_K(;?nm^aca(rZ=!q zGE6BL?7Qy#@L5WBsVX$Yb&A=Irax-r17?s#zRh;X0FP(0F`yf7j6GTK`X&nbGrOd} z6GWI`VwY%R03O)flTy?0DC?d;ZE#8xh>(cqj5V)+mP%j2iQUavW8UQ@sHuQL7Ae3Lh^y|j)i1$U#kbh|BG2?eXYHdUWLZSn&{2E=hR_&}? zSizpQXDDdT_@msKRj7|$(S^h}G*PwG|x>qp%;|HVI4MTk}C z3@g6EfoHXXOuk}4s)rHdNh{9S<7mpa?M}1V%M=niNJju?xZixX-5Kzb6e>MXM9U_| zS{jWS`o=G|9vwhptKb>b)*p8G9{l=AbtgsUU?A@#;0Ik~ht*`-3+jY2IhO?FGKqcfd+%7Wl5-``mVlT*%z*=z!7`!v5ej+LMiw z|4Z-uKgQQ&MTL|=im!&@mp+tFZoU)$bWNi(!uZ;^3o88XCY?^E{H)==&H*Q(UH)6t z+t&0hy<@>>FI^8qvZGG_QfJ&_Uf@A$uhIA$)sWJCa1U3ATIMq&j5Xf0H-1S!J2!;w z!|@S5h;Q$w-&TNfdruPSersxNEwb!0co z=e=XVe6Tk`SY3;=z{&tfh!#>4hKNSHq<{pe;L zLIXI!R`V!Uj3o_)7;0%%O0|#l;)26GdwU9{b+rf)8&pBvS_f{qTD5OEU3MC5+o`w6`_pU;^HPt! z|K}f^4W~oRXSSL5xxT)*c_q)*R0?N3_3m9r{KS#;-iwB4&wgiz#R?G=0jT&G21Fwh z&|jbu0^tw&vQ`CjhECoDJa5{Cyv;~18IUoM^?e+A_;aymkzl2gnPpy*9hvG0f6qv|UbNY}=d zt=9gZDwXt7n$9TE!~(WH2edM=m4OYy^JOiJW$eR_3jaBM$9cuBQEf63)I2-*dnOA( z*A`(rdNdAV2SOEaGWKeQH!L;4g>GpWryBZxRX|Wr7*m5m6kUukiMfy+Qf&x&wzYiN zyEMv>H77R^t9veP0~vl-OjM5jmG~O2cF-d8CN4=USXgcHu6ED3k``ZoI+kNiw)&~Q zP_c>P9jDY&xBjK|Z8xKmWJ{*_P%l}o{DQJN--WD^@ZrdR-IJk#l8(KiGtP9kIia@! zG{3;OCoc6oalWJM9B-^fy;rnY$!+Z-gX#f)4lP<>`ekV7_KMyNpFhK-rbil^(Uq@|~w=-%%YufFXx? zRLaD#-uT3mF1IHZmQrFT?Y{4RjZ{M)KKDxt*(mG$(bTAq)cE_W@mGb_HIXFo_)NKM zl$vMi(8E^<@{u@2yEg3`DljK7gv`B|G`i+9*W9!f5V`d4=$TP*@&;|kiC*(dUH4Cf zaW3~AnKOUYm@8~pOMT-yQibU)Hr2Ir5YYNbKBOmtKX-P|b=PsAd2T9z+eL(nlD6%F z{6MZ(n>;*s;vw35vAL=6{5dAH@_C;Qx#67xwog+VPni%fyF3tMaXrqDl~4rdBk{Q`6ZtY)rfqE7VLO>+Ga+$NqZ{7xlPl7@J;(e8_WoOf?$r)TuS>PXl0A$C9QY+=X! z%013mI`g%enZX9Ega@vVt+i<{K@S%!T}p((G!HsHXvqgjzCrBcwTdQo!tNow+ zC%AnA3%I{f)?vi>_Cgg^G_Nz1z#&oM_ym~VVD6fmG03O)27~p+L$FIf9#6U1Ohed5 zOzNH#3+AooC=I?aTtn0y!@IERlP7TjY zaou5S{`;aXvoDI5vwr{yuM=CnxcJrP z6P?uaJ>Mt<1NG#@*Ik!cOUNMv{n9D9E4;q9p_!oHhZ^(&0|At;lp4W4S zh0BTVzrTkP`eG8j>xzf5d%K&R0k)7A#~=JO`7U(x_7OKu28NpQ>b>omh~NMA{b#zF z9pL8{4pAk>@9_^>65F7491u;8W&g|kFdd#kL&X)>n-wU6)OQ<1A0r`eu{Qoiz0-UA zpMOUA!IvJ{XyG`!Apqx{ID)evC^J4@tITlSr?hDG*+l0nD!0rBfw!nj2p!t;c{`pp zwRaznAV;tuew3~1Ja47RrjIvD9m@&kkh1NZQic+9F6p}O_8HR$r&;xqxXsOr>4%M} zTIm#~L_7{V`2O=5A2vH!kkJ-Qbxmxd<5(Q*DsST88|q;>sEsz>(oZmwEYA{`ugQ_q zYGkw+D^2CWQ2UIlsC)3OvK?LcwldMI@SeH4ZVxN?BBYLc{5vEQPMo-^2JHGD!-Aw7 z=rnWR-FY$L7UkFIMAL)AQ091;(Zj7nJzYu2XgCTLO?F*c(G!>8&`v{k?WKBrTre|5 zXmUmqzbPT4yfq>HLap|phJeZO!7DQx#q*$s>A-(Op^FzFn0?<%xNZiN*K1rP-tNx= zXGh~OIJ1Tzn3@I<_X{pTd1*O?gc#oqAyu{7s*19i^L1mXGW_p;>1o}49-ox+^dech z4ID3&k9{w)v^FzG%Ycovcxy%5Cp2R~n(6}~2|o`($IDcl3EMfcyt;Z}8IwmK+Nk1> zVQR8f$H#gXe;T)?tNgcx;nhx5Fl5ez*vew1tdPpxjn$1fD9)QHHwx+wD3vaicd$>q zEulgxw{6$Q=Gq-n|Fj=s%b!05aR5erAZn&TSKbwp8anR%W2|b9s*HPfZ5jz~uLp*E zQD?4_??Z>uX+}LwN6JcF$WUpCSmw~Vhk4-}RgSmeAQ`aG%c6!YW;9??iL0)y5pttE z3L$%e&ZD9;?-B$j4w|RUdrqd(1L77Frq2R80%F&go3|AG{T@$Rlt$%%<{Q26aInz4 z2pl1vEb5%gNt_**Xwe3sXJ-E?PR0#pm>jCr9yd5gAi9cMJUG?n%XdDj73tB?EVW{Z&%m$Nt>$ z7aTXv^N>udOP;1j-ikEJtEe{P6heS4;w>`6;?(EyqP;|^mv6%v*?m&;W0~*J!B|lJ z3{x_!f6x7X3TMO86pT7PG0l}_q!X#UMgtcj&_!sqc7H4T$Hq?P;7f^6AhcyrcDH2j zT=?hng!)@=cs;gM&$d+6N?FqSUH-(5{flkKTvno$|Byji{eF`g$_SqqUynzGK(*LO za4AfpD@|F6XOD_lM;~6bvntx~;|+ed&nd>NrJ|04^WZ?_9Wy8p;;ST;Xa{)-AriRZ z-WaW1wlBCCuEi>+(<#cFJ6PXwY3HG1Pxnsy4fS0G<}N-4F-HEJ8!PYK=L4)EIrXo#KI>`too(0I{e;K^8Wu{t^y{+8#mzxR2zWm% zti0f$y|&|BCG$r;C3B3-mDC|#A{<7IJ#l+P1Oy5$#ulB7Q3uRHj5R^D3!pKzuEpGP zW&qu*9f!TxCIEMpu+FKE*l~jySkM?gOfI#;%4*h+-V$D0Jx^9r=5a$4GR#LNy}S5> z@qRbI^6>19v#5fRHA7c5gNDXM6Zv0T@C}84!6pNvwtfBii)0`Rq7;FkT}x537#j?Q zsN;cX6COBaW`J5!k)^H)3fd|Mfon^iX_4PqRH*8_mh?BRgW+Fk6=7eKHR7Shhm#+0 zK`09_CNZ2rweG@NyuMw?!`#Z*4kU*dh8C|xXk%}mi1byB3&XP*MrG3BfdmaZK1;9B z;(E<)DCV_|ov^x{M>H=;9;>d9KA@|+6a{yc?UVd|JNgGZiC3Vi@_1jCrdTrmer8(! zB?Cf;@QnoZIum?Q<^&BqK7@tToz;4_(EBg%>l+G9#XIouDK_!D+{V{X$TzpYSnAP# z&2Hqtm>K@6&nzh|jO^14+QjLY^3;L^^kn*+vElhqP*A>?7 zftj8x1E!B9+(so=P?{hm4|{#VGmIdM23@!D1fD3&l0&l5;*GvjQZnkKrDK5u)A=o^ z9HxO{4UzF}I=41-UrpSK=;O^J>fb8lmwrXN$tvCJx46<0rwY6RaPb~+AVISnIH@if zOI1>qsmWIOmb5+R`vLP@#*g`9L|PoYUqIjiQ7O{4%tZZZqy&LRSFd#)p>s=HhbBZj z?zp1G0p-0{HTZ9&+KC9H0Noi1+*f!W#{z2XEzi9K;-$cDICT-<{%`(zR@q#>v+M7BhkoEJ1NvSkT3$^!%$tY*wkJmA%U#(NmvH0HaH`^<$UA%(7Wea9G*SqS_%^p- zYm~pqk<<+VH~p;TqN)=Y!O;iBJTNprUIf<7psXc(XJ;haWICF%MJ1>{x^1bkdiI1f znsWP0X_}Hs*=y#d)a)qk9(5|hT$gwP<|s4c>WdS#$n+3YJQiQxXd?8qhed!vIhfwH zUPFog7LRE+K2_;N{y+Q+-NW_*cxip>-3W;IH4Lb9pPdDn-P?CI7I3_UPPSdYl>^{Y zPOGR}LTm(9C=sptem`t*wU<-CsFew*7I>waPb&K2C6>o0_DaD1bJfg(=dL6^4_C_7 z#~FFNGN>iM05DE7#dyW0AR0q2u*rm$Sv+Y2ScPyeVNF3)ZN<5U)`#lnkT+VF#_GgP z@YiV1ovWDMnmHKKU6MHrM%CQ9gv|NNB5toPpcxmY7m`q`jz2gIt*x1G=B0mr=jue{ z<$lOr2uxT%tYzU}RdFz_o4rcoQU0@&11!%{0hLb1FgPBa+2jqvAy7d=_lgciOU80b z+{$QZ(n}lXm($bcoKgaRia`keYZn&-PU?y-+P7R-vc9E|_;9Vg;0lv;P>ZWf;6A%L zorsiXic-94>cH;U#k8voK41~O!HgX}{}1Am_cYiwWo)G4b2nGr%|~7YxX?;bIRid7 zlbulgeVUpLB_I+C9}ftZ?f)Dp7SZm$;7h$*vMx+j{Zx<18p^Vnl{o_?(D#fa3KN$3 z^}%IMG%W#?E}o^@@uWN282$L1G)-{N_(F6eiWMxW9`jbP*yIO)Z)-(Z>DUL)%Ymo| z>H9@Ec6$!ggK-RQ3m+IBuRB(c^Qq58hp64^Av%!P5a_UMM%29crO9~8*q<8NB!=k z{cvGaK)uGERu~x=RMy?yZeucNpTj2_6i?<4HqWqLwd|D7msji?*4kN&DY(dqd0o@1 zBK-VvJ;SnVb;0oZb!ThU+oG8?x`P;@dC>3aYnmX#B61`U-z(+Zv{yVsAl|p1o|~g4 z!ss-HLcH^kpoF28diMYfEE?gSxxeiH@HnqUmnSykZJzOZUB^$R$4~^^ad#tmUVz z{295X)~b|IE#>-vGM7^0>B&iD2^3m072g(u6l$$`8qS}U1 z{9C&F*y8O%K#1HQ`%F1jll%du8OMl@@iqbr!Mv-5U1hj; z1#K%OfZ!nFQfgrj>eOFRU9tQ=DJG6XKT>o0a>$wOa?vcwy$fib#R6M(5$fPP-Z@4{ zzFw3oHvy5W-%(Ub)XaNHAescm{XTcA>KlfgJip0uW7JFTD+^-2)5#;=DYbKXwOljE z0=uc$tRqF&HMl(IS^F<5<871Ec(P%!iTOx{TWHh1-z{uPdXgT!_1cL`I`Lyi9yP{+ zSuy?gj0y%RCs`rvww(KSUi&vZ6GKj5lqki7|>|dv1?aof~Eaiy8 zedhAhm5z4dGDY_c+fUXE1=_zhQvu{c%g;qXF)^cK7opG_pc2`Eoq+&Z?pRM#t0<}k zCt|1v_#cMGfWNg*Ha&+ez1RiFS^B_Q1M6#;KMONN=GF>emvqc{dnZS7D?6)8L5=`<-v6qb1g+x8Bev&c?>( z8#g4~yrV#!ZReWqg@-`bMbUgp6$KWqwJ`&|j>x;M5YB{Y27#Zv!BOHOiA1u}!|JCd zRapkK^ao%8g%@%G2R>`^dl)_?nmBa~Mi@i;Ju2QSQGMRlw7N*5Op_|4&A8HA7tO|V zC9j%sD?w==G^xn^#mSywqIk93Qx;A9Jm-6M-~py>d2)$cQ|nj~Ng~Dxk8@0qe<^7e z4`?*gv%DOmz#SVZ8XmX?Q~6tK>r8^?4>7=YvuuZV9RKn^1#W(IKkic09fQhTE1m@L zVLm^v&Wm$^;p>w@DTt24QS;GDtL*j@U!K%{5H|p0$}NnBf<1zy5PCtwr#s2(w!idR z_!C@4T|c0ulfDZHK)$2mAiEhW$#LcEdv4U&g`rpZhH`g8c>>Z2yemGBd!0hu7{nqM z3kKhZ+_17>h-~>+=ea7h=17&Z=sz_X1+{T^@+rloo!`F(c!%V$wL%NOxmX)@b!$uf z;mTf`7qcw)V7EX|s!vH@myr|@Xwyr+z%QL$Hxv@*_UCfV=5b|9j4#8GA$2Cm|iJ`2IF>E4BCN~x=5dpnl0IfQyC6}#kBACu78 zy?Q6K_9W&%?{!_ZyhkreK(4ENLcjibK7sbN1pQfPKHcYO*c99SP|zJURjAU|huNto ziShynLS6CPLh@y(HX5LLUD-v=YkY5Fv#YAY<}f_e)9C6^!yh!Y#zVu3p0?vrQ26l& zRdlixu(F^tIXcDwDfq$epu=yjATcmH)?2f}@OApy6MjgMYw#tgD_Ge;$%PHV$M(nH z#%mKmp{Yif0H2#rOc0x30{IxWqJtyP%G11tgpq5XjM*B!LWFmXyg2x=cdF`rlWM^j zxqh4^LR6vQ4P4{z3LA6c{^p<;`t3`0e-ZW?*5{WeKf(L>JOmb!0>eQHWnY@VXgo{3 zpWb>+XHrM^Q;yYwhb;D5bu!~QJk;U(Fc#oP&Ma_R4;UEAy`hR&Yl}=oKw52PSHa^J z;==q+OK}D~b%msGXrtd1iR@3AFYg&LDGsc=J}I+6eRv~0+Uc+7b(idII``f9yREKp)Fl%wOSF_*oPL=#i@&U} z`<45nfIC+I7MEZkqQP=Yq4>~MbTJC|QO%+Ho(Y4mkkTevx6+3vSce~`PKQeM-;uyw z%dPv&kgC#FSFXXNmXyiJq_2mF2Lji!SrgolNOd7T$m?>AC|)1ssP5VyzQtr@W0kTp zkpS)rWBBHUWUSdokXA=ZRy~pG(<+WUia($>d6z#P&lMCq7LMwX(mA!lOBJxsCX?O- z^or;AGfP(+_gf0(!b86M4A2V1Vfh3)CZaazW=b+#Zc%Dx?OjeDjl2m+8e332oH|?G z%uoiagV2wlC`~9D6G(67ayopUAPJeBTiM)+eI2C*=VO>(AL(bwvhA5l{tp+0Za)Y* zQI+yxR4cGLxxsdcrRH7A>EVFx5NHeFT`+SwmOy$_%goOb)xg?9WRjBw-Oa+ym92;4nq-pT_XIG=__H`4U?4&Z zPdw|T205CxBhDf9F8btNxH)`h4VcM+K~MM9`{FL#mcdp72{;9h-Rj zmZ|F|_f-iU0!knVg^SO8O$?bhL#qf2&X`ly7d%a$(q&kd&-te2{n6p)zneBtBwl@o zjvZ}a@0>KdBR~gcT$at~%{aq4$rFTSEpl=39FgShD}K<1^XxUETT!idN|K#^ft7#t zMfz^Jh>$<{2Dade3+QD>27XN!ab9!l2=Fs2hn|P~q>shMx|2ou215CO%*#sj*zCAA zQyvJWQuNvSwbbobTnD=zCo`d`Qz}fDNLJfz5nzX9Y6Q9NkYFrr>~-R| zOUSf|a`Fkvb>XNLtk%@$XC_@2dj!2$xJV{@Z^yzwXqAn<>V;b)?Uv$p;Apm{9cI0_ z3Hi_3LFjiEUms92g0|}leTe?Ky*kW8*h+$hO-^3HN%8_u=hUAJf*`8L0)?p&J&dM& zct~vN3Z-hVsD^=Wnvu9`YAtmP`~TyHMkd+Hf@Ilh#Ga=2RxKNGV_elRlrG9y&qUSa z1UD)HuEZH_htzx>FNnEHA`u^pnKw_qIQ;jrm=L9$_1Z%sU&ZNDG#`R`}~Uc+(o}5S$Y5W@1(L& z(HlUJYnWZc=dnN%Kmy-+>E&2f%>O8}g{r}0G;=KK$ECJM*0$fQs%ER4tV43Af3Z|y)p`2+aBzoAjy|#$-oQwFtnE72Pd&T3KUr;&QryG@Eoy%6 zvdO@Ds?g8p_xPj*0b10_N^}6Cs794O6FR%07{?}bH}mpK`%36R2IZ)MigGOt{EQto ze*BciON&Igei(2W0z)PSA#ov5If&J~)e&lLEb0mmv*Ov$PCW7V)}?Xew5$wJZ9ABC z()gd8GDRxjhT81g6ywm^nJ}h#Kg30zBBo%BbCBL@Vh<99;p!f^PJ4@V^wz z^*eMsJ~>Q$HH&KW;k|qNV~3Wln1?Y$6NQyczyaqha3QA<+C}>e1$hH+OdKE(hysl- zG@pk9iRkvP3w66qjBLcsmuBN1A6xbq_d%Umgl%Xz59mSKrOFs|9Hta3anP>I%yUH- zfmh?3Is;r)9)~i+Q6vv*oL!#tK=N3nxGYd2$0O33|2UsDdE=$jC4;@3krn18ItwG^ z3t@e92ARRF)UUs?RM)F43@naEYw)i>KM(L*(CJks^fmvYtd5-H##j8YrzSt3gS$c0 z`4_K#Wn#OWlfTUX_K69EKv#IM5_*`=V~hfn#IsWD_4qopRU_xvlr_} z0N|r`{aVMA!Gi{NZ6FFAZx(UGFe+7cMtXLS^EUVLW+@e5ne~C*l`;uHTN)^}<#Ltklyd;@R=P&z>Qw-}>8+9i?qO zz1gpL>H}xR63Bdv^Irq#8uTvsYfk?+GbuoLH$Sw1dLRHI-Sm^Lsbh*~)w8P2= zFLIm+&c40xXlpBw4(A$QZwFFYe4&bnuNa%^XV{?b(vwGN;Q-I3F~bPw5@G-6D|85N zBI14$Y~a)%k!&E<9Y+x*DW_otp^#$l-L zPH5;e=SijqhSvnMLA1(wQJLY>p`lh^d!62c8EXRRo=-oitULA|eFTOp#X$mYeT};T z)Fdw-DpD5Qd0N4&)BxsTsZZaGdYfMCokpjmfrL7koPO^!*v1jRHb322>8cYa#o4fJ z+!~C)CvP0lvIYrZCdF$+8@>Hc>pE%z9_2Wp9z+Zj)!hYP4v#`R#1IM3-#vP7;UgvK zNokJ_mG%wkV<&AGjw1>xRFz?{`u^tX5C%2snzM>gKz6G=^jS)Ts*IZ6yBpBFbh`~b z_~*+MDWvK9??L)$l%&(oVbl~+@SwcRb$0?9QOC~2qvGF_fvYWM-)!lr!V*va3*xdn_B;&X{xh|&kU_?z*qR&8GD}qU4 zxKHD=fq&G)s<&j&g=@~*sP|SI9WcaTOZgt&sHPXq9#Nr0P-ZAKaXRZiL+*bMQWN5% zN>5mXG^yVZ4rAN^#QAItqUP{yA;BU|Wui>D)gVtQaEFH>5-x1~|1}ai!g6|jK zPEeO=n=dw4B-R^ADx>(?8rg4H^|`O`pZzm$GAoY!yO+sk_kX_X_UkN3E7gxnjSEz{rJje>;#gXx~Nja$d&}0Y~d8K1X#Z+8g-?emm zs0;QctHz}LuNx7WlJGmNz{U=dlxB8R#W!-joSrrbNwmlsEvR~oM4c|(1Sd@5R6pLk z|M}v3+^nT@zREgTCx|P{N(ZC4pBfC%2;r3<2jG)?tDcyK&pkcb8p^sDmvc2!I}r?q zI}ia*2Z@r%8v~&Z9xrVimQT7A{dd1K?GcrT9Nq!fN-Pv9D(03>j?GMHB)MUif3#9r7>i7SBPt|;WRmFxL zjYw$4*~W)lYHBLX82y-Y`PLP^kf$A?H~o(a_U^ds$pqOYIUt~0UuT(sMypldn?Hv$jOZ9TEp~&h4k|pN^P1 z+Pt3hM^QPpe1Nz5hbk)?6K25wo@bh!ZmVUk4b+CfA%%ni;(@mYUO^il9+i86h78V5 zLPL#lsWx*oUcDVWg0kh`}vcMTNJHA1f1ne{nK$Q+2d8+PN-~y?@_H))q8+Sz+Xm z3Qm!K$=(id-Uvc??}ET_&~AFZ9ls~;WyvM{*W!eV`f^jCG-28tc$yxA?@>V&$@lao zKTuW!1o#OxY3y`Ury3e( zbVz+B6lUVf-|qjsfjyAIhXaaS%IqqY4?;Te(8gE>`4_T2wyJAt>OuQZWxVD{9$(IV z>S09#;Vpif0@qt?u&@N%rl zfo<#nUJzXiL*|A3rIPC8-V3ze0`TF6i{6j^HU3nJQ0Kg$j(*MIp&_iEeZ$nQd^1YS z<+ft~r%RC}Y$}c@;8;bAciH|LYeE5_mQJusgub4C~{guoyeKE@t!xUl`q=mC*F(CLG^^}7*e;^)Tg zNp-=EQ-++1ODUIiyHrAsZoXS8UtBQ|u**q~`w>c$U;zQ)uz2K&Tlj+XAd!~K;w3mt zK2t3>?J{mMm%qnL;4ZXh9N$v(Vb^nhu)L#e*!bJ?2U(Xj@TiSNX_Ojn+;scU)`*(( z-JQ_z^Qm|^+j7n&pcBgp!Rsj_3yj&rp+9EHobt$tk>Vdiq1M8;C?SD@@o`FI;nY#X zc*%Rm+YKi>0e+xwF`eboSI)by1Gx2;7e0HcEd*m}wr#q|e zUG+G$eN9~raQnoi1^Yg3EKF-~ZQOjyp8GTGc!MTi!EL2&DB^UiU3B&dt^7!h`x?rWv6V7 z_V(JA(cc4Vb|i)g8`Gy#n-X#J0Y+!Ev&A=Y)akVM3r)O82Xj|E2eN2C*|_!6b*xKYmOUb;Wg8ZjjA_Zm93alwxci% zrSt|hO6TUU>J47dy5N$#b_UTDfTob_ILPhx=+_}#J6tBktN6$D|5h$9TvS0>N=d|_ zg!JRd7xpF0#Y;+L`T$E1`@G)$EMLj^1`X~^jt#C<0J9eU#FNeYs$&_4?J9}iWz{R? zx8G);L0dW)nrB06#ukj_d+Iys7B8PAdZlFdoKu=vK(xcQ@$D!S(9Sf|n4vTt2&vq^ zpBXF5^N~E|Y^svIBv)-LkGfj4R>4b4tYlLHs;E~inF^OO1X`es^N}&RZ>~I2q9doF zsCw){d%BaPA`%vX6KQa@`8*ibAbyG-Cdem}^Kve~SXDuwzMu3it-DR&QnJ5w#?i;M z&|S6o`OHw_mJi^N01c#zBSX|^Q0^ZMkJvftihS)Wb;3a5Ihug7W_P^i-FS|G(>l@H z#FYHmPKE7fD>?G=54426ufo4rspmr1IKliKY*8!D`RzaQw6bDrCXVVlW(-WktZc!cjiM#h!+qCkCrLd~RNScbPO*JmXr}yIv;_N`>Nw9*UP-i`IVbKWX*lh*+NB zQ|UG`vU6CHT}g24!2?JrKMMx{V)=R1=A2t>*Vit)(p4$6R9#-}Ml?C(63tl*#hCB) zp!Dn%b=ojqH)>j{jC|`^ICN;Kbvi{A%Pky+B3U}kn?+YSk$JT>Poo;lWP)^K-;x6c zns4P|;b^q?S-_+J)Cjks0dm#yM!c$aX5D=cB^_O=ZIeea$D&8XsO_YeA>!P9h4x*Q3OQpIxVk`XTQT^csfOESK$%dY4eq zSTU&ei;sW%UtQgyWpP#xse#)8_p-L%qwRaHEfRl_R9PdQ850O+TdnL>}AYkmdOoI9%X z%sxHXnpwdP6zzUX_GCHVuM88IS!7DJA*UhXQWqQ>SIY~>l5$6eR&Z$bB!YSlD6>lJ zIZsZ&*(&GGO|JEwsRJ4M>a6V$anrZfZW*bu+TChI1S+s|*4aaE-n5nchd=hyg_7H` z-BdeqQ5}Xgp`l8wxd`ftO9i&bf0UodrhUt*wHHKm6PF{}&7alc&s-1IrjT2pGT! zysuoe8zE>GO&dM~BYtYH3ZZ}c`#=sfHXVDa$=S?vR|6}af5p z`et6v%})R!rqRRd(<72S@pg=Dd z&oa?rj`{V1X76APuVE$-X;$KYGhyiA-g_8b`+h%C7KvtL+JF-cauyBktDIR_dPf{R z187G2aCMScEipFA3bng^Tc~FxlBlkUCt7qoaIbY%xFmBk8VggWkEaSVVe6H+!JiSA zqrTSO={30^9?2AH^_C>XpUF^oE#csZnufv6ctBiy&}{edY-`1$#fecnj`(te?zX@L z1H?n(^KqL#HWf-@^X6$maCB24^hH0a@`-T}QiZl@lFtk7#&g}F`u@*8@Xt6qH~ljh zDvw!p*ZGtt`P%Nt>1|-KP1G!%5?tVWm^O0NAUfB@+EfG5wB>>jq5?RDsol(SvdNT= z<<%%AL{lAT0(lN#nx^}^MzZ^$(}H0jvcYSc#bFO@zK_2ro%(%vX-knlW>3k}`pr(F zXXm|fx6z-PzTUq&&PjW}pfb-b3S@W7-8KXJCa;Hkv8c+}(J0Awz(N^0V+ZiPK5}wN z$hlX|&iTdma=z~iS?(igKHCZdv*O!PLX&6P$)oqqU;UaE@K`PX!K7ou+%scZ zaFH}8H4u&UXgiuBb?NwPfYp*>B4zln%a&uH#N;n%+V4ZG?sbHjMMcq7dMYnE-bvcq zCjP}=4tSuRRDC^$_f+9Oo99c^QSp9$J_mLpnFxLp)_uyFFg7w;`DocA^;r&L@uge% zSe2={b*yh`OMF9F%_H3Fgi=ru?wuS_1$bQ0ba~Xm8H~%teS2fKKl~C-UUI)?C_XC2 zS1qY^J%~QI^?d&qYBlmK^1=n7_Z35OwI-?_f2{$KEP60GXRA}83Y(p5>LIexLDGh* zpM!&m1kn(y_mze60!6E`Z|uB#e@seDh_X`lsDTYo*_d)gKeWzlq5^|m_U%h?fU8km zTIFm|#A~5=929~}`L$6WM?glCZ&ZUH#Io}zH{H<}>%dq7AtS~N)a!RPu8}}580lNE z@D&Rn8D){7&ZCvswA<^}Yke$`tXo8MFo&8D!a~@vPd9($apS|$MmpnPagMk38k~)P3nZ+ z?pikQJ&?DvJgAsIBcnPDg68S%ie2xICB8FI9;u#>VmaKFQ;^d(l;U%Mn3CVMB67Y% zSs`bgiu*6UB>baRJzs7{Q_4(&_3m1&p8m6)XORPBTn8_fR0<`EkxF$$*^LmtqdLM;@_k^ZjN*wH5Bq&?egBv&xe%PO!EB{U~as)`cvfg&f~9o zUWL~7Z~amyEXQt2b%}}df7wFwT#a8M+(K1x;lk(bQ059FU*6F66cyhFvl&HpWsv6WqI0GLteo8ExnuQ_LT{i_0b-8A4F6)-Dyq?aI9n4EXlib^?z~o)_+aM z@4x>B12+VuRGKk5loXI0A&y2sM5F~IWQ2tD=7gm)BqLyggsn^}Mdf{hll9Bk}7y%^-Q}UpmB6uu%dZiCs2hFvAF>JNlgeD;OC3 zR2NFE$FeFqU8*r{&%%bRZO|`IQ@?*cnkz6pM?xrRVE*HKRNKgxyJK(!6b#-{%?$|c z+}4X?2=V?d-*%4!p9WxC3q_<7BiPKzZZUSBKRbQSM86hlLF!IvhylRNRR?Cf%nbWybbaG;5Y)JiptwF zp0c5^6;=7XwntB?kTBdCk`umJJ@+G8iiNq1LAS*KRSNR8s|h#D3P$iqo~{l$RG? zCE}c+^Cc1+k!|`Dk5LLr*v~Z|TAJml$dU{7xGZWGF9*E7<4Y&H1SBI} zLHuK&I-CE0KD99vo&;YX)v|-S_xA%p0oL(#V%3FJb4`rD%5$}jPu*@>jdM-K?xSa> z?E1;W+$H~Q+l2j|k9_5+lP%nX0+G&)wLcJFH#w7sw4DRGS;4}b7+B4KNZ4=k55AuB zqVa=$`3*XUO+RD zqH{PLWCPO4$cVwa$I&};#V?9Wzm9d?&gI-3PEgDFTBs5ze=LHwyd@|aia*U!4&QoX zy|tVl>Ls)rp2WH3hYS>)W1$3ROki|;hRwu0 z&6tzUhYkFbUU@^s8-HKpj+A3tyyATN^xw{LMwM#$o70VBZ0vI>X3zBY8ZT-> zMq=w3B(0MHU*UteV9+~Nm7nvz)iUzxT!0u98Yn3$g~7}J=8^Lwt?I|N*> z**b{G~>d+b?WkqM+FUIpZ%!s)$jFv@b z<@1fpCR5DuMSpnkB>Bg_4q=z~Saw!Dxhd&Nbt2owOTNG7O|5ZAQqgyMlep6N+lv&z zrl=z%-nY*JE}%=l3fV0cMB6$>3>#v#K74jo@>`Yr{8BY*_Sc4CWYc%|TPyzo|6cc7 z0pAR}%8iXP(@5ORx)(0Cn6Bb$gj*!mH=)dRC{{cKzLeO1K-2B)HD8X6yU#+0=2IG-j^Coqp)LWNeo7Xj$*)a>h!&f0Ke*bz3YY_j+7z``Z= zR>LNw+Y%f@%I05NLp`&2b?Cz>z?d<3Qp1WUO|c~pT8M)!x`2|345|^>W3w-&!%hDt zHm6~>3pa3_iQkmq^7g?n3*+ItY^BNar1IV7f48uW!GzsYUz(XRIH(Gs0m%U<0DCwn zIu!`$$ABsJA0(vBc}ZX3R;Pie`trXl9wu-hg=$CjY6)Rjk( zm_(>3yxXia*$hb>uk*86D-b-+9Z(>}QJ_tlM=(T2-(Jba@>MBGM)svZIB?w`={MIA zx&EV;hl7tcVOmX&scbrsMguKM@GD!K*jAM-fik`wfqKYi@@;T4Z4UK-e|j?>p09j_ z2T>~?&qmj)Hx}t*%=QrPWle%#KNw_CE+XwGg9s2){{-(pjfca`lk;e{tm$i??rpnb zy(-ELORJ~X>ncSveQ!^W46xCz(>~nzWFAa!B;8eC$a3iC69YZ3QJqUCNhQ!ox%V13 z(qxxeRV5w_gqkDS6d3od-n3-8~0#8{aCJ?3}MKeFWY zkv7RjPmw6f2Le1gTkBcB<$FoZb0$K zFqt4Z5Gc41bhsGtAM0)q{3eZ{;!4Lo2_Qv#wG525)G#vb=k%WYUN!_sNIm3QGFf@Q z(au_ofbvt}coq_0OiHNwe0aPJaRt`@{UO8>_^X+_AKo=W!>6A6X{XKh9hDgOE+J((Rk(V_dP6!4~ zsdYIAeN2yh%5$eV*GNT#K(HGNqo(@aStuTr=o=wx5e;&ZZD5hzWxi+|OVWK7UKaQQB1E1^Et6P3b#rJ{#_F5gT_#AC2 z_Ov6t`SkD3JCItTa+K%3#H`lpCm)r8$7xF4_Ktt4*3#^H8?+Vc7hvM4%$JZr?iM$u zxRjiuIlw7JSR9C;hYqCNc2g^uS$(8)458AS;KwaOO?_lk(b zK?ZiFtClCmd0Od6h3Z+7037l#qJS}z&_LPGC}rkDci>|Qykg>Y&u>yvv}v`Kt}eckiF2GPvPl*d8}5@T$cOZk90|Hn94O zR9(lK2HqP^qjDIVH2!pyDEo#g%Zw=VZ{yb|p9)7ln9A7xA8QG*6qzGgd~EwQJm zys!Yc^X<{Q%+0MJ3K12%hZMECq>(7I?NGy(lwXwUOF*?~zZVYJH`(bZ`A=-RXyTuw zSAQ)(aaF0EfJKz8L$RK+O!o#jRpRMJ(g6?^s&*9im0$u25FlOy{jZ1Slqp_FafFn$ zQY?s4zN*;kmv!0k7S=4?9Jm%uEi&z@CwUE7D!N;oztDX*2cA zpBHSO{(N`5-91N!@_b>vKe)Ef3>F3w@TfK-om;8|dkTW@HvAGx@%&r*ng=jq%N_tS zf|2#}2bsK9{jIO^I;!yFo9Ro3VOcgH;dT{m+ohGLJloH79uY~b|pN4M0^;;PL<#!PBGV-;aR#sGGkwn+L=1!`sj_{JTghuzSB{-l`aOA9Jv3p za#E-Btk!Lau}K8b;c{@sKIcXnXm#`HeS#0s;`r1P z9uR>0jzh}vIv+3=poO=sRbw)7r!DQii+4^8C$e!WZ0ks+15iu1yyv&uN8 z9m3%XHpH)8jS{K0nL<<(hRkn9wt4V!h_UiiThl-0^CV`m~vx3mgx z)ftJV!b`aqzWIOqSQkvQqWS=U0xB)Klr?BD;{!(F1rtuyuy64XGsd&uZcTSB2on;~ zew5afyLFmrM10R?$J6g=Evm>-PiwYfM~11;^M zoOgDd*5xV20^l;Uisemd5@T1;`=5$8@@?j!zJaSx%pOPPN^mdVLv69q_OPWL8TThMHHQN4^s zFu?FD!a2j9^nHiN$wF9*DxXn+$<1cXv8TX10^AWP$-D_toHBTlWom z0&QkG0WhsTqOf-q@lqTygKm9w>r-qNV3-7PY}j^RSP~t6LRfz@9{^22i)Os|M3)k- z6bnKnxdswvq=YB$G@i6H*z)dV?DwNc?|T3#g_Dx>OMZ0u`OVk$1?)L&?yR<-fyPLl zEqnVYr*qq;3B+LZU}?`LY7Czub?%TH0-g%mWPj3;YQ*Q^M0G#Kg-27q)fNqO5?$#Atw+`hf*(~V1vvd zFR#5ANU7sR>onZTCiFU9cADEm2%tRLrA+0?2M$kIqFL0?7bi z?PHZWEs1$Vo=Hef1Ag=p8JLm1sFTwr&|>IUh|8nuC&SPhcvZcLO?Z0}j5x_(#n;y? zBfFZkDsMvpbm_g>{^4ev!uQ!AhXp>X{&n=LxPuEW1Yj{U42Y7#&=FF-IeH;Xzkf|V z`~gumGLIekfAF7L8xD_$*nu4K@d=)7%d<@mbklB8si{igKUyXYhxB~Q_B9iRyjLvR zrQ)r5c3l$nuxx)#Zv}RZeHCImNqQR`5tcUWO=aO^!`*x}^}ci=GsA96^5x>*x7GRg56UYI=vYDC zTVqSH>2D>pn-;ve0D*o^qUyRWa_ zlxd;0sc635d)k`ZiBJsQE#j{8jejF2INd+@`YYrCnanp#M*yv*53+JU=JAP*$5e+g zO`yq0whpH*TVoTuYqQ1cYr`go$+_0wX7ATj*=fUc5=qfv@&-$q8#MP5Fkl?PfI_O` z?Q6}Szx;2`t?YeihgZWsyG5Hvf<2evAS|waILM)_(!5k*_)uYB!MQ`xYtzKNH=btcI`^TAKUJy{=QOdPvv@F z`AF^_uyE3b1`vO@u0lExzM zpUC)eD{eHP-JS<<%*2$c#jW47I1Z`IpSHHnSo%|y?rznE-)2T*uvj!2f`rDtfttGn zlbq;#SI*CyFPw#v{r*UAxu(Y{rda-Ge{)VhRFv#D=2KAE%&M>Q!O7fq`wTH5eNiII zLD3XhtPbq4;NNI8cXB3WdPJ}^mtW_}W@}-`+{VMb)(?i;HJSI0xy7rR_KAMfj9eB6 zLR~fu8&3B>*;xZt`tZpts!X8b+i+)GzB0yCg*FPbuoi!s{WU8h1?CP-+kDk z#3>E=t(VhN91%(~;F%aq$!X)%RMcz-b)V@`E-~kdJigTJSYG6B?HM8a6A#vMXJ0;i zQK`}8+cq^dP|J8PiTwx9v?0@0&CXBvw+Twc_K#jr5gyEcNF08KyWIQw`}lc1k-yX~ z%l<%Bsz^*BV9VOE)`FFRV)kX*z)LEKqF+{;y?yUxnwHdKVm6-JPj@Bb9_@@xTk|z& zv>8OIuWWsk>)6ttGte0Wxa8+*S? z`09WE)_)U+U$OX~<dh351yd#6QKF?+;ftRf(d&jRDj)aT~I1EFK}$(h9TEx40#v z6`E1j^cR_84LkZ>a*KMtw14|u#i??-y+REAl7U5twOY0$%SLFn`@~_lsLrY8E(CMVs8@CF?${1xy z!3Et!@B^%07?39X*$?T150pQ6NTg&`wipEuLkXX^-%anXT^BYKmvZdrvndRlHH@UE4b_o1} zr&MgGtjVxT#?-sXmiOLyTUN=F5gzpAY*V7{UMq4wO6F11iq+uz1&;O8vMxWF;f}bt z`icuHY3w4IeYHwfR%=VyGe3*N%DxW|&cWL6tW&?LtnD1{wN`=t{WbS*)-t?`bMvl> zapxqQjoR9HWZ!|-dx{|xYAxgO^|y;c1`XDIWIoL8LVbN(Xxv7@8lk&1V*Vo!z-Gbo zJ0lCZ#bAP*sym`)vAsBn^rsj}bUk$!7UjmUAt76{F0~?YTS=e=nn3DHzT4@k?=?$(?JVS;^8`3T zu*1$i3V8bpFNyp=r`zMUdY(z)e5<@6Q=^S4x$g0vm%~hea(aN66Og{doZm{0BXtam zdXCBz3Hm(}&7&kZUvFwJg`0uZ?e+DszI*Xu`7q3^lz|cUYb3RDldh6J`s}#I;cUn8 zVQx(97!k|A{o}CtpY|5oGwoPZNjduiMEyW!-`f}qO5*bqpE)x%M*N9)W-xR%je`?)wyLXhu*x9l~HyOUec2)q~Y*Pc*@k+GN$=r13t}= z{m^tIH8X&Ttk=h93ET`WA?JuVY~-c+w!gN9uQ>94J!v6>1AnBu+tNR$T(R*!7B2`} zWVn5PSsv+NUwIn8Vw@=@i)D&E4+%*8tpWd`e$^MRgj5Szb@^Rn%p6*eEf5 zmYct{!6ed2+5V5zmYu_-?a&7KKz)?}d3+3LH=U$YENP7hIcE@vQpUEtZ};E+}7Fdwt&Y>;|pifi5KSwo#h zYBl0muA5ZDH=x2%u3cbK=LZxLhQw%dODEy}>4T=>I?AmhKe>a_2F^mbv*&9&kJ+ap zvm#-cHRvgZqG_Y3;$pwoO?AacQO%3Lv@Mq8#Z@X_L$K0f{mjZV9?-Hk;R3HDt2i(bijFr6F;Mql;|@;k z2q%T>I{x3EByD?M1XST*s%&qgr!`x%TvkHaiSS8y4;9&)R+cc^A*ayS67eXxMnoBd zR9+~nTJ`O9dv{OBy#dc5NGufc0A=&$fvef)tO;}GhSjF(SNHo#jhuET(gdzZ zI3y?=V!1WLyTg*e^?Wx#`o5cJH91s>>j$QyY@GI?1fld8^`{A-Nd2sL z9LPa@$NJ+(327hNNzr6lx@X7hekMUcca|_myWy$ceUNjv%|hYpcR(0c-bbMvs` z$sn|4Q~KG(@{^i!54`*3=$qvkIrYl0aTC&D1eV_jLHdd|JpB+K6yCkG3Q!M1@H-+e`wmI93bozCiVm%e)R;#qSd}QBO334qjNMr1ly?N-qg1F9S zI^7?*uj?9j<~j}+LXM7_y{{z@v9lg!8sZ0b?9(oCad>)&U9yn+FV(h3b_}^YoKoTs zqb04*eyETtH3$y|n`x?agHFRSHDFKI&nyom-A>;dn5!cPF>Q)NG)<%GD{CNnk~H}# zjS(!qIoA}_b@>m99AIz1}0Iczt_=)Pp^mj!@lJ*<9eIE zM(1*W~Z(<590Ot5c4 zrEDsqi+f_i53OCzze4&o9COZJIn~=~Ok!S6niWYfZeF#GPh!lNn~$1>Lfd!N0elFBg)N_>iJX0x>%s;4NFzhgPkUB1(GpQU{&oU8p#)_V8amwT z$zQ-pNqwLG1*Z#+vL*kid<#;}Q=o1q>^4}FC_+-I|3Il(F7)?4fwPQ?20@-qc=g1+ z`SP1Ph~a%-`tXsT^2JGj;7EC3gsv)a?u7O$5uwT{xfAO@xkLZi9Fqs)h?UW}0o%cjOmNV$qnj`CR~wz^?!BUA=0BTil~Wp6zWw55 zIa!vpPFrzUC^bN0KxSyCn6CUa!l}6yj>s`dEgB+p+0e=@(rM;%<`h4ezc(S_f>zT+ zTuCK-Ek2m+KMp?qBVL+?WzZ#1#{Q77Bn>*}U$i=vyLIwUSdfw3&`T&Y9+e;@|kkRyypH-TYp;j37h#N;<>H;2p|HJ%X6rOx5&qN^Y_^3lvHo(Dc<`wzDwIFl$MjocS?7OUyEwUv|1Ozvj%N#v z&ynoEe@YKv=D&vzs;h9koIEi*!{KVBCMJy?6NOhpT*am4sL*At9s<_xwNj>yz0?Q_ zO0cS{?3o1Px9DRW3x4vqXcrNT+jG>?8t|0aOn?6BEWsq;zLk}(ZJ1ZapZt{8O{O~u zGhlsH<#=Ur0*JHS>BRBH&BXmsotuG!#b2sCHdPu1_38+o7kIeJY&7%W`U6VH%CFhB zfxaVcoBXvRV*nDS9^Zy>2NAVAIw-^ znLAO^YGt3$HsJQ-0%?b zemH)Wad`9r_wn_Z8DF%%eQD*C9rhdfJwO1X(1wn2r&3xxp*nsa)nC#JtO}=SoZ|v0 z&z;nIhAnmuOJ7`VzFhpyxkXUPy`kk8yP+Ie@UZyBCn=6XmpT{8)PXQhndiB0xt|xj zvpK1yuT_tl zSTd+oTjbGb3C2kDtLlEp==uZQFD(tDU6pn!}XB?1?S`d$-P(rcKu+ z6$W6yBAPMrnC1T6XR^%22a7*O=A+>6XT44zs(c;PuV}2p>KMB~6L^X{JkOVq?DJx` zJ-%?7+Ly3w>{2W|TALT9@Y6KM-)D6Z5yXJW3eCnT6>*-2z4ev+F>E@B7ppJg<&t>s zi3e^|Z)CAUM%8fE>kGh~7<_6mNs?80A^O?@3g*lw^`oW$1@!Z$B$O5UT{qwUy9^`< zlIfJeR9bRk00dA9Rsz=yAzfvX_(k_f#1tQo*NWLTQyn*C z;(r>UH>y^m0pFQybto+D&$Xf+=dvk!8=SO703aT`koQaU5P9qdROm@&+2Rx?nG^0K zG15R2xv#9<9lKD)45mPlLF5AvJfEuB{_Z?2KAZO_o*p1dDnJ*)hxpm3IRys0FI%3g zWC89FWONfOm=U?^H)r1WzsUu|E*>445z;6d*gs&yId>ZWgNG22s6JXKGAw`C^y)8< ze7rD6yta>>VVlEz!Nz3Ei)Z${nh_A2?4_A38*LSNM23vfZ9`&EB5k8E|IY1e&xy(o&ve=LY%#le(-f{3#0o3cV+hU3 zjX%Tm=w1*z3k!LJB=sCUfMSlq778(c3nfC)MTSQ++DEJVuHy@U%<5~t2H?e`(w;#b zQY_c8z&frCKgH|1!W($na4O-4EDLhi*GJdeKK6@fH>KW0r!@+&xIoIp$;gE@GVjcx z)PRIdkl3zaQSNb<{Z0%Dc+S zHvD@AV}pTiP*2j{vdb0dpn;jFs1g+T-?U zECVziEsAg%_%+*V9g5)YDJvC)h$cXrR8i~@0G<0R3*vM4t$tUJR^ zcv$(K5qjn=_?q(;mt1u78f<;@fAluyd^YO=6ElF+I!b0NYtR?cYE>I=k=e5w`d+}^C3{Ug+A{lUEcDOrqO24 z=cq{ww)$h-_OM3|D&6q%cJFhWJnx7O%uI9n$srK|Eh`+ELr?(HDTRjhxNK{-1iZKRuxV#iF*YGWC6C6T3aQW+~csvSA+q@3B5# zwCe`H0A!@)%H4!q|IfYmUl*WUI-rXk*kl;#Q}ORd>`f{Y#D5PN$xg%$M*-H!| z@!ZHZSBv1^IsW_m1h}KoVLL)CRDQ?NgyIAY$kQxx{v@jLH6zw35I}1){zR@O)!lFZ zLbB>rvfX}QPgVy5K)k?5z<>lEe7|WfrpuS~{YN4emOsm8Z^Mh!9nu~kjIwEqnLI+Ve;%IPL=8j7p4Y2Q_KXu^UrBbAKc`vu zM@fk!5_{;X60}4_Q?d1qz!{6abq7*L{rhC=f}i73eoBU^bORtz6^@aLxC@^>FD0IM z`P>(6EX*4^J|gG#_tL4J^-v|#B`~u6(TjRt;Wey?b-~l7RT4zQ8&Dg;s`3ixrPL?X zu(ex(+v;4|#fshgVk|rP4as62DxW55%K1Tra4YTJA1Ialy~F{k%Bfi&#gZuvacd+p zS;FgI4oLn3;YD1o$peP7V8QyP^%Lz6l!Hui+ymvl+_p)jFjfi+Q#XnH$+OE3TH_?lFWA31$s^T0cPq8R2Q8np8DH)U0Ds@TfhdO7e-?(7jaVhl87Lk0Ua zYdZ9Q|7djsyF4ZJ1SX8i-)9W1Dth~w)Deo{>s5+m*E(8Op4vO@3{>jjD*|1nrjMiU zQ{*`-nF!nnYVBi^(E-GOx>u)tBkuBa0JxIHDy0Z${)e-4!=GSyQd>U?J^oZ#+uAZx z6nt@|CD3tC&y0YaHtpB_!V5R1ftGZ|mhVA%$(cReV;GgMVA@ZcN0yb7X`AE<5j$jI zzuzPUCxZ#t&9V9f%60nKs@q|KQr-tpz>-&#C$H`?7_nw8ZJ^2!0`2i-IRE2D`&-7F zGI*DsuJWl0+TMqfqK=nL{u~vjPNYvMq>A+5nxA zu|nvZ2vw-C>R+WN6aC(Jhbr6HDXUWLx!qGCw6rcz3GC^y8o5p9{K{oUbcbMw_49B2 zO69$CCqC3(dI6+tV**?DF@30S_2hcH2&isWJg%diF#5dS;dk0Hd@iK{&6I&x3&H%>_?tQ^KUn?xWcad?bgF|^2bw>& z-p;(CAIXtKVM&ZUU_k$DlAG&Y&?DvskZ9x8HxZX(*!!h}*hp4t!35g;($pt^5B&Y< z*v!m|1%8RZD>j=SuWoDbeT(im{fr`jZaImtnWJdXfRRX@u+L4UCMKckh+l>quh{@L zrY`L9Ko!@fxfD4ZRh|JbND{-k>=n_st9u+y@9Of)xs-Zim2L}5^t%{S_-ntb0;;W zCD4$P=yXFR&EUYtnbj3EB7vaVMXt#H-HC&pgR~I;ApbkJs%^py&?QLVA?yR;NYwJq z%$pZqO|;fzsi^|g>r3_cn%;~K(q?cKzo0OKvQjETlc=yCWd=CHItcGN5ragRP+Kjr zekDmS?ZR|Sz&hWJ+ma`UV1ET43UuDuTF+!>(h>1N^5>Vmpx-o2G}|+lG=cXpoPKE0BDwp zQfrJl(WhdaV{8E~+JE<2KurrAv5N02ZtmP(rQ3h8Qw9F=U&@7PV^7om{&zR=KWznq z{(9cy-UjFTtkej!!EiyAIqS^DuIJN-rCs)VSxET@~dU3n?g3h6}PVRY<0@XOQ={fhUxN(Q`YNBO&IaDyq=^HNr# z-a)3`h2Le_qZjKvUS|C>3-u?{ls{HWwAzp(+!%IqzuM<~Y$T>Ga~ z6C#YTrIt2My(hh?rGhWr5_V^uZ5De!Q+pd3>lPuq;+md}(&mLI4{DG+ zXktE^7~K@=B}ISqvRU+9W@%z}S2*}RDw&m)_$nw_QE(g#LJWzd(0MmfBMdCPYJ;aZ z^4r}~R&=SAdTk(pwb>W=TM&1t)~gq3j(6M|viT1w&>lu~$z^nQBi((9@dpi&3_8&E!2K#(u zm$&yIBYUMmv}>dpw^s3`t7N;h03q=1kXiscK(+aU@lo99=0YDC!g^(I?%#$6nrrIM zd@_aPtzFI#X_hsfQf*>F0HlDL{9x-J&`od|y$i8TLb(ff zJ_%)4p?MjV`MThwffy{s$V*D%>{xv4#XQ}x3P!~p>qSbvmrX}amHnJ5Y-3Y4sp3QF zMdZUtQhrcUYnJNAyN$`0fsvh{AQbPUKDI+)6 zk?m`Iw?4m4xH#IIm}pa(kNpr3Ane3Qt_w;l{6f&}!qo9DQBe$T&lBkM)1cU8AU;fRzLsO(_!6|7o-OzBO5JD8+QBveFjyEZc;FvLbzx- zbi_wD$0gT&EFK0BVKYP0xol!*9kx{~Wuo$FsFDGPUQB7jd3^{iHsEI#Gl)C1hZ=zb zTg%05Jb`*-95~aWBe4@gW{u`u4>=?hCf>&tUtYFHBa}JE%Hp&ib(#!3yxn9E2&SsO zzN?q{#POQXygA2vw6jcW%Ix2_E{E&8)f$2c?CL0x2O9z(HK&w7Ql0?Cn zHo<<=nUh~Y9Ctz|_*nermS=>>oYZP?zUyzU0#CnP?Ge|l{nazS6qIu8;jJ3kjnwViIL3g4f5ZRxF~q4`^)7Zu*)1A! zBJh&k&l-iNLVr%ymo6{qi)deTNaqyoSY4kSaj3Nhge(i=k$uFxx^zXsFGs#a89Ca* zNkiC|1V@A6w3I-4{14I$sms^k`3Q+*2cpqNJCfhJx5p5^omIJyhXuNfgo&Q}F4@{S z#&S?njVK8vg?)Y`^P!t$iX${p5tH-}BHoE`Qv@TtRZI2s4XkmYS>SG`xS0KEK`8=5R!jb&`5N z7?1!8j`7h+1f}=H)K5R@CZ^V{RBp>2*t8m_G&o$HnApxgNoZ&WfD;u^Cr(+g8YJ0W z3ndd|N4lJ}Xu?}ckmSbq$hJg9I*tiw*nP1Fgk2Y~+64t_{@}?^J9Ik|oWwO|XFsi_ zG%8MRI4Dz(X_En4(IcOW{%}LDuL&%PV~}|jeVSuUZ$~tFZ3y28+oOd zGXM<$tD>RYB0rg^>`Ha{#@F?8G>>N+9&{+p)$D=dma zP(lEeI(YCb_pn+Juulxb!T$FP;D6nb_@!!7Nr3mOVH;$;PM`rVBsL+e1=3zs4kp9v zZdPC4K_>}>lkofCj893(#sI3eiDr_G1V@d7(NxM>YK?}+a_qdj({Urd-YY@?n6C0* zjT8T?hVQb*RcTs;3gx#aMXa6~s*j-0=(#;KOp^IScFIU=0E9+|8@95{!{O{Iwgs?> zd0PyMJ-&dI=&yvh2(y--M7>*tTg-6TY;u4>K=8QVMZVwpH}X5`)UXz8^rwebB;jGy zSB6s@OIuL@zmFmlCzryJ4ht~%fBhrA|JZhWv#g;p-z^`LFsM%t4Bv+sU9R>`9IZ8R zPy(K1FzBkpt7s4OxwiFh$t#Eej2%0wB{d7hSn?UQ12si#X&Fo76@MAj2{;>v73c)e zvE|W~-y>TBHZK)yUwkW1GmP@36MUE-e*s|!-J`vL;oVaZJ6xhUSWik7n%30naEhLXnI zSEt<@IOsZ*V-eH}|5^ty`+Yg;cs()hsIt;GNB8Tv;o%31J_aiGu`@*!HhJs9e+ZZD zKSWduxm&TPxgllqZ}gH2aQh!`fL#o>rs4o=sExI1L0zN5>eiJkOs81am~F}pdRSK> zkq1)x1IRi$)60>q5ty+NTiIDUdp$N4&M2HX)^OhWZEdow1;?XDCAc^pgrJ-$6A@w0 z0NXLG`n+Bth75ei?cBSk%M%tk@Oc1kr&TP@^@vPjWD;B5l>C(dIQ+rdNj6m}5Qc}= z%amt+diq@t?$jh{Zv6R|PKD9qDAaEFeJ3-#+N-nEbBz8E;f_MMbzLGf`GNegG{(Kf zK&cMS#P+wSz4Cj<(RpzmLlCiTR#i8Z#!o-fB@!0`P=o$Dib$t0|F8bb`y%l}+MaQ9>1 zg!E{bJ|^lR2Z9p%bW)5(HB+cT*gHZk7WShX1%{F-JaEZ;zkfUDJ7^qDMOJ7~gvIdw zqlZKcf*|6pnSj9k1>P9m*zfZ{SucZJgB~wIoGu6|420^<%3dmy5SXb9Aw-_*XqO_t zEhxeODg$r#OfT*gJ|2$rbmV`3-Q`)~DC^V_!2ax-(mNvo&=UIT^B9rwz`qonb;!P` zQy8<;9Wv;7y&gb&BmS&=$m-( z<`?X!t=0797Z7kNfI!1F+5Yr!D^+f5hZTny!wv(P|HajN#T~#H_t* zj|jEZ9z~5Bt(ryEjuER?s7=+T)U3Utw5VOPD6v&l?LG3(^ZY-&&-;GKFCX*ExzByB z`#R@bm+c&~@mc2)7I71g)%e62G#4lV;`&WO>aw1W-TkIPK-O54Y@Ifo19`j1L&B|9 zj0YsVMXzAT5J8*hygNmlgQPM%7uS@fF|Aq{$SR72zh?6#r^$15@u1Xcd2&h}r4b?85)#OYI?NfT&6HX! zz+oI`!2c-BAO%q>K%wf&6j^PG3K`YCO!(CPp17A{ir^hH z%sHa}Dc*uW*5mfHqQBm(Xly80MU@DeM(xwmCcBU^Vj7Z)e>{S z7%&AWG>dtE3MU1cq4e8@ZUg`AGLh;Uzfx9$-<^jKuAUG`-;GL|o`zd4EqUsw6^xk7Z2n5|%X)4Y z1yL|6Asrp%3cn-98ui*<(&sV4ixey$XGz}`{-)?9?c|En%yKsYn7D>MMWvWc%(1uz z7Bg<+d@d$!`tI=oZmHofQ5geKqQ@QvA(%Mkzp|CD?R5tH7 z8=ET;tiL+#`wTTBy-pR8tR%m{x*y+C0Y*HrMe>@h#k6wn9$Q;oIy6jzz9%0u^Fih* z8|m6x24zrZ=lzfbwHJ-Cz+bTh$iQc^RFTzoIazR?QBnw3!XhDx7n*YGgCL;l>Qt+YsC7~LKdE&Q9#BR>8I22_-{D4LORHliX z{~og>0o23yg%2ZP8#p5SKILniFTCUm$S(_}x-RBfeC*srtCj8L093_WTi>T=(l6)p zWXcAu5J_|^vc7ZybfzLJM$^MIbsqUSm;mjV+&yN9=Rgmk>>TQr0B1n_RNl?jFTL-n zJ+T&|8BOO_J$?^qCZ(+Hn*s$S;bG|LPh=JMoZ)l=2YeDK_uWJR4^A@ca@p8i`L+Ia zEGZLuka?f$I#p(U7{8rEbXN?q=t4h|cBpLE-Y8%Fw$s9g@Q@UBz(Uv24+Z+WwE;{r zIG1V>SB|HqLu~?<}*Op!V$nR8eVE$j~ z?(VWSgX1C&h(6>RALV#Nh zf3OiGKg0`|+W7W2cwQlX^-qgTV>H*4PJNoUCM1zBu@D@YodVVf>uE zKd%a-`39#q0C=zEN7Wx+L2#U}kK2tgQjH@zP4siJ$eb-AfX+#R3Ue{gk6m3kcB4Yk zgf%82WQ@E%C%z46c#nAdm3Q7Vpu!Y5wIoz(0=GJp;0Poy6CaRyxo#UiP=4j_`v`BQ zl3F+FO9By()ZLqq0-3J0=HF8T4^eqwqSuWYpD5R_-jMu}Ro^xd(8~rk%@|U+{H)E~ zy_^!~aDPSty||4zx|KKiwuAT2g0A(8_0?>fIHx8A=kDP4#D{CvDoNOW8_~7->n%&F zW|WPq)PE;one21-V5ZUsb%hWE?bXNb{mGsu+_4&vlL!CWCz6%kA zz(3t??TH9%LjSL>&s=T z(;U(nxCHzTfyhqQ5%DZwB-kao#iLn6g~aiSo&UZcmL5SME@*gzstXY>WABU*Ypi^@=!g6|N<{R0xR{0A!EITkO{2=%IMS#P_``VWx_@ zBz8^oDA++FO9cw?G1vcX;ZxhJ=YHt?>R&aQmgRa}=TwfII~|bz{1%WEm+)yOdEoBo zmneYRKaBhV7Nv^0y0~3K*#i3J2&E%5w!BBC>+o;H)loPaQ5v zsn@c^&OO9hmhsclwSUK8@0PGWBS0CIAgJxl^{G{3hA3|rF-i8$40`O21bi{0Oevuh z@)vzs``Y4+Mk(J|Ck5A5nuP=R|)_(Fb2CxJIV8z21c++ZBz! z`W{62uo3T7HZ)Oi23erpSukn+g}gEj;dHu1_CkzFP+k zQ{#S!7Kgnv&pYTK`C!C`2kul9YXDk9JG#3V&8rsZn^=EBOY1udkro0VI)`1ViixS3 zQ(?ew2G_0*wD`o*FGju<1!ZjrPNt*G@NY^=;E&Hi`61sfWt9*Ckgq`cr{pB~j)Gra zl2d;_l>wn9R1H&uRsatN@gkyK4qO;UM&EOd*b{}R0ULbeO3Af-p9>yNP~@P1Vc-Ak zjaHgi%>@2B_jLh2H=qJgAsLO0_@nwlvnhQbyanO-7I8Ie-AtV(aX>qO7L{mt5iAQ? z>aa8N4Ost4HEyORxb?8AX}_EQ99V}DX_}s?%)5D~uEnm!+r*N5c(iZMb5n{SA=Q0{ zL0?d+&AA?0qtC}NH@mgBY&N(1i-N|!G;dV#s+*j4bdX0K*lEBX;sSlU`azeFujQzi zURX;PrJjFNm2q^jhP8KA0p%9v-yGkX$|^uVehQ0K5qs`*U!D3>%R6kDC*`%E^3A}! z^4R_H70)}Z63~REKPfzCN91%!4A z%3^#VUcsC6XI(qnwyd1JWGea_Ky~b}+&}Ya{j*HbV1OjkgNKLE^dGLm%(HcI2-9b9PfCdul`(&Smcvryi4r z>QFI@2L%UtT+`Wh3xVN98^hKipAA{smMW8e?H5YJ@RE3IH+y%}7nDW19uO7uF=3W6 zMrmoYzw6?wkU}&8+Z19uxQT*a`-hu`F^a5g*Oa%piyigSqe4sk*y9Hy7ojepUuZ;m|8!)TGML0zrw6^~cAr^NyvC3(9LX==>k; ze9L1&suQ+Gm>rcC{2ujQcNCAKdRY(&pDI;y%%zM-P7kf-3#8Nvn6TTj<6TP0 zceMye0w8^)j;jf2`3@-LFi%7}J8)Dk@2V+bL#yojt!d)b&(XAd4tNA%YP&lRup+1W zrHm#$?+^?vRs6*%Z_e?*&H{#>mN*%R-yQ6uFFn!cwV$yRrWKJA1N9j%zbsoWiuj0r zb<>q?#EjZ~b1OiCRFApBrdZuaExSJCF zrJP{?y@9a@a-a&yOHMj-g9tPVzBvC{nx)4wGHR8k^aun)fO-V5?RoU={R{L38oc%w zqko4Ly+xnk-UO3a9jwUhzE_gW-;4S&+J=pPG3AC#3IktCr2D&dxY&jJ@bf*IUC z^K)^)-pQh#-}*)fOW}G5RFj~e*s``%9Wx>%{{!n& z#?&pRdEsX5=KCZX2 zGcXM#&Af4!ljB%SccWho;;DboelCgj1WJnv0K%J?$G0coQ{l=xdzDEX@1(^I?F{MY z#?kt1WDzotH}_6ojCWsmUdRjjctwW;UpO92*~jTY489Fs-8l<5mUa4bL0g&CR8m1y zCT{^+KKKStw%y}1ZjA$@Wbc{rk9N|W!}C5I$1+4c`sUWfD(>^|@K@4+>M#)S+oHO^ zYP3BkITAn2s3)0VLNB5%NIP4!m@&OFl8y54#@+Cx;HExXGXUBqVWiHi{^5-tzPFL2 zEcr7>{#OcuK9aw1){+HO)DtkTg0=)zdb_elSZkJ^3cI{}`ct{T(^YE>AymNiWlWb( ztqb5D^iB9OHJO3eFX?x+vku7sS#nmLyPHF+!0s!3==dFu*Y5u@y9;-Sw)2jeY{1Ij zq3@pGJXpv({;q7ojX!pW`|p<@>%`>pN|p94aZ&l7>JP!Xu4+H9UT6CKVq0ubzOME3 z5E4&WaQl2NDOUSw-YlSj#aph0U02(W6{dE zYv|MV-8I{P%iGO=3*0vZmvgIo;oH8#8Q%5wR13P0n+pa;8)zh8#QJIau5_tPP)WxV zdl2$P0eJyKQv|a8elCTNQb_!*QYQ)-%OT*AJ0qIL&LRE?K*U@S;Y30xpG`x;NCVr( zogk0pv~`HbQ+@+>7=%Zw1cuVecT08FESzr0&76%2%UxRPVEnaFqbcW3qM(>{?=2u{ z1weQY_3?i3^FN(8J)_l29)jtmyi>M5o)JK21!I6p>WlZ!@jIS3s`iGfeGEmkjG6Ge zi26udS#~ca%?z!#5W+v3#Khq#DmD7OX9%mUSlX|x-S~*i1`q0{PVV5NzDlTf7bR%Q zWjAA6Hynz9w1lN~Y2i}_W_@;Ltk7^_JPUSJ=2}%D+w<$vC?IsA?n$y|4Nv$#zaZLe zm%1-JSO0#z3c~XJ2tB3LdXSAW&|VTkUu`dSF*;?G-{wpO4y;F}7iro>n>r2|i8sk| zP;-ihC*{7m5x{c!pN(TKTmE}Oo<6`LD*l6h4*v^;=&_@!-nJ4XZuN*fV!8;lLf#)r z$M6j5h+KPlS^yA$q5{Pcz1DnAjj}sgzPM;)$uDjZBn0sKSROXy{|OYVDpV6K{T-oV z^%DSGD&de3g%i-<4KHn7=_#K5Q@8w1bMG6@*xi6j3(C&hHMvuLEpv4^few9{N_94+ z?-WGK$Uin`ONq*1(P?ohqWgyD6=nyE^ZnQt+wOeYz)J1tI_7hQ2UU@lFerddyeM!? zMcgrscTfQCty}Exn?tT5)(AGn()fPNNE-|7jO&lqP(9346~1pG5oToh;%QLyH{!=5WVL7kN@)4w+CSVop;3^ zW7GrSs*&E^^GiqnV}+K|d|%@s(UeQ9p}7Z48t`}d^)KM=s*V`;nUbxhvrb4nf=3Po z;Ie19KbrAWBZ^M*kLrn@H@*bafI<`>ul&iEKm)OSYsf=UlK9ae!FMC!Dts)Iv4qx~ z+sBEbbaJ2M%2ZP5v^ZL*VODaRsd!c_A2PHDs<4s(!i!bJXMP%juo6Qp7#GbA_7-t1 za+&-NAtwo!xkRAby01pjq1zu2d$wk#E7ex_Z@m86DobsC$Hp|wpOH@o9_fGxnuINT z%Sa!71N(+KY8F|~t30#*e1m_D15!o2d&$%PDKvK?|E)S~e&iQ*YZIL+3|_%GAKvJQ zE`_TJdo7&mJ#~*&Q@eT+mrC#yLI^VG9bN1lC_ihoYWPlGnnMs*8mgge@UOjVP2tpsXiMKWTXEF05UPY#POqMvw>X))3vOdgop~gjCdo88b%B8I zopo7(7QWb%kM}9Ufdo>!hj-=aQ-Sn=iMR3Uv5xAZ6K3y{9hTVSoHwmDv>$(c@F{wA zX^GCDEFpsruY}}+9RvmOgCf+_!qjozQcDez0??tCEM=DcmeD_ON~75vhQAcLbQDwZ z5@MfRJ4`WU0q|UP9T->Q<|e7Ac*BTbC7Q$xDP|*s^yeBvds&$7Jr$~8?A=St`3597 zOjCQXM>g9d%Z$QH$q%pqWDBF<(YyfKazgqvt425z%*wb{cF6aG9yFSKGy8Ke)@{7o z!~ENEIFh*qXk{+KeNPvU^gAq0M#^t9YnGjc#cy~xU043nJaRD}D_(u?JL(tcEr8^h zCiK{LB=a54`+Nrd`0i95yO=nNtwCfT*4|#vV~6rX_p$G5XSE6`3UmQ{5UM}CQ{S<) z>24a~0A7v!8%);)n;XA4Hs%y@_+gUfM)ed2JL3NfJkS@m&gY{Bq3yy>^?lR?ABRZA z@K&5ZNw+l7oILW)(E_S5b#X+1Kn?Grmwc2Ig@;+x({O$|%-W29hBtRz7=FFA5>oFO z?O)x9cGhqmm7y3>r|R_#H~kBgNR`q6g*#K4}j z%3n*wfbg()Tt+l_S_9E?6=oIJXZOT(iV9U-x0?H#EHX`0FVWr z6IlJM4~8?BIaXl<&hkrLwtO>|AW`BkX)i=2;?(h8fE|Pa2G?0EzK|~zN@CoiOJ7Ui zl&1mELQO~*SW^Y(ESAC*xX~$Si)OKO-4eapT2PUwyV&)}GvL5UYr>dvp2=YV7I;8l z)ImS!lX`7bN2_e200eN#z+>2OPb%|Y3igx>#&Bt%}wIKibrqb3;Uh5O$3$1Q5vg(JOGNx?S{ zTiZ&%VY0D7*z&Z^o7;Vkh>x3}I{$wA0%y%Dem|zy`i9dj23h2Vthc68b9~)}KtC1f z=&k1C0;N!vUv`efwCQCF6-OCFb;C&cI5S)7sTChY&G?!&?ywg`t`r znNHK%=Xs8irp(O0WrW_=3Dwne+uzEGY7!+^(i!is_r>TWUZv0NNZx0y3f$``%b>}2 zj28#mYZ><+%D5o?vaIom++J+$1qWtjvbT_LpkU#gj^Gs7J}e!QH1bBWm9| zqz9(@8u#gdBvGPH;rK%hIu`vg>nEZjyE<%a@o(&yzUnRwGTw84#6vltsl|%|lE^kl z%Kc-NCTFqps=;miKXx?Cqp+7C{f?|7#jzT~g4B@XG@p&v0u-Q&KgwT!s{AB?r`;#X z5a8liGsk8QC;iIdidz}K8OQ3}B_p!2XW!5i=!<>y1$``ZIfOYSiZC2So>4S32tEN9 zkXN2uRPa~RbC&V3K9+5`w%A?i=H!vpH{af@k`W(BA3w?6@@f*zG znN*{oLf+Bob8XrOXXduT+?xs-j9O3>`5D7YY9ZRf#nD=kASoazOIpCSufLq|&nX(? zuhZ~U6c?GXDaAA-YKyP95mV``vGU=23MNF}yiKvbARW^BPoXCq+8v^>@%MBsucyI@h1Ai(jiF1BE2`Ic>-WgJt8WkMo(jbDIg-dr zkV`?i93#1+>Qv0C=WeHBTuZqXvXaC`t8KHbI3=No{0WtI% z%yyLbtz$i~mm)U;D^*zKn@()zhgvR3M9hHgjcQXGJJON!i@9_Lw}vFDe`VBoI`-7; z`rn*RUQ*+h7(ppo1Gf`V6DxT%ix9ZQ1^(ZEL%)Alo+fZ~XfLj9|BjJzpmmv{;X&uT z>J)_CjRgOvFiGN?_iN1S#Xw9|sWugZo7;!&OVQ`)cx15D9(eyztt!VvW25SD=xI0I zm+m?D`xpg1g1$%J?Z|pSkxouJd^R4}h|9yP)dq>kFN2NQQhcc++P&P+68^V9QxZ-| zbvwr7vA$xrYU#|~DWAN@Z6n2$A@yspB9IygbhEnkLHY7@Aw~t|e;T-(Tpr2fV8LFO zsAKRmmdRenTgsgMl|@6-PHt*L~gGFOc(T5^+q6Z>3wz#}mKV9D)Ljv$OMy3r? z4L^Q@Kn){}7-wLRufK6t!l%#gcImO(#)4CrYHSDMllRTp6=EOP2k%9TxReGCenki|9(^d>U!2Lw* zg)j)53M~0+%fd3S&OOqxYi1$feA?QC1n%vO2To;h&N+IO9eNdT?Z0GU$7#qA@BZ3Z zA+L`X+|UEJkybY+0I327n{`rOUfl2&F3uS2R!+%EeDvl8WOC8il{uSV42Y7 zHnPqr`q|nHaZf%2Rra9h6cIXUJ zWzpHUW`Od@Cffy883}%)sxMqi|jT5@?%ELrM7q-q#PY zXAXBFE#0HCDCUyw>&tN-^I5i0XeaFFSVR(laOALfV%?PuURTxW*xV_t$Od zY1|dQe}}uzaY=3K-5sFIu9j{!tCXgvKj0T+y8j6NK)jqMf{93jx~rt3JAet z*Gl;qk}$W}?D0BhJHt?hwy)H{q5uUm3InHFPT@397u{uAm-^ce_d44CG7YtHpiBY4 zYS-I!CS7fJQ^dpf;Y)HKc1_FIT>-K8K3IT@aJ1#C5X?}yzh&&A2sU= zO>qIF>w2b5l;R4QRM?wf9fxpE{+%2O2DKGa{@i+~m>Jxr?{!=|>w|rJS(X1syV8~8J zimWS%#S!BtVFQR$tpC`~{up)%P4IKp^V5Gb8gq?H?=CFxXwO)a*P38rvKXM4zc|~q zZ|XuM>qKD6V3?}*GN|TNJ^mNThguArB!!?TiI*2- zbUNj4Yqzz%?hDAFOEjb+>d8V#4$DU5-b&ZWbXOKtFx%zk+Y8W;&r`KEL1g>MGsxRrq`7D zo9-cxeDiz6ow(e%ng$V919OY*_>?i5=NRSJ$zp%JM(XR`-($o)Uf)hEmHm`CkNBpz~|ErmQ^90+CLvKJK_tdUdwLL?D#I_xS$ ztoIoRYv!VXK<67+IC|Ar=vbplVtf|ggdVavqx8T`M8n)%rL(nn_zTK77n)1->ERZ( z5nJ=IC4&+CBf@^s<8Q9Ud8g!J;i?zEpm-fOiRciO$vyT3$sxf3v=6Rc6A8dI%?_+~ zaDjgFpQz(vjs|QlmTMUb1FVExo)n8Jyq&Ccr_Y>`{(fQSjbLh0@XGflWED;A7#S=R<&yc6Y1G7`C}k zQA{yew`O66kVI(6o`XO9d+2fZE18en#*^@x6339IIJFGHc}@GmyPyUh~#ZY|)i zF8ShWVa3{m_NdYX&|firP7uX#V{Ma*=)2j#-QwNgoJ4mw@pLe5wO$1MNBMpxCImZi z-9uNo=9N>^Qk{Q4k=<75-$1}vo0eKdG^a@vRNPct3dr8}qOhxyVOVKz?ugSZ>FHxi ziRjA4)B5cLJdzO_7FI8MdcD*b$#vw|>*H77OP$!#fpB&tIh4je6Hi|Jmt`X4!1t|9 zeIip|L(wB7{O1s2)s_^7eSFu(U+QLitC1x33p(%l2YuzKt3rUjdO!{a;b|h>h~cf2 zx9_jf*Th_f7`y+2$2+jW$7v8CnTlom-Mt{#rv$RnIX(Go2g%ULr00ihebrL#Ycw? z9}0#$_B0r#fhz>FVNN*ry7J@j$@Vk%UB%$VH}@X>zUn;xI6d*8C@WJz*SJI%+;2(Y zUi;?*5w-TL(v``a{TqsSb=nFy0}%7#+XT(VX1XuxPrF5-Z>&^^%HbkX0za2o~<$NYabLLfzEU35H<@SGHiT=I%Thk$m z#rsJrm0A>>6eSe>vW`Vo_*K`7{oCe0JJX?86Uq&ozEkIz4Rj7Cex@aKre5#gLeVY(*|nLCEQ?VFfGn-yqgdWN$9+RcLrj3oV`3*Ze&$a1 zjx^8wj6XN)Y)bC8=73|i^X}qImTW^)DKJA_{xVB{{Md(`Z)^IreByW9{)WaWph|y?;x7lc zB}~=p87JBIm=VBNMD8NVuTXl%9fwh?)@;z+-z1!=P}m z9Lw5{B*tTXv*Eh>dPwdqi6V8sQL6sHy0?LIBV7fDWRooXdchskXz<`z3xiISno%0; zv8!SMGnvA{VcY<#`A+v7y8Pv@r|Is@<08wJ=LNFZ)$?tq6qwO|@Oz~Y84hu$TzC|I z>h3~4MGOfQAXU|fj*z1lL}FzDP)TPS*Qsjt-`0J7jWbb!!R5d8;pX?93!;tj)Zs>6 zp%%doA^$++^laNMPb|~J>7b18ApnTLOlFEec3>T6xY!gkH5s3o$vj4xx%+1<<Hp-Q9f6LVrJ_F@aGPLfYdL4y^-5 zR?@(~%%1uuef+k&iNPRleX!!1T1ug3Y=`rRH2Co}*Io;SX5ETJ@Z`SI^?u~V9}GoQ zRRV3C8^P7R3-q-H_#pRxO7OX-u`1+p%if5JKcR$tD2s~AP^P!Awc5G`_%dyDN3<*8 zN5J1#GbtK=tolm-yJa&isx-ozDe4*9=5DcjcHZxMq;OrrIl~ummR2!1; zI9#>}I*4L`WLo26!I$1EITN|}W&F$}oOQ8) z7y~;1`*YHtQe?A+Elmy#UP$@{Q~l)UJR&g`&nm?sz$a?_3A*p~ecUZ=-vA$E&UHDl zW@sJpl2<=MR=Q~*pEgKXwjCIhR24P-4*9g$>S3i!``&NV6D_X;is|ijV(gZBh>w5N z7cj3hD|B^}loQhC7L#QaZ^%hQO44DX-VY$ktOj_A=_gJ)Vg5K0hmw8yC_t-{hmcli ztYxZ!X{`)C5!$fIrE8m#uKIp9?0TQ>elin2K9K-U)TR4MBNc96>_xSEHuoES*M@k+ z4$s+kV?36m48pW00INmsHf$ZWkks>OTqF)D!KeFZPaJfD^M*S7FX`d5y{`Hh&&>&9 z^rV1}hF_jjx%;C0JhvC}&|jvdd_d3&h^l`D4o_6$5lUmvwUGi5Fjg+n=*L_tj5}OR zOfovikdvtJ@@DsJ8X+y?u}6Ko<=vGNMB%CAl`=0vug|JQ8m&*Rmg;fecRl- zw#Qo&48$XF5PkUl@&gwAcM4=^UUWi@(sfk>l$hq9YEuT4RhMZwnYljg8cl+1o!)Z}3^kSR>x;{Pp zL_%cwvqOaK)OXB%ig$FN(p#1WN=!;Z0A=zoKoj?*J!auR_2wSQSr zYM3U#DNG+4j81uMtV)@@x5Hi~2(X7izZ-ENX?68dOg<(zkcrYDzg8~DvX!x8{W}PB zg$8(4O8P}n_ozh257%QBW9FENB~^PPr1BJWW8UbOyHMl;p&V*7KVeQ=3Z*QynTc^! zQshM4*0`}h+^Q4knFuhhhZe6nrcBG^Zi?;noKB5@&mP7)N{5NvN9HPSt^iG#j?b}>_V*6m~Q0kz>l z5Lu5fR~kQa^!>MDmDZlD$t~_~R>WMhO}5vea*ev_-)Txg1?gn`rLn(euXb)rCHiwY zTp~CR`OxwTA^AVD%D>t}QH~Du7L%fBoE7Zco|FUnh@W!l5)Uu0Tyl%}J{~>41hadk z$4z9`4)O_)kJVH+6%fI}L|peNN53^^0KX3J z4h{|&8+_g1w<5)3Rduoiq%CoXnBQK6a_8O9UT)i-)&dt-M)J0M0@^<1Kzj^mLc9Fm z@jNt~DuD*dg4owF5jdC>V{CWy8T-Ekbq9hzK*`zlr#%(_RI29dcZG|UY@rK+)C`Yt zF0E~ec#xl(VTQb%fJJs*Dp+kr_@2ELh$`Fi{4jXFzrKAbIw{5sV5cS4!aFoAzB$e| z$EIu@fF!=4<7r%@p31-|Dm82QF*<0hq{4d{!Ec9~lMRQ{TI$cO@QCimI_fg?e=A;? zj%B&0oAy5ZkRh&^UioIDnv&#Aetw200+GYvmK+{aOxs$C0`Q~o3YD~1>paAM|C9FN zk#Y=vb~|0=t0aXFBIE!Pf*CReiriZcclw6Ni9xMJV~1WcY?&^kbx1L&mL@8-zS@nw zZ7BOyz*7E)S_&ckCriSW@*J#e<;w$gmK-kAA`UNyP&&1lI1reV0&*}^e#J6%_=>d{ z!uUwdw2dkiMow)s2xgDk`}l3Ry}Pr<<~}K@IQ6mtc4WyUNX{X4f0D2fqRSUp3E&jm@)`!v(|Xx-XE!J50D@F zF$wma;_#5ZJvhdcU`;yRf^fDnO;*@7wv{lZ8LGeZ=R<9Uz7Zs!$gxs4nA@qc6R&>H zkN=0OSVD*i4f!QBT3Qz2rlU+0jXvduhNAaPC9@{1il{la=Ea+7fPg4BqzXuoFyzIO z!cbV^Jvb8ewP*LW!q}egi>!}L{A~*QwGALq~|za@@`=s5 z=NQ(hBjmz2q-%k~ma*A4}v;z6sm-$@+-S}ISzRJ2-m?e{f1 zWnUyr`8jjUnDhjGl-};!nV41Cdd^}ulXi7dkDVGYXSI)he?cG(uXoH>L>4M04dQ_lVu6B%R{(#50|SOaQ%fnzOZi&OaH!s~+(eCp%|{ zQ-mki7-dBz-KNXt%xyz?8XUCh3b8&jELPA5&dw$q?FA z!?tWIlS0i}SCsA&*O$k~=cbu9)9~%5sny85 z5tRsa9um3B-LU%`r%t7eJ;*&koMU|-A9z;$Z%)ewG5RZP>1U=ATGnOukONSc} zUOi`qZXvfTWxB6;_!O*(e8ht-6g=WNs zaL~-*M1%KIho?bZT~{D;UfJ(&zu)o>o-4mtnG(S*LM$U&&@d*iia!K+2)dO2e^R0-8 z*#(6bDrg~yu?G^(kI&6zeRzC5yt{kvU|QTiMuL56lU8PFVe+4VhHU9Zz=8Zs2Aw1@cnc$1?cDL*v;U zNeZ0YT)VJ!?JF<>%XCghv5m-pu&BGwV#(!aGiXoquE)2VQo*0UVv4XK_c{L_(_;x@ zRPSOiO|~~|RzAyT{{$H5n(3Rr1SH*l#wLjG-Hx~4(cvy|wDf`h)#wSXP1x}t)&kcq zR_@dFUOQXUc|dU@P|Msj9a_~61TA-FqmpKp6*t5OmS3?~>4Hd@dw2~%Iu5^2C*3um zd?*?}q|AGY;a^ZLCovNWC8b*9x}cNQfxermfnl~~jDHx3lBjz<%T}NL-R7j~n6b&c zA5y|-P+cXxiss(jAe}`^vb?lJ_+^aeRv*N4V>**>R&OD_g+aroNXhVXo-R)brSh)# z9svy|ILQBcYvt%Sl*35YfK-Kqkq}}^6+D~FaaVy@IvWfBne}`$Ca+SFWkFm6X{Da< zlh0Y*Y`=*YHn%)5H2iu!)~^#nU#9plil0|#JIiV|3;?KOM^UBJ@2|JJ3wL2J+L!%S zt}%*=N~0lcQWow>bg%Nt2adhl{=Gg4yubL(J!#k}k7DmKptIW-Z>0w)GjhB*;KNH} zWY@zBhmzr$v^DX{i;J(tC@a`{3W$#HEiL+#3C3_~uLfj$W>$Nsn>;XdOsZTS7>=oK z@W+>4d!$b}yqXrnCqeG`lBStE+$|?UYKTjZzj(`H?rO)WsT!d3h~MgZv(%_f!44LD zhR&ort+IV{Q-xi`&2%_r_m$~6+{;`_ zsq7r9j&9G~{!H=NX7-0|A?o5R*Tn@aPe}=Hb)>;7OV~iUmC~eoiM+*a9Jb%%CMq1~ z?1||MR%#9ydZA)Sl}i0a+4k&3Y;r#o z5$gYPv3i4Qh%S{=JeOR`DTXUb4Vg#-xjHy*ZIxrd*vdbC4iquka%yk3Z9e-;FC4<&MXWB?T(U)c36yIG|fZ$Y+ zL4JAsC^s&ehk;0|vX)WP;9t$j4&^EuRH-ae(+ksOZYe5lLv3%LdYt5*8y;u(#mG>8x6$?CbMp)d5CXNY$izg{a}VGz`~h&q^(i{1ABPuuqz&9{h0M)s!t z1Rlhes`e>&u9{f~(5y<5v+bue4rY2pQ2od; z0k4atd0x8Xa=kk#LM_rEH#w%S(J^=0QWMz=6>TL?`@(-+=ZN`Jo?I(^zP;UK5*SH& zF!IK;tgk-tUuA01NSfd~GwSqL4w9T6=4bDBC9{6$VX*&#Wwru8>qLWKq=i5?@>Do~ zCU>UmN+Bg%EpCfm?z6W|LupRhJI+`t=pzE3c&^z@@4g4kRx?BoroA8$%#V2%?6b?u zq)I{1-exWWQ_UokxbC2iy%yIuS%>j=(w-TwcR@WF5eaoEl|w()81_yBjw8OvUo&vK zLJd-$I&G=Sw>S-X!PxnXqr@yyhprTUs@u-p9VgdbGidWJcPk3Tm~E0nP#})aO`vDT z%RU!G&seU14v`(wc?!0i9XRLEJ@WSm*VL*s93v+*%|KNcIg{>({FP_3Z83e+o5)~9 zHK}mBhR7F}u$+=?`sI^wWJF5t8~wESuH`C|Jr-e$^C(C^-!nSBv(s3 z;t)eLj6TsPx|2UfoMYnKKqLQmnN1wBC}HfuH@kA?)WUST#&Dmlk|zj?Baw+fcDE`R z$JaXHpwpw%b_WhPC!%GaWde7=?ZDwr(=oO>;kM*gfT0m#Hp*RsCa%5pS!S&jr# zg%MK0og8o-l;tb^55fv{E;M5$NnV>&m;YS+zWb^D#93J0w`Bc%FTgg2EJE0|==9>> zjslwxhJTX%QEU-ZEnQt!Rf?CU22P>1>mGb@xuEf5!j6M-z-=`{OmD15JymV+V;wYa z==8OhI;AdIR$!P$E1%6n+04G9HhNM#O#mTjI44an4~@fg`S1*EyJJ6pImCyd7&q}0 zZ$J)X&@o(cpY(oNTgy!S&%Y-D#^Fc)@^JLh-ec4SMHUI9mr5lqfH!{JTfDg3o_m=@ zZIfMgwzc=;p=EG5eky^TwF4$mhGoHzc{x_%Q1LH|@ScBG!^el>G>lXYh8Eo9{0{g) zz!$T-jgZ=BG2ukn?9W}>1dkP3dQ$5foTTqWyK%N6yokXn(%ej(X^$$r>j`^#q+|w!=+s8EYAB${s=bUMH@odR0;fZHu13 zJvLhpr7V2QY})N9$+vDpFpdb6x+xM!o?14o&==d4i2-b=<1vfJW#pB&X%R7s-%mAA z^G6xEE)X&PalMtv7x<)yzTP^_^-R8&B2Te1XT)nLt%FO!kQ`}@O#vk{1~66ThsJuz zQ#<}Spvby(yGp9m54=^!L<8KB%ELkT3ILxgPZ*Jt#JRdmsq9r#Z9m@ zbt!~eMuM2e0u2oK1efepX zQilby4P^QnX^$`h0 z6XB*}=fSXk4WW_l{Yqo`mi#B)a|J#0*~Rq^16sC-& z__pj14tEK=4l{6Q%HH~a>sL;p>afG0t3uQXzlZU6?=_gz?*3WgGQh~|fhFUKWzw-G zCXNc59Xr`mf0}eajF&P%2Yz29&~Svf4i;U3zACibZe*JLD;yeoF|KCd_FYr34AhCe z*f8ZL4|nnOrgH20_r|OXs>QjR-}N{Dq>T9}pDNM6^M}PmX*62$vHn^8^dv9#_uY0O zh0(I zn++(wXxmWQ$K@`YDHX#YX@eS?T<;(RMF`)5Dq(^rrtPLiHCmKL_VAHjX|JYOGZ^*d z#Pt?8n?37W=2K)*fNX+7HOxs*o4A^vxBSwmMe5k2z z9P_%-E{2{~{Xm#KeJM3wkhDf!Yc++(;LL3@tUjvZz2T~60yW5Jiy71O3>!24Q!sw^+$Lx1zI+D< zz=FwrhOH(joZswGFu70C(-waRJ^8Z_89jt5i4!kjDNV`^7gcOFe39PA1}AZIk-@t1 z4&F8!Z^UI9w2Ds4{45YJ8OAWEsEV^O!$!bRF3X8eN_rljD3))B+QbsrsJUKGwfW8! zgGpQ&_8NAYbyk{rHw8<6){J&+3?BQ>AC}K)2=CfIH?6WAVdEEjX2Qd-Q)QTG9FMns zX{^mTaY{^^pMNt`{Wf=#)>G?FyR|{%_c!BT`NZ&y`Q~xf;U9r#Mz}zXNTB+KsGv(i zcEg7HGp5$=gLXa-I_Cp>ccu7ZP58U5A3qFTol<cD_&n-w}oVGeXFX0`{aFmT6!r}t8?wn%` z)Q{%^()x@(mW_dM&^i*GrPz}7!zp*be$jG3L_@|5$9GQ}&Lu~7&4nE7E$s9U-g7A# zf-tZIxGJ>G9qoJ#xno}a+pv1XM5GBG0|nK9E%XzLzdU-f&^VZLSvT2fVQ7eJz{S12 zYbTrfEB5v`HeuPIA}!%Ad-p_7ewB0+^J0>i1fv2t7WQV%T64oD;!KpoLL4{DLbBW( zrz7@Lo9*+TG|~F=-eX)snC77-S%nrw%^#ZT*B7Lz76Xux3q&a{OcSh3;8y8Sh`Q+g zskz;|q|Pq|>9=B_SO9xaRySG?nI%Nf(K)Bicb8~+`jpm)7{^P&b#QIZOo+XF25_{F zfXt~r3Ecr(s#nm!(z+>)%&#ax>3BjeYm$ilzEaql{n0;C@1cai*AF+Zf4jN%sZ5NA zj05Ak6}GI(L|E>AS~WiDtOY!0)hC+&fJds{;RsmI1OFkQ!v8VvB#bl zUEQ76c%u0}P_)InzfTnkxuYESg#W=Pqf!2-x6Bz(`>%O zgp3q=bLH9LX%l7643FqWYW2o(F`&N1TF+2E zrtZJ|bGcEd#M6^O5;{%3JU(rCfq&rRX=`=deAPc7)!i8bo_WIujxEvOAj~<0uCP9V z=*0K26!#{^ubN`ffOQ4jKx~weLg%{EJLr3boAY{JR38ukfoZ0V6HN_@zd^?)&-CaQj15Kz1dt0cZcsh49+-{6-|mX842+=x)x+a;3ctP1C^{>tMf|A=_YFQ|Ic=tO=_KGy+3=S$I9xe!^LCsQ)K98ATs zRmU9@UTczTs{FJ(2uvrRktc^I7Ip-Apy5vJJ(~Q_#d!QUjq~)GX99BLrs=nIQ}R{{ ztZiDmcE5CHsi`Xka6arh7#~e7_6<9qUw8fq^;1RjnZqDkO4or3+}t9ERL+}AB0@1FjViTL)6XYxY! zl&|V*m9MQNXcPmKtcAuV)qGlkM6FB1any5b_}d!76(2p;54W2fmY-i#daPHml7p<& z?hdu)n32A&dyr{=N;S;R1K#8Y&21wlfYcI9zJXt+KHbSTyP0dSy#LBOTgb-t!Ndl; z^I@>(-0sJEss;z<@8z@yPv0ljB(k$+S}?^w0m;A5FIX9D-yI>PDE6`FeAsEV$ z0m4~siK|V2p4!?p?uAh052YWj9r{z%P>L4aYDS!u7Zi=!Zw&G7!cVDS9#K_9 zvXa3}l1NAeE;2y@h8YEKDHvDA2ebqGP=Mv~at0HUQcbIsyKCJ%^IS2LA5E01FP&Ff zU=a>%);5_fMj^40C~h(w<+x3MaUxs&i|~;^-~A__+hYUFi($~C<^O)Oc)%i-WiGtHW52cY_1#JpT9W$*xVBnIiLJhxRJD=EG1> z8#`DZ%7>t4T$lHvu$L_$r@Qi0yK`*_q)cBO>$Zmcd0RWX(&VKYi|H z^={n@y?jJ<5}3&p%i)&so7^{vjBmmOTUQ_^>*k*?`nZm2X&oJnQ@q|Vv3;ri!JE1S zRi3U-J!frk9;5?R2~UnpfPS)~SN$O2l#VTr)|!9NrwP);EzQ58RmX1+dJbEAUwha6 zuLqmed`H^^=?vWlGoEBHopt5stSsl8zu)N>u5gTFn&Rv{&1q}^L?9S_sv>u*fLK9PNGh~# z!#^y?rGh$L>uS^Hl$$cSIP0r6mR@Y=q%Zx#&{v(f(11JZB_G2dus5_o>d*T3w*S+p z3M8qQlHwEB;5m|YeN266F}Ts+X4k%;VzqK*+w{rBrps2u65*ktx$CmG!@6&<2Q$55 zPiuHlFOH^t^+YI$m4c2%w|i2+`}J=KhYp)`mbv5BlkE2=%4&4WaV)NL?F0W26729UDp5vY7W>5aKmG%#O+S36uV*25#Wq7yJ(D`@? zGnh|CqcDU&i8n`DTn8!viaQfy@{@Md+W2{TEcq?6)qDQwWi8wzF3Jct$wX{nOd+`> zj>o5r(|vnCr~b;!J9Y#VO+FooW^9l^Or{8wpJJV#F8yV5?#KI(kozpyTsqTryW_3yY>isZ+fiV4t{IWS%7a7udpq+_CJbz*H}YCMk^9=3)5@} z7=NqqVIg-49pu;ylJDlxIyY`Upj6|_27CErK-+y7bl<7Fd0+5$c0@!ZH?plE1Lou$ ztAHI4W6idqjC#>G2Ui4K82iP}cZI6o%*7+MOQahZ^nnYQST}|W73Jkt!t4iZ{}GTV z4o;e5^#P{)e0M+{&!4rzN6+}i^fJ6@{xx0UmN;42o@K(!fGRHP)d9=6<t1r*V^g!;>Q);7FeQwN*=^=}FsF@-^{>pls*mI6dA&;!&t-@=B{~&`v(V57As=6>2pTf$?P@LTYzK?FVKyqp!#SQree-5%a@O z@(2b91%F8=MJYmcrQ2geJ8C{8$9nLzT)pV-;3AnnywyY{h1_!$sWUK9kv*zWbFjR! zW-UhrpM8@+d5tuR559??mrSu&?(lG$e^R{qt&w`x@^<2d4eP0{mV!!^5waQg!Ti#^ z>(K-H!Ebs;og6o-AuEH$U#s5^Kb!nIGf!ga!Jk(P4~=7GB@s6WXMp-5T?pM%{NGZ3 zyo&qBVsJWY1k|q!_t5{`DtF^um}BKflTCO)(-%lOnIrZU z!%K4>e9TbC1DLyD1Qv-{YLj?#m%WWEfH^yFKp5k<8piydwQ@MhwJI8I`i#{vk=fupLm)rVq=yE`#qo$Gh%ohD6gnLN+0$=OCLT=_yb9v7qPw$^T--D1~FYCgWJP18P?vVH5~E3J4d-Jqi`k|BD(N2(LDBp zq(=D5EycalKV3gBj{kdTZ3;2!b3~JiJe{H>w5Q9(#3_m)t)-Y8@v+yDWo%=7zE^Q9 zLuf{Q73#MT{MMYEdQsHrUQ=Ip8kvTyE(gVUab4(bvqe+RhCTT>w?^5P%D0fSm;a1R zH8>fOU>b!ZI4^1E1b-UMq;F{2sXf*Y*SRz*#3{Sd4rgX##+uJyim}#`mq&P;_50`I z!XqQmZ`$^^k12-Z3mM_lv5fg7xKzIBovA4xoaf7Y2FK5f>ZN7Hw+bfSRX!sVKFfOo znxhN|tfuYJx~>uCp?#?X)q6QUkMgztFrwgsBfIk@1Tnp2ga&m^0eRQ16FT}8b9S@my`~r{m!YU?wrI%V z-<6sy?bKQP(PvFU%Zc~g?&kcSrfTZAI{mvQ@)U@Y4mvj4?>Q`7v9$P0{V)C7W6&rg zn-V!uJ(8>u2d&Qry5Bwqwz%&7<)gP(2G=K}u-gk@Rs^Zh1BAnJH;e9rf9Gn=D(X4|W8Z7ch# zM!D%Yof(#>SVV)DjCL+I))m5bJZ=m$>dzAg2bUCNTd5o`?ez>GZK{TkOIVaKj;D1b zFVks+nXAhT^|(c9>-a4-W6K*lSQM)aD=G>BC{2;^_w#q1=6c!cNjjx@4jRuNSHxGU z94I7_7^zzJlk4LlT`!;eH^2KUE<((`BzpHLJOdm{gd!b@JTL`Q7hRnEM(G^ktGq|{ zEh+R@v39$|?Q$Cp(JZ%AFHt;N5*_t-^TTA_$tvgjmQ2vc3amBtGyG|)9v(JBPFO~8 zKFF_7(G|(+Uzk4l^97VLcW4h_?-911Y4!f9J8S;_d0L(aC;2o#&kQ7UDi@=IqXG&8 zm3wT8aQ^FOCtu&yIid9vjN-bc^vf_a9PgU(%rdv*{??PO0sGI2o4WLNdCnELJZm6U ztxg)rlS^SRTau@Xu4bk4Lp4vrY+9cuuEIj<2gd>HR5ta7PkV}LRUjc~RW|qHEpjrT zzjJCPuTY<}oX`3Dto{3DZ!Z_+RpePQR!~$jGugxq5-5yCW_2=v42YimRmbRZnNo(v%8f>mqRRk_`O^-ch;2{!pmfEt zD`i_HnZVGJ{hHd!Ia)A^+^%Une|NqU8sG2mi$FhrQmn)034J$avZayy!?yLfeDY+5 zzMpm?%30cd&=YW2|AinQXo!y3CLDa%r2psvApbY>WPn|%qs`F0YyZpnxH23InKh_CsSlcbr}I_jyZzv064zq9?T)0iuK&dJOwLy2C12=ttrOxg>& zQ`qX&{5?66=jI;sc~h}4UA+puz|iozy0FfwPOer?z>x)F3b=V)^!)=2j*Hci3oGW{ z#%_tFh`%B;9}J4tuT7S&9yJ)|4NATOGB?H_cHK|#uML;Jc=`*nRN*ypwJ<_p!`q|a z@3)5u{X(Y)kqanhkeE9cP`Duz#A0rNcc9go5*r!t34GtitvhPPWEt*RjyN3YC^g_=?&K-F$OOimU>X3j$>Lwzkwy zr7U=Dblvzgo=l#XOd+|7Lf z6gaCbp(Y@};$l4i@>+#Ba?p|eQnv`O{R)k21Ce|!q@eQkYfIa4Ze}lo^D6aAZ}7UX zzkg8hKG>!%u-Sw`Xd3(i*r;cR365_jVg{bZAV7-0)2lZ*{j|-`!i65 z{53?38{Qv*DKqAfeD5i_A8-HgXlQi!YV%Rdap~3QzL5t%1l(&uBq?DmqSBe0p72M$ z?l>3(8vA&7cku3`;ITztH#2h!N&)p@mnY(8D#SZgUw1)mf1xsj{?eD3c7J$d&M3ZO z@rPRz0IxKh<&8oi(c~YxWE`*p(6 zo153P2Tv~xO2e|o@Tp+_;)LFSvqT>B1W2*mdSLsP=v=+{Be9N~E5T1INl?DPl;x`P zLa&LZr?MMAia#t^5hX-~N3`opvfjP3>^TFcLLu%(WC$Nvn?GbEiY)czM|2g z{5`*wGk($Bf*aM_Bt!dpzg76>vHb3aqBNR+q5gzNIwlBwG^K0zgCHNpNTm7 z+mZGT^@+Zy*%cgSJ=vo7nlHe@g~DFyrw4(UD4XL?u{rC$u1s57TT9_D4m6G*Z`^jW zfk`3wmiljTR<3U2&D$9>tw%q4*i5n6O71U@4wN%vL{u!9L5$}lzaq^HogIzkm0|3N}`q-ToYo-1v6mSwZ&d!vZt@Vib!MNM9vK{&zA1 zY3ReY3P1>_IO+Es&Mt0#@M*bF29}x#G?raa^9~>Ml;?dJJe0LbdqFs8U=&KwpBJ)b zfmlw1nQ@Qb^5vOwTZoY)Zb3c;(Bi#(qET1C*0Im;pJp_=F777&^2_OY7-%+)5{soc0MZO_(*WjV9X^9d5InNstlyjN&@Fp`HQ!`@ zweIWcLhscMdfC!bz-aNBl+V|T{kG1Cv3Z?=cVm!6Tm#jxj#eD z5kqXfp>KN6Xo6T^GR~ln@cXTsw8BG875X+%TsdR~+XWuBe)^9qvd7(!);uOl*zK(J z5>#e;vF>blNC`|z*drWk&Odz@+?7JIZJIS@#!po_Y@QYnmav4m7Y$`+Z!c{RKwK(x zjR#e3+~&rpq`TK0ynC3i*x2>*A)8aa{Vc`E5O|k|vbY%$&!E6&H50L6iA8WGpz7=_ z8UxMtY9!kgZV*2u!PGx3?wUZ5gp0a%zhFr0xq@$*d{^D>aHy5T@iq{xX)azqPXvPs zn;y=fXYRmQ)SLJAd<4x$-6&KP4AN!hE3&11^82ywzxdiqwxeU)Skx*B8}z!9SE&V^ zWiiQzZDPhn_JWC#=3C##4Z=IvFPJy~S(&!*$~>V{MFnt$bC$99m| z>o&zgtdc!cU-~9+V)`N>prSG08qps~wh`4NSUbo+X>AzCs9!JeyP*?@2v%q*K*Diu z?}m5ybYn`=y60H3VB+s8C7}Gl>Tk{;yCus)!O2=^)85HijF(4G*J?y`;kKOy;0m16 zVzd^UzZ{AkylG_y4(tM|1)Gj{R0p9)`hj zE0(R!V#6?ARhZ^IMc{c=cyun^?ALY&-3VxW3cC;JDgT|or@cS9EME9DwQ^kj;HSms zuYwAS_kVmk@f=xMvE&43P9fjk%|V-eY1}Su52o`YL3Er*09+ zt0*u_Vp+|>A%r<#CIGNIai^uG91cARc4=W6=!;y_p--cO;Hv3f?OMYpW#{7hhbz!tB`s4@D2A*7LL!7 zwgI+xCEjiRS|q+$0R(|1D!Sjf(7*ira(3O*!fQ;aKgR&zPbzJ&$%4b?n=}K45d?!Y zq0J1QiE3`=KhhCC|I1Z80O|L%qI&5iQHLu)GV`W`ok|Jk15}@&(5tpfjGQ08&-${U zitD$vly6|88eXSucz2BnDtNtZ^%n6<705zMCCgH=j$+YndF;-j35{RSuI~Vp7Luqc zVy)B*dES%&2E5PMsszyX!Y_M=1KCc_pD__vG&R(htB_bWeeOs^6n__dF)Z(}XO#d& z=|rBjC?_Q#P*`0Us%MYxbG#Kc&hUES1>JKxfz%+YAH^^pn59em*ZNBn5z}D0Q~&=m zWex-Z@OwUV={)`aY7rLi#)Grg7Mw(4W@A_by6GniN2E2&+&avRB(b_L04%OBgx2DJ z4c%M-hJ#C(n0NiiuF%U@mL!p=Ch=(O46kYAOkiPZyO$?*$ec&5Wn*4sg%_R9ib*w* z^aLEwEd1;bSYA&wd7o5@%4K_17V}>Pl9h0!0XVgxq@jY(S(7!+JiR<`lQuTbo@P9I z;i2l~H_RC+Q34cC2%4MRz|(gS_U|+OFOA3MXMP}OB~AW70u4C#otYgCa6>NcUY$E1 z&lHhdd-|`4U_xn_Qa;{+3PWaev~-!|kb=o;ov^jw6X84t+S~Z@TirW>QtN|`q zLnD4IWb2k=@^_+(c~Gxl7~a$MmDHU(_hmid%uR}t(8!#Xu<-TzsdqM@r@^#8Ie>CF z*6V0+8!Hy!pKSYPL4o>*YQmI0+28M*XT9Nk$J&DtVZn+3i6L}9m|A#-woixjEW1Od z_MTsVTIg5*#}pgcn}vIJi%(BsG^;=J-w0F!+xWlpKxR}}?E90R{WXA(slOE$qDqhZ?y5~1Dp%tvf-5mrC-s|&6)LbV?(*S(9ng?D0x>tr@+<$zJGa}M&ygDY##i{k>A zh5p`PW3{|H+5mrYLw`UKh?238Q{H#xN_`^fclT*|SGj4EmkBXhoROigNp_f0K8mNW z?qf>6?KKw|Ki0FjLPnst`XXV>*e1IVdtqFbA5hJ;5rI#$N?SR=XJQ~^;EyfN$vcC1 z%dbgS*RaQ^M}GrfYB!M0Xl$m8@h=#n`?wh+PEF)R3)R;0oNg{<4fyFZaCyd8FLO|h zeSmDoc+Y*BUonnw)MiaGe7E#<(#v}!_y*ASNit&{_$8sda`H6dOK&DElv`d?OG7#o zCZzy_nwWlvpZhRZ8`rvaa@BI~Q%yJ_qQF?XeS}d;OrehrGVO?DRs1FY*Zbsa56Tf_ z8+myfNG2YqWd@R7=C8zGF&iE-=VELC!9WdKMDvr{9Z|YAef#~IFWK~CbmV2*p^p{%r3J82EI;c&+)%xm ztC4*6dOz(33Z)?WZ(>t7h8JbMbFG- z11P36S(}NWgk8C$#!6^jS^v z<#SvA)%|u0)6z~0r89CK9x3d8KGX;iof-`aQ7`*>=xUbigaa(w#8GrdGBv(%YP5S( z_~S=0^624Qg{nxN4$cAwV_;#GVvWK(nJ*a@8q*}bsbbSRx5~$h`Qyuql1Ri6Q%NXl zG>9G+8a@NgfhFp>R+aLzG<|nvl!L{iw1_g-;&i1i7{f!));AcOxxbb6|r@*!g(SeoDZO0Enq13apO?_fF%Q4BMLr-gReM zDV1JS|G-l^t`AFlUceaw8Aw+1~nkGG9^;_mIG$(9ju6GMJ0@#J!R2pIIC2;49V8uNz#gB zWD}Qy?}_etD`FUm`XG)}^21eX{O+2^{Fd;q*J3eKg?jl9uOhU{q|Rha4~S&|_Zvoe zXlu28u7?O>97b~$6J~oFDzXT%fC?{OMV8g?Y5boKzk31<`X9ZzfH?ncaIk;-(_q!y zpqDTw=jcRUOp{b(0=T*c>6}5>+ibDgjH6t3@MBj>_r9|`7m~kRbqmHHc}s^&ij9jA z0-7iqS$Xg%f!ZQY3HNj^NPEm2*#H6H^4IEvl`HGVgMw$-3_+Y9{<1Ng`W97RMTF{? z*};nur!%p|Rrby=Tx5b`FYdJb8rfIRlub{OMwtTqgLy=lJ$|tPS1l2;C~9W~m2h+m`G>=xD2gCO}fx#QSBOgXKz#&s{jCrb|)Cl%kDflaU|epZA6mYhON=YqqHIca5I2de(wHh86U z#gJH5)ntT4-67jMOirzxb(KBo&oB4>ZDA1+Y`@}m^~t@eTd5|QnMv~3QM|m4hw{4s z{8S0=+u_vg`dxTzEI2CRffAqhqaIFBSDrkGWn>qL0prbhBB7C}1x4J{zS8mMgS0sM z4^fO74?T|_F35IWi1VO!i?Ev}G3rSFFTinVtZ`kIP0(Eu+BD*?F57BT514T}rj%k0 zT_O?jzu}jazsDEa2l5#I?bB+Pk@{OIv3-6rT*&6;BbL;L(*f9uhD0$mV?L51qy6Nj z8OFAr>1P-GUyz}V)Y)?oDGN0-sy%&c@e-@n|NBXo-LG#b6})MCyI}!iEuxCLOB8a1 ziRB~5E2{E7vY$G4s8Z4_b7yIc3r)r`goVsKb+G#OumET#SNHMdYd-GV?&rhnR9gFs zx5J4<+c()e%<$hP9|k3@Jn~BHCcUn282)5q5PUG;%O)tst*xV9(j3@B5N^$n;@fS6Cr)4rNNtDn8= z5dZq&kN{EwVIGO29fft;S~})!i#|=Q8@@YV!#K9oG_v_uDe4fT(yjz}7Z5f>(eyiX zsj2#tODBI9@oBHbLzYk?%Q}A@bqGt86z$Pq%NaJSVTn_6kyw33PftU>7~{&FsZ~uR zQAR(S@RlHSQ%&P=ek!l~AiJ#oM0U_27SMN@d%FI2cmwH$S3r?49=x7TruNlB4(jA! zRrrQHwdR|`+w`UhQ>u#n{o~`cZOVor$&jZqXJ^4*FfMNaUG5z&RH7?RjP{&pNP#00 zk_DvCp^;#P78$RnU%b{;TI-f4k*lT4ya^vY+=FL!2nP#ya|dA5V%c+5rB z_km9VGR7nmlKZMx8u5)VNhkwkd+*~F&4Z0=mzf{D(f7JEKgkfZ|BEmItH|NPah+>% z7LVJz9p??7JD$m2 ziBMHKCue*a^bQ>5<%z~PGGMt69iJ}JVh%b+*Hon4^Q?0eUyik>0P?K8-GzjS1z?1Y zo;0^GUAVHBtWm^qS!vpb$+bMeQA~;_0Sv<#nZ5YBdskN%E1}vH!8iJ~Lh8UrXZm1& zaodj?Rax0j4O|J|P?6OJtIMmk1ONi>`%7B1;`X5nh#OfF3?_0jIztVHUc>6k#c_C} zk-D@gnMz$|%STHi&Fs)fH8qU^vfwcopvNN%LAOygwyH+x8Egy^nbOue0?rV?O(>By(a& ztCs}zOQC#zX_i|b3z3z`44R~8&=20wM+Z4Q-hZl~=wCK8(!SP}H^@NPnNQtHD?FCh zuevc#lz8^Riq5mSE$C#xeOy05*jY&ac0PihMRyx^JMca-rd*CC(vJa2FoqcGxq9XE z|3srXLVB9LerkO&#JT8+%DERMtrwT5t!*B& zqk1_*MfOF`zQMxUe_TDAF9?xu-O}M3W--C`=_dFY$@+~rY^D9`0wSMnm#5?Dqncf9 zLd9;0i%9xrW=i$a58l$0u3t>uFvp^3R)+GgU}WB1EC3P@liBl{l<^M?lPYd2o0|l= zgjX-B3#ZkMacVkDZNE6V65r}=T)0gI<9_!oEsmA~g)VV-S4H3o>HW=|oGC%|_LgHA{Y?yf*9mZtC`+V_#n_5Yd?PmeDHcJ+kFW+Th&;E+=Pq zjpmlX?9Akr$?*5d{YsgQuUOdA$v>nQ6B-)RCy*D8zt@el%v|&i-*_(4^1?gYxATvT z;ite#wNIu>=8`{dy&F>Vv(r;n?f>I1xPs3`dZC=BC5fcyo)2^-U6+?9zk1F+QMu%D zxB23m{3|;jDA}ArCHmWpOpiueID>D8-^(L0-SNu>i-RIj)2w0q2S(z8VW0y`@LtowUF8gVXV|m2n)ckPuXjysLI|WpSaw5N5y)d!rOgmb1L-d}mdHBIUJg`zI?7V+jySdZ4FSqn$ovA^RytuwDjl+=&Z zEz6dNKydj`iVfU3(?A_YWEE^5U;=B)N#EO!h*bz8Bfx(>XWyIz8O%SP-6HObn5 zhk<+BYi+TBPE?3;Ie*RJT!-v@Q zDv~weB~rezc~}C);OHaO1U>`Jlu}C;_h7H!9aU`oI5^OqmL?yXlJpJ8a5u22xDZS= z0F%sbGn>v|Wlg-w=+)*FN4e%*Bd_T+n-NKMbq_bcI|23p%jr#k?Wz>${ zyAJJtViF$+%>!AUY*aQpoQONeCix+;{N9y?x9SZZ$xp_~m~=1?Ga8*m;!09@^{J`F zcCg{s`nX@X1J#}x5vdYR3yKJPpjvn_n*B_>D{QzZJb6+5xGykJH1qL+{nTiHhAizF z5&|*>Gm}9e^XIp+mF~q^SKFD+i%92Ez-Q)^$m2Ui{u}vO1wI>+0}XX??q&g zV;B2K<+$wY_>p@4;Ci(!Gb z7xN3uD>3$K963cVyf5UeG;E^CjGhWv%w)akauo8_u39KeHR?d##78(+B0TuQAdHo}~SBfDC1cLV`YhdmuW9AP@%03KXhqL_vPO4?r z{4kRlOYXg!%uNO%QU`;nwcg@_{eP%I>Y|rR(?&A9h#(>Y+{ZY~BJO6_>QBW|S|;mq z)Qksdt0=y9Jca#yP@%*LcR1L|baA7&oY*z8%0ZCF5I~>ZAjd#AI zV7$K&PH>^IG8+Ew`Kc*%kqXI-k`QENkVIDShS%fYExOHJ@wRzCz}F2lzreu%))Hw% zMG_$y11&}p4n}dwY;f(?ZVQ@fj^OWt?10o^KjL1<8aRr$;KUYKzE}|4$#K0%@404R zfXKWMCNPsHmLy03{H=(+NA%#=oflDuyrl^roR*WVhcA~#7c2a_{o%tqiuEgXU{V{k zf92>>4UoPTT^YZ)xwo;QX*1dL*P$N`6XY7~Zzk;2m;LQdtE9n@gl&gYZbv(l978Jbk)U-Z( zbFnhtcp0qAF6^u!?9!ma11{x);mc5O-70Dzbdk$Azq+62I#Ep0}L&%y7j&ssOwCf$` z3p~|=C+fTWzm2{66Mi8McYRSvBBKR%@<&NUg5q5$3{uf68R>B4yER80faM;D9@5(; zJ)?jWkTWnulx?&A=-1~{_7sucps7^_J;o%k3~gh9{-+1H7A{3-|2KL~aert1BcLx{ z5SIWpF-ymOs8+`7L_wpJB#X2fHkRJ4 z@|AjW^+hEMb44Kz4aPOPelMCZdV{Y&R`zz7&Y=#DhWPh!s9$Grrj107ISl* z=mfjjP#tFm;Rk?I+{@?32Up>Df43AGM5m$wAadd1{llxM(q62?MJ{r0lFlnhctLfe z6|Q;mdAON&%KFvGHC0U^xB{^VgkZpalQs}2wYT>UH)m!UTirWD7?$NR5@Q0P*`f$f z3<1!G{OiH}fxqh=4BTsctz9c+<;o0B`6N%28E*G>>%WBLqlJ}Puha(aLREJSk$X|x zrC=vCSAq#Cis+?Pf!TctBs>AEp9q(u13;G;(~3VUL~7x%Ri3)PyEN;kCjF8_!n^;3 zX7|m$4Y}F^eqxOQ0Zp#WkYjkuv-a5j?EHE4GH=^LgUig+mJOS(;5>202H@$) z2n*k+xlHlOvjhe1r`CkxpR>c3K+fB1<8u`qz441IW;bi-=ij*fbd z`Kd3J&yD1iK6-qWI}TIFz1}<6i)~^}tdAf1`>*M~^Tk(fITZyJS+X`~qUul8xeWun!1(8%J&;M?%+eRW9NSLBEQKCybK3R z+Lo6LoN!amleNfVTn<<)yo|I{V=rSC5h5&FANp5Aa5l^#?2QU1y0w$x)vO1N;S;FrDcgo$l`P0_UUgU>yqc<@O*FpMYARP~(a zzx|&H13_J5ELhc$8ycS6k4$M=4|dBAx6@1&(i#8R%uC-qY*$Vs|Kx%7Vkl^e#2sGC zii2+S?T;N99NYjJq!Yac)0p5l;yCoyPMg1gdO-$r{GfZHyBNHeg+kY14fU&zm-39#fJSPiHP&g?B2i*Q3r?mwQc+>Oelw+qaJIE82Fl5*ZslqCd2WNwd#ht*a*RFV`uvdPIS)W zdq2t+&%#@M)F>uuj@ zCzlo;=yG^+Nb|!bUoE7n8)dINDcSu(0eq4rBW!~DrkmrO)DBLL4{GiwCxMmZ-|i{W z2orNDCjFs+1QS&>{&{wIeHSLhlB0Q$PTP%l+v%{*^MtZ(Pq7zRG9%yKM*dKfo0wnor1eNawB;U*cs?T-sniaGoZnmboO zJA3V9@S;js#CY~bMBwxwU#W;_mf~%1;WpdWu>jSvKC(6QB;~9qU+ec$amG6eKx%4r zI$L7254NpguY?ot=+sH7TNyp^n@Jno*F5PTf4@=hT-~2>&TAtkxAF6O$DqSRUz#Wb;TB{55;%YV|D)=??;o>( zBJ}zhvWoE~kQzuwf2&C|QV2Ws76tTQbo;@$>lbn2 zY2d%yxBtgHg0x0uO!==G5$4@jB@7YDmlxm9<4qYDb&2IWkN;ZEAf&z?05xulu4i~%NYmrLck<_(msrldJj|Ody}9?#bQb6euSUa@ zwl=tp4W?5MWDL9uGTm%T8=hlM{<1!d0K;HK7}0o{f&KHXly9nxm0R*w!M=Fkgq!2J zu0i{UjiLoljyr9f5^<>T;7%P-RQk%PkAfHu#$VYRp&E&c042dS&30HJhyo=$wExjT zP|$Gz_YWprch;#+U=8=7Z8J^0?lLU9Tu8GuVY|)d%+5JV6{?s2RDrt;fO~qrU@pRd zP`LQ2#o_peW_$aFEd|fIIy&A>0}G=awDM9~G{^I}{RzIQ@DE|_p0H)8R#rIvDExI( z`0Tl^P*hXmWIAO3`h%;PDuV)!F?^sIO2OUTdKK}O%fm^gfzz$r2RoO(b8aVlVREAT z1OlfZ0BJ{Fhy#MUvPw-VIrtDQ4Qo`qVDz`?RxgjfTHz@m48DDbyX!=@I5ZzGJrKf$ zB`h3ulbTOu`G|a^vtrWmPF=K`Q;J*d7tc{`{iAGNhyCTok$q`#QZmq~q5q$X?>0YK z(p|%p0XC^F+jAUFUx=xIaZ8!_OqGJmJzYu^7G0ba({s})zRP{V=HX5;Kz_q?U9S8r zo5mu|P3?R3fBx*)dj58ZV1-K?&l3j7_wGB2y|=ta2U-@y&IN@^>Sp@_?4{V%Ak<{z z>SjM{{oA+0h37%L!=$D5rS|gaHX%49i7a8@sda(-j`PQ56@=LjAxc%P1s=ey2_(TV zkfVx+0>G5i(faV>pRyh;LP#Yq9%b7c7n7%g8T=*+H?oG)JvJH0v%IrJ-|IhBYqM)v zU8R%agL24^?5{WJJy4IPEA*fNh{0tEVDlf?c8$qj1IMF;Hh$pa4fI}7(m~KJ%Ku$& zQoO#3BUE$>Uo>v7$}|f}9sG5DCn^0gRw4EEQ@b*m7R-6?5=a8Vz3bz7A; zWwy_NfpKiT?9U&iPkqF#wKOBAQh~w}_@k8WEtCljJdA6-*FE3=E5%spM)}m#miQr) zqu@9#Wg%e5^@OW!w}(8=ZkVe0hJ%IgZv}fbc=1PZHljlF$G@~4lP0@Q4;H=WNfX31 zG--DRUFfHtcwOi7`iCYxM8FTm$T;t*d+$d`fxsM=CuMxu|6KpSzI75%?kqVBEs%(N z0b6(UM%PuRy1F`$0<9N5UZnNo5wQo5#%MCA3M|@2-2(Ae2Vd6Nwy`m*jw4_8SD%+?6MumYxVMP-2#i90oBBatS7xxs*~g0+tCbIN?HzPQMDn@ zYM_hbRLVB!*f^Js+b`}H%;K}v$lwDcav>pk*dOOLS`iUZY1*8p+k5qj{j2VkCh-_r zI)@(;k)Y?hzm~Db!c5&A@5Imh5w|PZW~|)H$9-*9P_8*?v)>+bC-1}KP+fM%y=L<*-@N9uN7XTqW(;P!m{ z_x4~CFmh8IDer3(;ovYKZXmz*)*>%fN&djdu6*e+sk`*Q`?g;f#6X~h^J`D`U#PR@ zX}=?(sPqSY(Y1woOSwEKO-%-3BfBZVVf-0O<%2)ln)F13oUeq*IrC(&n7jl%uA+_V z`^j=+bi}1S;8)vGCsUHn0`O{{OdNSOvBBJUp)8aUv}8zG?KC5XPNK0LGFvkhd+xww;H0~yMXmJnJPXFw;a5HPy6P!#7AQCuGp*EN+g5?n z&&f6a+O1}+|1R6dCKOg?WZWTVMZ-i(eavJA(DCKH+MAABoILiNgC_9uvFZcmBNGlz zDVX}FkupzoIDB3&iO{S~)EauC}ok};IjVKI|Q z3vn`@3B895h$N?yp8islP0svUD$0T{D|0T>qncVs<07a35&H}GIzqD}*kILFc|x+x zn`cz=%ZgvN7a{0ud5IZ^J>{X+u(W9eptg4(G4M;T_X;(9!<@9J(tyL61@$;K$gc= z1O&9z1#`T?`mIvF-h7D!mhLS%{ zwk+s%lVn=v9;hWK4TA6{v^Jo@TCc5qn#^x7isssYTS1oOU_?M9>qt&V*oOO2kbQ>{ zHu;l&Y(RXlUYz6C_mpPSykt3)4O>f%3qf>OH|4<4g!tGSkhs2|R_SCO(NJnQ*>q0P zps#UT*S7NUHBOIV(fLkGMCA2eMlco2-z*B|+`mB~d3|S}MIGq_RwbEmzowUcqbDtG>a^2^bA{jRvr!^dWv~mR5Loaj)hyE1IU&Zg3fpidv zgrx}+;k#;D>@d_9DZ$EK6r!b5jNtWLUQwU4yE4)Ncxxl8ZK!~Jjz*LjN6d7nC~*4x zM*mruUZb<6;jsS3Tve2XpVm2F!F!53?yu|xDUIHtjg+J{){F-^(#@=9Ke+x+JMHYQpeFqZE6uO zgT>d!kBu*_`@J6GhoWr2^^wBOFPOz5DY;*-{Jf_rUZ{V%vS*(ary5(gF7bA#7t*Z& zdoH=rnC!`w<-gCt+qQClc}zT_oZS(`N1@%vn&1PNV$(;Kf;Vy}@fc`AX0TOeunre5 zf`wYB5n{xcOAp=TlCk?42V`M?Gf-o^Co(We84rTPjgb;Drk@r3^<7l{iH4I!kV!cv zfan`Ra9$(z=^w|EAvNx#-F2#BRj$3G5r>>Rn|kkhSU_Sl+MLDoEU`-s&D>emtD+%g zox+A`#Tx35C_vk9OG&9ZJ+e&0kf}^pRXNnU+a4K!IzmIwR@Pne9)#H%M+_zNsx!nn zxuhPE#sHv`a#SWIqEY#Lr>)Jaddj*bek^xje^0ty#Gz6rvOco0(ekf3iC9NGMz3_o z9-8kIj1qCXGs-dK9G-CB4F@GXQ4CN_(c-DWgYm|*Wwq3ohQy`O%ln#%l=K#ecv3e| z0XPnVbDO>YD+@j*CWgt4vb>sYYrCiJxx9$CYIzy=VAlTr{u+#i9_&%oEAyS5vt6km zjDbz-=H=gpz$M}5p77^-0Cof;7)|qbn0?u2YWFLt?Q4C_Jj#>Ej z6h3IqT$#6zZvSq^7xz4#+a;244=%V+uaOu{J#*vvSZ+&=_q+3o6^o?{35|+aD1z5P zV>+`2!|x*z0#AKOcv|NR<~6^OD`E+ zV+BwyrZhAW8@=jo_%Q3Zq^NNhtfv3q5;fW0{M&iN^ZgiUM8D2=f|_-xnf%x-dqeM zKrmi{m#9x7WS0+ji;~1UV+ELlmxA&bTSaCvU%{&|Mi$1|;HZ-yXuTnK!W1!)bjRb? zJLUblTG7xS*-xb+NQURK6K8?j3%#|%1KxH2^D+PbU-fEk%atPG*L*sFt@V4b^>JtW z&fWpD%%BhxE&!ZsXTnao_`N*q$;{oiup*_ZkT(XmKTyL!ccIjDGZB38@k&+4uglBQ zq9%P8`q>ZLjuq7xZk1}$92TVuypWhK-qd=%KaN_!$M@caoB2HA^7j#YAKQ*d6Vd&p zPS&d#pdk&3*$B!OGY1Gq6J3*wa`$yUv-hX{f#IY1C4wr#oe%m_>iSq?DCn5pq>M|6 zdzt`B%KD`E(ceQdjIeL%ah3YtoSRXv>sm(MCeWVK7f%90AEe^Q)9S_sUjE4%bXfS@ z^l??1kOVn3zng!-&)qbF<`I=I`hHtvMcd zkZ-zv2f?dCi>b0%mT8qItuKe%+j6TYX1HRr_i|sdJ2;zGy9BPGB_lQjG7&ma@CoMG zTWL7_ac)=aW_|AK63WU*HLao^9b>BIt3^C5ClpGj+IsQIHFBRdt|~Sgvo#8{^6|aK zMMN_{%yG!9jFA@AUkjL{(Sn~QC9VT1j2srNv`POCySjV#zu4Iel%RtGt7>bQC@S7! z!<)cVW>^|0ZE_k=lA4ry#jZobDW=8R>;vO=bvcDT155oAZ5WqFj8(tkPF;bRY#KC@ zZziz2V>_ocHSiTPpCrej}^^gah`&r=?}| ztR;N&DQr4;Ki!NI6?HgyTmuA;fOkS))IIZ1a|Qw1^zS6`DPjxp20~puM}^k7)Dveo zy5zqgIUvuy;KGx%=(**1y#8TYGoqf=-rV69pAGqsg3|)!^9AMe#TN`_P17?XfNFU89X^^xv|i;Y=6|(KgqQ+ftYn z940A|a8Mj<%KGK*$=zddCn_!2<^Pxp{?~<%-ckN4>&=EMnr^@SUXeZ}C63_FQ;fAU zd!pDRY;_C32jHT>tGJqH&(`tm*>R4Fil5_fYYUbPUYq!7tb+1z+JHo(D!DeybXTM6 zqgbw%XSiRL;FZl!@ynP&_80;6M};LW--x?Nuc_b^j=5~3^q+f_Ms>q8+}u_i9F)nv zGuZ3Gw2WPCM_G{Jyz6h3^GP zeLKmi4i-}m&)4S|4O5@GlP5vI64PvK5RPT?=HW$Jsvtt2_iloiB+tzxJ>5fJ92h2P z2spBBkl{-z+X>*9dOr4}rwgwto7wxcj;2Y)Y_#L*q`ixcjdFuJJsMUQJ+(EtIZh1pbUBkk+ zKz5ll?$7f^vpSyM`(Y2)&+ZfNnxY~4Yk(0e4neyK1WjhvH-uXde=3uHD1WRYT5pDS zz9XD$E|3y|f*%4hf^@(6ZzHI(JU*^kc!HW>hct3H<{9D${!fGFVr%v#&s7#P(*#$s z1EV`FkvT3!-U~qXM6R1$vdgQ$Gj_a8@_;-7n&!#dV_d}PSl$*;hl|6Z^B~|i_COCWi}vzC-q-2eJUzL<&)`Iy*r{sUKoz& znQ7SLH7M;xVj?1jH;a1)fxzo4d!Ln6YkNPioAooFD;$Lf&a}@MKe<@g0*v?ztmg~m zXlOsJcK6HwwgM@TqG4HYCM^VLn(YyEKW%6Jx)oz(6jpLK ze#;3(O(M*Lm-g732Lw}$@mAy4VL}n0q5i*^RJfpu6uFkGiQ=#>!&!x7)#g%BBu0Wy zZELkaTy{s1<<@L^f@X2_CZatomLhAl;YW~yK`3jjN=%PMWRIhTWf2DI29dg#k&^OY zhS028*Y(5Kh1RU7M89F~Y;;H5QS#$Y{Ne}o#7qc;Z_PL7)8}QBvdFliMh1TmI~@#W zNo~vvM{ojabw%<0pS4+beJXF`0nN@RUgE=Uf$wwaXodEAY-DROM{aMuTZ6 zV~tb>-kQ%%Hq>2bdZ4m1ooXBajns+MH3B^pgaVYnp~>GNT>WYEEXC}o_95=u;G2w) zRgDT2Gbg@BNm7FB)^lE$Te+{`&u!B{s?iwI9g_FL^-1N^K<@6dE4JQ1SlDDJnI!tC z0J11kD)zCzPjb#NJ(LHpup?=~f?^$* zWdyx2G$LA*jE_I|-VjsDzO;S|Zrg!39vptSAbYG78(@C;9KaB*L(V?%7c#&9>=E+Pcg&=RFC4v(jL9$i}HVoKKqbj%-$LE z&#b5cU7yvT@yLhr|1hn7u&KXSLBJY5eN@kniMGY|q^mT(B;$9@k;#YA4Z?69%Q|3lF>UH!T56jkSYPiTdv#vcq6Dl)mUNR?sBNcV^SvG1` z7rf<)O<6!|vUuXIoLMVsb82t=yqf1_cF0{GwwT%U2kxoAZ#@YJ9Y{n@ZDGcJ2fx+O zb5YzRhr>4M$*@wWb|#)oMefzh6(vpm5+Un~A+^q)=dvldz=f}(m~@~Yirw8XrlP6e zE=D;=zx;~}^W=*+1=Pa#gP>*k$>S^l)=GB20|``8JH`5zeZbMyw-m76;&0A>p@GH? zXQp}dSkSijk=;CVpYtjfePUN8X%i3~&BsjSoNq!Et4u1n<@n~{J-4vdI$FGf>@-*9 zp^>E=QZHZFr%T;wi)G-|tcwpi-X0sMkAV*PX55mRJs7=QO2P~(A9u5Uy7-60b7YKO zA#o10Qd{+wYpfs5bc>nOYQDrxu69qOFKSMeZ?GXelU;`}NuZ3iSHn9XaG-MXZ797M8tLGNGo$}zw{ z{WoVOrKx)8^k}5gX1UQ-h%2ebC5b$rJEdm}yD-Vps<&sTym@H~H5?d>xin)c*8;T} zOBgb0e zm>ymYYQEztlyRcO-ikwOts_2kp}J*$wQF9po0Z9hc@m(!yAHV~=s9GNMPue(+@LBx z_vO&bmr{YjJ>0+Oh~mC?8M7IqI?Vt>ljF+lRl-dpMR}qdpfkQ?UjIx0-b`~STQdr{~k7L z36eU`l*M%QB=vJ3ypg}F(a(p-J}$S7N{YwH^czL!2{HRZSja&lCA?9bcbYFYk%Tt$ z8GB}K0R`L=@VmWvGI6sl;TN5!vhhh0-8uig5|~gx_QV|76+x(dJs+ivs5PtE;nCJ! zkc)VhKjHANRVWYi$uGZT?5)`Od_gjGb~uL_!^l<0lXk0K=Y_cP#*9IUW_9xCF&9XD z+((&*bwk5_iZ8=$YVphUNaWGhEJXkGXfONfc!_I2)kDh4dNWN2*iL=lus;`GV~5*X z+Kt(jgCe5d69-yO6U98?@mKIw9L~a9Om)>QHG6lcKEJ|4tazZU?ldGOQUunBF7imK zo1sY@E-NHYzH zmsw}_{AKLSkH|c(iF=d-X#U70go&vIlwC78}TqzUOgkhDq+c5U&W#wtb! znudf71v}>}%BG~Lmoev1)ke^IRyiA<^y13HEoVCfp=n8_Mp1{Omx-hz(%uZIuZ|cT zNKUDqE^zX@TYqQ_KqZ~a^e<$Qmik~O5VuO@(6IWRZPGT zdouM1dI-m$9DpLes7A9~lcAp{ek0*YTtwX7@rE+g&HjG{)BNwl9=)=ZD}P%Z90_D; zRaF`H^YXvkUR|xJ8lwJt!$7npXup3Trbf%M5mUk$Y3u?Wc+Th7DId*6<=UJX%7awa z=VRu*d~FaZQKVwzFh0PZd;b=bo7Cq@eQ)k8Fx_Joi4d@c-~)&;mQIb|^@#D~>;QIS zF*}_7)_7HfAlEHK->;rDj1!(MS=h_{dw8>FvU^Y$Lf^qFh>e4<|4qc?NROH zJ0n{npUYRR6Kzx?V5QUhkTQ~fki`POHf41zOnFyq<-xP_ZDtePTK`Q9pjvwe1aS*P zH_d(+Q#91xladlNcMi+AHpr)GY!QirKur7@I`mpS{cVqD_b4%?uCUw{z@zH+klm@+ zln(Vuzco*0%;zojn?o6$A6Bp6fD2xA+MW;Y;n1VC(T7(^Vx8bESwLTtC*vPCL(e{d zaX@?p`wJ-=@3Lef^IP^^=R0?Dvr02?wec4%mvk@p7S8_3@jhMoGC&c|EVYPn()^h1<~zm`mJe`SJH5(_Yzbg45H2DfnEsHblU<7^V6VPz1iGG>`1rIuhM1Gz zJa}5DkyU8-#O&o~<$}xZ&_FFBASDEFy6M$?`~OQT_P@_>{bkt&?)vJ4CTL@9DkxHl z=Cfge9r~>AvlJbDGLz(=*}r?ACKNRz_~@&OgrjK}CB*pGzvH5)f6d*QF7CEF*4{f+ zqNjqhf56zDc}MdMXCw1dk~JQ^-*7 zl3yk0E?^agMNMcmOt{qrV`71_QgrbV^Z{-PM+6M#z0}W_v$uNQu1>t#Ge+~D+s{bt zd1bw^>>4*=8oV>qMG-@s#!?iX%owANuvv3W0|nYtvqDJw64rwfVY7v;L71OS^Q#PVXn>i;s)LP;54y}RTitLPCQFkKyGLM!rh zEyQuAYb>1EvW8n>kHVMdv};;pp-$78aUuvUau7|f)K=jJbWJ^{i*+$ikRM9kRoEgr zm_E{$oOOtu`bD2I=CHf9=%>&>d0)LLRuW7H1de-HCF;#=+{vS!2~zn!)z%fHu)gF; zIxx{qTw>{?hDU>nJWK882ulOu6NRc0Ek`3ueSY**q7TTX2Q7eE4Z;Gfl4j(b=|0Fp zx%9Bbvm;!w)onUwk=%*jF%lk~H)Dr9Ixeu&UK=~y-r8&TX5wrbZVZ*@=cA%-eb>WV z=%l00>d5KwK`RE=iFe7D5_phfstr(vi}f6DmkB8;dZQ=m;A%3S756^8$y2YcL_sA? zU~i-80p7%OsKebG{cIb84v)H%{deN}q?=2Iz}ky-SB$hi1kGV_1m~-#8l>X|A?rgi zZE7kQ446txqtCWr16{@roOY@wzZ$F_$vX-2o48zvpN_6bmiVa8>^&wnQ1NFg{}$m zhe0=^n5iYogp(jzpu&18=Nyh}wz8qI(JgB_G$UiF84w7%O$X~s^qK>1S>-MnAo} zJeDTU34{va820O{r@7^E+5FEZDH}b339^m~+@7M5jw8{3;V68XrRheLq*8(4mj~{m zh(`B82VG7UM^pDL-*q5O&ROyXwW0S)pyB@Xz!U91O4rkzxURuUKr}N6ylPMX#0$53 zVI_~Q=B?M2epmb_?FvNDNkkjs2t86<9>^k&pVO&QTNK4t>Wgxwnj|`bGgzo1PTYDa zAw|t+E~Wa8vN!H17LloXX8J1_XnfH&rM%Ot2`j<1*&+kgDDSA8UGBUsJ%(9Y(B7Ae z(hI;y-=WuJaa8Bo>}#Ip8|!nJcdUPptj^-$xwa{ldLck$y3#CEcJc}hlE~Dh0%ORG zICsrSSwLJl8Ji%B#9AV{-U5KfJ78WAe~_@b$jfrn6u6hI3VC@SOK2vY?7#0mL!T6r z27(V1L>z+s?qA@EImCZA@P&MX{pJSA)X z3WGvY&=3pqZ=(7XL!=HD?tUz;9_{ zXKmj2?avWhUb__CcMA**pIC>g3sM45i06&AENM`o7hUJr)5&%w`rPDC7loPM>K^vJ z5nkbEewlZZ+02zMz3nV)yXJ26|PsKT~(zOiJHxux<=aV`zMa9t?M)(rwkl#l+$<{Ohd=j`*5Xz zTvH2mwrh15vcBCE4>rqYq{GX&?XSzdtcnLg!LUR(j)MFF!yP26dISwB7YOytsVoJX zvTH{O(abbbkxR(jYJSj{nVm779)2r=X3OK;2w3q~i?r&Pkx%*T9QwABv2aIpor|r` zI9f2~>OD?-3mP{Oa8svc(j4_n^lYyD=CHIoktx*PE-P{V@cdyx!BNB>a*d=)8t&#h zcue&4@PGkpnyi$w)Awl4PYb|vTqWX~k`A%9wYe0$@6zkF+NzGNq`c3w8)Hn(bhN2w z)3c_|7UNcxPtnICQiimU?-DXPQp71>`{v!w!<{R-v|#k#Q@UjcPYBuv{xLGK{GwE9 zS>d5*Yvs$1$$FNAxPbtriid`YDX*}wdUZHLC7yl;L<{HAFI~N+h zqQL;0r(1(vESpP``N*d|>C$M4S}9uVtSsX`T1CK;>D_%#Ef4}R>jRUq7|WH2H)%M1 zVE^nph;LR#w<*L!c~yl<$h-UIrraNMhgT=LJRmP_*B=i!RPH31zABDOSU{u06b-p= z4yM11*V0JucGg9VrD;V^8jIJRmlN8QjyJ}@%M-Jv>pujZ+ILR~t_Vn}%R!4ncbbRC z_n(s1mtx>RO#O`2*9XI|278NO^el)$YE{8#-t;+tLUHYp7v}@)e%OYYOU0MFZp`np zo@L|1;*BT9Lhwjr3(gZ+XH5gsS$)tE&b3-B#PnDTSZYQWI>8;)B5e7mkOxauc1K^= zrNytb@)PzPYPTgjJeU5iiy!{0p~@w-l2m9bFvL>Q!?T0lI1%n|FKI4*ph4XNBwCti zrIh6Fw0YzB~EF8aF4WFG6Pei~OQf{&EFH za(Qzzl~-oq`sKjnFvxTv{Y?6mM>_{!*?+WD`D%uIxbb%jP>9KKuPQh0Qs1!WDeb}P zit&0?BgL$F)Orhe^e&G^AW5LTm}n=*E_EP>$OC6orr%(9d^}p0|Aki=K?{X}o);~C zTWSW;LZ1$#9M)#Bu7_-4@7dtS>KIJLfe0 z;ja-K<4`7?pMs3W#7$%(e|!It)XL};>vJXA8)Zj}OJ~HxA(|v=oRt29+{gM17;qLD zoJNI(oB~W+)!|u?a@zZ%_ld5+W5x=2(6o;|LVs;y?}6y=|>tiufT&i^~t zp8fjVz)W4v>3Q@=R{JlMuo%UVqnesf&v5#71%Ums;;K!k|1dySYzTWN!GFPP<Vj=ec#0kAX63WG#wa7= z?tPN=YEl5e=g*4AB(WMvrABT!^fYSz$a`|Wi9W{xM|*Yu;{RipBNchJKb?2%xJ{RZ zo@K(BR+HA5>h3jEEM<0wO0TSBf}0kFl$lQOVy(a&&yM~jJL>WnD~S+*}ALu z&+Kh7Siflu#H0WT*H(^!_bgH{P28l^xPiDyz)#qjB}vXqE65LXuuO|@bgMrEg39hm zwrKZRbH#geGfKw9RVl6>oJ@Zm0K!bFhob@ot#DIWUH4&4grNL&_o||UtW#l4|ILni^6!> zf5-F1RUoHiMT#~+0uv3dB0?pjUWiNM!(Br0w^6Qsw7Wf!)t&KBrGxSfDLB z@X4Eac5-@%dN;gFqp#qcTiwi7!x5=QW^bc)6Fzp06uPrIFHQ~2!69)#2M0hao*j}F z6G;nN|M|$#rsa++=o7<%LyD!+s*8&brBJTUAPO$goboWaDt&CsU=M3CJ&2sExRIIN zi2kx^GQ@W{>1t{dquOl7E5`SK?EjQVSHe@xL!-QRZ$s&&ckdgx?aYf=i|2O6I;qYS z#oK3td?Lrb`*AI`C5Ine^S^2E+HnoLlfCco?07|vo?XzK6_+Q#WK%5^+j;!0nt4-i zRqjouX>>XbJKU1ISBuw}`l=Aki*Khsp_f6O^~`TNgpH(8f22Q8Kp|1!^hk^oSHq5D z@y_!Cq@57h0=zoz5S(q@!kWgMW=u&9>+Ns6a$fPQ;<9-f;u2Rla_X0Nn@qbg21vFO zvPv90Dix8yZWKEyx>PPXm^mP`&Z35)zEv2d$krZ2t^1vsre@nbv`q=rHvM5TBju#$jrfFm(kP=|s z>3m9N_hM`**VRpkjQsK7WCd9MZR2TJKGyJnM7r2t0MdBt>WCSy|Gp;)@g00dQ$Ez1 zj`ieeKbN^6b{{G$57*cvU_>Yp)J`-iD~Y5h6_=$GWKBzGJZX+}@Pp)C_V3kv`9ER_ zAWc;JYkAA*2fc8|ozE>Nq0YNzwHwaoxz`v7v8*hOV1+6ELnj9s3+Ge!&~C+sj}Sb3J%@iq`!CXx|FS& zS=t{HI-z>gM=(!gW2%{s77t6OMjYOP$^^=VIDv>unRtxH<3UP^W{VZ< zvGH6QScT(>+_2}6>-V4VFPUUC66}1?N-b@&I|^oPHpf$hGF}~Ahay1#-4DtJG~AJJ zm=k3xC@#46Z`VsLjN%060=nSUqpzwi3(tMZwhH0KY$m@PU`h9x#sOdE!yo!_U-2yi z!CsF5zoZ zd^SuE7E1Oo3fwoG`D4l*ne)!Y&1S>DdxUnEIM){kxaR^mb*0kuSgbkIYgZ!*M4v&N<=pUv#u^BI47r-?4-&f;_mdgfNLNVhq|I;HFXHsR;K*l z;Y?8Q?^rTj7%&=B|3U82!q0~+2nl`$oojS)w&7P-kB>-a{AluL8*4gHi|o2SZrt~E zeEe)1c=_tJRSYmrE$PWDImE!fXa_fq%XU&RB8YUcyLhSmRT)h{PfVR<@kOp#kkeE- z-O5P2{p$X1F6nTJBGk9l2*Mk6GtFs25+fs^Ia_EJx+Hk!;MfV}*vM z7bRv5lS;{c?X-puMAXDGpo*LMbN@_N=5~b!a!=}6^IGzyJ;JBvX(#n#;BT`CdwU^% zx96AE`Zrf4(CCDp8dd=j+ib$ssxoOB+D}Jf-n_ZqYP)j2IxrCT?OywxyAMIyG%qM9 zXVMfbr=A4QDL-qo7a7WAt=w#wkaE&SK$3~H%=SSdwf-*L_hb)-k4nYsQq8E~3>$@B zA_6qz3bdZVu?6T>t0CUVtL68VgYLcYsJ782$6k#&s>i5knqV^G_8V{9J3g}KPL-?E zprmYbq|vs&8xQhbUYi&9=tO3}^DzSIydZ90s3r4+2^kGDuCeVdBJFdVSkbX3-_grk zO-=E}AKI+dO#Ps%|C-(P0`k#xBWB1hle7Cg1&m(GQtE#{*)tYS)ep|=wq~94XGKp&I|c<(G~wytwe_$E5;W+erlB&d1Uy7 zvcWcJ@24!c4S}UF7vLgkyq)1Z>RJ`gD&{dtr4X$sw0v|Y#ZkUai7zi9#>sR~D=He% z>MnF+BL~yfV9VuT1`yrYj5Mh$Um5=xk(>#9)@FzFxa)vy6Ww3>l#c<>DR>_o>N zbf6;fo73)^HA2#DcgI?r!J?4Y=GksF!2{@9%tItLwv($0m!=00!UqlWLNO{Mx(gS;6fi{*`saRAYGe>6NG$tq-z!2 zAG8X2Ma)L>?q^Cmx2;Y9OQ<By}mr%}66aBxRSWz2jyIFGjmht`k40daAZ;0RW zxbDTa(u@=zP}uN0dPez(?gg*Ag@E_%y1D@z&XZ8ap1ARL-t`q%N8vgTI>;*Ssx~8L z+DwgEko-kS`~%U^{fqL|xSI26=fLhwe15o>NcSx^J{BVrOZc4&ocL71vtTl})F;U$ zV7UlPKeNd{DvvBp$aOHNR?3fxd2xXYA-->qow9~lw8&@3!r#C%zh9glwt0(wL!?I3 zBXgbFyx*HoNeOF_tAO9B3u@_%wOD2~9OvDqJpa~-x(beF-3!JiO&q^w3JmyKF=w!{_+<7@=-s?;;3E-;HA|F!)RW=m!!N|rabsgW ztmEj(<(vE0`?`+1n$33xnzkU7G^*-f@Z8o|=YL3SME4@QjF)1-a~tr_jz@n$-{GAH z>#l=R1)LC+_VQSmnC#v$kHq&=^=_QeCaNS5ZW9|9gaGoU|4)0vv_cxJP z?B}d=%o)%t*1ndE&57*yk$uBhL9WWH%`FhAmw`#1+5A-RgFjd7UpLiaqk);_zf!-y zI=&UMxtP>lUiU}S;8T6y%YpL4x$)P23<@CLczs!QvDWXZLw&CA2p>G(Y&Z_jJEZM= zU-uUySlu7Z2ca0wv4`u@&wc>lGjn^}i>0`IBioe97qF;k!CtM*n36H_7s+PiG_7Fr zujQN^E#bapcUy3qkz@55P&no#?d9^gXFC>g(~zkgRT-Qs6@0(0q&TN^2wQ3ZudGjn zU!#Q?VYmDOSIaId4wA?6Jl#1M8+47Y2sLsF6MgU5-3vz41--h4ddn3N_@l~tN2B$R z@2FOlucazwG)_~?LVM!19(DAykw2GxMS%a;A_seDmI3?V=?ssh2;pnRL`G z;3%g2K#tMUVvK6MOGf;Bsa&X>dMiBU>I7+%bYXZ<;Kvugn2Tm90V{lnhJVr2{?zB1 zR7-dkcDR5qUF~s6Po1zJ=ddKMk7JSlM6RrdS!FhOd#3)=b-Jnyn9P|}X0#)eP5*D# z6H2mWVoLlZ$Sb4%6pM@TZuxSxtM^Xo#PbU33MKUKhwoqE-N~aIZzYw z#H+$oAb?M<{(yMd`dLv*_?KTq{zkG3YvgwAU&&Y7j0I@3Lx&Jpozr6>bWm7&G_Mfd zgoEYADpE|D^p{*DQCacLkd>kElz%Q+i61jcmmQXYSp%gtn8uF1tnt5Q48G!Sis)`qr%*vvug zq)pbWH$%=GK`J(Ucv6Lh=KCXb@C?#zDiRGTeC|dkL0#sBmt^~5*E#VB0$jZcT6eBz z-%$B(;?E5vUC0YPrBc+%A4tgOhbA{Q~ zJfX_>M4Q@-HFN}lm`KW0{lE}DIq@Zb?v|7RtBMKp#$fsL#ip=R`Uwi30%50NX%jF8D@DO1T#$+%=kC#OY8yL4Z7A zxITPh{4_5|d*{l2S>WiL@!KXi_8Q3-Rr`%q*D+y47@S{gX?)vZH9K4(t3+u`*6Wk& zmp8lO8>I3n!g4NY_CR7oI#a;$`wc-#>4q|w-WvnDrl5WF#RlnU1z4()+%FBaMKV91qkDm#mIrW$|KEnz@Qdx}=q=+o zPGD?9Wccw~(Z>Mdp5u(%JcMuI2vw@^vb0JoWUsI~vyw0b-i|YLrD?wFuUmW}m zSS55!jt8f5WJv10a(agf#ycnR-nJE*;p3Im1cqj+G%}I#jW!!|tK*H+1CySO4q;ZE zJRx((S)K(~^xzv;8Xu!RINfgl$LH$pys`dgTaHKV2yjHS2%WZ|P9CMmoK`B+Y2}|c*;)avwLLnX?~)Qgr9Gn<&pwN%TXt}XgKi+ zQDgLz1@`9)^$bcdmyrrJsH#3uZPj0-w$)!9%l>9^w%qP`$((e#vM^CF`0<4?U1qYp zwa?W7(np|l8f2+BPx)^`3zD{io5!4zxjw>vr8e5&YYNrRE@_QR^PnF@o&3cJy5jz0 zWyO1nA_J*@9&j6--zKfeQ!}?|_tS%MZE~J!4AIaO2eKlac(@k3g20=8xw=x9@eaw9 z8lI^;i%aGBWx0doeWrI=9~aBZm($IbnXL?5nZG4`9k%Wcn;Cen!GZIo;ZtdlejG25 zW?(Vkt0d|;@%wKt3h(P9f5c?S1Qf@oJm}NE>-$ts6kd9J=V*c&W9kq5xYN9>xn{4w zRA`>XQu2LDsGnDAjEAL`piZh!sQhL32NkV^bFv7Nccarbv}Y_sg5_oeiX4xm+(e2~ zRuDJeZCdkKbARo7`2SJ$-j8g)?*nh_*rOq9|(bP3_vd zwA89SV^&eS#1_fP=bRtD@AEf2*K^(XeT~=4pBsPAC89PgC5jRtMqk4rUU(#QxGO4J z`8xRs^Bz5|03*RQ_8eL|x$FOaa-8%`;R(d*NkHhj17o4V7j9u5ZgL=lA_d2HOiCQZ zz4e`-;}vH&G^OrGgTL|iJ|rl6Z}lj;_7 zp}@PAz?q#Lk2(A*Rj?yip4;Wc@z>;1vxvSE-KkaKz;YVj-+a>jA$MMBVhuY7LNzvT z&~MKu?BeYZuJMNU$nfXgrLxT3+yHP?s*E@$2t#F1>9^=b3$Ol88Qp7i`Fhs(Vw^7n%g)w z4Wfg|f{_ZfLJ?NNbwm$3bf{}KN)7TvBC2~r)>;qGtvcYOS5Qd~9}f;XPK0k1fGnyA zOaaDD0pHbu`)%86+#ZgzPhO#ln-Guwq@=C2{SSEbU(;i8KvOHzcYCM{CN%BoDHvMx z-&ZdF6~b!yXDWFZg(+9~ERXU2^M`+#{q#f>7oT)_HXl7SN7^(N+Kn}$zymV+X8XT5 zIRn@>zd9G#*Qxok&gHYW&4KC4Ny5s?FLy;O%#)8iZ(Yn*rXKI_mT&eLS`Qe?j{+p} zhsk~|$+E%Z6ux4x*I^kfcbX@gx1AA;m(ZnG~hSEbHy8M-5iN7(pU}64!I)q^3~HZH4706}vQYsj|JBnIbhx zZWgc`hJoKMassEsCjI$`6+U*LSDLln#?4wreX3c>Lz^1X$B?=6cYnh@)W>ieLrx>V zemr}w`zEq#P9c?zt%+XoUE7|-Jy5%wR${^WODC(zQ{OO3B7qnX1zWnX z>K1FL%N;t(`bq5rw$EFTw>v|PPa^Ev0mWfa1DHl~sxMT!AEM-#0((!B_giE35*6r- zQpZRRk`$g}&$cZ!p)X#$<4xx{xHR~ranwtW0SubCwr$3hi=5${_t>uqx;_yS0Xel* zea#nrXJEEr#}nB?3SZGkwsis3=iEcT8YfiZLF@l*JO7P>MRgA zYC|%=uwZTdWf=xo4d@GMu6}psmcw6F|A#0Ic4Qi}^fh=G3#dxQK(XQlK2hGw8`oJX zMZpTCecOq)TN2^bi)^-0;~;TWI+d7~yi)zy#&)qO#?r&pG%QO^ohNV73E0;0+psY{ z>+ix`&D}>9(A5(u2C9&~mPFLWP~_k5)cNcNqtjuOW#7Mx%pPCPc=8{2WGS1Q-^BXT zs!b-9YnrAmtUC@2VT$Md+Ntbcd*5k(hd~!%KwV5d<5(BlYWI9bqOAPE(qI_tfl8a9 z~1>6awj~&+j`~>5xd;HPG18gq)E~XE^UZLVGr++G52U3Hd-*o;%M{%TfZ%I!X?z@VeO_T*uOwB z*iKv{QJr}V5)Vozn0Z;)0MmcSTOWLW5iNJN(U9QUj{QCLL?*(9kWB&7COb0oQe(D= z`eVGNdBX#IuDVv!iKDpN^*LRJLgiA87E^m+pDBVhL;?CPJaC#c;AThAMSq3lu)uDG zoDOs^XQdGygdg*S23zq(rgiS=hEdFyLs87sly}{xFcFJ~plsOMAZ>jWZPRX3Khq%N-dYlAqj>+_x^FQoa%m%q)XiwS;Y8#A)e%U3Yh$9s)~ors8n0vMAA(@(btnzY-}-{8 zBpui8G)|%zZH@R^lXlcMdg39JSa3V_y605LG`b6XWET? zWKG!Fw=uu~K{jBdzF&6FP`h@689q$l@Ss20r|~exmEzBmPpqO16;i^9z2W01Ttb8! zs`A4xo7O9v4`edoGi(EvORH_Yicg+^Ek`o7_TfWBRyjn)WD=caz%ru04~onDpHjc( zDzCb+VZVAknSfu1N3_&yzbX+JLYjq52f1PtGosumcwJG98Y8XTJ+~^TXi-< zX<}l=#FAbycDZU+oXbJ`o45w_&hul~oFxE6r-2Pj0Lo})0+VKD4T9^6Ws-l9XkB}V z%enNbEnm0Q>uT=tv$B9eVls<#y3NK{7Sa};F#y0zG2a~W{8+`K!5_^=KmdekUWRb^ zhl5QRCS4G<9cb&7C>bsp*{oaP27~T}!S-G+UhK|a%dOR$@jm%5td}%dpS{PVUhr(= zL*jV{p5*gmAE>I>DY0PI#YX*YaxY&z9oSpuoX@OqgBO88SHdRP+^yxqoL$FFE2+S5w;-N|@}a3c%ol@@S<8 zvi==3t(UO;#s+EsUz52-Fm{iTR>oRli&bVSBw_lbQ|YNaM_5c@pF{zZ*B8OaGHU+W zk3%1U^K=xG*=yL$Rdz7*!ggmF67=#^OBtHaG5=R|%kO~1!VcFGm-VAO;1;oJejTrD ziPs=uBi)}n@hNZC0cY}q0AU$K!Q)mLo6H~xW=yDDSVml9NJ3lu!z3Z0wd}#34RJK4t{#dB#z3evxM~7%s&rv zw3yhr8px=5V36y_IbS~PAe{QlQ3%(@@}$F*>)CX5#GFJZavQ+hsU~}y0*Qu@vCHrS zSRgVrZ1t__<_mIwQ8Z(KJ20otzhyD_Z`+OSdELB&c)f0vObag=JMw03aS0HHO}(73 z8_7fX_D)=E2nW+4pMp5f!!N<9y92idYgoVYt8+q#?Is*Y>M#&o=)lh0%GhV z(VtHDjR?Q$_8k89(UEVmkAc|9E+!5b-CGx4ZZpb*siZK};Mto_jKfPm6`MCg>5%Q+ z&>OrJcG4NxJY<8JM~%_d`+fmh2LXJG_xUZfkG&VQipd|QL}QvNYX%w-#>Un*xh!dJ z4*<9gBqg6MF>NwACsdAC#0B6+xjF|!Dg%&c3ZQRx<#)Yj??by<7CkWSZj;1p{a+3V z5eJm;PluD2%rKC#DRHnxE|;(VcAqji%c6#cK=}pb>{2sU9&XZy<8 z>1Z8+3G|BZ>>apbpbYKWTHv~950U;JRL+; za(^UAsYJMD*}Y~o$oXVxogP-|77ANE5W3-guA+KK-eCKpA)llU#2-s5!QfI*@d1A! zIPy6eJ7;$846&V(V42QB7ofLiO>U4pmi6VyL2FTXcw}WCKK^0j?a*x@h4WdMico~0 zY?$26FpwA}M~l4aJs@%!NFqH;DwL*oKGSLlR``n(=Z+jdyF=}w4JSbG^Y1BR|Cks8 z&;66}ScA{(ioQLympx(CRj~@~zM|OP^KPEK6hx4|4Y+9xK?MAb-_FNaafk*0+>w); zG^vSy^UIz2*u;^i(&cDq*iB(EZi2Mg|5fw5p?K553U7Z&4VMb{NSxK-v4g_mrwSPv z8TVYj3=3dTV=_bb*lDbka^3((OG;19+aH??pNSZ5pZh>o*vR;GW#-a5zSiu-oy_ta zHikbd~~b7YNwz}Aps$x zljM&b_d%wM>B(@@+@NF*>sY4F0L^uiWHfSO-tI#cBzi?RW!z>|mShu~IfaJI@w+=C zGd{V3&?CY$=qY20rfE~wC*0|hE4a|)S84axL{&0!uK}MEDj6T|%7>?!!nK%|Zq71{ zOJ6w%i|^5H8Cnw$1q}hr=`{|sFM^7+FbDESBb^|&5#1GITeK0vFB8Szt}ib9{tr-ee8@1f zgT~gfCaS+6=6n%q+mXe@(r=PEWEB+31H8PAyu;hI1D}&3G33toEHvJJmLjC8eh-IA zO%?Ys&UR@!{~B?08iJzb4Xq;V7n}b!bKk$`A|IqZm|%U%YE@)(wu#X44x&Zshb2m( z2c-hu^Y%sqfYKp`oBimKRnWGNhb7aoiVWEXLN`w4V@D{Q375me5H6sF?RvYkj`9@a zo;y+tN4or%47b0e=IMo zQo*SY?lc{5fYtGZ0~!#jJX4GjV$mRc$akw>xGzj18(s4S%a#+&3!G!Mw_3CclYqP# zOqycgI4}k##tMWBdsRk8V8FOF(=WJsw-`(G=B|=SORRD=CtHqRFi>^0f>XJwEeVs< zM5oIN8oItpZ3j+wkdjJ+rMr$<)62@RKqBlw%pW43a;JK3o{!tQ^Q@hmTb(<37fjH| zx6ZKID4FO@w_*@WWsFQVESZ};r}@St-GBxSd?82yW4yw{m8TE{@Tc-`flmj(+zA(*xsiFo1)qp#|A*d$9oLMdBMX_B^YncsZ+HY!VL_i@ z?UyN-Z=PLK=*T#kk;~wQ&q)+AK2P`#W)1nS!vfx&W?fa|tGlNEP`@=khbv19(6N4p zjQ9PeB5Q~TI=hG~=$RPBAWif9)2Xl6*xF&*wt+=^4I$l?>J2vi6`QU;V$C9ETjBI4?{lBo@nlOhd=j(LYq>f3GoxUne>5DoIBg%qOSi zW~elR6Y20BZg015kwaaXdwV2bu~T%WDH+O?eO|Fr>2MY&Rc5;8av6{fJV}z8a!wu0 zCj+Vq>F97|FkJC3v)O5j46vFe6IL6IuRqpcWmUUzA>H)=FTmhDwAJ46P}0Gp(k5z6#=5%hvO<5R zJiaQ+elw`Mj|8Al^5~IM=|V1e1EgTV2g!lA;uy=qU5JA}G71cr$ODTm&V}kKKVT8s z5PX7+;w^5F6l3wrHpJ1vCCn_;+|6(S1)s7PeRJ5;HVibwMkR~{E3oMplA18;xWrA8 zGnY)FEdODN2`pR&Ag-Uc;{7CpEYQXNs7&X}Ly^EXBT^YVUp)gMuu!pkf%S=pifPfA!q@2fo(?vGkc z8>k|uha4r}!#AN*=*_nroi0DWp)|w#anKjLW1VDx6|qx5h@o_-xckz* z^l^S*+FBd=4;54J{_lbH#zZkrvo*RIo=L&M%?{m%f>V>!=W;&Uj zrH_Y)KiYoxNPTs+$N#D=lKwky$_P+~Jg2Rm6CO#89rUt2>n=6~O9hpBTI+PBoN|eN ze?_$D>vqs-iBGRkeA3+=%wE%$-qSdq7$Q1KK+h`nOW~`da%HsZ@IkhiT>-Dh3c|ym z|6AFzrH6rla9aGHc7&%cT7PRsx`#=SWl{%tvfA`t>>EB`&3Saj*}n( zgSoi`aVzBA+D76DJ9?%2>%%x}?kL$OjCXTbJ6p?}n;LEH@E*?uNC+JF$cqL~3I3;G zO<-{G%PyIE_W&rJ+fF1|bN`@Os-K&|;u1Mhs$6Mfz&Xa(6x>7!vsmniw)sW$O<;?- zH&SBU*?k@MHcaW|G252&j8B{EtMGogmB58_BG(3du*#DE{(%P(+Z%6HGvWPk>TlU% z7=wTL)}HBCqr15o>1hiFuY#nbt>}BL@OXB!UgE@62K|=VP%bsJ6FMmx9`~((&ZHT8 zeo8i`W6n^)-)y4ZCA6tlz&Zi-*?YFr|1gMBK$iO3@Un$yapw-5Txk)OtUL?DQIcJn zgY!^doI!s+ZH6TnB=l}6_phtYM-u`oYFOAw6*j!h5k^8v=ZTKj5XKzOPo(JT?=$>{fCVFr`mX#hkLnTNREV!OaG=sHA61wPgvUJ^Sgg>DdNlyZB zXL`NA^V(8?_`hLxZcB94Sm}oUtX>*99g2lDD@Ywe`W4~n4lSb!I3JIDcWZU3=OzyV z=rhDdcxZ`0rMYd!!#M(m(|n{Rtrmw-9%`m^;yCgzu&Xj**XNGAX4dBYQW3}?hXnPM z;4z+Tmtr_LnJmIuiWlVjv-EF1Te&py#O)t$z}9>97&S|u+V0LIIqK*r1L5u0oTDL# z7SP?o`0UxAN7f=TenAJ?M(Q{Az^d&_g@&i>xo#!X{6WNvVefg8OK6;hG!&8j6C}OyURzTXC$N$+ZByrzN^zlf07BL#psL%07M~7)RB3^>{)Z}-e zDY3Y8-B z@V>s~?GV-*>RFH2m&6;Fi^Pw0=UR`bowG_Z7fpevW;PLc+iJl2px}Nz>2K*5l}dFX z_v*;N?(;L5vaN#$i;I4^yUQ->;r#y%hRsK`4#^)G%n&zl;3BiM681y)Go{))vt}~Qm{%xoZ;@SY-~R-VRE}mwS3cAQ zY>NDUkN|&_sb*MY?=+ zo&9KTrCg!)Ma5^8Z1FcM;pXwfw{1T{#7PW)bX1tf2y0B&W8{D{5i4tK`FBpDvqb6N zA@6=&p2FusvJW0-a55I~zW(^z@$*>qV;m^G;7RzuHm2TkV(#@7(h+OJ{d9XBhhEyy z7pZclLb^uH{J)jWA$CR?=vYQ0R(8zBmv21Y^@f&|+QU{p+qHRF;NF@nv1Q}1=LB>I ziAx;R31={9yDqH3)cPv#rg#sxzBMyrYI(=EY_BnpAWx1W^=z=7G8%st++8D3)@N%y ze7y-maTso6-Id1w=%?2-I2wj7$g24I-pAf7@faXuU*5fvS~j+JSpOTK9{d5t`wTXw zwP*29>+U1;i79I2-zGu5+WE2aZ#K3cJ`(EA>W-5%4!fHe#1Mn$G~BmOQByJI+UZeDzgr8mI-=QZf&JgHy@xNqoc4A>p ztVlj9QYLEet4R*p4xpLN&Qp6983$^BW!Mtk9l)D2PAT?2vN4H|Em`E{=SfF1j~`Tx zVRdU?zJt-HCw{y9xEQRa*k|mRp6EYTI1CDYv6xORrWG;jpqSK5SGok1d<2Qi4Hv+TFP_?9GGx+kjYl zV7gh(5xq1o;fk;6x|Ih#l^*M&m~O-xeb>RtT8%5SfDqTw#GQnT+S+1Et-vAaT&iCn zpxi%KqghO5H2skn{0yIDo4Ygp3NVKh}dyf9mFGiqcScxgGwz$J2cyOnR)kih7K>ndeS7 zyzK+lVLp-ZOdT&M(z=MQ*YMLfM;Z$)W*?T3tvB9g`!J$ts@Z;lh!MA-ED1LwWsPw7 zA*PN&IDnOacz6ThT4Y6>9l zGri&yx@w%kt9@!Iu^H_<`Ik<#(oo_h@Z;(pr%HjP>Mir*QN|LD{z@)Z6#1}JW%)oJ zDC>qT{EyeL>jq^ey;zH$Z^ChO%=KShH~il*Gx+Q8xUO6VJa>A3m3~LiKQ*}TiFmR& zR&mwb7$?a%&`aTt+5Rg`^n5IYmN3kJYHGZF6eVtGj+=)SiXfe}mqSLDe1%Tm*L0o(cLx?)c*cq7fp);Rdh+S`Mrrv z5Hogc@7`Ugw0RsK=(T^SHj{Ox9lLE-znX|8?yQmIh;Af@Zf2wj{u0Mmvu500Ja_Ik zvK+j#(RY{Jf5JcqMRB;eu3DLw2VFkVB6m|u)=BHB9LGUM#ZB-)@D7`EgmI%tw$p&o z^RKtPUond=YYE=mgz>mK`-|VD3ogZr6oSKp&-J7(BVQEqe1U^DnxV-Dl zWO}3{Hf3K_6tmulZdLHWuw>ExnJ4wR)?OO8(ckRaBnk3Z_Zct~>1J!)9FPRF4W$)ef?8nut{$^CGze&}fdwlGl zpAZWA+5LxNJ0ZKe=4aq@R+c9{Hu`T#V`{mYXEg&5PcS;ZU`Pi7!nG`vkZn<9cth?}@cXR<0Vk6gifj5@8+` z$jD^zYQoA5dUG;QE!SyA!^>Vj^>Et*^w#N&D)V8+*QI%q3LMp^=0a;0Ve+3BVSOjP zF&lkG*8*X2jcC)ROdJ!m%hlORN1W-RgJ03y?FV+)r#QXTD4bG$k`&DCLAD64XNnOY z2XFmgj)}ca4h6G@i0cu$A(3`h(?tey&e_8Y{8SpzzYiUf$#b4#)cV6TFd%>vjBS_& zWRV|CrT_k~y`xF;$}#?KS^|JYL0$+jbvwFRJbD2qcp>$g7mc_(Z=7go_;NDtJ4H4+ zcO<1HW(z>fJ$auxAVQA}y=|C6nk39Q9-t;rmp`OyxQvGvkM37cq=k>(5n-%8B_Jy+ ziLciMAE|jFZYTTo?kD?cn@@x?{-E5DkGasX)I`^Tq7-lq;B)Lbn$Vq#CI@RF10U=* z9sr7AtQ1dEQ_wi*F85)Zzdk?b!tWALxLYhp6Lhcn<6Y=~l`f> z%pK47eH+6bF(i6e9X@?zY72EIHd0b;k^PoP;r1`y|8I((e}i#Gt$C3; zC2k2hq)L_7rJF3iLXccMzk*BZ3^Q2ib%9rUw6PPV&e|dxMe=Ge$05#$am=1_9)pgu zkKak6fHXz1HRcbO)j(S?2EHv>Y6{J+WBkznBqmerRsjlE->S>wfEwh|(6zz`5^kP; zl-(PL^)Kb5y4~wFV}G81hiz>3iOswJ@ucbG0?QMt$t|b9!PUM*V^DZjk9^IRk}m(< z?L?Y5ov|s3JYJ2!y8O06e#Uxh7AG2${0s~h9wrR+KXUTMW~S9+bLJppwuzLL8;l>& z-t$`FC%88kO;)4nwn>xyTu={lJxZ0U@#6hnOZNw#R(yhJ!FOE~p3XBuL(UwfEh?{% z8=b;|Wy8wKon5nlJK@JLei=wbOh^_Quz8OzZU417JbJa?_6lcwoVB<`nykf=iIR&QTVuh z0!|W$J*ZQvY0M@f8M7TljwFPIF(@%64Qw^b(ZKW#V$j>i*(YA>i@sa83;pwS!F=i2 z_eZ4dzRw2kvPdiQF*cI#SLEwVPVR#%33b&hAm$Hogy79b^AM;btW*m{vt+>8#HgoTtoEvg9Zg+Fet~`=@kJ#>V zW4PQa4t?acwJ#}}Skt3=FaSKs{UQ#Z_kfUK5D1LXV6n?>(NVv-78;SzYIpX}`q1~W zMwFY`rEL1B)nZXo9+UM&tf(k^$@X9b4&6e>+O>SEA0-VfFxu6KoFhe#TB*vmrD8_d zt#oXr+Uv|ZrvkV_hqLEp)}8P>W$wJVS2Ax?l0MV6zBzKvlWzUUwermu80EOcqeu5f z8?teN_6?1Wr$wf+LWrWbWVxnmNlp+%k#LxT^r_@O@{v4ILbkcUcSOFJkckS@W zg1ItCBLdcu*-*hpi*sqz|8`#0n4euf{I~APr*e1o@B|b+E`nQJzUx@v*6E(m8FB6* zjJjOPl;Wax;oxY=8o(?0Mv_~R_iN58Ykwn{*c$x#Lx%VFs<8~Q?NrxXU|EVb4IxMd zJMqFQo8_I^4QzEkP)DIbc1ap>VA~-$`cv=MNM4du-e=l34v?ws=H#l5^`K2OV&!i9 zs;yz?d_GYU8{e{#EJG30jZLvpqx3@k^NJ<^RGmNSw&%2zMkqAM!X?VMgDsWq*daTs zH94d#zvHym;xNQi=@p0>o0<$$1rxmy{sp{dR;ioojr3{Wu{FsE%()C%XZ^ijSPzpT z8yUIX({Sk~#~omsKB(&b(!e$(2d!^HbrpnH2na%4#70HLfD}^m!8XTBqstoDi#IZ+&baCO8&gh0iZCEK?!q z1*g%svaL#{>#eBP&`p25Ja2Yo@Rnjg-j1{%{3I$D9Q843W11S@ZN3SeuF7?`3wi5% z^=OIg z^@}tVYy-7`J|M=)nIDtx(e{V+|BpQL7|FSxJAxC%c{IL!DNvyvbKOf)cjDdI6iQDb z$Y~j&G(Mr~TK`gW&!i`tlr&Z>hsEpOro1K|dnY&cFeHyH8oL8KOdXggOF=;sr4bsx zmG^1s$gk6<+#QCT+uiel@T|_STA5cwzS9vEWMK*SGO`0eT#f?hoC_a{D>}>n2a1Yl$YpAlus{M&UB$(kEm>wCp_ z&-x8*i{hZ4i=-D;J*o1O`LgVRH68z)m+89M|Ee}?KV638%`n^8&ue!~5NnBCaSGTy zw4;anSwR<^?FXg=^IHlJkjU;(Z}{ z8Fmc{#8#rXt`g7BNbFf}J37)_v`2lJyI(-HOw5I7m+k&^pygb19VGhq6!qx1c0W(* zHr~&QvIMWRsWU6uWet*}CnUG0GiBRabI&w}#?D&*!` z)D)MQ3{)FuHN`{vXD9bSq{f1PoYRP|V_Ly^#sQmaY0UA?Cn$PWzeA!mZ{MKw-aIT~ zmHWsir`LZUa zjEoV8FQD7zEZLa$?d1w; z=VK0&JGJUywLwAZ<%y5HB1U8x5mzG3yH>w881S`+MIhm25Wzueukkg1rK_Rpd@nlm zwD5^@U8d|i2M)FvJ1=8)ua1-tI>gr>F|l9MlNlZ}s=GX73EL9FM5A1R(Q!aR*dPxq zQ^q6;^UK@*x`!@OG#}@zADULp#UjJl>!OV9RrXD{EigN{VFT|2AN}IN_LsZZ%%%N( zs)I>SM!$BH^1U?j?c<%K~Ouk5lLf>x%gb&crRTnUOe+&~B)K;XDtGxSnn=qCU#)1ZF!!85N zm5j)m%e-0>0}CXChWSC)QW7EJe1n#eJj~G;DQ3L*`bMd8luGR;o5A)mIP0SGK86)p z!c#hmRJvR$uy7W9W4*3Cl6dB{X~SSi-mmmiODEgQV~CUPZAwO46=vqM?y>oQb8y$n zCzdpMT5x}hb^%z4(;v-Den4ESMuT%?I_o0L|(+B z20(5BrM3EpF8`;eWc10auUD^-0vV%*5MCETP{lAu+qSimW|J$4m3QZHUF(kLYH)N4 zAe@XgUYklENlYz<^TYMXB&mt|B`^XgNB&1>S7<+vJnADSl~QOkX2RcpaZl$h2VWUG zP}0t@C>a5ntrB@uAmnH*4QXz(^L)y<9_^g*gBBF!=G2+&lW?4$MH z=oNQV=VKS?o!Ngc`4+3`XPfjmsYK!7m@1$~xg(MHh=4a_6w7i?VuwPcCTPVpRx0u; z+qm&Fh*EX77rlsJc~jn>+h@qRT^M)vcC3eWb*^m?DDwk9OeaW=-wa^gx_^e zNHL+B=etludLB7T#4#h}O*PTEvt?7LM_v`41#0!JFTU6+*d;UZbNoLVvT)OADBXj?773fRg%Rw|!A}nEN^se}Klpn(RsZVwldI@QYs0Jt!U!dkO*3{Ft%?tAXGv*T zl4_M;sHnkIPO(a4so@uHRgnE`<#K+qZ+22q8O!9cp)~Gt*a>RDEpI#J(#S$ zww9)GD~tpuCckS|XI#iWrle7d6cj1rK;#~LWxkVnU|reBYEyLkAdM`scxbb)pw#|J zZe>!Um?Z0KtH7ksIG&2tmiaBpony)RAqN#P+GOPCXCu-pH_{`_Q|G(?owe#*nyYh!-3}BR*!E#1c z794PhoA$W*z?H z_VSy|Gx4A7O2@kW>(_MLb2f=!0Hpzl@Z#?78WCa@0jhQ1)F2&6$$FkqAqb#01d>5O z+|fi%AK9+FXn2h?=Q78svq!AclxVd@Ou4#SiK=5<)z0Cuu*vRU9K}O88WUwX`;jDd z(GXiMssi>_>TOZ=v|=Rt~8;;KP_l!!g)g2E-}g~k2eqmR_#=6Cd6Y!=?49_RIF{@!tl)G|>C_n($jle^OCLxg!@sVZFh2~$=1-;R3Jq%%4s==E6yXW z<>t^?Y=pWuO1v}rd9Yn5W2`*xWTa!NTv#38`v%X&&eW30W+3U5_Wi@zer)Mt=)hCn z_$mk%i2jpbG*=4NXXY%*%<<*%Fp>0t*bl39cr^6Z1^ZR+DCJyBTyEkLGc&dBsY=q5 zq(k!I6Es#&Ifj7Gum;(YNG3Z#ZvuR})|cDSvO@l;{ifUVivVq`2%CUZ$Nj^U=fV33GLgllflV zQX%qUek7|RgSpW?-lPZWpO-UswYiCMb+P+>V)YI^h2Z`~C*k^h=>GRJ`*}|}0rC;Q zfDj3FPTk?pLtOrxHKsZFNgnS$TG;W8xFc_%{>ZBp)CJ$;k~^}!{|fc^s#E=v`PtF` zPHYt2*#^@-wco;7)&Fhg_M+|&9|f40GIl(5s=HI3tYGr#e!U`vzCWj&|nC(J#{9xv{&Go^Cwme33Rx)|cY+_9}Ha$jZ&W zR0-RMyI9y!$8ePS`2_PSttr4m#Jp7xx>T=DqVpB!kJ=}#%ud0R5@-iDoFmqF4s$m-8 z18Rz)h>iv#irzsMhDbYcK;)~~xw`OWvPf& z=kH6rx6551uyIP?)w_L5DT99!S##k*>dnf&A;r5tm)Pl=|0Fmm^w~%rp}syl#l!O( z#@>3EohqhoeqcfWXhY6wxdcaVS@-cUw0-1(DVtgUK6d(DP5o^)+xvw6LF%>X^`SD=gB zrT?V)oFWP=tAthG@K7Z%zvSMX?v@^>hG{(dFy%2TbWp?9W=)_Yw5$FV`v`9=U zQCSutw;G@#hwvt+)-H|Tt0~lQJrBJ(y*#yARmRI;<7=;f0y|oE+c}@?F;^~jd9$mo zu_A>C2t8?+C@t~JxNUhW*0Lic4AWo6mXqU1;pQygb38U5LHoYglVeYxb&Wo&`_0cY zmq#hw*pHAiR9ACr&&i2v{yNPk{n%W8PQ3Ax2OZwI`|_^4K)DV|a@u7sWwJ0=R_!N3CC-~S@V%W`-6W$KEr5v&}> zfsMOjlg2N{OqL>Rakp)I{53m{kn#-+*ht3d%({2}AkD#wKbVO}{yYJBzYLc@}MoPhg%%T=^@#itlp>*T( zEJJo@jFDV!F!N9dk^K4T$=y){qp_fp${298O;I6=lK>ozO+mBeVOmgt=ETB;HJrrk z)4rsbvI&gw@xjjf`%zh!kI?PHCl5!<_2_E9j&4ig`wsJaI(xkU>!g4X)1W5G$xu5hUp!>D%isF4Y16W<|p)z%2?r^dwy} zhKA#w`!D|AEcXT!hL8N`)6IC@7N@~es*z*-FlS+I!RuVHHXRj{5oo@b!8uf=N{)6= zyohQ{DZ$mZT&$DsHy7~SLa;M=86-O5;(4G8m_r{|(RG8~HsSpJp>Ok)ciSUZyFR)7 ztQriXy^<4!f3>_-hbv_MQ1WsGX*O!g+Eol5En3vW{_agS(#RXHQ5~VN$YEx2D;<#A&$p!hZwVH14 z(p{TO4Z;D-!8zQ-MSG$70P zmutbkDDS80H8BIEE^YxM}e}%EduvIoN z`3(fN2&Ekt23?)5A3W}KCS%wT$U`u#>F-TlGv}jD!fli_5hbW8Xkc@l5{IeKItR3?o86(0KTtOc+geDt1e%e%3brA_ zDS14Ewy3Nbb389+aSMj_)-Ig1+rCk(RgZ_eBP&s4NUSA$)R}h<4G!iLD{vI{-~ac> z@c+*{{*>vpNzK3uUj!oQj|+SriCD_4%rtS<;m|G*kG-3&0C5BGpF%hqc@)QM(c-P5 z%<+4#PAehr0KI2o?OE)B4jpn*jH~j$rW(u=lvn;Ced4#$kW7pFcR{y|IHC54iQHWu zaXxYzu9q&>Ec|kI3Z<>;ss#7LC*_;hQaJ)w@tZ~8U=obKyaR1iQ)VcSgP$*dv8kxO zDlS9@_0H#5SPey^5F>NjG)ISGFb*;b2n8A1_Sp78Pv*0X@bAjx$Dz4ldE(V#x`2{*Rb@l=+9E-N!uxvC4Z&-`$v(NW=bWh6RwD@zsiqHwJ;#PV_1orG+kn8z;ma`64diFE9-=4kquW*)=%9GBo&TV6-Z_-hnec z{%}~==F8aQmAIShK2@e1=))@4bhEK{z1P_DemQLL!IeIvQ^T|OxE*HB<-a#{d9&H~ z`j_`-`A^lGsq$3RnE3Qz{Fb%zJ41+}sRrmB{HrY+59Oy~QN{|sWQ?+kM1wX?l*z-Z zpvPyZan?D9{=2uGlv0ns`zN&;B&kVZ$OWj<`&+9}qk8xafqnS7E7BO2%*Lk~vMeumor zcPx@~zenBdN7&mZLEh%?5qH<{5oZw{41yobtC_lSFH56b(1Q3BVq87inQnLI{+^9R z*OBkFuiSIqvYqd>Sbk)LD>$#BeSLY9Q(CVH$xWqC;gp$~CkH{feM*E6s-asaA@4)J zLdpRqGSM195T&dF4hx+vTFa1``6YQVLgbRgOl)fW&O;9{te{IZ#oJ=}o&D`9Nt#14kL~o+bHbK2L zBdW1-G3wZ>=_GXXnvTuN(nEas;gzGrSX)%HSQ%F*!MLToRf6&J3(oA-P&EXWA2ubbN*+7U&qK<)|#3B zAF94Q9_sdO+uo3v5wbI5>Nc{6kSt@*lC|thOu|@8*|)};b+VT1yDUx2Bv~Ts6p3sT zl90x}Gnn^#|DMn1d4BJo{Z-BPy3Xr7kMmgIi8MrxXaKrIBlEV7W{G>!k-_sC8ls{v z)K&`FiMxnTbq1_y37KQORQ#C}wIwoQPrdfuZtnft0Gtz$o z>~gEvmM`F|MSb$$o?0DDNn?KOcfXwIE%&OJ9*%&*r;)2 zQVw}Pz^-8;(9$KlC4A@XaI(Un<+EhjU$6+W`@x2qK$FoLE_>~7dwn<&;#-yYX0%|} zO0AvpmuJ#E-LsVCk|GS|#t*6HLxtZO-ihFMveRLGBwDE?vGdPqi9Mu?4(E}~*By@% z@;dq{+sgN$`;yQDD&S&p7Rs zN18Xx294h+U5Uz+M%?9Ux<=5# z5za~Y@nhhVM4lFjT^eZ|0RIfo6+uhyJW?H=s9fLl^PX5AP<;6E?2JOl_*)9Yh{Ip< z=_Htn!y2p1L=5y@GhY;{y^cKFxp)q&Jcf&H`n(qA$ufmaaL&UPU#x>pyv>`2khB4&X(Oad#D?=|2II) zsJkf|8%Is;aPKg_ab%?n#+tcK2% zK22tN`GX7m2+Y}T&R)REXE?Up)XO`s(!+-b4BPaL8GWZ#Vvo9a_uFV0+F+46x$BeP8zAROyF8opp;^XU7uDq6*WUUx zv60&GN4ON0m`RI)r_0dU-vP0T(I~7e=j^GhagHp!Y!IIQJscxxrbXw<%JD6yOvU1&;gmreBgDxpfN%S?GaY+xqVq)G9v56>PliuMV z9?iJ%8+JvlVPpE!zcx&W4Dc%7iHK+)A2I50y!dTiRd88Lk=KH%b_xuTZ@Q@7RIa4R z^8k=M48fWeIwFQx2{^NhMR}U=IN8G;=Cnf|?G7_f!IpuQIC3r< zAZYQ-9;_9yX#e0@8x8G=qb8%g`yx{e(UOp2$3;17IztFv)a`G4p<{i+E0H8_Nx5tH zY?iv^noYGcC7~D^+upL1>pPJ)4&%61F#-NH}U+^P~io@V@Q23S^BJ6)63td&*SW1!zmthEKCOc z*YZZjD&}nd54;bhat->n2XjKN5xDax?fji`v0xyFOdo%lQzLgUy=-`Qt)`MhE|Srx zsK}0gDmqy10&7jT5*ZM=tB?8ptuf6||NYFZC~LwjC-ECxjvYi4?)J-b;SF*dvx-%YEDVZ3jB~ZU zHB4iIJQ**yAWRKwozVsSoqHPcoz_*`w6-ORZbS=jRB zkG%847h~qkZ$-njB%AiziNflR_&PFe5-8yLQ+R4T0^~+7w!1OX@$5u+jk;b4`mzH* zZU1j*&s|$hO$h1M>(`u|UAHk)LFZzlSclSgYOfJ_0EOY(j{T|%q{x%cN_6f70Wzx4 zjfh+}?Yr;aqkmg6$LoQ)IOx#lHkVWx{eghwt|{H*~z}M z`Ni?&;_L5Ri|J>}FT`TUaW>A(oM2~?zIhcBheEz2Tjff?RKC4*DZs4qD7{LTIBUkh zL(`c4a(B9~XQ6wTg3rcih``fL!}wx<`W_mB8ewlfX1F|0LU~Yltk!2rALWW-E_c#^ zG@$%4V5^W|!3H6LuNTydbgy}Wv79&Fd*0T)cixI4xf7OjCj}wu*>9cL5p&V8&9T=% zuYz@zPJ;QVq@RA9KvElJnVn$P!yt(Dmqba#W6brd2BqXKYDCe&v}kFDzGfZ;Owlk> z6bB=A{4z_E<{{8zT1eL&jD30k=R=}Xp}Lv_EPa#VF_2GaxcgX#XETXnXvOdn!Cm;NmFYPQ<{05MK z3xcBbufRCptP4UBaCQxra3MGj>Ot}Z&Y|Oh-CWYIuzc#_%*#OjQ^iL=_su1DW?Fv` zuw9t^u5=bmXZ9LMCvIE~j`!yD$#7`i2u-y&d0q?Gz-eJ+(Ba7+rw=A_0-esW|Bl{= z@;okm0qB$w3zoWCli6?$@V{|1<#NBjEqSl@+WWe0c)rDmVoH-`L@@9lB@X9=)mNKs z21tE7^0x_r=g^%HXf)vZ%i!FJEUA$|LZF>8&5FHM+lPCRmO4xfJO&(4_;Ecgp;^jq zE8+gVe)mVB(n{51V6XsIWJQCJ3Av7aVlU8eaYZ#v{Pi$BPghZ+8#66kbop2BwePQrS!aAG zV#_5t#6|o;e0TBPSWGN9IUo;ox*{!H=v2?Lgt)n&`50c-x&HJx#z;=g58@FscXsoq z(_-Wtb%2Ub0e;Tk`?it`r>&E%Iz^_8x(tcww5_jAwg2FsEH3*#v-^}jQK#1vkUw~N zo&)G2(Z_$RUbl6q)ln3KM7V#sxA=8mv}M-rSL#Q{;4ag0V0K&gBM+QX(>eV%s2e^1 z%a^!X9iXNrP$QGop&+J(IS912t`JK}&V*-3!kX6FXWkP+X2uJ82IYGw4JPr*Ch_|L zBrk;lGD=;zGJfYrE4>v0IU)cRFEgrUWt!NjQ{PJwk7uhhShblTDSD|0JjcOB8{r5i zX|L*fY4X~*0h}QXko_EZ(Sk_({R!O0bTo}o4_Mq@YZT+Sv^fTYZ++qkY)!Gd^Xx&Y zqM4PF9HX}7{jjioC+d5%uV3u~lCBfYl1T4wRDH~OrScd9hC-vHn-H8VU6WUkc+gUL z3s33s=ACA(5=4f^&}-QeaYsD|Dc8Dt6;}8AZV3H}xoxEPsJNl3IL-(AAk?T#zbk`# z{-#!T*$!Xv^e3*zW=ij>VdQs4HW$S&S+T5~ubw`gNNWhA|3x0%IwkdtVb}0%mA*MQ zVG*=4x=_?79;U0{E0_%60KB*&Y3LKa>u8-odhdh}EF|;9qiz)qLRj3q9Iqrs9*)M7 zye<54agva0ZDYu_W^+x7lg77@LR|YXCzLi@IaNbI_l58 z>D%!u^GbVW=9Uo13yH0sj=SB6!eJAw zsVGcLQv}I^L+!TZR5h$#@Ya5o{Cb<`HQ706hHz?XAFL`l7ZLi2p?-Vi(L0Bb6j)F& z?+(<*t0mW+moX8Q!x@+UvMH;O(tca;svcVo-9X^I@R_tVu(2W*DH~TCmYY+k{$aLW zFi7=wA8NaHR?Q?np63Ro4jCk(2cGJ>Y|4PQh?WJR;fd?aiIOV{#h5NW#Wu*V#@k>5+<5xUj?1ylDwe2nyi6&;esK9IP)#mrf_q z6Od~^dthd|SgmslWm|fyUnqDgRGQxVQ`cB%%9LsmBcrS6Q}Hm7$MR+7HHk9gs=YPh zUc9_6tlG`_M$-u{*MolUKPM|Jxe_%r_2apJ4?>zc+pgR=yGl_4G*4dK<& z$ipL4+gj(#>pQ|7%2)E!ly8gm$)o06H$;({wV7)<%*4eDdJ)i?58WCUI1cS;_9R@TuK$PR8$6AQG;GQIyC#7rju zW#rL_{<{2;$xT#A;^Kq3bD9?#y1~(d99toRUed2RogcqEP{hDHk}1=a%GZ8nxesoTI~S&ui&b0G(P z8zYf-Od4nR+eshssR`&jQ0W^|KwPr@nd(@hUVcunvWc(oZPa*k+WOigMQuD>!s2bX zs?ksC1a+(1dqy-ccjwWA7*^4WD_29LJDu}cOtbWCG`$cQw;RYVMPPn%rTkJ)r}*u? zuP2`o&U#dtWtoTq?CijDrM6}@O*&lNa(jTvvm2lt1wMIBeZL;A#_;M*M%Pcwg&abg zkjXg`GRE<2l^SSwV{>W#5;Z<lqF3I1ZlyG{N_B9`77vbs)3BpCPkaCq7FWaf z2h@Xq7kvNY1ND!vP%0G7%JI`wTa1n!KRadgtEeU}HXT;+q0F;nTcgJv^cDH z^TQ{<=AZK}!6CEBkno+A{7R*1q{1LnGX<&d{7ard@KXz`#xl30wDx8{Cbp6 z6heI+7IvIyz8JQ%ez^Z;&nzPYYLN+3l6d1YqE~L&c3c&lC#S#!nWRHAu%LA?C7hWV zuC|LZ|CkrGkucgY=Do_PxMW%8%NI`B#`%uFm@jhWWy$>s_t3kx z)vr!ZC-o+>8q|XUD1^E-ia!9oO7$+lF;+gc1>|X8#cGmiXb>8uHE9`12*ylJ78lZ= zj(K5Od#%u~o()d=yB%8{X>!@}aZ5U-o}M8}!?&ehdViV>SM5RE=YL9s4ldHsq5J$j zeO=W|MyLB`B|iIqpQ2&lLlef)1J(N{w{?PXz&r$GZBQY5_VO?W$4OXU^~f#{R;q zL6%D|tov%)vEqf#6Y&ezoeC$^U|0D{NmWncE$dN3fVbc_&PwHTNHx&Y#j><`vg+N! z%E**wKVYcqkyqf?G5U5SA5Pi-`fNGp<;X&}*{3x1n{{6Q*bE(g4<0IFlG5cxbSX4i z+pb>UkQ%aVc#|4j5Rk;jVU0EIKT9bXFyH`N_f*v^_$U1v^msF+`^`(Wpy77 zdEyy@s#ls1D1Gp}1(cdtK0>Vu|xuiZl@n)-HswgcL`;m?}{Ufbh^92WPs7%V122ieqND@}HIEY_&^l`$WCLHpCmbVSyslW| z5?doby!C8$Vxq09M*3{IMJKQ3O^zrG0HEx)0c}X$;K9Zaw$XvkkR}SrQ7z*(*v7PvAxz8i&wU6!{CnyloMjxtXRdvP zwkX?$P+k5~I_GBR_$Vs;VLqD$y%CpDUKAYz2IG*h^UdU;P({8iPe-^?at(lL-E9M0 z(I+G=fNe+nO%uFC3iP%9%aVReY1bu0J*m-DW`7z#E63Ukjiq6R+NWv{iiobXJ*}`Q zrMzE%QIi%DT%UfnHOwDWF#VDcKl&j*`)OC(tqy1c_z$tZz8PN^N^5XXRg*M$OIhCl zxQJaSQBG(&Lu!IqL8U4_Sg`H>!HkqlP0&L%)q?DCTU~*GqYvij{OWF1uLt(=^g=&l zI`#6!Hj{MZV-gxeF{Z!TAhWg0a0mU1=Nb97xqOnn+CDAO{#t82n&~cP*Q3$jZaDOg z>QsBhvAl=7*6sW{R{2$qI4X&*5lk!YN)k&a=2kcVjcBVUYV|hnnPJXO(uPZQjRdk) zho)XsCW4YXp`6a`hjp5~K)`Hz!bqQ(d#@@=`-J+ZL*}AuL;diXu<&f#jrBHnQBDOQ z6Go(%8|UhivP2}aITtig7Ccm%WF{4xj9i#S;RcU+U$L(>{a%s(!rQ+glwJ3C5fyl} zxQDNI_(pINoE37Xf4~|IyAWmT$$EZCS(+>&Qq?x@oo3{^V0sIb47NNS0yzB3syf=6 zl>g62QY}9_fL9JC_ht~t!ssS6`?j&)U9&>n7k8O>;wv=Q?l9h_C&HT883p5l6c6y^ z+BKmGUUyBG7EtO!6{D&txMu*TRKKJ(P*4l&f{-L2S%4F!Jnbc(& zvGKYzEmaz)tflF%+BE7SWr1Qwx=!k2{mLp@vL>Bw+>j9an)>njJu&VQM7=R2Sd8Gv z7f@7UWoZIo+v#1nHS?*{)OSr#BrU|c0+GdwTTS3p?C0r}lS&&6F8PIjqVaJ_cEncu z!qra8X#c5fWBp0}Ivpmr*Ar@YmNVLqk8wHAbft`BUvXCqSkur*!3|uD#8|AdyfNOb zoe;CfDaXhZE3`Bpo<7i!MW>C9`3IJ1)umnO+VIB1d7RoB9LEr|~_baD=%q08Zh@n@<|m*u-Z<2iHuesA_FvhYNhpU&eEvWx+ziOnAn zlHnKlr);J z@B@cnAzJs+Fh;xOS7$c;;(7vqAfqLA>yep^c}!ENzKoT3@zOdUPIxm$i%q`MZ)B@j zq4_#7(-`H_iF(?{1EpU~(l3ge`;gZ+bmu9JwJ$}15MDc~swWp$J7%6iXU|lkQ}mY! zu@K@wY2;(AKnR)GJiXqR>uxV6CF*v5=XxpFs*4Anj(%$45el%!GLdrJv^;$syG{;T z^uA!#{E8>OsiorD+9!Y2f8+GTC90G7*bE9!^_CXjyUWByZq3=M7Tmwoi{gYr!L(fW zGIgzPLHup{*o7N%NcBt_o12rfLd)Tn(i2sj(7;Q0jJI7}x~c$V3NXE)NhAM5m5e+9 zKD(Y3r1<~Z1WE_xNr{G=b|(+xAfk7f!baL>oQ&eAq21i;UfF8O)YH}P5(C;C7=*i5 zIqu`Fkb?z}H>Y7XmE85mo6~lmj>eD-%zV2dNHaV_Gj8x~KKS(T(N(*FKUb7q{rVCB zmQ#p}6^JTN?-Y?^pi4mpXuofoi&Lcg?iZ-{%<)z6cgk2-FXQD5EZUbJ&rqj2&DA!LVdmv8^>fubYiC>h#`tL z@1>eeu`^w%$o<>0h1ohTwA}j67)co>RvZ!{i8vNBY1Gmzsu$zE$o(+^B+FsAV(#5D z$rE`eQ6;^C=?!_KBRoiT=%K5Pylz$ohs$rA8?smGsm$aE5Z&pdwl7qkdLwrEGP`nG z4al4p2f+_mf{X~#guVUu{P9(<^uu=^s|@+)yB5scu%ZKViW#|Zx@a(^l%O@ax|t*z zFHZ?sfgw;cEBrKP8)eb=gkR5tH3~qmoP1uOFtA3hsK(1WQR(RqlX0ev2O+A)C}7bz z-Wc4zx;53IfhqnWYF?G>EuuXY8E&I~vNR_c)2%!!VR$P}Jl-uj5#%=&lRzV5#Us~U zeyTDC+1{LdC3*Y@XdiYCfDo1r9xLoG;F|wymGwW@{G7Y?7!QpI0%<2K4N#eKI_tZN zc~D=4+e1z)soV1LU&LbJbWkV;LyOFovrTrCB=PKxjxHABnZNZ-*l}$PJ*#%q>FLbi zaC4J3{IP$$wRkJNc(zUA=XlH|hI+JZ6M3-iqGk|O zfE&cK_H%H!I$vVo*6xQCfBkcEGXHq1KJka!$02L7U;Z+puL`8wG6?WPb*C}g!L2tP z8eHr2TjakSAA1wEKaMqR;1knRI^UrUM!N7s)S5#ZczuS;XU<&jowI2FgNkDw5mO8h z9y&q9d(*Gt9H4tRNDWRTARP$&kJej7t41LrSx%;ax?NVzx9NuP6FgyD_ zCv_tMSE`ece$0a%H&a({V1NX;+icH}R=}ekLnSq)&N4I{G-7o8v{mdW^Wlx_;r(VZ z36?2;!!39DNp<_v5l?{2PjBw=gVILrkOmsRgMXo?jYzS#IElD6ltxCWku5Fb^vz!us5|R66H|+Y^xi8(5))S{;VuO=Mxdty0_)` z!053$HNbvY-YdHwqtz!jZm{5KN>(fAiXDWJIB7*#vj=6&rsINU1^w9 zy2?<6vjrx^AG%p((kz-N`V1Td>qbB3*f2qg5NE0X5J};A_&P^WO9VXmctDiopV>qJYJ zmn3g>fh9%MhL15XmQyp&iCsC;rq9u{zv%FIOs=xmfHU%p&(Z=I5n6$;+y9IR z2WPeBZy(Cj{T9cEzhkMHXf!NgKX<(T{Om_aIS|2)1v5#wUB%Glq+i~1lzeCxIYKS2 z$p$i-UoK}OAg;*|egLcDefzSw8;Trph`p`%r<+^TFkN>W;BY*7YZZD|HzlAL1Rc~a z`ecn1gD>PvY<&p4jwf3awwAUU*P1^Ab!BA{_q`Dldrof&NU&Hm@9%DV&P(>DZjRQX zSYi%`AAMh2KHGoPIC%ig$g4n;K#esC+EDhpEq-G788C| zcO9}{s$QL~9VGj2Ox$})xATP*564ez&0J3#TIk7 zM>4`okFBS_O|Ol6P3CH3+x57BlWTk9TE(Hoo4T*JPPd>h_GOopQyLjqp4w;RL4lht zk%EJL(~3M@*)CHMlJV;r$fMU1jUUaa3|Ib4{Bi7fO9ymsV{dE!cv~mZdEq1O(*gn> zKXy(7Q|`yBY+=np`xA$^B6aTL_vDrdJFTN(Jd*Xw!^Kr~t38eVBxxqdyTo(xCkCQUykSaOLNfb5_;?;63{3DHhYe?7?GCw;?b z`WCwVH(YI|DTKt_>;a{BR@J8B5Z}Vo;W>Pxnq`_y>=2|>$Umm<)X~+ zT481mjIKyS-|bn;;?B;Rhh4nkd`=p{U;f%LGt-4HFSOliDz@oe8*mDvcZchkFZ3#m zpV`x?Bs8?EsjCWf`76m|&TEyqVL0RFvm*I5$$#m6wPL-CN|(?;a(QKkYSwA>88NfYO1W&D??Ez7jDlJV4c`*Rn>=jw z`S+7JI7`N#9M>wBySSzV5F2aJ3}();dngTnt};xvU7j8v@daRxy|;jg&B?<9AXDf| zQ4-L8ssn`vm^lEHiVATwpi?&u9T80k@E##+~jf z!H4K8?;IXOM#l!5Hx`bL%*9!kC>z3}E#U$i>Vijjkv%?MUTm>$bhHa+jai5N2@%Eb zOSB;fQ$Su{9l1D`J_rbAmI;zzb9mhR0W7z3YQOjQ>Vl7E30*~Y6YrM9)wjPzo*Ejp2#BlXsh~YIIcn02?nYjgQd;_M<{?^x(R3n6}OZTQ7iJ=JPhBfxEa#lf#*Xxwf2vnGvw~H-1L~?0qy7Vhjy^!;E{}^2ivMSsd)YNc z7mA>Zy_TsNXI93LNqev^J6W;K)}X2;z;%51DEMIiaDb|IHUR8PXQ+yQw}4(Y<9~Wt z;0Tq6Jg{gF&K)-^C??73N(-C)yvndKm(Lb2u&B=r1w(L*seT{?RK~g&zg&H@ydLZHo()8 z7xt3IRO~m+TDMh^z$=nr13!C5!i^#I)7=oICiS!V55D2I)`Xhh$VkRt@#x4)^d`l6 zj*SA8aX&^ z-d=Hk-a7WVmxt+HNm6d^n4=@!tjC07jynHE&bW|ZfJ4~9kWtS-$&H*$Q|%wn(yzNn z-hMHcvUB$PIwC)h?IN@i9q?u2zaHf-do~R7vp@Lgp5Hi6Gk-5}|MZEwh53EA2HI4a z8a{J<5FEMyOQJ;_{SNT z-U+_bn#f5W7~0Y*PmIQZ?)=pihwxAM(3#%pbDKd09h46{ z|2W>HqbI+m(zAq7eo=$$ZH3E|JGrq)sq+%N0xS$nVx;{a(|tL6ee9PK(JDghecfe0 zgA%HByqXYbQ*CYUSZHADo~F0!$x2_XF-Mv&|8p-3i~QTTj7(;x>Sm2N5QObncpp;< zyN`7DRUnBXC^zExD9~nl?sR_sU;FwwAWhik@2lptx!eDyasOL%fSI?@(09({sLwZ5 zx}o$6C4nClrOB}&#I}kSDP{wz4jnV*DWPL4}rDdw{; zJoQI+N2p3wE}V3yN!RrN|2)V9Ppm}H&XpXkiibYlzLY=r-O1srT8ZaBABBffgSs+| zANB&2hO%_eWICu7uc*h+hneGB|7?DrcG0Y5vv|oiTA6Nyh=vM2?>2T=kgEYFo0a~t z@(O&sgy=ZkH`Xr|znC*9LMDnZM0uB{f9=a5m){ZgA~9XHSN1&HCzbl=v06pbC4e6Y z2U=GslgKDh7tI?q*X)&hcGsRPf9qtEuUTc$*)Vs`5ny3PBjA^+dYS^ME5c6WvkIkI zmn-70_XYdpWuyHJa2!7yKR_KqDl)u=X;aD?2$_Ly?mOZkD7m&llzG z?SLPz8xJ=%vY_nO##YTr&dcfdhJE)E8S)u%KVLu1x7eg zW=0O~ep4&lv^!O}K#E1~SD2a*JF}V~lEv8*VTRIizV+RKiI1%4C@mO$*nK^Ir{#;5 z@9ni95UUxMPBeLN5u0vC{pDo2vRA6U|K)JYPbp%*kT>$6?|LLakpq?_{7Kg49qF~b z8|A=E^q;8+I5WdF<^@9*!`oGK(HvS2!*-Tbo4GY_LGYP_Aj7UCKQLI4n?r#`>rZ7R zS^C&+bZlwIBRDMAyeTdn7*Ol6Ft;K&G1Dt370nAf+uYj<8=MVSi_Pq7;l1lIhZ?<7 zWDkXKVQRd&>gSgW|1P?`4J*jraXC7Cv{rhyIkOhU6+A%2ccdZOUU&j&qolcsMJy=ikBI-I_c_!}emy>At7MGjJ&r_I3IT zxwlzf!t@tQ{GOQQrx6KrH#QYTp-N7l1RZy zXiV0aJ`-_cbWQf~v}h)hd#|bdWON9!Uh4LjOEsNhBH>rD5*+6xtTdf-9FiVPG@tD* zFU#K2RJvWcc!@sG^FlS4M%Tqg@}vKnUGp}R^Qw7V`)NpoQcrtpgxyaj8W*sf6e)(z ztlZ2@E62;J76cL!Ci$D>7z1u6ap@Vg>72zRl@QAd{D=HhC-t+x>PV+a_p(MHBO9n$ z=P|@6PW8xlH{0yF+?I~Qg2Em^jg2#KsM=L=J#8u-c6oT7z<|d+r$@mA(3ZG zwb%N4IhiiUB0;}LY9%_Aw7vY>_Sp%~79*O3KVML+@QhzjHJ-AKVoo#_fnqyh`b<)H zZD=bH9n^ivlNZdLvDjo91I8|7EO5_CzpmlErC&u2jct>BZ}(dxUi05#HxkdinGqNW1lq#F0CJ7~SRcKn_O~)E zhZtz}4c8W~s+La@BP1J5(I87z?ThshSndqZx}HDv^U|`X>$R>^8NKEJu&Sj%_gcmp zP+A9VfEN~j<)CC9uCA?x9dCxr;LpC_t!$VzChYysVUX_LsQj;zVCc-h9rR+zLMVG* zW_aaY#2;B6GcxM41wE%2hJIC?juyl(puN$)7MjOCJmF2cEV;A0M;XOoprVa>%CIgM zmgvhZ&G(;GMRBj?tc3IIJCg5IcEe-6pRguLPfHGT1Zuuh*mzm!{=E5KT0KyVEEfe&8u9LW;Awi^C<6yO+39{q9SjBjSjTOBctcV8GV*eOq z7~_O+phQd^U}+r_KWg0&GI<8=qJx`)BChgPF;2O`VD?tl7ub&habtAjTSm?AzGL2S zH=_y|PpK_2To53hjyW$kg{i!5J(!1a7}@l*Xo_f0(&vv9^%i|udt^U8q2_r0?M&Pd z=4;)ez(Ye4hrYEbRNr(6DnuSp`lEhq`i0(t^&dSwts8i zpJjWo{DzsFqPrLHOE9tG{ZE%JS$$UvTALsTl0$nkQK~10_Y<`P80y6gySByLYf!*j zou47%me_U|H6_$NVb}0+>np}nn*pqV1T3iZ&C8sm>LKBaeWanOQN#9ELI<*Hjt$B^ z(l1`vPG83stHZ=4y~<^Li3ySm2Z@8=yYavt6J5hd1mVn z<;9XOBVNP=wI2hJ;CJ;iKh670r9<71l%%d%o1##0ov5xWpxBP0O!NpP*G?#HCy=Dd z(@pr&cX@fAmkHx$he0BFGZ_OsR=2jweL4T(l*zp&Jp4TVS^95WovB7KHa$Te`cbvV z#Y7%p7;Cn-KZ?0Ev7T)l{fz~~h-z$vM?0X~94TvixP!W}M*o$0|5O_Br)D@Vs0AYj zmW9MX2RA(a?bNM!pX515e)J&PQ=hIYi*7(s1ll!xskL_Q@Mv7Q_2%-+6&K;tOVqla zCr-jye;v$w)PXM!d~=cC9!Ya||F4ZaP=7TS7FZPkkyKdqF!{8m!s=oLfh0AiFv>Dv z!2qcKdVQ<<%no&4TVLVtk;e_erGvXMN0AP_YCl=fJd}DR_#E z`%6$cv5O^ z@$OJtgR^`q*^GN4m}=qWk>ABsZ2E_I2@hk)Jd&(>?@b9=EpYBxBoE5<$kjeMKV2rC zEXunWK1?iktlxW|>Uf1_%;jDy+l8S@Wu$8+XA$nBqPfl_%LpePm5_{kXr8xrhk=!( z&%%8E+}Cqrm))$UzTG(unDTm31_yZ_9tGb7B2=o^W}wj*psRGnG_<^ONVd=y<~|i} z=f~@OyabmNzuMt#1_asNV|{vQ3SXDyLd_VNQ-?sL^xq+48@$!`aj9 z>g|o{|9Tblv==MgX)tJH2849S*JRYcKz+m?(a6QJ3Sy4cpgV3Xt2tg-`5QoFfFZ%f zCT;DjlB6xA3r`Rj^0gQZp7R(<3l2t>igEjqlB|?Ap9TDdSjoypeZ~rz$65AU(|vo> zf(2K-avZ$Bsc@Y?wax0OM|swv@<0nTvErOo0RM;gV%-2=-J(lD{X|=hqclnWcAr+O z<8=&Dss!O?mj@;1xU1nu5VLBZ=OUgcxy=^LSiwnZF9I4)->>s3H#6AN=*NI)v~@us zV{euc&&;U!_bynHWxCiM z7(Sa5{DNIp1ZgG8nK!8jg5Ba^TSym;4J5r!yVDuB7APvZY=ceKqG_|pny4#qqVV90 zl!VzUTlNNKotN<`;hg)b*AvpYvY=mOM40Kb%W9yoo#)iPon7WmA`c#Q2@;+72`mEs zI|JR@9__QUGUjE0y0};U3^-b)%C`U-4+$N8O`dZ&6pKc&o2N_P*p-(7YoRma(aEai zx;6^(GVA{72)N_EDA8ffzg0Amj{HO}mue6leBlv~HW4chXT5)d38r+w8Qx~T7+urk&y{$o&-I4rNCKS37#V5&xUiZtyYaQhl3xEKU(_F7xO zuMu)yv2Ct@S$XuL>y7({luAM!yWj`2f8!{mMoOO0=;&wqbD8`$<>BmFrTp1-x%M;b zX(h1APQ?ih8qqfpY<*9U7F1ZTq01DEcT_7sD>CVY?JuHkEQP6lE@hDc#o`pStYS4? zKwz0+ zZX$h!E83ovCD6bP>bq)8S+WeP(<{n!jp~f!CnxyY;?7?)cHspXJmAdx+pQiEv}Pqa zppT%3qmP_P4Z|cc;T#0=r+67dCoe{f|2#7$*7F#BJ86VyDeW{a+nif@Usnv=t%XTg z&N(~&q4^>=b?O0%xa)HNBgF}yCX6ZC=F&Pw?F@_-dHd6YY!!eAb-B5 zQ$|vJbRN_P?v{97)iJTS6{Twxr%Nr1yxZ*d4UIGhAujWzX8tC6IZbRmV^3tw@+Rtc zaqAaHnNC_g){UZ6X+mg(>V^8cGa(hpm7m3_n=XJ^@hB%GNM^rA&b0es+;zm4!M*0? z=!JaOOt>jLMwSzck?p<5y70jG{^XRc9U(frb$?;uk!=O;npm3Y`K_Fe5A|Mviw9ti zhe!PgZ8oSxg@g+hypDY{a^=0@_)6pCWe8LPk%;XSgD0e8Oo^{=FL;x6J9xVEQ^(r3 zw)O&QPcJ#LA`5R5Z{W?6OtY3BgiDh&W^%b-EmxP@>bkv4mW*Z|V57HYnWxFAL1&%g z3>9umTX50T*MDEPaJ097g0tCV@-fodQC=FSt3XVyWX{gNny3u-@wcuBU={^mfsNKj zfzSvf?#qWJWzw(xr7s_Q-Ukv%cOd?1EpcE)^_v%HMEb972o2?h*!W5hUpM*V6{N}d z@iG6h#f|)uG?r@nOn8X0Us-4MW`a0B-JTCU(C0Y!s%hi1u^K2sLU^sy$)!8ra^W8v z+S48G(7m3BXxrS^IgH-J+{G7fSt0YGKW{{oeaN8d@jtFWc9zJt^Q9*15w6EXa>0ANYvmx%h#AtAkNPLVpKNeVJI5uc8r^@ka z(=eT14dCsv7Gd_t`$xIPbEEWD-(^`%@!cF@-v)xWayfiMVK82?@bao@7^@m%{W zz{TdLW|pLR=JzYoBaTjS?KqXwyl(l^{rj@eSWXTRjLbVr-Elp60D?|?ze zWG_^WD#ZuiCSH1uiGyRyCn@w&iSooNdh zTYuqwZ9xmp2Rzq>*`9x+ECDW`fJf%q&FQS1+}m#icD5$XZN66gtO@5oW?}EBC;eIp z%16gzE`a1>X#fordZ1w0AiB12_-z8o``n<4aQ78hLBWR&osw@SxfVn%Bi=W62&(lu zvdy~}&Phq-ocZ~TmIYofYSc{1M7!3c!;p%mk_#cVr18C8ZXwn$&L=*uTY}^Qk?~XSV;6I;B0ijIYFxHr&PhC|4{t@ zg`l+C!|m<0pMjvQGWsL98QmHD>6*&`LW;01cp0<*{dU8ISt$xG2`lMQC1f8B=vUSB zR%viUlD_Uu+w~TlKCa6a;P&p;_`O+V#LMZ-gPh{bz?EfMDoBwWbxa;j#8*ZDzEv27 z5Chw#;1>aTmE6IkeYKhzrJ}AhnV_>^b%{|qcZLM<=r=RnYz81ki1^dD3OX8ho$|9> zg(vKQh4zAf&9_2;+e1>>JXDI@`@V|H@V-Qcv~pGZw7Rm_+{Z8GIpP1}cKrPeNK}gU zd@@*u6)9rC1ILwr<#BZgy+A-;o|^=0Y9Xqs5yxMxdg;(*G6fZi#@?-aT}Jkfgz$w& zDw8PI%^BkRBPA}9qv%%d4bq>x!*6vDMp26?q)=-vb@GXK)8$mz+b^ce zqWB8ZzFgYKoP8R6+Iau>yo`(Ob673f^?WQ`hapiF4G@xCdXG*F#uwk;RfY)<+c$&- z3DNX)Qx<1d9(|P?uB%}iRdtUm_xcd2D!8<={a)5$do=#cuOK!44k}iI4>>uHjRD2_ zK_lAo$!g=?AC%>rCw-eY1QVUxQqrXFCK{Pb?kbO4P*kA<0HlSJg!_;a`h`wIwlY;D z-t4g$(78VS=%S&eT~U$1ir_d;!LwhI9l05C*61`bd&R|!Z4vjG_^l%Ng`5vrEhI(U z7gJ@oaWBTu2f*2_%5 z-@xPQMM=4Yq9q5uQ_<)Q$BLCe&3RKnKlul9Iqu$H`)_!;_zDFBfZpSmYdt zvt5b6B+6bO^<$kw;r_nf-=Cz>_D_|yjQlP@+`}SZ`27E>I`3#U|Nj3cgvJ())~twB z(IQk8Rbq!yTb0_QMaB|pMTOETLX4`9y{omy@4D~%+~;?H^HMOM-`vmCnV9N{BCJ(dwqW$I^=VWfr`UP|JDZP4F74?KI8U5Y$ zyb|gNL97Ck%teEOitNp|MrH4+3zsyc8}wW^y@KyDqjAZ9SRZrz3y}A%bh%S z!M{Su5VyRtzEOw;;~lBCC9fI)X-fwYKE9ph+WWa(fQ6Vb{A#4P9rxrSS=zVz#< z?EIy?2)BiO@p0#8dTB_iCIM!s9mqJMg5@v}_r9;MqxWv@cQbA6iH@tuH@LN{1d+0| zrnD%lOm3J+Qjr6r^LuS21+ymK(Kn+Gv(fKCp~~zM~rayKQiJ(nG}=nNUbclD~W@S}*Ma7xF6Rd?%WL7Nis1+Px5 zzVw8yn;>|pAcm#smEwj7{HR2J5`*m1Ys;&tL8OLkjP-!v?J~hkJM$%rGqTY$$H%?~ zUsw=uC_(#t-8X0H8Idddnh^u?=65zhH+=MibWQajU;1)*t+PQ&Wvz+R-uDbU>L*{X zbkc4VoOLS5pDlI5e#QbGzAB~53@X;-*A$_;)W@CsH7_6D4?4Bz1=L@m#p?5GodxIr zE?)g7_YYlcZKN{_Xv#r`OEulf!r)%{KHctjvrY|Ps&znHQDRF42~;? zfs5@bis=my%!qGywOzJnuhmVWwZLL;=wUw*;+FxNv8uydA7P8-I`lO>E~5&d&`FY$ zU6Dw|syp7!0TU@3AQN2}_;%1=LXyw25`iOM2Lw_CA5KtR`Bvune(SZ$S)Xns|B7Xq z8bkBAzm&FJuNx}W2?|$$BKVN9Pp2K@?PIak`dPZ5Ht$v=bC4&+6n)qRF8XZ-24$gbDI`(x&&`y|RyqpXt3*3z6z zNtX_q%yKZT0k#Aez`cwKjbxh? zhY|SG`oAXFId{QMzYs)vrH~;kr8{dda7L9!XsxD3G?TRStzN}mRms|6ug4*!?O-4t z`nni+5E|$o4tkiYdmV!P8nZs7CYnn0(oBg{_>xH9C9WJ{pdvaB&>9CEW<3t9Y2xC1 z>DlaHWhuUdu0rfmzkk_m(*FGhT{8rPM&~N_{ww~Nb~+f~R2BM?sLl6ivpt?r0JN85 zU9d884`E!uKZ(v83$wK1jq7ewWbuH|-ao77nJD{_46B*=`@PZZj5jfbkP<`B3*r*g z+@`)C)K+bC0O5{{j$WK;)qk1t{!Oc$GIei;vmib7SzJ#_#p2;7b`T)vinbfbFmz$> zELNdih`}xh$sYO!wI?`p-3sNk;u96q9zC*>6A^39CkJL-#-XtkPs1vH1-=3l5d&e= zYA!tfBgG10Lqi0*cxMHMBo9f}cPFI2@*7)?>&aY2se;#LZzV0;__2vA!ph*kmvw1N z^&b9C9@?FbYB#%ggRM<&Y@w%3bCk^p+W$k~2@pP;7PoK-nw!~Ws+p+P>*LJM$>5i5 zJn}U`vh}1gS9T$o6|;F?6GiASyf;aNZwJMIdSN-M?qzzl&TVhY$NeI>nQ@bvpdX|~ z4M0mw++XZ{W{*uo+#ZOy6=NG~BwBEG0jp_xkxZqiXSVU9$D#YZ4@yr@Is0FL0MHl( z3}Ry=tfdP*@Gqg>a@Wom0CY%xu;8?je)WIPxU&~Qfx*zG1_y&Nfp}YTiZeWO{Wvw# zbgoy}17@bbBt9(cC8fD+_vKS$M5)*pViK>ML7_W?lKTAXEK(UpElS+q;7lwC+rGjF~fHVY53sBrfw^|Zr z`^W2&>K;IZ$VgT9b{ElRbAtI@sV>!sujQj{^*!Gi_qeQbp@94#J|?+TNDW(X_K4St z78|+f%vl340hz?Cu`)rJNIHO%yA>Hf>g<^H=K;kc9ti7I4&t1&Azz=N!KGO%G29eIC^k74hK&cLEDl&zNqPp??cVGk1fLxrna!F}4 zZ47$sW6A@#Jp;3*Bvi!46EY{fsyZxsU(b0Gl0Y2)XzXV_mwB4I{0z28@seFNwM!^j zhi7ooWNDpv-lIJslj-wN`U}SlDyWLsQNT2s{b3X2K}JI=hJKHixi0X4m^Wp05Km_7i}n74-|Cp($uhdA~|IJHk8yAzro!y_BI%Ts@r62wVinISZR2pQS07hmo?7dt z%N@<_ORh>Z=24LIp-;m$6`YQCd-nY&{~W%(SPW>npXB@eRl*??pt`wO2$p+TuB1r% zdvERExZ=N4>jxpYBVReLq_vXLK>%}O3!ZgtY+uXKaA$*6uk^`Y%eYdhS@?!4TQW$> z7DPdJPw@meV{SUfS00&XgvB1jI9&{4>v*SUi0P3A2 zZ~+dFmg#O|a58fBGb%|v?imi3aRB6jd3^l2NnTjU?df3P|5 z5v(hwRWw3i%$y)IT8d}1C+VK=c(i{qYJ5M}GJI%?#S;W4j5Ce^?N?@oqFzK49lRTV zT~Nup{%6nP{%%Wqd_!VcVPD8`kEiVJA6uF`j(3)J-7AZVAwqg27hwzYgU<6qdgV7- zx}`CWUjW%u37gAr8I!77>z6(9&L8cB z9CW(3#{-an+~?VlNB;?*{s*Vu_IvJ{82$Vvkr4nZfk`~%mx3SOIJxs(Nn~1nZD&s_ zt$2q%LR^IiiYTp}jy`B7OgW`fSqWde_F-wEu3p`6qhzAlyx>5^S!U(Pt7fZe!jA0H z7;O6JlkpQNih?ftWMPxE2o#w`RZ7t=op;2ad%a`Rf)kDBax)px@cimL11yo^m|y6$;qW4 zbz>-KvqZlAiEAcG&MV{FzYU`k>@Da z-s*H2zuU{}y!0Sr76ny}2xNJa+1hH$F?ZfPa4`0k`F+St9@sR}fWK?(*j$*&Rbp4i zy!`OFWxU|xSh)~jdpX+S$NS_yzb~_NwGT3s1xo8v{z2*)E*AOa0OIJA-SVfYk9Qr! zp<-N|<_N!_P5q^#EE_nAbd6aXXd@c2abDs7Rd_TX_>4V803^T($A(_#qNN;(ZfvNr zshNRD{Ib-4QMO?9I72cjAVFq~ING6{%ec8fT$`6W^=JolK+bclA7M9W0~HY=-O_g0 zZiG4&g?imfUd#6QfBhgn^7DEM0bj2pOB+Ya`E;vmS}%z?y&LnHZOh*jqt=?dvEoG3abxcmXO4JTKC$hil?hSrZ}K7GFheSX=A;(q^$zb$v&e=1@_QOb`~0af{C3*}x>dqAh9II)6he~j~U zzzHjDxhpW=u(`f++h%(3uG?$wboJSOt&WwzS4k?Q%2q>!2M zJ~6`|N#)`lnQlROn*9;G;CaoWAC{B?qZJ;dEaH? z$FIfj76q*lpT+OKUCNrxzos)uaIbuWv4msFkYFmI>DCEg=1Vyuh9+0?&x?zGP$E$_ zDu9Ram4#1~i%q9X$xe$a*$C_2J@jffloVU!ty9WkN2gvQq*PcZPXA{nXq!BH^7Mj{ zcIm-6AnkNc^p^eSNGe}@Z{4oOW6(tYh-WVF@0SbWYtFF|*YoUOX(5B|aXqpPWii9& z&g5gJe@Xp}xD!tQbUyo^GS9_@>xp+aU}7z&29*nSn90=LxgU?3s3dBC><{+MJqlkdf(qp_G6WRkR91h`QAaw}~+ zOTc5)a;WfCABobQXvaoPY-n?|$cVCc9b0ITLJSK01+98;SCdRqyD?9xk!2KgI8WmL zmX%ZNNB>Z(&(EYfh@`RMbpO8LwVkf2l8*D1D|Cv8^IyyQlKjqHmee?-8}!sT=KA{^ zS1A^m)#mpy8xB%2R*uqk_3Gsxa#(FODSp0|rR)mkKY<;51V9XjG$O95wWKa6S67T;wo47(IY`^rFRY38Hjb-I4`e! zH44&4%37EHNf;8tECHe^#$3YwCTx={v_nW8=HsK+mr~yLnSR#ZZqDp0 z#1o|(^8-XtAl!P>%s$Z}G{F}+jTU*xrkapuhe1J>AVL8m^te4K!jH64x3pq zst_JCn8cJswCSUP8N?!AYYtUrf%S~GxT@Svy)Si*tiqLL&HDPZUs!>b_jWgP_jrFx z-Hi>7l|vbX7GhH@^(%`535mPtnGkp)65}K{!B--p^^R)9=ROQCgi}B-&sf$M! zHD@847fu(3@jj#O%Uj_!Oe&ve`^uxoUKh%>$@47R`@RZ`c!5%7Fo8j)59EfP+mpC# znnr+DXrV6o5)c${UBNJvy_?^0?C_l|JKh@&Z>F4rMTQ`|J+?uJEO$-v{e($>A zuqhSLn&H59d2hKOF?~~9H=G@BrV*20mBevN(Y*P4 zQedB0xH`yt=8?Slfv5?O+@@0kQCm#ZpVZ2^f1|BknU0O*)A)FMPVm!Px=WV8W%XJm zPRWO~Ux`-^?6PuXfA36&9rYY>(ZrVQ=uuw9jIz*x39yebr#*A>!o5>pokSd%y~$@qBXwM|Zk&?jghTWUMTPS(DPR8o9c?c>~0W!clI_BqcT4 zkp-~O$S$3{B|$!%TFe}i`>V+O0IxiBgm0YHi7{FV9J%r>5%>DOW2|_Q3VB7j|Kl>a z^Mq%=x7}asbyP4oW|a4emtGv7b$;ixjKi}XU-7KGm6su{QSx+lik$b&Ci$7REBx6%Ivc(^_O{OJg|Ow z5EO5Ia)BGDD=6WI( z8#B#Rzo1zLXfLxfz}MsoHQP`8yO^vS4ZWJNWs@AYb*Po}liJBU9-NI0J(iSnXx8Ut zERw3x&*CHn=>CA9sd#J}dgb?D_s9DQq4aSI0{Z2n)8aq_N|U987OzYj?WbsEDg(OQ zln#}w?aI}0grYR!Z}|6BbG#eRdYGH~rfK`mn~~;En-ixc3^24#z3+Fp8=m2LCrASTLliCrgwld+Hfy=o{3 z#HWuKV61GomFw9oj^qnII&~P!fYL+4&r(g=V(Htu8Yg#i{2*UJra7?^G=VOT=*@gjB9S_*`zQCk^b2r=X(fX9Kht>`Wji2M0!paBsX3!6l+^Kb0IhYReJi87?0iA_5mIgE|_OPjJo zetAo4Ty~r&OOgcm0sOIbyzVHR{(N&T*yMowMr}BCxCfX0S1np)MMYGBn0P82=@~;B zuSHA{xCRB!+-hAIt#prOX7 zmxgza@mM2Igj6!V)PhiO?YFcKd~o5$Q1U$f{kc@2-+oP2lKbTH zL7yZ~{brOp2<0FSe*;DUp^WK_p!LPeP#v8j?wF#o!9YJ_MFKvP?|d$AimP>cBZNJjl{)-=E#2E1+gar{QGsW)cGc=TG42g_l=@X#7BD(2JJ3XO3l%Mj9qrqMxL zUFkKSu>fPjLRa(Yxo(i^1yku;vC2`K=QttL>h(ka8ULF#ApF5kO5aEyYpcAhL}|Wo zLj*k~q(4lFt7PB2=lt+UGDj?&t`@}IWG!^IRZh?HMiAx>tyDFH*`nAgejk;ZKM4T; z{CcqY`@C^tvpLz(*DO)L5>yV6@$bUYgIKM zptBdT3i>`UG>$K%hcIhqtVyTO?h?bhTP`Kv-~dR;c_ z=fke;vZJ1PU#Tdd9wh+}Ge@JL>z^;2qv;Lr1b`n!h`9`(vsR};zufo%_<1-um}FYU2Dw zA>36|@EiZn#`2|)w(tuqsQ-uY>B*v1$cJZ^b6j7c27h(z z2kdAJ$NFLru^iOQw$1x;ih3&}j3&(vN*^+8IYND%a8GJhJho)eOLE*~UjBFF*+)r< zQ!{s>2Jn&88+f(${2L@nxWa(SXeua8WE34buACL8evBRlMyH8`eLNGr4D_+dpphsr zs3YVmsyg88*u7Hdp(TYPMC3UIH9ia_n5*F9i@8yxuRNje)Zl5)SoDxWGz>;zq)p^ikLQ@ zfm(u4loDmJmrxrgELI@P*oZN;`&B1@iymcz?sj#t8;|6LoITp~RCJ>EPglvfWUNe@ z_b7@-N)NwhI2aPSMQpT5#G@u&$mSd{Qer*|uvinW1aXG!b;@r#>!9(Vd&O+u=L_R& zg(oqrhb*GSxMUyLKdU5vwe6B9-KM-mSeRDb0P16=TBdOn1q$hL>ulkeBuWM1Mi;eQ zJQFtIe=LcK#JrC~pg5|nQQ$#or?FyI2EP}@DPMWsX^}7Q|0!Be|8BVEF8lUp2k83t z*2Zfvb7<_wC$?buVJdPV{aadQMTpj+AI9IYv@j<8SC7P8bxEd*-&3Et`#F04>XHaN zXaijPM%ktHVrSjU;4?jntKaopsc`;c^4#I?n?A43GpCE2b-!yaI=xRt57p+@=KeB` zA8yTs)P;NpZ9vbW{?Co-D)`e0k(UCs^+1!<;G(3w{ndcr*{qUIr)tl|AP*z6YU8)ItC(Z}$@lj*} z?D1Chv3u#JfI4+%-@$QjKKNxA7*>0o0WPb+7hrGk>cR~B}pAO#wViFkl=X*`$M uYKfJU9 z?wH?fKD!8cx%UO3TGR2uJp|tLjHD8*?TA${V;owlV;a>?BCh^e$}kKAQO+I2NW>*4 z_t=_#lgqj6*7!>0Kf zmy%b?7NxuXks{x4ish)?5CEC~+Tv-%swk0}lx#2Jd(u^+(b|ur+z(t+30O8yUPXP! zMC{JYB`y7v->**$B7Er69SeTeEQ6hCfTP!GCUPm@}xC5=&&V!{QdmQ=I>0N;GGd? zGqr>z$>AYM6_9XRDSi+k9YsuLE@p_SS0`k|a(!!Xpj^{wK+mExD>(gY_5v*rNBtkf zm`+t}7YWDtn2!>Gfz9M#LGxjs$%w=qH6bC-wER&AgP5Oev)(+*26c|fz3sO}x*{~E5cibHl1q>E z`)#i^%eP40WBwfBVpgkNJgGdXl;8H7Of>%0B(VZA|41W+ zr`rMdjJ%OGaZpg00`!av^37~KLDgUus%wd~?qnQgmxRh#g%y?hIJzsQ&Fo-KKKL5P`j~tJ zaa*p9b8WJI_ISl6ho1#vcC92#Ax!zD6;NtoxoykDNv(wXwj||m4(Oq$6m&S+@w!P; zW=N)Kp9yCO=g>FrZDmXU@b`~2zi^)@sr1yU8A9y7-i}2ps3S3tCNrM(Q;|zQb48BQ z^x-Vzw?SN%3Z-Be%E|!zYxZoFs3*>e`NYcm9iTx-wZdL+#k3p&DFZLKqD4*3Fc|@c z98u(bnzn|k*4Rz*O-WE$fzVxHpa|Sd=X=NPXZ90WOJD5YyPC(x_?*PNQp~b$#8YsEm=#L#$UIAHN>|FV z(%;{fczF2P=I4k6weChfjM?gg1`7kZxX_J3z`EV9aNqe);@wQjcwNM;?+7qyG+le* zZ>B|u4mO68;{D}&=Ju*ygzC>PNAlJvsa~KQ+DZ!|=%N^sxfUh$e{~opP)H3|$v)AE zL4$j&aqB=rLxAJvY~yIs_E$dD+z;Ec2MWM&9#RQcv4D^ziB*)B5C&nGzC)2HC?fSv zJ19?vlg3aDby&E%BGt70k47SX-mgZXVyST_F$)<*s8PCHa8pM7*JLM@!xk;TR%@2A zqQ@Fa!JX6Fwfjlm$wKa+n3Wk)iAwJgWs)`XW z>|!Nw5zkgXUwBl7U649yun;I{sdI;i@>KMwkzJ~Q<4MWM-S7WreS&CrGvy1Aw)gnd zS$kItZ3h!3J+=vA{#yF>)L$y?f;iu;9|i`jRV5k9=Zkcn9Bo$3IU3kw9W_egDYT%N z?QqogCqCMDLh7`UQpX5b@zwwZOqZOM8XZGYO7OFckm)@p8CrMkRn%!@HtMrBtx9mS zakXQR_q_)P0TYD4O}65oa_CMZ7q0=km$oL|-;a`jG@B@{>btQBR>6a8$)I@cg3OQI zu&ETYN*#^VFhf-e8c&F?ta3XJiTy^a4#(h;q2kbFByW-3b1NR3$AobciE(@?%aeCu zzf|PIq#be=JY{X`COTSiXq}#k_5S2A^dAWv>mgp z7#niDoiN+@TJHWWES5fI=IT)NbH)h)n=;C?O2Sy9WJbfa8o7sg{ESL)gcN;RA%s4Q zmt)rZ!CHw>`%FvMf`f+2ONIz~sdR1PZ{l1Cb&9$mB)jmn0vWJ(w)S;_^wX&nDG*(S zDl8Oq5egJ=lLfe+OljD<(a9_^*l+PYf(64){4Otd|JV}e8zOV|XTeIzC-h_GovZ%a zNSuCzv}!0VZ0^A&Jqi#B@#k#Cs$Pj}*&$#mw-8xl)cqKrw;1_Y484YievWC}etNa3 z&rS|Wx~p$HPFU#L-x4=upi&aYECoLwZ2t=y7eflBcS$@LW=!nF6&wk>)a`&On#Zp%}i$&g!r%3 zmeVuQ;q!3oWTe82@WbI_AOXJD_<#0rd55@*ONZ_9X3s|?+(E!gUFD&2wW4L%{{v-L Br3?T7 literal 0 HcmV?d00001 diff --git a/examples/shaders/resources/road_mra.png b/examples/shaders/resources/road_mra.png new file mode 100644 index 0000000000000000000000000000000000000000..988c839cc127fee90f11c508a86e260a91e0c24e GIT binary patch literal 673099 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�&`A$dA9my71C|*^>zE{_rWySql4u>(8BdFBFf9CB823|D9x=1M4gCHJ6Fn``R zag2OvTl8_-CHl*wAB0GFLQfJwR|q&+d!g(LE-F2r)@OezHhx@l7%P!` zB2}blL8q30`V1p}t=}MHqC+6z=Tc~07l08s_}QB`YphOMBFj|6eXeE+0tSF=`Qg>x z15#R<&~&|0Qr^lM@vsJd8iI2F4}Z>|rG|s&72b3*=GrrWoQ$g z4k_T39>nFXAc#9KfPti1BKs$no@gcTy6W3aD85-83%G5%_VJwsLkekrlzXX}2;Dpj zUAr>>2cnD{W8;Za*I?w>zRJ8p7U^>aWU&X1qBGvSa4JZNE#_ChYVf<`9Ni~8+F}BB z8R<2QKKE$3Vkf(O`;blPAZ*~ynsl}I>_CVFTDCOJ{j+dxWESA4+2*5`l z?DWlBd}d6=2{Ey(H5c$M3{?}~$YcV_QkpasU&X<_^Bu$E4h%u-;uHE!+;SNCO1p`Q zEba0p(G9=yPpYF93w6hpq%-R9+E(qpm~0FybM>-VAQ`KIIk?K7!} z4sHte6N;bjFSM~QXzR%GJZE`~_gL+d*m?`5fb`DltH_j#%d^=pc8fowMLwO?yzE*N(q6$P8&XnqZr*iXG}#O@Zt?(wT?Egm?uE;q$#?c?7~++tERmrO{dyBM8m0M$-e`djGcNL`jTWc%TJyLCfff4d>H z)oYHw|9FGRi>A2_05OJct=uvw223@{+nzp~(m^^sa(KoIiD~}xp5Dj}n=oq!LnYFSsc>f*LvR`G_uYvB*WSMLMCbLK? z%qz0KZPCB7?uCf@_v+biB`ERgu3E+(DfuqW$`1?KBF!W2Y??J%KbGRrub4!0cE;-U z(-hd+qQpa6x`0(?=ILxW)7_P%xRJw$eDx8d#wl07=5-OtoDvBao`DR1&yaj06Ye** z6QLB=!!P%@xGEjC>Sw_i_TXawgz^@azQ(0Dv&r$F>V&Z>5N(+_?1L{h{#%nFCcg$4 zPZSa?x&QCR=u9c!+j!A{q&CY6DdHSs%2GE03|B2>Nvyvb8>`^Q_LcgiDb@zEz0WRR z@FtIE$uq)~w|v*w=%ozlRB)UzChDX+O0a zIiDer`%kc+=YqBvgz+<5qP%S}Nc5fa|IEQp5uD~q$e|vLyDFb|PAQjJtgC#}>lW1k z;;8M%^=sf`Su(mXoo9);7#KNOEz(A^niguqbk5BDQ`R<&{S!`A`kPW;X%FbyZ}w_w z!VEMD1b7G262;jzK68Y+%#%bK*Jk~qnsQT3+^N)KWh2#BE~a$F&ApY>WA|BfrBzlH6a2XJ60xE*&+#QT1Uv!fpI@=?)$mF zCp8*IH)|5(OpO>B7DXKDu9K`u;V{|kh^q_|dSU%W>ZWsKLK!#$>7)!{?;pSUJYKCA z&|vE=oQwXg$*5Io`RSjHT3!huzxDuZzs|v|b;oxX?FsycQG^}?a!6M-&4tewqWfr^ zzKK{z&?!%mpj+4(hRE?3yUw9Ipk$i4JYW$e2=%tS18<=f`}TO>Qgsc8@j z;^dpjrfIeuC2z%+nv-Q<(8}m9uN46XlvX#bD0UxKhi~yFMg=&|yDxwh>c_vk>&^R? z#{|U3{&U_8TkLl)?L2JBF^Yz>HMp3!s~z%G0!ZD-!Ssc{*wSy$xfb=+b@)*(|BUe_ zhj0_S|5e9K65#H_yW1ObIlyC6D)2E#8s;oov{R&PN~aU*>Y&*8(;oC-NLXLf<9|3b z)igb>Pn5@?pAhxYxCr%{A|?NDjo{ZNL9f#Mx3Sxnj!N+2XK{H&71JOzEK3 zp@aeqq_s~NsS_1Z+!B@2H<@2B%vV1&;R`0F6CJ~Da)tPKs6m4wy4d~c?9(h*!LT+_ zaUBv%_K{AAXf~51ml65MDVfUbqC{*+&oY6Pq$v}zK^q-~W#nCJUlV4&&iR_rQ#4G8 zK*U|TRqsB>*`*E0`XO;ulS2HjKW~Sy=EWj21P>ivV~KZ{!;d+)@R~1Ze!~G@ikMy42`1Wp{2PDQ`#Qw|WJm(S=YUVg8K$)$DW|m0; z!E+z%i|360LqYhA$l1(9k?`A7VDA|en&5NZz|9^UOxv=cUyN!!8OLpzm2(jzmhlyg zFiaRAJ7UZuvW z+W4CUe(c8j(thXy=A$sRguJ7?t9PI(n8RRy-Iq_Qmj(keIV?&JZ!APVAC}$|>p3>W zwCv23WNFk!+)cka`%vB@V?)*&kU(F%k3mWc6AuF^pJA# z>5iUFRAeeuD6P&rINt&DTanN(&FTJnVo?t6NClCSJ7pTov%v5BbS}6OiaV7IO^YYFMyc*B+Z+hE^ zs8S4_`A=dzW`!7@e;XY$(wCc6Xk+%PeqHg|72Ul)W|`H}z_HEN!A_|KH1^Ff72}2I{ilPfknkaa7AZpf0>fw9`6bSc;;_{--)O+RF?2` zb)<*?sg=*bVJ)I#Eqm%CD0U;X0yrN%XJLOb<)d5$D${dU5{-p{=~uDaWbQ_k=7u9@ z9jVsUF~_|iO;5Jgx8oF8pS@UmH?QC#=&he=7W`cARr|B@|JCWlh^-?GM{`HJFSo_X z_j<&)cbmi)Il2+cx6K!MLJgWv0LuINw~@USQ_AO4;HM;n6hY{<4yax2pT=q zNQeQ&SqaRHk>4Z{fGt1%VRzd8yQd<+By1s2mU!_nb9v_AAM1^MHbbGLU^w+YB@)aE zO1Mo|XpT@pxgNh(b?45Yrc~n4Dnnp#gN+h)P2?H#L9c;tI9)A`AME^GW3YB?PFwTyx74SZI3FzyLUSq)BOr7to} zj>FH{Eq$na4Ks$?M%CsL%gzsMj-wbRToRA|)C$;-3$KhmtaN**FqyUGGDg%WQH}DI zNo%%;E5}L2xSE);WRIvWO*+HKCR{|SBNhW9%^g&3R@1TEzApX4Qg-*9spGCQ<)hL5 z5cG*YNedA<5{RoD_ucXc1Ee-kmXVI#U|pKApUw?-GRl6(%xl;ybFi59LS&4aYF*nn z!vKDB?L2O8_%AGxJ_^o^0-Mh42E6Dar*Dg4#{t}r5ssMkAK`ed1YZZ6;R0>Io}#A$ z1KF?EDOkpO9H!Y*{O_V{*FL}s5Ic#Vd*#b>Ha}47&X6|eywj1U%3u7eCC%6au>?QFNq(0`}>kU>I{>VRfABSDID4 zu*V!<@hC03=PjPI(gc`IF3l3-^A_GD$t)56Jmtox#zLO*D5V1>Cpf0P5ZP(jd+}Z~ zyYqf#Bkdlt3TVYHS{ScOW^`c}NmSkG&*5b;eK)`YR<=|dkPN2=% zZeDbnxw!dC&nf4q7h`={zTvu^3u}4R%is>?!_K_~0Z{VR6o=R=@RyLIsp?JS6pU-F zr>!8Sfw!APY-!?`5P9INf2R$NvAL|?s3XW7G1^F_hKS>5kS%yN#1;JE<5Cr1;M*k&ei9LIOk~0 zPKNmKA|+WXn@=1}_)8yI%j~}%%}0052ctA68rib6t`**ML6LT9Au|*+C@wY(3ILT{+W~{m<>q{oSUvb_%X4+b-{*Lqz%= zYm;o$Odlzu7iG?NN^98Z_nf5kYBIBEl@n`D1KN#_kX+4VxFL+2Op2i$phts2>XYoh zA(?lozc@zUT$A)!_dDkwHwik!*UlHi;phfg2$kACPR`Ig$T5F*^4!^q`+M$uY z-dKLzOHW)MM0p>=S80#vBL9!uj54PpW~h{*Pgr3re^=`Y1ny9E4iJT6H_Z(4P%H4B zN*A5QPLJPa+TN^%D#4ia?j^6CaUOr@l5;}-?K+-&i71X0MVx92x?-Whiv;!;8F^8N z7{R(6^44TA3JXC&5I(1+b&t;zrb0GHs!tG6WWLZ`Hhw+7O~SU;9BP>AVqZDl+DF*% zw)+8Ly z!S@}&nw`PUbpaTaDk!zQw}E`*cbT*ew9iR{EJHL$Md3Q&Q zk%QG&R4@M6v-f}d6#kmAJBLX&E%%dbHCX>n?l`4~yVV1Zx-jn1JO|KjUTU~m5o!0G z#-6Jf_sUXzPs8GV(?avdUQzT*3XgdC=dY`e#PO9au{!74t6hKjtcrwsqVQ)yz~509 zZ5kz+AwfbkqUAc9E1B{RWc+o>k-XKHxL-~c_FH>)%B=!Z0@$$Hc&n!8_t%xh*0 z_Gw~jK+FNQv@co-lO;a6cshvkum6{O?QCY>z9{0ATKcgzhrVg|>f)hw>)~iuAbYU6 zzv|Hvxb(j-&|{7L~+!nq$~5A>?m(nC9*d=RhdUBVxC8otRE(*x&~rZD6*`@_xQwj z)4Q@;HD>PcVeOMTM8Gwr#_SiuTAH}KKW_^~*%b>0y7-}2J55MCU26dh%Jj_UR$V5=ns!X5$Xn#1x?{c6t?6*r$0CcYqPo40+~P(2Hr1%R>mA; zGevBy*+dp|>d95>*6;CgNem%~*7lgw4J|`eYx!Vzhjkw6Eu^4G8b(Vhl7}~}`7gY^ zeax7F8xX%T(5ZN#_;G?yS#7v8lV+lxyZ81yJDP;AHvORC$#%>O+ z@I-MSKsGa@ykALnpD{Pae?;OS}*M{FxZvp2X{|)_- z<0>%O{a!8)#w797fYw+|RKUR9HB>Z~Jdc)hkrmeTqa}lKW&BDV`i8eX)&Eh{d#L}| zCi17(fMBRSKkj73^x$DVdrmLl5jCeE>j&)?^L@RO=eBJ+@h+)%287J|lp^#dhi4D6Y1xHnfVu{}@Cq1jth7gSG|(7PK7>&5X~l5dWmRNZcW z@cP+@i`p}?mQ;^jIesk%_Sx$y+DocyZ-&hc<(&CfS*afRBPGlXifVuF&pZv15q+Bh zkugU_VcYX^#lH6`!B>lX4mcpf}oO& zLfB1aM2tkDTAhKyDwTR8zdee$9=WZ-Z19yHv6ZpGme9gJG0eK;-O1h@)cM^#%hV`z zXoeZD^4Mgi*Vlo>_0AsQi-Z|%W7JZZzzy<$>if@P3|lU9k4D!j7qs{wxZU!M%Pi+ zeL{xbYQc_3{^*)ii!jhPWaH)yB`#N^bm$t@hY`sVE4jT7Oy==TLSjagpX;{0E|WVO z@r-T^S&uA<7JF!45v3 zt^JGC`jTxs0?Cjz@OrNs!QqX`7aHo7PG<-eSsESxfNkMH1xq;6Bef-X>@Mca7BysWSqkV|S zbwr#C$Y~g3@MHR=y9wnnI6ml}U65<&<_uhPL8dt{`oDXpljQMkpPlRr-p)!w`J`F` zG1n-LYc%zGMr-!*m@6C38IQQ62+ov(j^<78ESQ+m_wBiZ^`6qptBIAQB6(_UIj_-Y z8l~n=JKOhE0iz-|8-rdF#I3Q|{>hbwR>D5%j6PmOIqSqcK;fQ1%=i*+66)W_(S zh>qoAU`Eqvf_az69?Ypj2TZObQQ$X84d7LaTp{4;i~U+NLVt7$u&|3QQg0|9cHhEhN;Qjh8gJvnb#qN|P% z9`z6!KwYeC=;Fvb4}{r}UvPf(B)&-;CnciZ5YqeMUtD8&N zPfM54eE!2tdQc;U>P+cmZB7a9Z#-q3aL5J%{UCX5QW~X$Uh?sLTGN!1smN~c! z3OMS>G%^nD-dZRLv;F3b^Rsz`Ms)A|Os`&3ZO=O)yK$vS;??E13t;;99|QkC7l7rm z5#7gj>)B(ZdxJ}K-1oAY2LLRrNRPTD1+OWDqxJcZ#ex6i;PTgayPZ*@VGA`$tz>>$ z0cFQ#4)_1rw*)O{3|^fZ{{d`5&ZzK`-#3sG0y#Y%bEF{ts5fAW9e4`HGW%M3nZ8%m<`Jf8Q?{zbAw4 zY+Oork|DXO$U4({=P@90C;p`t`B+c#jnT%!hk<4BXU`s%nGvCfQv}I(RPIY(cMO9#fm^yE1M_wMpKOeI(9% zC*1p?YAZviKVX~jC)>8I#v9SJH{WalRyXbid6Y_@+^y%~plE#z(<)K^u>A?XvM?GI zqz_%bQhgj!3CJ|LV+?G9m;FO;gIV$N3`k|JtZmi(@OSaY{6af(^@uc4T}dP#OmwF9 zFZl-rdD~j&PtmF~8TS5fQ<_PboE7y~u^~*G1=m@X7G_$riqsawP(=xU+HQY8JpqQF zRSCS&AlifWq7(jezTO5S%<;Tf{rs0@x1hgK<&J2@#duEdn+uXB0m6ynLG<=7kRU~VFm?U)d zWC}}L2i~mmyMm5)b1qV*I1!=<*4P+Dx8j|{XxRd~+ieuUnWN$8DdX>BA-bDijTPg} z)*5~LSRX3O%`svOd(r>aq{#Tk3(}*RvkY*WkA+fbE2WPR>}ajv&&kU{9DzU=2K)_z zhtdp#gqLbIhga4k8pH>>MmD-JQ}rozUO=j@%}u^BE)jfHu^s@#dNeh1$dA#yv?;o) z$t4=&2x}Ho0VfnD5(Z;yASSdkzCwVd_5@nb@U>iVd9I zE`0m5>)C`$D3W1usGFk{gBPYI{CeCJ#yL>3OQNAvaIBWY0uum$lX1dab*~uE0(M&< zryE3V_%cAr7Y18`Iw|}$Vep0vwA1bXPB$gsvA`ixm0B?X);|cGbiGD(6$=uUiS-Iq ztiVVWWKb*FL(52z7bYP82@voryyoQjQ8`Tbub(sAix47Tlt+>rLUz9fE|w$2_`BHg zDPRU(;)kt?pC9JdkrYhiTs`3m0j5}3U&b+tQ@#wX()>P|l&i|*ya@$WbdDQ%1ry%d znlTruN)&^24)8kfJul%{mmtsiE?Wo)RYZ#a5F@^=r7z8J@=tpPk<+Hs*tz)%-o}I* zc0NsyM=OPaO-%G{Qe4l<#Jp0XzD7v%)I}w97`Y1td>L3bB zeDkqFm>7`~j+M|KUY2JPy^TlaTz{IGTQFiA5|7b6ZJ-i7D{0l|bNcQRtOvsc?y|m7el+?; zg2>VVY3RRAc>k~2t4jJvJ$}@}CA~`$NqwV`2d2skS=NO;pSfq?w4$ClCqBJBIFm>N ze*QNtv^!f<2v}89KwEfM)wLV;gR?d}s6E=iD^;ZRAfgvpN+M4ZTAd&Sc?wshHJ7h= z2dWZVziypwi#g=RUY*fWjW12?;KlOx7boD?hCUdMsU@G)L#Mkshx+VrPS?S1vdus7 z5DSI$R;Sys-r;MTH%b>^(Xi1mUUHcmGqj4{;UwlHPr1Bz+KXdQSFYag$H|IW*EMdEWyQVKZpGeY9;iKxm^DK z-mt_l{eY$?FZ|*3PF>6B?&pHW)xGQPQ8US4+QzFF)$UhJ0dDaJ#V6aIMn=2t*@LcJ zs5^U~?9p-`IfK^hmsDIaxs<}vobaYe&;QO)St18BsUQ~`l69Ynn(S<^2vP(o0!ojl zcdN^gQ8}X@>>c<_`x5M!xv2)&kTTu*CNOTDkMrnvv6glG^iFmJycS{7#R&(CvWZgc znx|T1M}#M}M_hrvT-6CQG)XW&);~yW1z4USte03%J5O!`y!G+1i|`4ix;kLG{kyF> zH-`l;7r6Ra?0TL%02DedzFDqx3mcCq-B(M_Zfel;g=M;-R9I5Ro{_Kg zs9a>C{~k!-)=eJpEXGQo{tqDbjVflpmaNJw9O@z`6h7{XdsUb5M~z1yIIn~$+3Y}n zjw;ECwef?HGO@WZk#>Dr>?@_H$Ad0EWo@+8AQ2E{j;& z$-`iFUcdqApSBwa;{l?hE?V)5}(CS8eKi=LXLE`TZ5 zA_80aX;4X{J*MfkL^D)QHrQWz)Mu@2(fNkhlf34vd^K_L#&ShkJaWO?YVUgrn+?Rf zE~>OR!>XuffLV-*#8O}dq8>h460tgIEqT!y+30%zE!NY7B9nn;@WbxdbRJyNDL zCAc9kTic43uYiHzy!5`1wvEfytsh0ad->*7RV+&ttBMPGj4SsX4Jap)v~JvOs$J=Z zl@GAHhY4Niw?V45Lp5n=^X+YOY5D$0en^O2D<(@6KiJ2d@_TVi5K{bJUr4+grE2}- zrBboEl1t{660f2;!MW{#myvFK;h)PC8?3`kz8OGAzTQttzeU7&^{mrTYenpKT+|PF z=Um#O;F-4_F-jM2aL$zhI}aNIIcuwEi6%%P*`lAqqqiL$i z<{RGV^Y>Ms=!N?;I-MU?T{s0bvYy^4wJ8xXme1-DB6Vryw23D^YI;k$d+I-VZ+#aq zfKXUPs9wDCMzjz9Y0wxEwkj#e;)DwW^0JN%`@4tYoFdn2-HzD(T=vO-jT=*0e)fX= z%-~%aeszRZqYVa9Z+_(pY-LD1vXwLtrtuUmT5-yaF&>~35~hxy)U!%0rZp?s-9pP{ z3?1{2jQ3)Ok1B;j?{+3oL-t=Ko;4eG^N&e08Y;H``L)-XX<{2YLtIOS&Q$t|oX$7s z>O!%dmFiQvgl8)0e8|JR=nL*CEhtM{&r3l{G!bI#)O9sp~b$Hw99G#}w9y z%I^!%9srTj1AN{EG%KYe=A-h-Hw#6)7DF!hxWyFVYR6B(a>?#S2o9VUZ9sm!BlmN@G0Z;%lG+T?=kB8Y&T8Y(^9e5ne8V2B zdyEI)ue(;rXCA?ItqNz!X#Eyc0a=>l7wxJJi<3t^EeZu^=7$|ieEb)W5Me_B_{5-0 zN{50}VldmHiYY?n1TXTO!OJX+V-@Ud}Ia{d6&$!rAE$l%o)PzcGnpRnYhZa>`DXqJ~*92IZ7MX@< zFu4-T03j?U+~z5YLG&ck+{U=)8H*${I=cbeDbM1f^conc%(F*_;WAb>=E*XQEU(dT zUgGd{3rW=yu+iDKC4V^C@NSQ&=B74>%p5`9L^cEp$vTfMXB8$XCkFRw>djWn#gS$U zhl}Cv{KvpuqN5_y=c+30V2pQ8WXT>pYbB8Uo@EYGLxpt9RJo>sou-;6@-!`6L5~o{ z4#{Vu!Jvrx2H}=v-ijZ3PhrJHmQ~mQM>2e=)03#M`&JVXI=vG6@0J@4dm1+!_{scV zk@si`AODz}>>^Qi*d^#xVtBz_raPeTwEG?cBG$2fiaquB5~TOVycMcya=b`oq)y!9 zYom6~BW#V7bGH2Pe>;IX2tk{jmu=+%qIQnixWKrXiAF>t91sZ4b%dHX=bAaS$u>&U zS8j2n^wjvAn{<}}Swk}9PpFoQ(3pn1*Zt0!dmC2IEocFHiU$d4*K`iUn`(GVJy}$ zYG;(DFR&;I-sB}r*8l*qiVCWA8D^FOA<D7#!NN9 zG2T)qIATOk69ZT0YI6&m8Zk^WGg(h!;dqhP!iQV0?QQZxKTs8A;7*)D8zvR7q^8I+ zVw(kIxSKCVyeLa2tP=5>`fmb-hMA-MorHHi>EM_%qrQFL#-~RPfkPVqGPn=|=M{qK zh8LxD14Z__caO!S=Lg*j8(v3E4e|if0Ev63#nWD4K9_jMFUU1U&Ax>&LWuv1K*)@+ z25?@ZGRj={b0|#a@J05uTDg^zsv@7qXbyA@^qZ2orz?-e$NsWU#xhhfz^ol-*QhE8 z=aV5@IrNJ6UsWUxn85#p6ClkQ+qZliZ6)_v^mbOKg}#ku-~JHBh1DR7Z3q~miqdU? z{Rp7@#T_*T>tTV&vY3!V^et)BagB9KOZ9H)Y&FIf#lmDEVatbG4bw^t9GEUVqDP$r ztgL$YxL-uJ>@+-K^+$zi0yQZ_ta^EA`m#MyZ>edPZGXCP5aQx`es$&=PeU_fFAB!L z7qbrio*mM7Q@}>UtA!e3b0rjhq7gy6YuWX`^;`wZL>3*Vu0 zraXoBURXeC#5Fn{G)q(gr}=z9sC=0+{wHK8nDg=Rnlp;}`BNU(dHX-HrsoRreEY(< ze$dkGqKMfKduo8ZB(maX?U30U*c>lqR`_2uZ>LT64&(vEqRqD6b5Bu}se^oF4GNCR zUHDz}SrWHssiQYn0|%tuBObaB+%(#462xYO_R~ zcj@1o79HU_09F|X+^)- zn?1||GJ>elClnUD%)*U|hWgn**&2G3vE_sd=)JfT>bF&SHE5f|?0)J)>jWI!_$Efk znSfeYFK9b3_|d^bb@Cljey^r4-*hjnDBVPsbU8o8lf5mk(R3|2`*OAqwW%iESR9wZ z0ZXnm?XV?Ld1VY<8hLbLrf_5T5z`OjKBBGuLP1V7e8;SETjZj>odk59f>;%xp*8hl)#4whEo~DmE!D7?+7p^gb(%~47GX^~bPc^WDg7TDGXe{^*vD2~g`Rl(OxS)( zOEwc`tvs0|@SIV$FBnjo!If+3trbx3|6oZVJhKs;j=_SGPKOC31_oG;f$569DUM+M zW1)K@gXpZ18){OV<_%#4Z9EDG8V;M5z6mHzA+usJi$W7>fOjO&<{D%s-TyRyBl^qD zse;Mr?ByasJlw5R6)a3;ybblg};w0JExdklNa^dcbi~WBn@)PV-YQ>|U z4@eI1yFR_8Q<}kWSAJ17n znWNVt1rf|WJBuWz;xQsss8VWrMHsg6X(ga(A7+l1yDc$xKl`LEK`+D-XL^N}B|{Qo zW65H>>gO;)I4RS^R#n!Y$8I7(txRPDGp6=QRufuWJp>%1Zs+@+OHh3J*#X!Gsfw}C zZ^y+lt3azIQlm0EMj`xnnP~RQ{wR5ryz&t3Hr@U}lAuwI9&YRqu_b-s{4I^qH{P-( z#`B$Q7=mkX$8M&j?(tlEpbBpJ@L-#ArI$LRY-?~mMTFsDzooyapW0wC!@ikjW+|2) zH=S>!i3RvSKjF>WQ0Cl-;XS3S+^-RqY6paub#W*sI}&g;qSkO;_GuYX_h(KA4Rb_w z8RHZiSESp8Q+*W}NdEP!3VM&_&B;$mgOjj<>xCz*L5=$;@%Q(AHHLLFH9KOT+hPC- z!AD>c%LrtQW=B{i4t+kPDpczm3yrl!*J_a6JKu6ZSDLAs)b-s=FVO*@-GIdjR`%a% z>DL2-MZJS@wNX`DOA4p|J2+(CM#A%Ng4|M`?T?p%e`TEvB{4F*!*hyL41(52N@~El zE>PaS1(NULKGrek((1}SWqhg`;y@J{RVIFYg{amxuJq$Vj$bbM4wiz7(dP_gEnH>8 zak~05t_2-^nBxtDqK0Y~E}Fp^b0~JD1qs<+srw&#z3*1bO5oFdk%i1!;3+1bR8noV zzL!REEmIVY7eY~&vJJ+#a;2C$>wNoMgiXXGk!QaL-noz)ltwu1GqReq6j2VN>Y0%< zG^h>qP8BH1`6!f{B{CMZu%>_E+<-226XrgC&`Za@3i4~1l;$v#{s;g1ZjE2Z>6YPt__&E0FUC`uWD^SR}`}94Lp?TG2J+@!DOP z$+qS|O6ErLc;~uERR#(4eHIvU_p>qaA0oeP6wg_^60}^o;BZ<9q|5!*l#y^{wVU)6 z`n{t&ivIX@oNq8+k;8LZr%7T$z-s?{CiZ+?`rwx6clM@GJESFhgce04mTPb*+Vcvt zFRv6xwuBk?*F${M?Mt_(&JNPCasvCWIde9x_qIU(vEq-}&Sxxu*wUZ?zLH)z zqoQzrQw#@z5Rsal77e{>d0PB86Su*>Wm{G=F2F+rcua2MFQf6eb!*hPVRx;U6qcHP zVW1sG``6w2s1*2-rH{wPcA_+cAT`u1w2EtyEV{@T>%*R+G;wuE??#hIzpxc)Ors}_ z$qt9xOfTy^7ZjUn8(E&Q?T242kUX>`qm8KKcup@@_i&9^E#dcvcppk;gAjWS!M z9O|`6@n5l7J>Hqb(dmCVtWIpziE7fE4G_F1!C zVGs@+UkOR)ki*TQ*k-@GMyous5Qd-*>_dXj43QmMp(JDg?xej@#R+@DYfnuqWE*Sy zELM8e;IFP3mp&fHWnEvC-lz$j%Q-5u{+B#iMs9*=d0KvE?hvaz7Op2=g6zJaO8FQ+ zuI-eJ>mp5IucNK+Z+7#FT|&{WoT={Ea}vr#^#O4KjRAhqupHA!gOoqB$;n1R*W>1z z7Y+w|-?N@!e}poa;%ZU7vQg8VUM?;A+NicxjNwddvYwQ=?qRGF=!(rf1{XpeAq`@q zHRRf`5o#imv(5hbIWAD^6U2%rZ8O6+!@7P*=&&S$E3P41r4g=i>D87nLx7^yTJjrp zNgj2^4HQZn3Y22lnym$#RAtI!_X_rzFY4O3aA)Y1$OZ;qyW_UQQnqW$lQ=A`4@1K+zh8!)t@X%7iH&`{YVD zDFi1;%t}{N3l(2+(@kNJk32oOAMT6Ge#8ltKK=2(&n{sjLUr`+x7cl3cuJz(`!e8& z;^O${y$vmjPwaWwY?9NDE+x#2wDiv60G$Ha&Oqh!8+ZjRdYTMPODUR2ndY}gv}-*G zoQdFC%SzrWG0FzU_;Vx{&I9;FAD@iD{o2DA2k>jfwrLhAD#V2wIG4mHU7OA52P4IL zTegQqSBz9>+B$6i0u-NU*w4=IliPht%ynRMmQ3{ zvAuErRFUL7b!w5AAs9hx2kUT+&9fPV(b|0fN|bFzet7eOYLkOTsx(5C0zLQqIchI` zBdc9e;)Stz4~Cv1ZUPM}b)M+g^qIhdJT7a>qM-NK7b3HDVRMGirEtd|ahw;}{xsTK z4kTGclF4@^;n&d(d=>d&_?c$>sQadJD?_67v(xyT=BYbg5ALEP*du$J0H^2F>x_TH ztlH_cFPPyDn-BVD8}>$KKFT3x-$rJJQkdzZ-?I`j5+#<51+FA-4%B8 z5|PAM6+WsGBGR#e+Z3ZyBP`2h-$M+Hz=Yc=q&`8jPRSciNJ8iTv@4KL@3o2AeZp17 z=j{1+iPG^scuDMB(m2ia8J=8Y&zp9c9N}pLYA7S3D!{#5i&~M%l|B0y) zG_CU@jeS2blH3D|9!%X~Fzn_8vFLDjVR(JZ*%3?R?mFL_D$pZTyyyKPCCp1*Xlh9^ ztONQI!#&&_!s5fiMC_p$mHP*%g#YSfOMi8gyky7JcnqI_mf>^qBiF)VQKCIi9^zax z#0YUswkiv1iu}|paj~J&Pwvfb7>I~}@1H%_9=BVUw(3G!j%l~cQk0bara(~oj#G@L zB@_fvpP(7hC2wl6*ENgx{-pH>;#DSP)|yNdP|+CbYpyU`j5Km+RYiv4gxTJ;88?< zzfQokX*`h=_f*pT->aJB5x&~WM2VtKI)zfIr!Em?>TxH!+D9cmhFM)4!yPKwbMbB{ zQ;}|&ozm}fyhxe_9inGpiRj$6v~cRCpab%;s=zD`sc+KjNwT%w9$w8gOnJ0zjZ|f1 zG5ew#Uz~`IvIl8s)zpvEUfiw6CKDQXbGWxlFNKtH5K|ef{r_A5bh7++?C7Jb&mc8j zFR5X%UGJM@cFXApdZv>Sgt0E-Hsy3OtaISe?w8!0iFJ!^=BM+LmOviCawJQS-3m55; zLtQYA$J9pN&eYmNWehmb#WVsV(Ck=Z^U-kMsuSP*wwL@sCAYp(#L~iqV75bt*3CnO|i{6b#RU!tKhHeBmT(rWH zy>$JRd$>v79$voK4a^=bPKyn0x3#m~av2+r0h2fS@=niATQ?9~E%x-g&Ah`Zma3~4 zetw@Wr3(Jacw!w2_Kh>Tr!(>uF{~QNk7g?hGmpFbIARMh#}62-G^CQ!XCk#S3RWh_ z`({)i<|LZbs>##8Cj0yZ-6`^pBeJmW&3Nfe%`8V`60o1^*a0b-AMvrxc!X9yFTQAR z-qD08FuNvA*h;E1K8nbIJY&;Dj&zsBE-m&qedAr0B}emxDbdoX_^J}ppna!@9_iqK z>GJ+4dOQ)tO64r`@@qj&p*4x3DcQG4s^Yh$>UMl><^3CU+EgEc?afUT$KM?CBC)~$ zy>u`UmKXlsv4&_d_IX@nXv@DmJm8+~DQnvh5^Od|ZM`OGJq_Phj2q7z)Be_QwmYy2 znB0inHG1GI(Jzvf${Hdt;VK&4%xLcFgibwAV?5zJEstZFTe?Q6HGx*%!snEmMF+FR zh>-`3v|P$e1ap~XvX1Q26Q_Z(5|Iv=?O&`yZ*1qmiIfDXuZf^s@7M^{+_gd;cgQ05 z%y^}ISuW_xHghgY{4|_@y}m8UPf%DLv#t8X_QG&1grL69KiLL{ZN;}BopXxFClOEh znuq#(N=N3pCB+sdzuTFv@6d-y>h~ls{vTCu9TnC8g^j8xN-Nz+cjr(et#pT!LnGZG zh)N8NbPXU9BS<3%h#(BzT_P|;4Ba5$ICGERd*Ai`?jIZ$3ucCOKKtzF+0QPd?=0i1 zX@q+z$1?s{l(dHitXx7ZbTzmq&bC{tHJxwHHu^AnSBwCKrr@SehLt9 zS#QhoO_1;YS4dbumv(LzX| zfjULN`PpM>=+5lZ#I8}{gsqymoH#HtwJwkz6qz)T{aMsxx*r1b7)ev@R?~1nni;6y^YHmY#9Br7 zf?FdvitNM_o5x~LK^^IXJmQbk$G*-ZsEb z2Y%$SQcgFHL{l{tl1-d|}yNtCx_y6Yb#^#1D`C(Ji z%;`^z_JS5ua#sU|sER32hrknG%L^&|F0Ts4GkB^%N0@KyW;?1*&n8wKOM)aYVN!k{ zA8Y)SzgYCt-64uqMA>NJu-Ra^;%TUyIs=oo{#f%>M}oHMrN;C7cc|r+CJL{ST4O20e%`r=*v@?82LoBSthQ?ylx*-XmpY zE?BPLr()h2X5Lg9yiPo0#HWzoa+DFN^F5VX&hvqyU0&kj`N2e;{Xs2q=6X=d;g2E4 zN)!yd=x5E-T|SC5yfGDCYYum_zf6)RH7fN*V*Bbies;q_12pSzkJdfTCq}|bUol#i z_j@IXM|N%qf3$5avbBf(QJ#Gr6T0g{=(ZAiYApKntsy*D96xO3@t;y34AYhrRQqlj>k>EhK7|qT z9-VG4L2ro1y7tt}!1jTDC9Qp)V&RMTk|!Wgd9VoMhpEbN`I>53{K@hx&c3pkThGs~TaQ#Bm8xm9ZSVn`> z4b)Gxy*?hy%rxm@*(-2gi6Na>Tw8k2ZZRSu`}CDONQMFGc?o12Ox)#A$F$copF zF#(JyX3q`kxrS&xU&|34&vn{Yu3O#uJw^6-xB;g2w-H-+R`dkfPa3s&|1N92t@eo$ zQQ-%|rzokIg&!vFC^y(gC<__QJBf@}QEbouGgES0LZacg%m4TV4s5~((?SW1>C4?N z9mI@|Xp zajv`9e6{!bLlT`{NAktwI1>FjH()4enDQ3?lmw|YobzF+-F((D8oi&w?^VqIaURwAqg!i|; zk_LxPDPg8R9gHyMbk#%oeD%ujSayY?`eXXZOdkkA&%D91sNq%B&KWttGiOsgLcy-H)lF;t!Ow^>$;bAGla+OB)GNUE}acVCl{hE^QV z+GE5lRmMd}pWd|?7k{P}`&2VG8LLZ!>+$kV^J<7>H)w*RDSmOV_V3uUCf1uy(u26* zpl&zRtT7a6eBD4892d|PE+mGgUZh5{f7?maR0z+RuZzB|dnV+G6r0mm5j6>e?%Cn2 z*H{*mnMkw^wL|>HrTflpY+-kaC!YZGGpW9w_(a*yE7^2MI12vZK|g5;BJqn2_|H*9 z;@~`^|MwnK_2JYDGv-_Rc~bPpspn2^uk?ltJT8haleKep{}!)4r@S9YMl~$TJG)$6U$rJbi?F z;-R_h@8*ZA#t#&qe_9g{OQ;4W7a(9;K7prBQlkB@$#>U#^`Q2~L6j2})$S3*UZVy* za}Vf1!~GV$f+tv6mo2fa*7RTUUAD)efm5o|UwxC=c0)uv5t)g7JS%j`Q<@$;ubsN{ z9_s~}Co-Y5U~30f{YDUa$zfKJ5$uASp${`8vK!Sd6dLB%3QJFdao=mRfIv2 zL2u1p084f%Mjgx^r1lG@%eK<>7?&%BjahX7*CvuS&(Y7s|*pNP}-ZiOE_Eh)O6dMQL>IaPxEaebFe@T_Q zl9FKgRN0^5Q0P;G4e5q2(%`Vww~LzbDklRw41SrqTV%Zw)GUwm7U| zn~IA41z|b0$I`HmQFl7YgQ%N{Fx<88^|`=mANI54v65Pd>f7$AgksuOefwoF$&r#VbPDx*&TokG_W` zXx_LK%WD>4C-_POJY;PyIYNZcJRUQuH9f}u)4r3-ypFMP$Af%?*0@(PLuLDD(!7>r z!%I=}he194SrenXF07KhoSP;5(t50zi>dZFO)eP?mIGpuaoM>#U`yNE{_f06VB&y> zO^;-IDrabkH_H}rl8^lRX5P;O(;5`w{^{sN3}GkYu0{@#*_wxds5S{am^vh@TjGO6 zG99y%1pfYM{qEFmqr9oIr1(gvtmemevWjEUizB1O30~!FA20A#_%dV*BpcHoJzvyg z2v@o$HapSU|0o~$;|uPJsd=(H7Ovw?!;{przqdFt-k3}DgvI006fj2Hfhl}MUr(VH zC1j%`ihIIa^v@yV$VPD>r}h31|HCmL7_`YjNa)n3v}s01e%!zXV{!D-M53PRShxPC zC#O}8QkcrT#eP3J6qlkJ8FU*0+vTw{{5=2cxrK)C#d3eHkN-mI^d(fi3%Tq_aUy+!L>^0p;9a>kd+%utI8{;ql$*btRZOWHIMY~I(b zKQ6x=>tqY+uW)8!S%0~rOJ)ywD5uHKG~$;Q!Us~m*Wca7&+_OEG$hfZ$|d{1h~qhodsf;pV~h7&p;FLo47}PWbBu zW#Q?z=-Y>DM~mannxRYKJR@6UzJdje3Fo=4&3>YrjP~5$WXA3qWf+Y35BQUcQRLDD zjMV4JW+``eQjSZLp!wn8P={7?1PLTMzioVOa^L|d*=V%>Z%TmVIB08~ny`MsDThc6 zcN;5GcpQ#FHaux*cu-!mrLF(RCCYQA@6;v!auKf>C5)sj6G%(>av-5n501B=Nkz{t z>wr3c?16gdw?It%r7?r=7vP>v+#z~7>sWeQw0}>?2D_ny#sLbW)P4=^~}LK57GJm0p}(L}XNLX3&$}0>gFlBpLrLx?)+QwEu^OIPeBIJk(?r zjEhTFRYT2FkZ~M7#e~~Mpd9R8*@+tD(P}1g#gjWz%yY?7^plsxS=q_fEBN?)l=l&+ z7q9=k7Hs$NMdgR84=pd+K2*MFS$ol?tz@s{s$|_|)wTPs?OoZst#==Rt5ug_m*LxY zr|+=utdw+=Y98C_TTSTe8@{I$prj<+C8Q@(C-lA7PgF@HMdeR(P9;E1Of^GQ#V2Dh z(Ljk2-YJu+f6t?%&BaGSMG(hPpTWc7L{Szu)l;GB^^wgW<5QUoAh;g{;ceEktU5e2Yu_?$m-+0=xyuCLlA+oS zF-7v~w%gCmX{haWHnI!UGy2#pN@J74lK))a>lot>Vb~_guF;&E80Mi6wK1iTGZwtx zZQT+b9u|9HMc3@;>T45zmorP%v8W_NbT`=TYR0Bt4z;A2^YLw9vKU=lctyUi;=r?S z0n$FKMTCC!xxq38RxFu^m@qH>p@*i^HJnP5MzP4#*@6UFiX}mE7^ec53_#YoUu&g2bu9kd3+>mKP9JO1<{iMR-ZRCj9c<`6mG?&#_lT;Dq zpu1y&VpNijboQ(T7QMR<)}A7S3sHXiFX9Q9%jLqtrW@auZ4U*A4@pRBM=_bdyeHXX z&JkX^=#G%+D}AvvvNZVk72ONDug6%Po#s>On00X)cJ)^ryRCTxZ~xd09FL21WxJrc z2w|mBx!b9mi%;&uEmXMCpNNjCm4>cm%_f-w?;hM%xA=0;Z!!Xw?2BPMvWv40148-~ z@))+tb=C8+a^93is61!;yZnW23!$}8Y_gi^Qag5_t)PRPAX z`Jtw+h+Xvie?FGIH-fI|ORw8s@L3U%znsj&Jh`@g-iJ%O07Zf*!jH8G(w17gNPE#Z%9`b%S(Wb!`tBE z`K0Qz*=kB98&;cDBi%Wwyr-|e$^#9~I@%NJM&?#!nQj5{s4prrwDgxl4?{L`$xbu^ zC=+IhePonxvpDK(c*1b+LZ$jepNJ|L9|zPxV&z&zO<(Y?7ssxS%NIZCGKCJpLV4=(sOJpt^v{#&rEf(9{B~kcb{&vzl3W)X+Q3xV_vDID*sM9 z?-9k!DLqy$QWQDg6OmFpC~*;*_VLXhdkpP3isg!jA}sRtVQC!ABt5W^W%s9rX>Z|_ zst~h5s6Z%_^YyK1D{5zE_TeiQ0&D_`_(Q7QWrHMn6SyN0r&BNYPu#~nJt-=DjIF)a z)AqB_4I#$}yJ{J8siz&K;5KYeI?sP$&>du0qBPhp=QBH2XD(-<$)}EEY?*^%Sc+>{ z8SEuTXvJ7K3x+$!_i&?c`S(D?M;_;h|N9)%ZANTGSllYLdy@;atVwYLgDU0mj2oia zF$6_xiftkBHq7YyY96F133+Sp*hhzOEzXF1J?Fz`tn`=o zjKg-Fc>W|z7wD|$yI4lpc&2>1WIFd2W9;9uvli?VeMVMRjIZU)W83>TEW@lJeLe9$ z?yqq}`n?!ecq(1T$l0gj7`m|&*}Rq{pPPT0Ohm?&?f3l$mC~DFgF+*~6}R*GM4(FI z%(w!%bUFIS_p%OfG#J~{q835X!fm}o06VXH4DA9w3e{(Pdb*Kzv=y|oa?II&O^7r47tHqtFf*Q4kC^+Nld-UzN46>h+w{lX%#i@e6$1OV0 z;aZQPaXp7UPseiq*@7JvXB>!hL+oG9{$EH^6!&+v)8rP%qpL6)mG-RUPrTD=r#vhu z<`}!m3VFU>R#I=+BSkH$@gz2PUb|!Z9D4<5NIZF9qo7rKay>iq=GKJGNE-TqM#-5; zpSmn64?Zx7DDhW4dEPDGI5MeD_T3-K>ZYjPMcU(T!EPy|Ce1VhU9#su36?KvQIN=w zuw@_bcguU7I<`PUY8buct~q z4m9prt)$oEe-GC22- zIDt|2_bc)Q+b?3vTIbEtyR!$cN{ddq+_hInZr7kP6MaaB&HE7UoBl!&p#xvHdn1q~ z^Q_*l{EiAuOXYHsDrU!;ihW3V!4`S$${?TnL3NR>_XPzOfPCb@L0~l#Oim$!>A;?4UE9<`%9wk20+zA3V^2kE1xGA`&L0|%EcQ0# zfpEa+mz2$Nh&|j1^AQd?q}IrcI@vUwzMUejn4NkJJThqtT;0h&BVJ5WTzY?y2VPy% zM>Z7kiCz$EdC_Ttv&7&Qu8UsmD3iP)PRT)1-?WPL%NEH0=)Y!g+8)oWO-m`|N1HaW z95~Z%ZYGL%G43r4OEph+8In4Cs(m*w>t9N$PZwOwm?umOeW6gGd70jIaQ9$&Tt&c{ zBE>hbx!B%aNAyqO%*=Rs>ADoX)em-tVCY2_0Oucr?qVXfCb*4CQcW`8;I``o#TKlVgnvaqC zWB9%!fxq?Lk;BsJpI|`*BZ?TGqUpJnE&5Dw^tOw_C~U;BpFR?d1`(INapG0L@GB01 zFrC`IHhE)n1?PBSS!kb^Y4gv(_8|td-+ZQXO&1D8Il0k~2A~tpT%uDa6?2Smk!O3u$H8I#BW6?qF0Ex-+X8cga_4Z6= zti|EvSVICuOM!+A_Yud|35%(T`a16!%g3o$?sc$09QOv8daH8;4Nk+IMq!|&m(iQO zL#Ka_ZC^jYY9-)I|9Z{hsByTv7~$nx18QZ89U~lOh6}ycVE{TrqgSWpCB#Houjuz= z!~;(7=#=YIiiwwKU%cAVoyXV1109FPp0rQxDpWcy_e(B!h37^-)OJAlGq98=_=)!v z=YOv%9^$Iy|J~-aZRe2}Hv9a~%80w%56@(8sdT#0zb5#>fkOrJTN2K)1wn9`A9Ag^ z(mr&*ol^W|yM#!&?cptFJqo@->?y znEMwbJ!S6eeB~jWDZY{_?)J$S0(N|y*VCW^fhxN+Ygo_c*63>YVP12F&%xpGFLs|D zQeXOk;iAK?@+p57$DT89(!p|so|8}mOc;y+@g0nC4)182VD6coI&pyz;BzWZbP?_g-cAu=7q5nl8$Gf25{d#QBZ z-zNc{!_r4L)_#w|k@@Zf&N279S0*Tkj#+dt&~ONkgxzf{`?YW%qIIMXc)hr)JS#30 z15FlDHPhcZvrR^V8F>aHauPQ>!-_E3M^K!drR&LRC9e8r6@}{`z$J4}+>)=subCcx zr|0zkC%QH1TLS}g)t$)yQw#9=9qy|QXJzgCpE+C4bw~bwJYf8g#4a!v=*5V^mGSG8W1I9$^!@r}+d4>zb(n0`W%AfCc525-au<+gYxy!t|t zA2i@Dbe7~Nm4CKaJN;)4*b31-@5?2VopwxLdz1F*_lMW4NuNpUqf&{J6`#=jIxiDH z6kxB|E*cp~S^bcrvOM-k2>CrMMldWZ`{Y2LfEL1T$t!>?ZGSNDV?^jSSI>!#JFt++ z+DL5RXVI!Q-5Cj$7-R6w|J((?rayY-+Mf{YBZLR*f95|q$XN8R6p|F1Wf>eGdvsY& zW2vCaq(h!{rk}OGlzZjurzq29dWg=JiQ5b2g@!~KP}j#ax$1mNBngY5IeAHa@>slT zuwuD5s#o2*`>dN3=^nXv0IEG%oc@5)=z;2`nXWp~hN+GroXjW%n^7Om0z zQ+G&>6U0VTVW5ugu^XKYJo2=FqAWtADMPu1`Xo5$FGMwC8^#P+PPU5pKEi!Fg$s))LEfE<`U@c$C$=T9PEoY=^0F>>mJU?U74h?u zvV6p04>ag&>K%nY{xN~be2@vqrgpAJ?~hH+I>aDmhs_dl*Jrfze(fchao>d+$-(_@SK>8DC&jU0 zUptvR3ug1QkoB&>tWCcwT0e~3;g(W)OO#v-^y?(ThHJ5#O-R#Z8X4xZI{thN`5hBc zrQ>MG9!{+5q$hj&8mdgDkpqcUy7al-ITlDNK6Z;~XTb8b9X|J`_C+}U-9RIsdq*3B zRU6kkz0Ijiz+*9nZ5r7X~0GpWohXNA)o`wHP~hxe0m%Ko{(kSDab1yTpNI=UNSNBw4qUcyw%W6nq715SvI9pu)VRmh_6ih(HusD3!Zr5+rXH&Lg7(p-c z3t^41FDED*4dtTKa}CqrbK2EUVP48VU-tuvRF-l43`tyF`?`>hSF7%MyJn3;cWn7R zyA^`tYkkJ|_H48dEBiIcw^N$W&aoH9{!teAr||j8f=<+Q`x|sastIhM@=H_Y*X>=a z;v3JkT-cAMoh)yzaWuqpgD`8eb=W_hviwrsCYva`$?m)EU5wk|@bykBhSx7lu*rf6 z_Pzn$yV(ERmn1SQ8fwu`0?X|qWulw@m3hyHM>J>b*`ZZ@7Jh5W?Ug>RLZDGKbgnhK zRf2bKAg?8{nh|9s)fk^JE$b1J`QI6Tx=PvT-2Nnx%!M6JKL)45^y;CVYmxGK`F{&S z__+LgCatQIXEc+2$-V*mP8A3CKaE6LpEzKkujkY#aG8oXpYL4>>-9xo7OsH9B%@-` zqQF7gUKsyd6TY-sO=^vi0CFn7fm{*xlM+qw=1AA-*hH(`}d%_ zZKGS=*J-YJbvGZAHRfM3R-0Dv)|w5xM7(utJ^AEU?RRyH`e{d^4%!DTQR0v+bC7u zFs|4mg$323RAsk^AOH3fPpyalV`WLg%6z?9j{W)~E|xQ22eI@=^&UBQ(Ya9%m* zh2=nC4H_}hH<=o4$#cz{9Ad;HThSeqvq{*8Kx8s$EArxIMKS%|7#bEwJ}cWDf^UfU z`Znxl1J#UbusH7Og4+}w7ydyE0z)(XEmGFI2Y zeuDFp2#ER=b&yHluUW5DkHx4_2P-Ru{LksRd!IL%150mx675yWx%;ABmg1LYp6qP=MZ6&KMwpYpJY)8mSVvEmmCom)q%-lK?L(yqCF*(wGyLC; zdH1is%8w8y$P^`nsBgKPqgTB3s6Vi~;+uTNl9dr0D$e=Enplm=?W`H9i+`+b9uAlP zTB~pXwMDFMTzEe!f+uN+y>;aIGxc$=I;KdEAvljY(4 z57OgQ_#yo8GdcIImt#)glEgapO(V-Gy*7M%5j|CUUXjXS$7f@1O-6!4(J#k1p(S6;Pg1}ii}3>ltmVyk6FWzm0hbtrSpoj`|xpc zUjpgGuaO8BX9IKUHWh*d_GN`Q!eO6oiu zd3ro~9CsW)p+-Of$y4FHCVQ2jhV%xkV1j}a`Uqc{>~lBvDOSaDn@4si{lu2&LqhW@ z;5pf*`wO*p)D0LugR^0cN0Nv+dyotj|dp$kI^i$9pT#GvisU$nGEJ(`Bw;X$X?%!6_6bc`dbZ&yN5e*wF`2`+>l9#5 zT@H%T6MgHeXtuCMBxl9bT-Qpwrh>)0_hoX4T#oMuy-@fmGXUE0UM{qJXNu$-0_ARIdPIx9 zz0b9;Jcx=+bqi;Exxh%of-z-i0$#BKjGik_#H270S694XRCou6EL8u`B>)#7 zyKvH3@C(|(2kNlkmj?s4D1ns2jN4l0ZNovFXi+_7)br_Vxz zMK-US96F@Sc$r*tmkS?Je{Wsz1~as#HI0a=J8vxt4!<*59XfYtwq_Y_jpl4uoPU@t z3CfuD;Ttv@=!8v!MsAZjvS{D>|DRDi=fJd*%YLR3^qL_K!#@-qL z2_!U6ZLhtzc?qYHL*8;JF~i*~G%UQYrC_7RnC&a!k2$=d2?xCwlRXiRQi;7m*S2F1 zST@B|j@H%lp0N1U;(p;wSN|f?Vr>jNC1dck8x;i-0Gh{^+@UNk(XGVQ-MqV9^}=aP z)lr7{9;7*T;?urRU_G~howXxZa(_g@k!2dd_tt|kG{1l#v4ZcKjH!2VB-%`zR*1-q z#%<9uG4mP&byZifoK$&L&jtjL%jU4>h3|2I>!A6X@t;QUA4M!dcBa>2RO#QSCyVe= zpS`%5nNv4l|1#Ybay>VdHAx)saLHkpVpGVYS?Pp4nT5Yqo;+9NYE9ilL$n#Wv872MNBf%`CqN4P9Han4PL&-}}t@ zuyJp+ROZ{3rWzH3F2!KYRz|$zEJ#85AI`K+M3Gg4SYO_7#%F_J!hZ-t#YYc`Fr2lU z3GG?7Tk_0EPv*_Vu)^0hLpIHdc(nFRMe8J1eTrPy((SC=Iq5rBa#?e&OgkR(FtgX* zgr9@yyf*LDtO?wh56iHi9IX&?pdv{|2;Kc_8M4zOKZYY_tawBZ+vUS5yO2=Hb9j(f zc-2(8TtU;|;m_7M=oJmDPpL0w>+!Ed3CG)G8~Y8Ub(VeA?YWr(o6olvGQXwB`FVL+ zWbJRlG&2c!o6eT*YJtGg^k~E5^Q-7%+OL~)ssLQa<0gi&Vnw*)Y)3^LG8N^?oV3xY ziA@M3?LWC9!*R8<0tiEqDJqKyE|6iMhsbEpe_aE_JiauXx0*~s$Lab8_*_5wq>e{B z`YSY_k1RUkk#54#ChitufBm~V;dkF_ZtCUh+}~=`wmLCq-HoVE%rz4XT;}v+WC`6? zjzazt0hCEY_L)CvKlww)Q2Mk42ckuQ0U_Q3rVQ8S)Y)H=l>k<3@dgL{X_zPmLhEcTlS%*>HKAnL!Aw&J{kCII@cEh$oL{Rc-PsqJ zDB8mdlKTw4MBiDo8MAv2y}Gly_ULtz(ZV=~+;qXq7?oD+Y^s7!gq^`@Jjv^H&gFa( z&->idYLORV(8#Lcjz;$ITYNWu=p+0&A8G!a4gHt4vS%DM1$cD3qJu93&+;*#qQT)K zSs|x;Gt)>COuJS?U72%>mKcF!oQZT_FrgX_cWG9r_N8RiBNo@ z*9Bk5!70*p?Srxh_U=wGUOsomN2;4}1Hg(TQ2RU5m4V@0M=flqJuj}dKigz%ZI?7y zxTI>$+N%Fi&3aM2+}^y>-0>|MkrC~&i2k!FpvSO_CL~Hr2DaX=wj-i1M|D0iY)v

    {v} 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

    eR<^&V*PITaFK}q> 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%0DroHBwPI&Us>g=KKYBfsLUX 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

    VeV7aC3<5ViH&Ac&%L@Yb;YNu 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

    Bc*yO*A+xV})_0IeD>*3*SCszpW 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

    JpXg*p5&Hhv~7bkDf7o^CgfuBsuoufc18}`0m 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⪻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%0A6iT>=i)wVHc;&Y(S{`b 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

    6t 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%0D+! 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 z )x8z$+7kCcU@J}Pg;$;@BsAK6nJ1m6+Va9~e(IN$AQ_H>s0wz5ZDk6WTFCHyV z_+4!p#l^UmLND2~)KycgvL!s@%4Ij4dhQsH3?YGIOm4&9W z6Mosxa`3cJq1X;^Hu(g-PWUjR4I#zmym&5)Y-mTOCSWh@PjQK#Cze~#(}|#)(I5rV z*NPI%4;iDR;?Xy*jxKy?-1WXy6rFg%tOfhyQ??s9?ivg*k~(PdmK;Gy643axK_BGf zW*KbKYFCS_*}k=%?ZPdXy_~d{u}M+mSVhx@D8xTDHOoQAy_m z-AHnJDmRJ2x7nyFRBuY--|NmgZ`Gf`M#rO$H3IXwo$h*>>CyQyN44nxW);_KQGOCh zvj3K?;BFEA7iZSDgD{GfcW3+_+F|i0j?mGh%Dyu@0m8^jDZ`ba6622$h<3gI!_)cA zv6GhAyKy!QOdiU-1ZH6{Kn@X6tQSLFx7_IR)n7Q`?5}-jqW(Ii$J&LA6IU4PQ!9`1 zcRX8_sE`(!I_#t&4W-iN&);3@!rc1{)iMpA&z5QrRK5I+uBCXYm{D;OVAOou$Cm?$ zSpKpI{J}z`@uk$X%&IuD`!qQd#o*mAt{sSfn%NItV6tsb3RaP~gg1>KD-5pToR~C? zOG?M98B=jAs3$RQ@xQ7u?(nsE0^6DKgs5>?3kvS8?ssfw_%E{Z(uGV!Nr8S;wtLlU}y*+33q>O~%?_I57u&iJxR` zeaN30=5{(N=?db?T&`uafrLUYcjMIn1qF0o#z5+eFJ7SlxU>|x*OG&ysQ8uhCI!eLV$j*_`3IM2sDF>7QeL0_(?e%K-gbk;g*dM|-=4dT zDGr7aS#$t5OAIXu!C~1(yy-3d`K><4-H&Vi>|OG2^|9->nYbkYgw-qiu)Px`ES@x^ zz;K^C7!*Y>J<5+6wpq&--ASL&W+oOJI$I`RLz-#7w;BK7PFFIk`k;scwF5vgNOG}4 zOl2c*rwI8*!#58}&BdtFz9EV3t<;(e<{S)`V9>yp=mjQi_|ecMAwLW35eXu*y>NI* zmt1{gihK+hTla`Fz;G9}GOqM@b{o(x$qX1TirXdSl*EJyk=V2q`Fkln>)W_e!r`%h z@#|&d^=JU2tJ%A1qa{s@IZgW7#__Mk-|fZy6l$`-d^F+c+5GjPoSrq=dR4#F8@7A4 zxzQ|i)#kv#Lhk7@^oG>(Sq@|*I_iAbVwAYq8_4Tagq-nRW~Rl^*=Dm9MWa_yYal)V z7K!1*o(Zc7B{Ci~8e<;Ma8Pu<#QO6TOYRfB>cC%joAhn(rJ!4TJ4m(n?Aw(}Xq1GO z0z$*X_ebKKSaoq_v*wyz_HK^7M3C3BcDL{9(fbYc%O{bGk9@N*0&4IGl_0(K0yudf z>IXRty)S}&cli9(lNiQy2nD6wYc_59X^=Iyd)p^Evi~mMIbLMO#<&!@$8>l?Y5Y5hiGQow*-XqOwW;{;xx!VqGp-Nh zHGTEb{#6}3GZB#*%z@Aaqc5c-$BFluE%JrqA#+3I@dWV5{`M@SN1YKs=;XMDGHTq7 z^B21kK%@W_NsMi#*vjwHyHHTOsosnwY}YW^xKysj+hv`u$f|WaGqTGgcq-d8SA(KE z0|y;xaWlxa&DDLcs<4JNPVV=TiK@xpd^dkGe4TZPV_e_!B{;Vy3d;$#J^T)Un-QoS z)p@z@J;cRnOjdx}*xl`Ei*YEkOjMH`N`G!KF3(CbcNNDFq-iqZ3Omh{(c467)0*h0 ztyMEIyYc*dLVs?&d^$T(j3i75FQ*prEoW$B+=-oT2~QaI(1EiZ(~0IDtg3ot{JOgS zPC;&^pL`NmZ^G4?O6RrCNTLPJKi$m$TjjQ!n;X;7OC;xPYj_2d zidBdRW5qDPc!tEo0RRdt#c@f2@p4o=PkW6RbQbp+Gy7+KlW~U`?78;2rweuF9m#Dy z9U16>h-(q9#hMv^u7gWTTk`a3uH4I`p1_(uUX9u>=l&lLzPr9|s<4wICwyX(Lq$b` z{vrpRucjl1Y_5Z>+V?pv+7Y7n%g_7a=z6dtNt2$Ui;!ytmZybaNu(mUg2| z6U~Shek8&arG`15s68pWzxDU@T9duS{meYx?s3O?#nQ=&^WyDnVn3mN3N|2=W}&pg;>{|zku zut(Cr8vZYWa_;?p_@4`6f2`R%43ewv^{3q2RZw7egXiD5*h?@ltG#oR4U=1;J`YT%2G3t>r z^#{PWCsDZ-JN-K{I}V@RGA3|nZ(CLRqwiqHybxu9p4TA>oV-URh58a1EFqQcr&_K+ z#weZ(uf4aYflDL%ry+Y+1ROCj#W=kbQD`7??YA7>e3F)*B6lSt(JZvj2DA1 z7X4j)l|KfeKc3f|qmz^E`Co=L3r7KU*FDVcPu1-?`6uEUNW1@H>p5`ZNS8cc3{7^u z&fT57l9Z1kGBV^uOwD;t>Ew>+Qe20&yaMIlU!<%b%TDtMU3*U)ix7xVQTu*_u+8wE z7JDl>hjL4@Nh4R_F*^SO0ZiH9*5nALDa6Jl{)$qH;kxt>pv1{lwlr{)%Bp0(ze_o* zX0xAezc{O}nUa}RH`WXrSsuvC@&h3DJjH||UD@8<+&-JjDw;EAs)`o7?#NaLz9e@Yn zduw|5>+XR^!BdcK4q!30JViGrTGp#MmYcY`ney)LYD((e)WZQR8*_>6Nm|SCUOPZL z)RH1>UhmN71E-;@{R_gFXZ#wv)UTR@w<88?7H)ifa-!0$^{PR{}zXpibksRYj zC(H`@>tKgPDGvfLpkskN?WRpnc{?wogJS)rv&eZ!z6nQjk6B|j@}S0r=8GkL(KG9e z?0Eg58Z%P}tj_Vm&?~sD|4E(`5*BS;XZL67?V9p?MHTB@1`Q^;FnornOY^V_^)*uu z3;^c-*Pp1Bk%JwJ)Sa&`^;uxod#BVIOzuHSD)|eSIA;m-)57L%t~QNRkBYQTt*D77 zd3nHc<_E+BbA5eq6wPAMQKso<3=LaKNd^S_5b-)HLl3PfVTst@@y~d0O3;*sPmK-U zR33YI;W0&f>S_`7e{l_vIS__0_YT5HU9~C}ccPaqwaS?0%W|~P(dp``dxI1-gc`H! zW7@RsGIZo7zCulK-2b43aRvoA0-#lD;b;Lw=ARAT?i_Vh{I1@|J~lUljX0hL4w`OE zE}Rx3!_-DV85#zpx?2w+#*#hcM)YI0`3F5R3+j1=&R!too`TGGXZOr3J)%(N2*~F~8_S+wtuDK zEo$&BJ60&nHG{8z?m(pmzlY@5B`w$HzsDy>@9ndUGLOsN6SN{ zuF2Wl*W3Ncp_A^X`RI7@YDyZ?04RO}K?fulPFy&ZIBZi(WtDo#wwq}2o#Q9tms4}W z(s`|4qI0*Evo{~Ll14m~1l8%z@YcSDUf`yIHsiSe zaMzJS!Rgc7VZqYNZHVJkwA|XrzjY0_Mb~e6@b8ItnuZ;Ff~6^2V1P&*aGE`%oxqya zS4+Op7WGeHFbBm+cxEH^F+gPFn!PzA1Oev)m!mn27PG$s?NAz&Reu4W7C67?-L3CfNQ>5l5csxo%1zi`=g^-RwenfAXf zC=m5?cr?900xfVl%Xyp0&kSQznF`xWGPFW zZ2}(*1b*iuf9i))q5`s`?X9yQiMM5RKM1$rmhOj@7z@j9SlcDF5Ub=Vs6j_~nui5s z)@)pAUr|Gm2JE}2q%0*@1obZJlT|;1`{nxzD17SeP`*lT!$Y7+CATP*P8)FF@1HV+ zRG4r7jTPKC@uOneH=ptOHOIPL|B<)4*Y`lW^3Ol=-@WID^M4Y3TZnl56Vj%gKZiK} zBU2{(tzDITT=2@+@4V48P(o6!$AsL2(>?PG+@PrwChWZ$dXkU5wL|u9xh@+}uwK=GrxyDzOzyN#*2RsK%ItgosF? z&c`=WNy?Q!^sroOUbnfFc(Q8m7?m^YcQ{mJN!+!pt5J>t0&x19=48VG0xhlR!{S(# zAt@=&DVj6oF8%Zpp)I1>A7U4b?QKbBKsW(`m^w#2=BU3Sm!H1=9A;_QDnvc+nECS*k*$ z^_LZzt&T22aIPEB6l>9PLZS`lcf|whPlxP;);*@T{phQu-Y!gEUux{DYY+=4TLRTK zuVM2{fj}{0Ew+imI80)_Wfeg~)*{+ki>`Q*20vT+pZrCxiOz$RA330PfT;9hFaU?X z#hoooBi-1mzrqpPMyMj*>;8A&o}bQbuR*lP&rm;lz;^BCSRa848<@r(cJL^IbXV{0 z(WZ|bYl&A_AItH!ZmaO}WHo<&w%7;#8!h;6bF;L27cHzQ z|B)N5mr2_b@8=c&3(*g-%j?Np$vZ-?DJHphLZT~Uul4q8O&@pPXY*D%uuzfheF?6Z z=yYMU9x!{u#jq)QK0C%D4QbEY8>=65aCsg4GWKOW62=qHen@TN0Iy~R5VqoRFp)pQ zaz}4ps2M=SyqW`dhR5iNS~Qo;XJfOGF}biojkTnK;x-qp+wWmT1Hh{jDPNeef8Kh3 zXJ+Vq4|_W{Uy#0e5kgGH8hspXX?o$NzL>Pc>OY>T2oLpz?xMGCuA%U9{Dueq^f|LVUsq`uY!GcTvw zODqYN{t9cs8=+mZ>JSd0LEnV=WFp)%U-huE;Rm^XGuwF`wpl;*td=|8NnpU^hDMm^ zU81V3a@eGVkBR@*$9bBE{Waov7{^xBGWBM6Nk~14!pBBOkcq!I3DJSnVbkrGBRt}0 z4_O+lwp@Yf5NXYiMy--d+a9B9U0c!9$onPh-5+|D4KGV;fs%UgXBYy4fNg5H-Ei&sMNm4vz?b$2Jlb2Y|%%xXP$K{&}4KyWQ}C zbBfQcmtu5h&%`ivWPtp$n-kypK5N)DQcSS(UxjRKca@S{EtP7+{Hx==T)}fN)~KWo zeDMg81LCL&w4FE%Jb+O6ur5$1BBE+)#KWyXSBllYM$O4``wRY$WTyc1fsVjMhXKQ}ZVjLwV2C`L18N#*zK7qFpoH2oHLHug(lZ z|1OkBNrZK2N69B=-jn1nD}zzS#`4Uip$EA%^Zspp-k+|(cR z)xCN+A=9jtz_^6tWMx(42>$lF6*L)-v*=?Q6-0v;;7kZjzeR{fA!Ii_OncD|gES69T4EK~m0{p1j@A%_va zFI>6;G0@Bej!K7R`2Z62RlrBBgibO2RtI>yU{PgaKdPys_=*;BowJIvu;kdue&A(ucQO)5 zMD&Xfy|_|mN}y;}3oHX|XQycnjW9$oMX3T37!E9U)ymEAY6cL{`Mr%K>wed&RxtrK zfSAM(cvK&p(Nls!NF2vgkC8FP{*YZrWpd-w4_=9>C;Pjf4b!XF=B(J1g|K@Z=9kT= zu(Gu%G6D2Ix$^&&5x|?4jam-;KYdnRV@Cs&V3t#n;YkU{k`Dh7xx1xDiAC`$G1#X^O zVaIx~e9*5r1P1Opr-ZuwFWz3y^&zQK%XmU$A;&vfUjt1`&0RH#18LF>EoIYSVZq;V zb>noE>XLS?iGu|})(u}yP9_byxMC36?LQDF>QzZbbX(>Ln6AHgV`DPNSlTaftDNr7 zy*r^U85{c+qQn{tRJ#`(iYwZyb|?WyBLw1ff&Aku?$26NRGUDln5-c9XK;|N`LJ?1 zZ2x^z;%!Wc)1NJto(MG%^q3@}p!n>0{?)BnL1KOGnp&!iqZKBqq~W}9_tOC{yG0!@ zPQF$8O8>G#fH18d2a9yPr-KYL7m- zp`hOo+1Fr2{CHdMf2VoSH_G1E@IyiXh7*=@6D|!7_6Iab`1ij$lJaKzpD+o$tYOW9 zeOo_&{TrI3J+lAT70X_h<->7y%ktE!*K6Zp5NmVOxuitDu5yAnVKAO{>4^u2p>bn@ zu&9SoMP+ypCq$V|DQDKmnwM_?+}^ZKLTb@9qNrJt&kGj-7j9y?l_O-)2NPPrCDl!{ zlj6Uh`^X64`RzbEs#wSQbvXzRJ!V)!?g6Er+qQGf|Nd;N=5=yGlm@cg>3j`|+%ErG zb)euTMt>(&LpyGz;qVX~!5P>i5YVgJqWzI`k!ms>D-fnX@-MeHWU3*)@%qon&PqwN zUzLcdRV`3B3n1(P69jFyo-J5RaUXPWc6dm@C3>*{&~H31KWi7>E%6w}G;wj}JY{L5=+4#A7Il zzK-_`w+wt32PV2g0B0&8(|4M^=#gH#r(Nm0P5R5ml~Zq-(rc>|{<)XOetVI6?cHVh z!T_bfph9>eAgUn<*y2*0_kX(bBS_xDsc!0@@cB0bjl4;3=k_G;Y&=vUpXtuF`4>>KaRv2s**)(B(MQ|Uym-Gh-Zp2gM8;3> zDr%%zt@2@ZT_4AmXDmdmQuyi+CzU_XF4!;aGqXqi=~@viaI(*~cZ;DXVW8_eCyIpK zC(2MY^~pf;uu{~N$rr4Mr z&5uyQ9=KF!-z-3}ddI;-k`7j|86@R|-OuAeLHx3b?#6bO6EuuT%Z9$FTj6v5S_x63 zsPxGGS<`@uI*I8+kx1PJ0jsSFdtJHTcFH}@8FyEW?$qPuGuF_|B>$?+FqqI#YrE<= zm|qhAIJ8u+V2Kt+PxdVbKMsAOj}r+|Xyd{RN}M|wS@63RYquY&X6GC<$_-~Z4J+fM{~0NBKRf-tCeQ7Ee9-&!>#f7oNjYGL$gJkCF--&%DF>V) zAfk?P@xZ6^`L;%d&HoE|*G~4j+;KJ_O`u{EOIOW6fnO_Xs(w0gQm6Jx`jcBEtvdL) zP@wWM)RCN|bzCn+3-Bih1!V^&S|U(vj8&xzde#S3ZS32j!@Dz^>Kf2w*BPgn`4wxc(SaV7A?GbdD}Jgka@$kiMW8 z=zH;@6;hg{Xn7b+YmN`u>VQfgz#INIdqw)gI&`Lu{xgI5--Ni~-30s`QS>XqZxfou zRlQ^Y%5YLl&7<&m_Zww)vSMzhv*o5Sx##j^=s>B#$D^#=@0Ih#nt}qU-0Kdp_JDh0 z+K13@UBHzIzM~4yHmfnyvU$;sO9RqhSnl!8KfuU?fxTDKaqB)zU(tF@SRiH2lpnkF zJnt7AU4TNdgZBG}qbbJYbGzYeot!$IUe8;x)luai-TEKNG)j{J)1f{Hp+xZlalCbw zLj`TPvZnsNYWkVLawXoHmetH-(c!MT8L#A{{hK~(COL;DIt6&X_GRrVQ{d8yN$NzA z(qEFD+w&Z=s{5tbnmzV9MA@B{<6HA+@Zb&aeY1O{jNtg??uMCIw*}->l#;?>2Xyzc_YC^MvwPZLDWX=kiA6> z&-3|)@`hYQU3nr$5BVfIgP0wonR?%fq4WyRR=TrNlNcerA0h&Th%7*p(=WV#VKU-# zsqv(sQB}TE4@`~MztlS}9Yucd-ubNlu}Z=D4u~7jh}WuRlPrh+nIRUY2k0_Cd#4yD zAM+Zr65y>zes1@t*(kUGN(+R;+2crvE~E2LaSU^XfqrdW;qjkBNMg=^yr=vAg(5J3 z#{@sVFSI`}IEY~9qAu+3^Vx=T#6{|c$V}6xk0!4ZJ7+W3{>M=GXvun z09XOzX{2x!;*7a-#f|wDL8DU!Rjz!jT zn#NhHQO~CBv#bNm$`CzLOYtD^@BQhXapmu1EFA75ydWIZ#&*~am^H4A!wK6gnWyCX z(S7=gj+-9u{U`e5qg@Np_Q#(>0*9*W-E(LX0y%y6lyD7VjhkDQf*=M@K_5frPW7zI zY_!~}-_h|2F;>uD;y^o5FQT$>aQu_^;99h52d;jagk+s3STN7W&K2$%>s!q3Yhz)- zRSQ*-mZ|l=DI>14&mW{d$aM$KS;j&S*$I2akU1h%4)0R}uF{DK`<3NG6gV#E zJpgDsS!^AJA@COmdPV^5GuqhZVW)LjV%I(7MBT6`bj11Buk@3S1;`D5qeMycEvz=P zX7NH1j**sW@uBVnkB&kj(>330)mJkVHEVnhJR|5ST z87VX=SJ-I!_3vnEynC)1K^p_pU!`hqz(0s<;y-SDGD38*oTyEDaDibx66OBOoA&Ou zW!gu%#y$UEsU7nP*sor`ILJ5J{V4TLmd!>eLKVO zV_<23!ul<2H{Ry}M1WBcnBXsD+*+UfS(x36W9h|&Iql2JS!Xz$Z>bZt6sefOxH@HinR@HI;xe=L9_s*z+T!ayU?;?He-%rK zuZywDsg3(4OYO|nuG^_~GiS+XRF)9+fR=uq7WmiM*cb>JPrO4z^G?1U$HKls>I|Qc z8CCD}lIy%+`+yRgquIn3J+1ZO(5*0ePYs$75iSdsMG76~3(aD-#VqGOdjdg?@0>tq zIz_iu+cS*==`yTtPY-sm{y)k?b#;!m`kz92U?-R8V&ml%V?P=Id{`wJ4ZtEr)V@f< zfzMt5b_v)h=^oY+IZ8HCF-2f>TQ1OGw9Ej``af?Xw1%i-#`I)S*JV}3jIPjMRWym` z^Qk^xdifZsjv7vS)k;mXaFLPr2AUAim6-tG87YCq0;|Q(UF(;d zNrqeLz;iMz&=PTQk%4tp2uSK-JaMu_8_Paqhxrg}ndPPqp~ciL$QI zGt*7uH%3-Y4I(nnSJGZ)tk#tyx+tFkKLCV0JxF}Ao}1T7IfhHuzB|Wq6*P-T`b{3X z9$$Q%){-ZL2i|>!p(S95&}xT?7HZLz0+BxQJQz>7E!7oH!Z(u3omEuOI!4e_J7i-}{3nj5dRy%d;uO(Zntu zTLNti(Q}gsJK_)RqQ_rW@{Q+}<#fw$=Zn#6FgUUKDX3t@VTg2~{_`l2RH$wQQYAr5 z%)IPE)KMn;&%{5wBV^u?+TXlaP`mhtUJd^g#qc}bNcdYB|17=PkKfhgedJg5Dg^Ss zzxR_P_F0c40`(AzVZu;3P5hKQyfTkTSzoDGR4cc^aFIY9(k?fV;M|T&NCNRjQP2mP z)}|C9q}t)Dd)V2OG_CATPz&VS*@)_n9A_(#12M&65&C*j2%%q(&U0r(M**;_-qes^ z%;di28(B)H*7F~eFpr(+>Q)_N3uz{x5D0-|LD)!Wd%?wc>-sq7T~c1FetNfVDxU4< z{+a>?r@}hAR<_I!Hi+f;ef! zWz4^fuz%~*pu^GFHX0$FTh3gf`DA{Oh%uhEAI@^+$8-|BY_}LXr`0K&Z#5+Non`^n`E-Ul+i-)`6uq z1JkUK7YD$!OP+&d!z|CC@E}qxDx?4<_iNko?PM#Tkb^{yYLCwojb@?sT%1&48-4=l z#{lTbJbmdN=Kf4&XKJ=T7WaP7%Y{c>|Mat5PWWY1<~?KohCuwA5*GKrefa;9%%DGI z#QWM2VoXRqxCyQ*fu)wsQotUz()gR44a4Mr;~1fDu6Q}>r>z~S(4m~bi9l&(2Ue)T z{CfS33m&rrMrzi+b~9<-aLOJ9xocTBg1;oY?fW@Idg&Y7mK;Y5j0p!6^#e?#Sq6x+ z<38KYJ`lqnFJ)b%gY;~OdgjxD)P`cwHSUO~7y=?G8lqX0tQdYuD-?so^4{}pyw-Ql z_58}AIU3uJc-No1m4zky1xXZq2IE#|i+%Bb9N|QUhu-_ee$^lmijP%o@nr^NZXM|q zxZ3tj*JTV&9wNa|t=i)h`X0x6Jsfd`pJe)pX|(a^(T^ovA(qnm0`og=h5{Z$TKohZY@=;s+jbh;cCvy-jT>8yZQJ&W)7T9f+i7guYK(Q#ckgpu z`xo5Lhi7VxF~>BR?5dx&{-xGp-w76!oMEwQOY0W|<5c_xG^m8UWW*y;X8{P5_=0RBFGKnJ%lDm~4Q;#PoXyQ_Q(9s@0T%Z@ zGxVufvj!h07feDb!auz#Yvy`9S6k-&mZNi&s$%8j z#-!&>q6i6xs))(Qia5M24>xT_hab1pEfn`MxYu2tzSzV};v-C7-7GX2)Bz`CtPlhS zj;Et=*>fmF+e3!!sAz?{`D^9noq~A)*56-MC^v%VjdL?2N|Dds&cLN2y_&I_EK$&a zvmp_6kM&o%DsatjL8)waO4ix?4(O*#lty!*k*wtVBZD*$4=SH&Wb)H%6E8;(aFU98 zC?G`Hb^=jg9-bzj`OL6R@1tn0M-9aihDZd<7QPOK6!lw_f(I?9f-7cfIe%L7lr;r( z+qmh~?Dj0jH@QvKsx(XU#SoEI#{(WQDDyR%4Fl?6B@-@>^yHy&z+UlL5@%n%G_UHc z=)&h-i$De+7BVB0s}4ynNOqZMYUkq7o9Y(mhquwjHWoKv@HTfWaAjv#9r0ds=X>}Z z^87X*gogyl6Fnl@zuhqL1nti0%GmyqUt4?lZ0)|0rmF4B*oborW{ogO49_Zm7vN}| zfTSBxMVL0_a%MQWdbh;BRsQ1m+SG=EKJTiRjQ~~XxB}RPvI+D=WImMo#0kWqi1tGI z!oE{$yU@#o#%8aSNZ?NntZ=1t^s$)A?MMCBuu_2X^#9L~V)$ktwQcp$Y5xYFF^-S9 zE{noEg3dWUeRo5T8=HwIj3$+NFHNIe&!STEo8ReYKx;sT|9;1b5u!>PWKJ+xF)Xt( z)p8e44d>rs)VHH>sjq*|iuUVv_4wlz8Rmww8+lOV8xs(~?Q*uMd{|HZhHUTTx+jTg z_*^el*Gm0eKNt2{>6mNBEJLPjwa12Z1gF8#!4Xhu?lDf2B#JU&m2_tEKifFj^t?{* z7W8rZvbh=O7WaFUYK?dEvTv;&U&G3QTcuB}Nk&{k4hkok=vHxQ=&119>T|AJirz=J zpO4PXo4cmla?ep18@$oZ;UuY;gBC2_pY>UJaeBZ>QcT4~A%499^sWT#O;KgzNOVV#6FgSkelZ!jDE@Oy3;}8G7j5!2b?(tQ1Haj}`o(p9zPg^h6<;3;g%C+&=rzMAwc+6K?1&PBhr!`Xbn_D9O8vO- zX;KDGhk8?iFq@O93dHjko|ys_mee}}SL%hZy_03;I5>tVc_G_)aX%Nhn{ARUwtxTD zc(AQ5zk}&!XV$hu5mJle!(}%4uRoF61C2-=WN>u-9|X_n37A4Op>q6$>IX7-tq5>Q za|U;iFFY^x>^0W?;)++492fsko_JNu(;P*A!pk}KoD|WEjwmL#tW9(sgPB;rcfx_-r1w<6%6dYRMQyC5o;s2nIsM( zQ4!neMhckRU6b~+?!J#6M^oNxjAzr+q>qz5=8#>AfenG5FOcsWqAZFbIH1mvRAdik zU&SZ^=Ra=CI$vK8f!+1$ZH)1z(~-WQ;wBwE?_w7ki`w2|yJ_VEJP{QvI zG~v7Y0&eX$W&R`vQ5{$QKU_H>OcD^%0<{6KG@?X9OzoSV9gWlEkh~IACxS+bzt8_@ z#d}w4j}VRC7C+j_{M=k@!qdB7p0|K^f~F&b#!I9VOS^lw<<4-)Qi(+J{v*`gw6e|! z+mF-*OO6xmHJ~3k{7j*qjVXHVGt3A#qA_8)p_7^mBzl_pvejjp`kjx(t-t)$K_k;m zaSQn4Vi7S+&?PB(IDzI`u)|S6XvovPL_W8YT2ia*O+=OXOV!!dy)cbf%dcE=8=}3H803J( zN)=Y+VAI7)oN3;^P@_1VNvP7XGp`mUo}@%YUYF2;hNHuLWJnAZNLPm?6?90rcN+Wj z#QE~}O(=JH{7Or+x5R?TT<}1};ioBf*Pn#{h|1_8e~+JPsXp5OSMG`RaqrPrG?ut~ zwedz8wn>Xnp)Z~Z3q4lgy1>SOlwP({W#d)SuJc<5tGRsYY>@FU6uJQ~Z6G8LlosR< za;jo5#A;S48iw0b^w|DhM^BK;JW}E0k6zde_)SKat?`bpGfy4t6|K%!K4sp8MPZbK z)kXL}I?WVeH^N0`v(<9dl41LIs~MOi{w#V%;lWxsK$Z2v#pEA_X+XhxK*>fRaxVQn zbN4bhSMPpvcv*1tIa)njAeP(c(qrTJ{<-&`9P75ys3CP_3)Ss8-Z&?BCut4&?d$Vl zgum(|q`R`L@YAEGP4(@hH$$g09y|-!kpqOHxMkg^?_RzX&jgFHCK ze2~h`I*VB<8Q9#|$}c_qd_^ItOehvjj9col=W-PK-8~2~l zy!Q&+@U*OTkbwFR|DHAyxI;l}_Tbs-Da9+H@(=6z7cGmV00r6XJJrA6JsU<$P#{Hg zdtFThP9G>C+2)z-v{mF&FraESn%7YzN; zmUMgJ_lIE!m5@|$vqAYQv{yvU_%1 zxOar1d75#WXxf$ha=nfRPHYyadVhaA<^4ThAsOd{SP(H21ZLCAi)V;T)C)cv1Wz`m z3qjDhn7t9ax4Q%!j7RvaQEkh0r=mC2ozsgoa;h7Pdxgj#-}0^Vw?6Ay_6wfLq?wtVZSE$x}} z4t$an#MbwxL5%MqL-o(zh5^u&a46*9@`CIWOJ7p^eco2K+_^g!zVl?$s|X$`_NQn; zr@FgeRN=3%EXvI6yyspHJ+8Z!Hb8*WX#+U>_ z*zbHpWb{Eb>^soNPKjB`Lvkv~`JwX`{|>0bPmld%Vz4%g&f zSQ^62#(tE~SRlPT+idH4^`eTz)}uzOfpS&fUSW*mKN>uK4|`epZ{UjcPaae`s=|Ap z`adX*)UHUK>^bTa>3clrKCA7A$er*@|DE}%0dAo{-$$8}`xr~7O|v9Uo4cix6HPYv z)~%YlwuV+uAZ85Y(KbpbBwSK{N@IC)+ON&Y+s2AtC zu~;P{CLAz4kJKJE=p%K0&tC0jdpk%jY|{s9UAVShS0E3vi#j@h16TtbwNT7)gHW9u zh;q=J6r6Z;e9?#E9lCwT-lm%1f*(>V*^>Yq%d;6K1`Kovz>|lmX&XIk5>3J&1$!E|V1*@Fx;zn1y4kNBdKi0kcI?mAqA zyJl;Uyh|=tdlOkL#5MHP29g+9QH*j}=WXh$ix`QbZ(^H-xpUKYP3ZX zP%KP;5*#qfjgUfQiBO_MUOgVqTDUj6bcLhI@rqmEY^Y#|dklVbXd_=5 z;*CK}y4J-K$vmu-iBVq*c-~x7`QMq#q76oxkVk@vC%gQDGb`P@=ZRl?$@>rME4(2s zR~XK=CuxcPzbNs5KLH&|Kj^htq`rF;*2wHG_;_dax%20f6t_!MXCs^7oJvQ_VX2Km zcwTk+x+dQoRD&VJL=aYwAu?XzvvQ(@^qjTs+6fGBJ|3tEd^TA$sLmpwyaP2pntyH3 zU&`G4{qXlIpT(kJEvoh&Rkm}9BjbHwv)s56~~9T7~bo?7k#jz7WGk)mQ(QhhOf+Rx^ybJ5E{R4eF6 zEX+`%1f6nkyfi8YyRnB*lZK{-R>b$=i}16U3AYW=uj#TzE0d-(8FpYxGd`^$+hbnA zNN<2~U2qB-2D|wB&{##4@7d>;2N7BIp1LD1p<9a-eZnaP6Yk)qD1Z#Sya$3YpRp?R&mWSe9Up0=bq`mk?m4C*x1@aw*n^9&C-VCma6KMX zLajl%aXBF(MNUg`<8q=QY%mN*zX?|clXD+>?yr6|YHj(MD-Gl|GYZ{O1NtCl`^*4L zNTLX71ynI%$`QXU{pkD-pQlE*=GSgEhZFky&TF2<7-dWfxFDcSeAA(ayv98B<4&SZ zHG*0`8hn*qJHHz}JC3yhtS`@#`}xzAjx}m>{+zcp)D7H;C0Ev;c~X+$G46z;O<_wo zo>7ZzJ*YQ1Jw@cLlk;qL>Z8P{qx>Nd4+4`n402>tZPHv={I)5$cUke5W;M1oE5)4V zcGSV?$MjsrvtgXSUIBs|5q^q1;W~H5+-&z zs%@NKX513wvY5X*3)gS_u8V7ey_ZP!rfHgCWvoW;JBGIZUdAD1QHc|zeVVMGAmc-y z;Z&k%{;*ILhsPVtmABT<-fR`>csxYK%&|Mdo~IqMl!!}d z`)F~TciF>s^gUirJxNI^8dpN=Q&5_1?_ z)`NfZQ-nuL?=e;Ad~JMv1!w0HV#)Vvf-dpggm0_JIk!bI@=$R`Xd*Pi&uqd)o zhy=pIvTNVaQY1lTq3R+AWfKm6>ZYN#dT5CDiS|TEV(B+7`d?S3H}@>g2!9ifUe2Q!>hqGZ5lum90np%R0Xn8XCO|4+ zkX>RqDM?*Frsw=!_Xmo} zq3++`(VYiMIe!TPjq`!}w>&?3b!Pu17Jsp4gVRrbgM|@(*N4Wor%ry zfYVIfiYLD9r|x29SC-U16`|~B=}Qb9?7Mb>gv~2IDMtQ)w-ieDJL^P(iB)$BV7i6 zIo8#}s@4F2eBL)dcsB-Kfn-H>NHQoEbq$h>MzNp)kQG-j6)VigkUO zgOE$4A%{lL%{*jhWP-_X3HqU7u|44Nf3XuG#q8S8zWYBegA#y+RQ*5F4*HjA&O=%@F@GiW(WiOTE49aGQv$5#e z2=T5B7E$$@I=R#*=G40D@%H>isp3L{H1WPN_{c8O5(~xY7AYiviR@5&(wMEi7o{O! zVu$l9SFZrlxNJ9xO0ax*gvY}sVd3gSCA@0TJ;0Ov>$(&QiSTBXu$Nq{;KVzsU7bxawr{@zrH0 z!An2nfkND>A<~p;YBQ=1q2{F!Ikb{szkA7btda8yb9;`-HuBv+z=+F7h+w#)$?Jv* zny%uM-8Ocjl^e!YsYI-;Md|+F;s@!t*cjX)MFuu$;^S)$sT+UjThm6|H|7uBQV~y0 zJW&{^+=8DK7)Z=Fd_zfUMJG&3!jfno{H>(9bF>P^7gA{3NNVsPLt3>U8l3HUu~2bk zO```Mbeqo!RRq=q!I6RMdE!ix6O;!bTs1TKTT6ByLFy`qeSReO)Rb)Kyy66K}rx;1alOXM*g?z z0K&ax!8Xf&Uy-u^+p7~?{;HtiUyafF;wS^AEL+uR%U1sxD>`L0prjY^P`SX82?zPuPY2q>S$$`;71hEl@IEVA-t;RY~*i*Acq z7k{(1!&;c!{4Iiqn)Gu~xqL{PO5l5=68%Z_9U1C25kL$M4YK3-APFL207VTAjGU6K z-hzL6K?>c?4)tW+opdYdjCi`(6q`m^P;4IzLOUVgMii$LrKWR+f&Sw0BR%`xqW|2D zE~X<}1vH~MG1#vIy{JaTVFjBl0WiEQ+Q%_hRTM>Y3Q7;c67uc(czZ8azS$-)5IB@a zCk>s^Q92OD0`GZ)hJ!CKq+nJZGk?167COCOX8{2_*GA>+t;b%&#y5bS3;qZCdIB-N zQ23HCQ`=x^bpgfz7(8gv08UoANuQMsFT4tgZ@N4sH@2Pf4Z5di3W3xy!3<=F96U%D z5}G580OXfBNf=i#N@1e&PG#bgu%f%*mbkygszQrX-x>LEqAN0?v_yG}^SNT=XLBU7 z%XzG`<<#@izuzmgFv}cW6e%1^rmuSi`<=ly1FqNSpOgJOj1Wc1uh>C>JhTc;-f1VloXTiNQFn6qcyNXOcR{{fG9p{-;>`g zelA=*t>%FAg&Rlh`~B@K|8+MYt~Yx@5dr)+dXUBFbNmD1LE*xd>qq+MS`H|>9CQu_ z{#@O%$?RiEy+0oh*YDx%llw9i^B#h}-nLNJ8smU%BC-*5EJ()TF#^W~nNr$F z8j>wRmAxpT^}Vq+1N?6|4$Nd?LHSrAFlO6O44}h-x$v#mc)~S8wSrTRueL{{m^4e5 z^IpifHO|#X(>}lO@kQyi0*C<;Kcymqlfineq3G~G~Czex>#(C_7-#4C?Dw=b5z7 z8e@<#=72HK!Z5O<>iiR{g4S+;vC7EG?c72jy4cHVwI%tg>gIN4N1kQW_mlL8Aqf=* z^RDYQG*&WZuz-DIo^7xK5ZlM}(3zghPdz(>oU56`KqcUw0hp?&4Rh(f=eZCEVUFax zo!OaD`SBEgH!>(m4CVP>$^%9J?ItK}68QJfRjnE~g~pVQdb-QBH-Xm;gLg8zdh{~x z<`wP#l-0onfB0Ui&r>Q}i=xb6u^jcaJM=+;zg&EsBI*7C~03LPaetd$kg8JQH&9@l#{7#Lrg?7M#kU%1IP#5)i-HN_4IKtQL>yN~432Tgqp_Rszn(dVh0BhGl|B_`3e z>r|7|pUMN(@#P$dJYUXKyA=sy7SV_F3i3O!iBJVrwySbq(NjGP75e>}z3+1}NSS8f ztCX2W8Rw1&Qv-m}!Ue)IsbIPE$b=u2)fTW-Df}LMZ}#EZ(D@q3@z;FC1V~7i@x!8Measx3H99T%6Y08?Nzh*6vuQs{Uw3oM9N( zK%5Y?!8dkkN1JW$_sjUNGxxvjkV91W3dm*dg=zFdmfphW6j&+1hUUR3RbFwydvjT0I)xa=Q6|{%~=oD#!WaYOB=l9#Q`jkrgdNsbhcQ``^_s8sW`3zcCWa);q8!Ab~;W!&(2AKhr?yQAaOAVN#f}N#%v2mW=aWY;+GK|mAd69!P>3er5`qL zcmJRX5GSZz!tf>h1vJs~__E<1^W$}`Rne!J_8dBoB|HED=Lu^+@mfCK!K`!Wn)i;To!m= z<@S2!Xmy@mN=xMeMrT+SvDi9YMp(O+W&rB$=CR$VX=>W}Jl39)iKPE*cI6R2WV7Qe zqI*I0oLj5^!mRas-YSB^lyADhfmX0sU$M?gzQ9ZZI(xNX>HK$d!vlbH6<~PH$1Q@R(gvGrF8NVq*HYJElzuTgD3XhDmOr9b8ufke~u1M`t^r zorSS!h#bu5-swQYguT{0+MR%V+aE;8B%66v1}UkK5SHM4fmLf4OJ3pbeRp}=rJt@F|E=BSF2#^?d}^21QCA|AxaAVol2CZgEsBabJyK*1<2 z0($eb-;F)@run&TJrY5g9G+)`E=S)vyWd7*3Ge3ykQa&;qj1e4*$J4DR(zYB+IR`=G$@L(xO0b56mP{+aBn1$uRA;A4_j(FlRUfKU zRirUe;v1VS>7*}MatXPBZgSt6(_1ubp^Ka@`x$<&VX;4U`;?5tRiu|-Q5VAD2aJr$8p8sz3?O;E z56q$K^k^xeOd*o@eCDF1J&Te@n|9v*+Pbc0gz3i(h{Ftyy_~-}{<(Utq-G=Zkrf)>VvC~f(h65Vlp#AQfsa4Y@ejQbNd}2JXGJeG&o`Y1 z`+`cZFUt-sS5eiF_re_LM(;xEB#E)h<0?YDa)729lV5M_@Etx0J8bo z8(^O)@7mw-V4n-l0+$ln;dpnLvpqR1lOzevyIh;1GE(VWw^kMO;4U$kf-1Vqw1j@u zti0bh1*LjA)n9*^&lE9z7hOd;>K+sMXN&-feM^TK+q&%a|H+S+&G0_$G-GM1KX)m@ zCa_PeD$bi_)KY5@LiwTQ>} zpu^-rhX6=<)CD{sSdnL|76T_-{ok%LY376Dk`6+b#H7o>@Qx!3=w^zW%i})G zUdhCpZp3q#zAzh|WCaasYB* zZ&nCP4*;S?_@?GchE&jhzSC-P>b)_zsmtqpe7n=VCcZ}R{8TMMdY?-V;$cUCy?ny- z_#l?<)wtTJ=sIuxo4TRJ@2}MRbJ7KXF)4CsKwYa-3v^E%gi&E51sI=&kZ)D@tv|f+ zyJ6*CEX6P`R=hsa^|hrC;lh_1->cWoAt`DBQaTTot!2wsRcJ>AS7Ec1zW1bU?#Boh{o>|<#4QGW;uw7(1k0_l`_2tZmW9E2l6GuY9Q;` zQI;U1`x)7X&DRG)mKxi1*F^XNvW)zEDn*`>(KpRaVwdj2<18eS=W3vPa&F^Xx_b51 z5(<=d)*|ncE(v|MN)1uC;$PSfuA8Wi6n?#$=<+6Hj)n80-izNLQ2L7r3r{@PdRM#C&1>)oUSMR!Zo*y#l zUGBw%&2sbABMOkk)Cl&xKZIOkBi%2Rf^Vx;`4=1Xn4;h~O)nBLIj@3(LsGVo1=#4nOR88 zru-_ZFRnFu$JP3OU4Cyc&o0_^e6PxDIV1gevYN>3)=o{wU*O! zV^Or^pWR4hw7P6bc{?`$aZuIAr~P@70YW(T*A#dcdlof?tQU^){)#m3repVGjpdQ! zhN2|rBt(sm$B$;*P5D)k_wC!Z^j}#m3@dh?Hf8&aRigVv;&^ET0Ufw;yW=*=;|@-H zVnwc#NfXIF!WB$B{VZ>L`X^$G|ZhWozPgln$iGyaZe-vwp3vcoxPD z_s5fBZFzL6$L@2&o>WF4!{!DC^nYzj%+76mvWslb>a%@W7)O-ZJ>fC4XE6BjsuDg# zz?z`YwZmAiZzi6qzg5scUvwnXXk*k{h+C(1UyO1eqFto=XRuzSYf{lu7mI;Gx+Do( zc9cqttkNm>wfw$hC!v{)S@l}&aD@@$TVxM=;v3_T4~YfS;YLCS0CyT1iX1SbtvOUM zi;1~|j@nU*oRXRA*@mefP$-(n@jZbIUsP5rS%N_=Mf0ZpTQ+IGRZ^%*a_fUadjBL{ z2vtun!YmjS9@;-84d}~<1WsihYXN@a!n(t*i^16+#Y@~=!L5yl1;BU87#KRZ=wi+X zn$+Ybtdu!I*`k4!^l!L~A=sS|$IiePh>a?FD4zwlps`cKvZ<6F zjKZda{`4-*O!t!I9FhM*tD(2=%yvf6HJ?259LBd`X{J!@r}@9p@bhE3^K17#ti41J zeL|>9bcm4#83l$~J?~b2>(VkYNzO$IW+%5R>7}rp;Enht>4jfwmfC^Ay1>WFsoNZn z6#^KQ=p9A+&|n;jnZ{2$61DjeRAKmCN*8?v$(nsh1hGB{sB%MSA~L1{^)VPs0NF&s zBAuO4c(X@wq0v?IPmkT*E0C{uk&3U0jrSjTb#%{y1PGLXusOpX!YEaeDnZwG;rr)Z zbGnPmtGxROkI5P&AsIt>l^(YFgT_Fb?ZfXp*J2S2Aj;g<5L+wWox{FFbtSkvD zI4_0xU0SwUn`by1!9{!4wR-vm?_!Nz#`-iX7Dg2bxL2=FwV!K7CMUR=5co)GX{5-8 zI=KFz8yao&k&nxUAVAODH2aO_r7*kP2UL9OzqZ4>V^~NIw)}qR$t7YdV=NYc34+7b zg)xf8%yD7o5a8!baZeVjRowi{v0au~NX$UikCX}#y~{|QB4bCVCEqZgLCk8FAPkcs zmEJRGo!y+!%Q_4fFXJv}K$4=;vo^nh!<_zJTalwp3uvxuHU_ui(yrEmjAGJ-334FN z(J7)!mTPd(EMhg@1i2lkgjNP%P>2R&y_k_KeokKwDfg{8zz7ef3O}f&$KZLx`LZMImh1K;%ryVo}_r!76DZ)^hcq zq*7nfN4sM{*(;YtaxYtPpps8tJ5b-Lh^V5d-(CEc295(QQd2;Y6d-UhfgC{jgYt#j z4M_SZvN<~Z;RY!CzQZZ7@|5I%@$iD`=f#cGA=0*JJuQl$!|X&6vGX<2`_fcEow@w4 zOnqcr)=#9ig+)}p%`YsdWMIvfQqWiciAX6v1$iw}_JFnF5a|jji6WWxWjj=o$LXN4 z&C0dd89Z=!k&aaXxru5W4rt(rsn01LOP!Nh1CEGuPstGa#evijekF}GTNNsDUB3^z zvEQXTlnptOT0oD4H94ekmC};pxrYX7_SaEdQYzGF8y9DjSo0kh1mYe`EWV~-j1lKn zteif8f=wR=x4ENS?}2jaETaRIb_N+!KGEni*_$Bg09yt*JQ^B=(LfsQWWA0&|MbHK zqn(ecZ(1~|p4*lCh5uvoWEGi!5*>>ubTP#EAmAH$fhuo)BOTEHRK(rg#X|EdRJgVW z8v+mW`$qYR^y0i;*-Z99MH)k$xEOX^*!$RVF7}L#-}B^+6kT>6^qdoDRXXR8LghT{ z)X6jyC98{;2vaNyx*suF2Lc{02rLH*F$s!%2hQ|e9B!(5c#1wKg9peI0dxmrgG3Tb zfDms;O;Obu@!Q|NWlhyVkVP>aUaCQclT*&Usjxy z6FKsEFp~kdvd20>YygfZR?xI-Ijc<&EqAt#Tj%Pv_ov8avy|?v20CAY-m>`gvpdd& zGK8F%ji#lwcd%CX?_{hZZ5u86XJ%0`fK(nkd;wMY^T|>#I-pNB1CQcJPGNTEB>nduu=fG7Wv1T6V5OEdv zbTz<=3k@h9BsR{+UNmq12R<@=Pq+6wQeqle9z2HzkIRSCA5nF*kmISvuC)Vx>>IbdI$Blt zB|BQBI9`-$wsk*KEx8lm)`l=(8?nPn(Vp*KpW@MO5AP3w_c`5THv8G9{m5|nx&-Nt zewcV2gujwtm1qafCE_Dsc&S!`#@-H38n?T)9N*dche@3P^yN@1y2^?-U$q~nKmtcA7B}x$`DI8ZoQWd09_~jX?tU4_t3?EpTh(ye$D`{jW$B!=zwHZq& zHkh#6{cE!gc0h#o3ev}*!L3w-)$PTli2zNSBD*60dV`eyjwT%yt1+q(+61kE`Dr5! zgir{m)&M%?`SPRvSlFJLakr+9N`T9I_MnGGA(SE;JjL(pfs9(R@_bIgK(^_mZ9}f( z76CuIey0**6^>l%Y`E{ds^WA2RPi8U(F85QP6bf}j5vhYx_pj}@6lnYqhrZ+DP2At zt2sWpH9S+P9EOqqAy(j^jiKu^gG@!s>y|4uyXwN1oIEGWY=w6#LDMbg(tVb{2KscM z4u6v_9IdIZKyu<77IU;}MCD{X`58>Q{hl?3Qpb?Lz<$t<^`A4Bp!Kj+IUY&MT)J!o z8)Df4>JV7+Ku^(y&sh17Om(~mDb&M0PhNe{+3-p=fI&JWV09LJ>sfYCgfz~@a$dUnA-enG{cmT#ra^nBoo0uuWsW!)d5>FS-B%Q7 z3HlyUuLMH~YFg$otZKxNUpZf_sN-Q(Sln|*evtka6eka%#}S*n`yyDa4cV9@M;^r5 z=H0_%TU6EknmH>#R9LJ5%d%v7B39{ zQl@gJo}SBFxdJUNoPB{^;$pc~i(-#NpOr|Pekw+=F$(;3m78j(FVelCd-Co}MxrEL z?SyWojw?sKazin_EB7wq4%PaiMFg12v?g+^I|tCPjaWL!;6e$eQWdwBZULaVU$xQ)2=nHDWO!XHii`wle6 zL>6J{!PTO>orAeFq>4rh;!d@cz$-L!ZQ!VI(1ymU) zbF*hh%)W?Gx*^*bDZo!rVX@wSe(YKfj z_P~m7^lp9|3v##`ezaC1Rg=n#N}{WtJ*^kinx3nPjw@?W!J0}4H5cu%On?ECok--^ z;kARan==4C8JpPOwXcqaQ~y2H0aS}&q=~()z}s#vS77S~YH)1$mAfA)E(qy#BN5D5 zTtr{k>S9hdjnW*(cnkEKo+?SD;8ow2FT%))!97XFPvuU*U<>3#%rxG2K7#z-aAAi* zJMln!=uOtpo6mI{$e9H^0j4j%kAQUG=KFM>mA@L2UuOL=EF`#ju8NQ9X>&a$bz0t6 z#TeilcpYHI3c;Xy@A5fsa}?kkR3`Y>Hz#!%PIBGZQ%8E7ZCaptVZwd9X-5tf3Vq48}(=> z-FbV-K-C#HNZL8xvu{mKlkRu0jCe49OFo2|MZj3p*W>eTzaK8!SqJ)>ITD};h>;s| zR;N$QN$TM-Fz-i`rv7I5u)*fD8X~nX6_5#ZPWjI$4S3`)i1)+yHLLx``tKvnXZ$))S0*k-$Wz}=7`hGF`){26AoX_unF@5wL@8u~> z9N*IQ>)^*a(xtwJOy|n|!l*~pY#|0PyN zK6N~smfuQt&86LnZAM=@)BMHtgV-8X>z)rj zG(pEZ{vQS{A}?zT_t|XRcZ9fkcgHtsHSYuc7xFD@v9qi+O7uy0Mp))NB}5~UZ*g`7 zY}vUVg8~*T7hP{-cAoQLs>QyReS#UQldmWn#x?WU*VHlLk~<|AAMdY+C$h4&xGS02 z=5w3(Cz}4n(atj{7>@}I-_+dOn>4Z%=uJb*aAaMfO}f_^(y)j(>ijLeMwmOT0KNC$rD=Nly1R0#uF93y5L^x# zTc>dq2Q@h0mwqvtYi2$a8?GkxJK0jW{8%^*2F>4Y5x{h1`syyMo*pt*BMWeR^R)bB z;;Ai16Y}FW1dBOi-@Nty1;<z#dot#ts_iJ)*Fsm}gTmfH|4sr?F07k-aQjf!fYKuQYHOMD-=56hk-o zx(iPw(Ro*{&RstD76Z>xyHTdCZ=Rh;b$Al~Bb*sN-eq@Ce|5J{=8gL4`q4^&Qity= zRC>*SoFXIQ#mDG!3i-P|me;h;K#^^GqOIl*#V1_5ekVWNEKj4R_;&VYzjA_4oCkm8dN4ZZBH}n%OhlXgi~uzmW!bfrd#7~gq1Qv_ zfe}QGsd~zDyY=7GEL9)4?GK#}Xot6JpYh|Pm0Jabr5ceUk~5{Ghw8j(o*9*W8QnS< zy%(c9)#z|29*bn$m04@!cz0R;D%btE>V?z4GPvK`NCsX&#@T@pMQ80j$}z3?F$uKK zMIp#GkR20-DIj!SJby0hW!-A^fqALYCBZgAvr$yWLpm@Wa$}T{%HuNC(7W60eT-`Lq~K~?$V(v`tN*1wUo&In*3``J^^&pKM(cm~|7iLOuDF_L zS%SMe1a}Ya9z0lZhu{vuA-Dy1cMT4K!QI`5;O_1)$jsxr_r4!+*6Op)KDBpOS62an z>Qt}aL%~H42DAM`W7we|EQ<+^@bAKJ5l;x<$H}b=CGv1`aJ?6#_y!Q0s_i-H4E#3k zdT030xFNQW7-N51W~U|0-CThqRJcr`_p?9e=ebig{*2`wkj1NI4e0hlAplXoo?YHn z$8X8MF>w*W=s_TC1#mE~Ed4JW*udB4bpILr^P)7uTQZfouT27oz zCX;ob#3P3udT{F@?7mkwG&UX5|)X_>wJXOqC8Ex(2wX7VXy%-n# zu7fPdr*sO>H-y%sC`<0WaN8`x-ZGNPSq2R}RY7J8>l3ot_wQGRZ0jEq%?!s$C=rg3 zS5ATxo5UXet*1?qCsGyN9W*IKRLimeuiyFn&PsB1D*YdE|hg_yF=*Dz)O;?3?B@SL&cYx)KIMs(=S%7yK#Ld;V$S*7ga zPj3w%92RLX6ed>RD(B~?_g7zpI_(HwU6rwyF2JGfUFQHRu{JbJrhqJ5UZJqxZ}m?> z461{HE;u6=+rd2k9__|RWg{B}hm$o?r$Yw0w;>Tj3xKYkf+iAxm@cscDf_eWwegyo z)|YmhdQD?a@>b9AOrt%8X^Sa2*iYOb z3Zz9*_*z8li^xH0L?}edH;gxgSA;rE83d5(kAq>?9~JXgE+Gq}wwTG2#ML^ZIIww? zGK9F8a-iSzRyl@yU5)Pw31F!=_WKWE>Qy;dY?J@_pKU?6I*8oybFAo#U<+Mynpz#K z>&q~~Yc6BgT?$~e!!xgJ%|4gJXeoZP@@uNC&P`tN12Bql+shw}6OLZ+Llugd@SyeP z_GI{C;p+X$6NP}Msx-gASp;C^=NKJc%%Q@QYD4c&Y7B>!p0wyaOC*!4p;v~P44?~up24UOv1@Cq3SEWwY~WHBv_G&KpWmMCsh!s||L0%t|JMRI z@q{3xv~wt(){(VxDVE_4E!?V68xx-}E$FEJcHuoP>x#FNw=m1T^7m+SZFzi~+P{_D zHl>O}gW?Y_Ivc_=XhCAifJ$X_cQdFK*&%MGaDF7|lkl$weetG8D3AVwQyj}P%8 zzJCA- z`Jw?yRdb;}zcsKBa|)*{PD*Z_<9UtGFit}nvK%#tEjTjvjjX-}v2{fu;-F1c4j<36XH)4J16DMWD95v2j)!Ek>pVhS&$jC(yY~KD z{hnTH)8|{4yq(syE5ls0ak16P98{8!TE#y_y2+z&ad-KTrucLRBITLSi&|#1G#Zjf z?&;t5#w`HJ$($YDnI|{6?{ZAsM?I{$N@N#vF9hMmtIqug3Ob%1S$OuhOpziwQly5m z-B47UJ|57}aKVb1wjBg>*Iff$C12Xb*A919KenScdVCDc_%A)%kf-mE7Ne8Fp)8*R zW3cCw?1i+*`&@c3FrqMT{--ffgy`$0F>f#@`IeynR8zcix__Rr{ob%bBN;FO1J9Kg zS!*EO**~tEGl4Q^8fNq9d+_2 zprH<91eEc%qE(ZRq1RX6Xt%VfI1(SXz}IrgZC5FlIy);&T9)H9J|kF?A}b##iz&`0 zjb_8NW3I>xKY?UHPX2hyZR3_KgDGdE&_M0Q>1Xvxxnnq*Za)8#+eqyoa+%oMV zWafTl@nXr%+03qLW~gxd#T@4ts_~q--*1-}Llg#DhIAAd8iE~L_w8NV+w0H2JsAgp zYbwxqc?rq@`AAw|yeg&gIV?YR^rcFn=G|qmY~Ce)1z4+ zCT)BtqsX6KtjaB~)p?`F2tZD*r2S1mmnkn+s8H{KMGe>MYf4|K88+tk7QY;X1!vNh zoKrq$p3y89tRBIOE8`lYxFTVUU%n1)ycr4BoN3jv9oRCtt0&e@v#mZhO=SPIp`Kk{ zwn?>Lb!6X&O^dp{) zE*P`-FJ`|m*ryaD6`6{OsR*hVwjOHvD$c}3S?t}0=am15re%Vmi(OIa4Z(wAGCyBA zQJ3wvVc3(`MKbW>BhN=qs|%OVlj&|-twjq+g@l3GpCP}NASK@gK0g8fL3X!Rk0u^( zMm^xKy7fQ{YZg>P7@M|eMWz`!za&bXs=y26)s9-1dJdz-lYxl5L1;T7x1?$;YIvZ~ zG7)Yk%Z@GK3*RGAVD3AslRY4OOs*t!d@KgWDrV|eF+HFg^+$gEt2`F2ov8rZ-|amu zcGZm|l{c%pty57y(w_I+x%A5|BZXG3wB@8Flc1FAz&VOAY>Hrlgos$o5zZ4e$Lkkz zGK^CHIp^1rcZu@%d7n}x+6TE_;h*0$8HihC2o6P0h^I`f=X31g8t0KsuUW3`nq!&nPy%gXbJg{ji(b?DbzM}LbPwhd24rQ=?5Z@P zRa34}ITC~131!_Hh&BZXygjn^8kB_d=*=ERS}y3Zzc{nKmh-VMuhk$oB4_@2rCVpni=#5-bUVTxkDo_*~~6H==a;(A#ThWJU9C8%LdirhXmY)qKees~?*beF4d^ zzY`nFHDXfKsjB10Nq%k#rWrSc8`3CV)C<93khx$v{ynA5e)dqcYt-N>X!J3y^?(d? zIws>Q+fEjPAzWZk;fgn{BkZk=DLE$Lrq?#2sfD(5(8<1Ucey}agI)=zieb-+-cirvBD$DhN~wGPaG zEc0lzuG&~Y5wh%1chu40_aK&HmOnll94Y>=i2cXE=d++4VdIl$W#!?&^?9usRVmZ{TH@Bu);($yEm*i?nICD7GDK;cKL z3vhbqIScl)Gk({G-1Z#dh;Xj00fvWDR7m`<#1_?F)*RLfrtx_%pjg?4J z;u;pa2{~qfMUUvdcK!I-jIU@_FtEv`Nhtcf^2Pa5_OiHkn&jr5SPcH>S;2^o`d1QbW z{x$yJYvp{lYR9Kt8byJG6ya2@D+%K>4)&5z)EX4g_7-|E%1&EZIbCODzdYZ+d(tgD zE7mPiM`#qlZA!u9ZNn9gP@wAYU3Ol)OsCl1^~rlrsP2^x2or}|z8B~*WG_UDFeWeO zO3Pz`QV2~xMa+hWOZiyKT>M#|MF4oX(z!6H{NZ$H-^f)Z%b))mW%8FdlUFX;V>OgR zoNbf{$k0Q~7@B;YBkN;T2BP}MFPknl$pivW+ z-8qnIi6QndMc$mHEN0f8DZqP3o9N!$J8MZ^O2`2^z~b%8wUx+i|$@{pk-B2;9TU77a+hiZL6{ z=ZK3`Glk4_1}Z6MDCYX!59!Ky#w+)Rg002#A>`rSnORiQ;P=hNz>KkCmjWahlp}8kLy}YfK)gca&%!D<-Ant+{Qz&9^^te_clCL9c82^?fh3 zwLUTmakkq3CJC%B_~}g@eKz2bQ7SYvWd@n;CtbW!x~TA^;g$&m#9_MV+eB#> zkE`MTsyy;wQiksgAY&-f<6OIC5^sUSm|2rC-^)d7S;el%tn4{xCocwLfX4xyL^HuVM%3~p~ zLE@Lr#2K?{@=c^`)##xfG#ylqdYYOerjrzVZga?ZqOPQxRv`jXQPi*18dUb;!3viY z_;F>I@a3rx=VMaMo$ zuldf<&qB=wXQRsDu5zrPs0!nh3$Bd-5L0zdCIVk)^yq<tV^Y?ie!S}}X`~7J zog{NIys0QTqz1Oku?9;v)(UZV&SbQ2I+eet&N)gJ|6uz32kZnd7|&2Q%a5A1;Gutz zBcI`r!6koDhT8cPzGA>9W6O|;fOSLvV()VNqwo9Z&ilx6pPauvdtquvN$gh;3@DF9?5l!Q0LE`Tfix^hVudG1ip3QHW6A$aQ2bZp>>( z0l9YH`?13PqWs>+Js@vu99!CQ1P-}O%wDZx?|R^1tj1yz+( zM}n(UR;@R!)c|L3y*ek>&1bVF!9&wvrCq1uW7+$)gw=&;+)2ZZdch| zn_fPT(|_r^#JUY?WNUbEVl241AQqSi4oFZ(clAtH4qs}WG?aFjy*D$~bGZF3Zj!;{ zv3`s_|IYYmC#5)Vy~n{$7Z(sd_i)Teb+#GJv`Pm2Z%U<<)OuKRes*NA_~xIIgwg4M zdh!Ea|IPm|`-debb|21*4(nrDjju=PcA}ZXOxI9{2mF{AP;mvM(tXm1tWjj+fXQ{g z<;)ko;*W^Vnb%b9X1h;?lV2Hc$!smxhB~=NX3W%KzxKb!j*n~V3JC~p9&~DL>CU%d zk?~C^kkQj%8-K*j>_+|VmnOR=lg13;m;6yFOD(UGzL0F`+tQj7vvfbyXf>fCX5<6@ ziUio(V`tJIY1hQSc~w_V>ENuX2(~9;|=1WgUpP& zy8QH5M*~5Zo<#?E4GKTW60qzJDREHVKlT)}0r*NV6)!sPAQA}mZ%pU<4}h}J*IpnW zycwow*By>PB9ApJEtiT%rSdoGk_Zi!=VCGKjP3Ba?u*wR3X}L@bW|3Oz&o8*d>YE3 zIg1Qm!eZSF&n+fX#LZwsfyFX?!rudrmX#QVmzr>BaiU`}O7M6JiLC3*|AB@;e~cs@Ht4xY!vFzzR*mwXt1)YttuHM`6nt4U)_@=#ajA-Y$p z=*)$)612uZ4E+>N#el|HKuRsr_Bwt5BFiUT!_$vLrS!Gu$kgO|6M6=s*0$yM_P8aQfXSE)EeZp!DbFe~P>?~Y%+5Cu{g4GL69)8Yzo z;Kod9BN1Z4F(8^CX2PQ|eo&=-0e77=L>}Q5RyL(-4s`+8UtK}Y^2M`AxQy^9IUxkr z!9NndnisH!8?tQWv9ZUutE873%>gTa|U`A}bIDCg{%Ezad*N9Kfj!xiQpCz7ZJ{z-c?&7&^u)& z@3pp-y;o$RYIg3dWiqi4B+AJL!4N_d%Gm65wPGVn2PgH$C}4arZS6*{!~1Xd)$T#I z7K`##bMtZ^%nw{FX#NRRqDuM*Gd2RFR!f^*tLmmWh>%8MH?$UH+a{QEiXHJX-Rw!QUhjSeu)6tEh$~r;|oxvE}wEGGD6o+$3XCPvhL?E^` znyflv8}!nTSCW&xzP%lYUdL9Y-}Xps<9JPJvYY$z*>ja?;nJ;wNngIURUo%QFfA@@ zxdgt3q|HI408beXPMg(n>@CG5tqY5VTqA)sD3=@>Q^9Ocm^Rr)bJz43Pl4J<0>wL+ z$~xZFqX0o62t&N@zXIR_bJ>>dQMkpwdpi+ps#HxaTcGg=s;116l~AC=tKuvC@QTSj zk^x-o>~t_+awx$8iG#BbPA2*@qqr_`HIVQbf`3wkV?VFReXH%ThsrK8R{K`ptme>5ht`QlTwzus%HFL-rfLGm%0TKix@j?Og~()8+2Gxus!e__=JZcgpOq&{ zRk{yxD$7pv$QUK3m-T}%agw0*8V;b&%^D>iHBn!-#zaVLg_4A1M(aWnhw4D@j=vZG z(m5IrkC>ma#PLtcr4Bc$PS<|i8l`5itVp52W-zR;RQ?+p>_UTDN2#zV2_g94;vw1~ z&%l>PF|gK&8mBG-*|y)plC00Km;E>6p9yR#zCNn%E`|L`3Q4;4>F_bZwQYB|@-HV1 zxNGwo;{#vhdXX)##&vz`g>t$x6f3fhY%wG6IB2Kh98C-mM1zGD6ieZ;Qw4xt9F8d` z=3VU||J%7oiKFnY8*Unmy1I_;PkTFr<3*%qPySbr>9u)i=`Xx?LtO>Op23#1+gT;? zMno%A&A+lVI^imyOA28vg6468ChgNhC{gPYN;0$-kLz#3M#|Iq9v;1cTT_ox_J*gz z!P=6vQw9drl+s#}ENDHCUN(ASpb0^~@`1;%sq`32(;o>2phPz^h$&=xL{WLhGd$;$ z5CaC*2RHOX0OPQ&p*rpEBr8sNq0Vpi9rP~vEg5joq$)8x*9P~Skdj(%jB=(6_x)Uz zUg8zb;MdHDLGX;0Vpj7O86)7^J-M$*jef&PCQh0-B-+eaO5yM1H|12D7$ z$REiG9wZ}d#6!A2)R&k4J;K;}yYAm1TG!2In>pWwB+#*w`qYq+= zJ?&5FN#Snezp+2(-_<#}6C;Qc(=9BG0!VZRa^b8k>IJOvh5OO#5hV%3s(!9}*(|pH zeAuq}7Ik|?`uV-(iuOhZP=cSLDtY`XHz?7fo%W zegeVo0Ma~E#xFMF@OgJonUm!HRI0>LR<8lH%?oPr_gsTPQ*>Wjw3==GrI@ZZIJ675 zyh-u0I^pX-;2k1X3*l>j!1>T{R`W92HNg58m8ef&RR=Jqi{;Oxrc$8jNVh}<|KOS` zSZ1uBe4~dfyDr=FZX-={l*oQM(A#aeg;m2$NcxXfCwPHWz4d^GTekaHi^$e8a_+9cx52+`gnS21&mh6=_#>eOUe5%Ed}PC&aHqB^vbgaZ83dlOE{ky zVKIZ$F`?f&`SFpbsY!p-7sCUFPr+?HGe;N4JM#sJ5mRg`FkWoZ?AJ;ZM!Z7H;YDd`;Z*Y=-KZTKWEJq7Tnxa3yrGC{9J`gb2kI6*Xv@lj@A|` z7U^dEB+7*VrL-N{`;6j2`PR^?(1DbZy*3PRjN6}ef+$3J9^!Ow{GDosf!%%ker+-w zeZ7e9W}l8d?=Q%&$JZwDu8DO{XhtsPK=Z(P?^IH6G|T!37~B~}B`=TshX1~OPQco6 z#>2eWrmgGQyz|u_0m&xp6uo@KHZ)=Zt{IA%0qNe-#?A{fff!^buIP5_S3tngBPp&|dtiPnHJPk8F|#=Ad#vG@r)#QtnU=;)QiN?&D_ zhK5+FXB@&ZZG&$&VQ36KuSw8;rcM5!){;4n1-UK%ud8#JSMc?KSTR+_5jn2Wfk@No z8F-hX7oL?`3dAixnE*_q{GrlC6ciKXVJAJ;M1{SO2N}o+v^hKmix6wW^uoR*A z?y223#!l-zFEJ1fnec6GY-UHq%w_?Qyh z%P``)C*J|bsTePitwH*Sy-J!0(o6be7FRmsj%^o9-}ig6hiIW%dqpmf$FY|i2o56*(8t*OYEU$YmLn3uUiH17 zl*Nf3zT~Z=+V|G^9qrfaUTu6yPi+D=^3wmMNUQb{aR0pDEaI5+1fQK9awGA2JXQlN zD1}w#vkpk6Q%L38m7FdUUXq{~P8ZgvREIB(z-9=O6i2n@fTF`jrC#kGSJ1xyVfZ=R zV_vYvYXG;5<-WrgDns^;GnKc>IzK8s##uFQM7uZ_>?4NxMLERM;R3loLj?Qn{J!hI zdX0f(IC?Df<82`Guve*By^gGvR{n|Q(zH&A=?(lmJkkn!0Kfd3Ci8o>bYj{Hu!1~Z z0RL%MVu-kzbvq|OUSk_m(?|F$Tw7h1^lPhyQRXq@F!2-4u&$3DmZUKe=uKp}2Z!Rs z9LZa}SYl1*73q`5rKwGraC;G15<*}VtGphi(b#Sev{rCJ;#?>E<^+4lL5k(kc}rIW z5f9O08#~JM!OQ)D0hs~r4w8odDGi2uMi`1}jI>%^6PztDmu>D?9`$aVG$AK1@DYfW zB`irSqcHdkDy95$t{3UgvOR`!8DF8icDrLPxE+*hxI_z)|coZw*oHty*ae9UV)7NLjj0kJz%#Ne?8~0eMzr%&n|Ni8Br{ z_;k_ttG76dGrscNs`qo>dt<2t50Oh26dCfr`kG2pdk~q=(wYBc3OACOuimfB@vc|FwTP#s*R3!mGBd)$@ z&Iy)@&7O#oy^zrIkvgFb!6nV(?lePMz}zq3 zR-&18cHA@=YOHaFGxLhK#fZpWig?7>YS+nHR=HGUcLq`tVePr8SHuQ0&)L~pIow^^ z2-a(tUv#ii!_it8mSBO7m0R2k$Xb#^I1Cdjvv9qaxkLj83!rIc;k!c#7=oW>Q8UTo zC8D(Bqp9i_O1+o~_6+!3$CnFd(f88+7^?kEWDHH>p#Wb(Qix!e%7RZ_VS zacgU@=kpDCo$^Fp9&;Oizk(4EW-e;GTa84{6dFrR!{AGGk*8lf_{lFF{WXNzd4!c0 zFK~n^A~8?QE`8bHxIVLe3807iq$E*0-hWinO$1+d{w>`MCxXBxaX(C1Ll+xQXOoS+ zEcu;lvzA0?8fl@PI0J{MMxW2f@TJwgK~&iI(yy!KLhF(I99}>E^sVI?;q9E$^*_+8 zd&q}U@8n#7Xf^3ZKGqTlKCT|p^t@9-A)aS;VPAap>h@4zalMdw8TtHGNjY^DZy39jr;0WoFLB=|>TqFw~ zr0CZN){Tf$_1f2wLJeR=VxbQS2rk#y=b(CSB1O}_7Qb3`|Ecj@q%Gs?cIISbQ+Wbv z{bB}Y&pA4=suG0YdrzcMg{cK{%3yz6=w3YsYG=P~ZrI$q91j!xHL%9}6WkfWk&*?R znXaQ4l;R>S_+Ao4*0bz)vVRIT@^BXNcII+I|8^0`N$m+P5E6-k@7lNJyePNYI2qRZ zYs4pAIs^UTO2pjT(A0c8q1kv7^62gU+($z1N!}t*%#xV!8`eS|I>piP==NU^d?`Gt zt(1ZNnlkgtDn?x}%gfV1 zH@U?Zmmlto`Mjke({uG$=D_j7lDS1d3BlW2?Uvp6-*o+XlfAL>2Bnmw@UB?#m zDqMN81%bbf)W^hLpM$q{}I$hgdwRoI{uDWKIu3bw&Tm zzNNdhQR!A^0&Nz|#-UR<6}^fQfG47dtYPpAR1SD@#F$WRj=v~Crn5%K6yU^T$j@y* zg5xU@7f>;Cy2Hx`IQrphbBdzJpbuB>I?%h(R6V_^>E(DV07~j$l7Z!^mOEvpwHJqK zoa0TlCQtmQn-zz#jY3-vhZms@ zRVyRsK`b7O653ldX6L~o?9^KnF#jqxMTgX^YB4!&Uh`gGeLT`aPf}j^;m`Yj1H{aZ zrc?J#4M_Cw0L!VSB{N<4qz)YqQ1>spA4jEe<;YC>hMZW-mkoPQvN!X!)cX~+000(y z%Q*)OiNbORHfN*WK_nc7D{;lpu&!L$^UeE2hb&s?sAZ|6IMO7qnzRI#bODsgDB23@ zr#*AN+L9rHfMC-l)~xsUzP^j4iZe|*a)he($9woI)TaxJhC1!V`sqQ^0+vA>ewPa7 z22wt~?WR$GgAOm(m(|#OzBN-mJE2Ux-yw+Iu->!Pm+J_QsMiQ z8XY@e2~;EQwHhSbJsMi&!b`wz>=!8S6Biz=FMM`K*qI6q3NQ7mrfumntZFR3yk;m(3syH{oflERwsM{#)=HCYCe`O3|zX@>EaNqA&`QoR#{%bM^ z)YAP0iGBB<@udn0Jq9=(NTPP%BeK@1g=pR&G{ zB{%8}kF6ELeejNiQ-`5$lt{op5W3EHowqg-W_9&t%74sTv<3*dx1 zA36AOQ?j$Oqx+c%3UtW?C^bgG@;!&*_80ep?;?hRg(e!04r$UYyA_{b=|O*)Wgg7b zwHv7FQcWtmzRYG)9ki6ZRoh0N{~ZZhVK|Kx5bES z&9_kgORTgvlMUIG<|K48Zbkz332B++f`v$Z7EIu5#$Sv!)Li#{O9AU17)Oe%m4L|6 zFNO#tc9`GPbO@&uZK{Kvt-bc-0W6IzoBSIh)-*rJMpV)FkF*Q_!>t(*f;v@p-=a;Y z=`?d16N7^H9*&S+^HG4u&1vu3_D1VNDaIDaelg0krylEbJPo{#6cKjtT>*63^?f+6 zdG{k2xRYB@eF9K9UjWFjCOsyyQh8BdmwZU^prLhUa-k#}JMEq0IQzh8KOtOX8U4VA z)g)AZ83ZSkwZBGH){DpLBc;HBgiO5R7)%Z?X&cxd*4}z^YTUD(H%+JG=duC!C}1lO z^T+=d3vqbo6SxO}zav7`Fm@zFFYC(IQe2DWgHdoM>Yf}LGYH@%ty0u0b{<^}+Rt{h!pd0W4Jj-k)+xjNmxFvl+Fg4L0Gy#2k)XV(=~|G+1^PQ|~fQNhiNB zyr|{VOZ;qsC^?TT?JTV@ic&xs#-CuiOj=4SJId;4xL7-1r3IeLh5EcPNmvFu=U2kt zGn?xDotTg`5g_L~>vTO`=6@!sd1=pTV=--@_II^YJ&5GnOZleo9TD-naFip{bw3ts>J-K(#%73v zZp~>|Jkx>7P~ZF1$cQ(V{~e&lO`2!`UKKfN2RBrJP|nmw#|q|AbIK;5?K|0}@>1Lg zYnW$uN(+04p2{~f4mpMG_AO;b>jKQl)ykT1SaqfG&Z!}v8H==}dO~s)Uic{na`F~- zL)!19${|p~XVN*P1BbM&(lnfZ5}$mYWON zA2O^1!d2B2>Ipf%LM?t{Ewup`42x+@%dD0*2zuu`4Ahq?_yr}3GWBE_rZ~=!{=)Wn z&h#DZi=4&#*0)V^@^jKAre93|Z0^qo|d|(oFh^L!y zycj+FB*3i1%|&UQck~x42#@p=G)^F0L5idQR3yU|&M$HDkUcu4ph|p8PAF!_#aQin z)KZBoS1DT6pDFO8q_#7vDV+8Tv3psdk0jIoSmJvbK z0mYn<1%cq9atyWYPbSk=#+{sO+%)-gy8h90(74EW;Q(JhNN_Ax8FC?0l4+?ztEvXF zQ^N98VJv1S2pEc1>|DPUseUFoQg%XPQ|BREikfA`(5ETXE+N%Ln@?DQUFeTcrOm|M zgGWn0MsXq-YxVJy-SDe}XA)cQvL@$M?VmYCLK^N9KWUiwl`?Lv*J zSVP)Gr2<{JmC6GJpZFx4Z^9%yErHr6^=(jhJbM;S#z1*_W3%p`I=GMTDJ{g`rs^gQgPzq2*m^GW6y=+ta`g1bpo?{=XMKlX-o z$(}kX#4lq3UPI89w1sj!nC5oyw})@V%}Zb4;@MnH)Rli>~#NT z0S4&@UIxqjuMe-DITpAW%1VMwbM%iaN@|8y=Y+sfsn{X76aZKPT#h8&`#-42`fe5Y zC$kmsk#zW#<8}!1UA)u1u8zug z9hh%D47VAq+X)fc*TmH(A{ld<+IwdGyz|nt9Qi;DNuTFi-M!C0f~Ab+GT;pYi6rk} z5*k#A7e2AF{{TH)`Z^g3`|MtZoy4{P{RQ*9y%?76`*n z_*Cuv^1M9<;a3cT)X`q)jfPzZ>--r2dBp@oQf68NR`dzjGWfT~uGqwGz3(g;4=i@np5 z_AV>`=MgJYcE|h^d9-thM%)QqHPR5=Y8kbDA%F(si(Ae`-K9n)3EF#o$IGa;$2j2t z?NEJx77`^l6v9y<(zSCSp*7lBDM}XI%aG3!d1%*c%PUgsgs^}Sn;ipx<4+tKL}5i* zoD3+FYTAV+!C$U;CyCb@7A&SpaXRb5Lgzit=)LaTum{)51z)G&D`0V9YZxggzb(X= z?X8cykygEgj1QOkp3SJ74h+wiW`$Gy4|m1>Ob`UP4&7LFUe9{FXW_J>ig;AAm-Bbs6Z{M=~A=uUUYWxfRB-w z`Z$v{roYX7_wSR5i9a{9J^%RHS)!Hj^Jtc|uQ*SjdCeWCni5`b@|t+<(01J{ zi4UN_bOB6z1J|JKQIZ%cXrog2Bde*R-K#Eh_>LwssKFqy5CSY+O)5=NJ=RL7ueFzK zyTg#2C$S^Ht*7osCap4a%-i(qEu!mn1g*EaX9&@|wlnIQS{C15gktgOKAg0q*i((5 znDFiVQ@PQvLJU|m;xXgFel`w#ijqrSs%xj&SKzyaRPe{6vNe!KE#FCyzA-4AI-^R! zgh~#M)`Zin_kkc8q?2c)u+W{r!n3#I<4bSC!c2k3kI-OowL1SVEzQO%yq7TJs52@l z{F^uM50$<|F$b&9O}!D?!ST`nNv6bV_D9HgXb2BxG*_wfP0XrD=WW|QxNCQFtc1XD z>Dkbm>rt>M8~@8%^PRi=1iOh1QGI6yBPH5}>7fdAE=GTutnM#NK)fB&ou!(~20Au5aHV;N?om(J3=s>idDL%*eMAK{)j^_<3aT zu%l24{+tkYF}t{~Ki88{5Il(3NRL&4`OBWvZv&nd8%ud*K)JnX?nuTfE&-G%>WT$v z@OR=Lzqab_UbZ{-hTB8}+?#l8WSHNLZy@mo5M%EpQlGa{$a&8y8F%tWzCB{zhi3;x znit4%SLflPMQY?P?^ipw*^T^>Mx(^v)@o0n<)GK`0F+?XpRY6s1mDL?cE~`Egk4u3?2uI56xUm0uy&!va;WlBG_SWIMa+JU23)1_+{ppF40FN)u z;?H6K0>LbP%y;Uh;rXFJqqgD|L$DWSi*muS8IzCNd=YF-+xfSF9>0f=Fv8)A`Oi8C zXWJl5Qcd`s6(ROv%_yr8g{LT1x?v1`6&PDUZl*kK!9La4&&=W*Qy3ytiaxl|BR5Hl z-|XPCiCQa@ge-781ajFEoHa#~U;PWt9$*{E}fY%Tt3KD;ppVpABG~BPK=@fk<a%QfMH%W5!Dr?9*y>fw0U^H5qI@Mx7C@D{;SF*W7h@Db$DBwuL9{nu>QFb$Z) z!uQptQ-i639|!J`cBA`u8^acf!TG7B#tITSG1kM|YG){YFMm)nvOG?;vpa|5pW8G~ z8yZSsulun#`uAa>mAQ=(19<&(!2bYY_KR^DQ?5$pxJKiI^{8b#BJp7L7jyo>@)nrm zagG!uL>X^5{f_h6vnx`h)yd0FT)vUq@92&5A4Lvnedq!2*?Zj)_1tZNCo1%MyerGF zTL0j>u;%6&dL33@Kiu>QA^?}n*!@N_8wb}b=~xe3JT#wlpE>;b{RY-Qq7n8GJBAml zgr#`*CZSPXSR4HDPz7xS@~%GrNzq}2B(o0-sjS5^DrT{n(+Jqh7@_fPOO)d$gpod0R1?^e5b8hSY$WmPH`Vg756YIixmJ>5 zS$iHG_}-VD+T!P zgsd-Ug*L!MTiFOdh61iNRB;UMFco56|0M}>2hscd2)gQCUaNm&;BNKTy%4dBBc3aG zujvSJ#CMPAw3g(6jWe?$%N5bfHV$Q%&EYfXH#1taEoDUeIhjaNuM+l*vz_+KHx1{f zGd_L-s$?*KQ&_v>H*XJ+qXl5Ib7k}!Mly$XBa>GPUwVu3#sd52Z@|NgC84shR#6X?5#(=${fH`^A7|p|2GIC+HRB9i{HY#ntx)Lcj`qptbC%3Ai)vyTv_BFL3mLM$8mfJ8rjEAqu>`=$i?}Rz%u?5R3sk$vjcL4fg$$=0 zY%o1m3A&|5syTCNcZRi_5`4Ehi)`+t9STE(`|c;;4jYJbzWc=*F-}3SIRmybeWpva zD*qq&0%Ala{Kfe7)Ur6t@BH-Zky03-Q32goeszP`E5a#Poyh*lVwFNfw){J7O9WrX zh4b>SN_hi~&xK_bF+Zt=>2jaB*WYJH*nGD~Prp(S%84^^pjlyFXs#5H<^!|M=Fh%K zuVjiLl}cgZmbEsic||+9MclvF-67rnSHcVMnm?=EtDY~fr}gNG??oAYi;X${xjvD< zzvkX?03Li+`CHlFk2JxWib6(?|f@$;4Qg&=MvRD`REkP;EoNZHZH%~wK#Y?48_r6 zvuNKVoI0@y&0G+h$@#ed#rM{C(;KwKeaq7=++I*UETC{50qT#(?H?_}N^y?<8&v}U$Xs~7UcvMJn6d+J&6EVh6SxgBf%e~^8l6V>>my7yL7k==%XPU{xa7ju;K8>2xjpr>%|*3G`E8Az)G=pl zHFN87PFU$O;5tO6$J;l+ZkKO5u4SC@j<8~$APNZ`iLkffU>gpR#suns;@61yScb#- z^qeAH(N3}N6-!>y>#m*yp^(=ikZM6PwE7DpMi-dOY3XU)saC9wOZi*R*;VUI7YBGO z{>^(eBX(x%RiX{JfzmXIaw~!uKK|d{UgsJv(q|>E|F`6Cuz(>%@~waAARoNxNavTG ziTnR(`UMAETtz>mHB1Bvm0tE*3(W*055d`?MTfe~1ahJdEuWyQpI&5)OMcZchd)hOW zEAY6XM>7h1_mCpv3rn7j3~GJ`j?PhkRB})< zU<9S5`W9-;Pxf{^s@@_bFIJpIC-=vK5ASM^-rg9AoMPp_RJn>~&fiQ+8hvF5BgBjC zP|-eHgapkLKK$T<5gjS4Z@<#xIVqb8;yh@Zt)~lY6%w$=hXzXNz{>llP^=$H`!^jt zuH>Tst9A03zy)nVN*5dD-~09xD_nUp(BapLF|~HuzXR?J7rq9u(tkvcuKU7)OdDvh zaFd{WixXCi@z(4af?g;5Z^c^;Pkh1@cJN2o3`x~$v*uBOszgHL@F#bjQ!oil zm^Z>;P-%~t*9>TBegAz0U5^>_7Yz~eIX^l@eYX!4yo`2(Eb;|fB)iUa@Xei_;G^{G zL3G#2UG9?MQ~$zC-#^}~`0l(~e!aCHJu1&5C$r%Cht?m^2nfTEj>Uj(*8dXi_a3I@;bH>zP17HH%QPu`Op?+;&_CL zm6Baal+T?Oj+O>**UI*)YV17;D71ek4MY4Aeq)P@!y6_?wxSRY|4ks-orwbfizf`3 z9SY$Fr4|Bvz&6%W)QTw!drb|0J*sAhDC(y(9@~xdU>%>@)1W_QkxgTC? zLKki82hMoA=zbd2jf*zN5L6t5Er+~9(*rD$UBD&4^QHLq`!am;>$0AbfHEludRVBn zXiOL42=@k;5})s;b3>DCou`x9&VtqbW8kMrJLmkI?wh_-raB{i_3n}A00cyH6P5ut zhgH`w3Qj1jO(>(?QYt-QvIFly@GblaMFGe3!yg z$!UK; zLPa}^ZG5}|ylgob)G)o@G~*HNN`H&x(sgKK&&c}=sw;8Xt)716ESmArn(JE;>#m@z zBciCvL6I9xn2-_WPT+!RBu8f5gk|p#YWie-;W+i`9Up`VHnT1ba}m{~!?WazS&00P zTqwPF$=2v8oKV`vS6Ci1;xy>JzLW9%3bu0y{%jI!!a-MbSoovKy8p*w{6d`KD>rYS z0$BUC?lyQd7-Ou4p)dsacn3D~#uzmc`_*5ZZ}SP~$flERiBO>55MNjvBMGQZqM3Vpg~KO4F*yEGtH_>neiK{Ejn7HS zyKm@VkdhwaPojQu(}|2W!Nf|?TqRw)3RoHU!66;#!c5l4^tTfl@X>2(%#WcA-ebB9(|;W@*?|WVPZJx5wS%^_ExCU_fGclbP0hP z!w)Sr(`sjFayZXDnJlAR)2BzTL#tC)M8w`N3=whI1g3)D#=s%Z`Y18~9QEWM2!aQ| zzHW{>i)sraHG|$_(NpNL_Be|gNBToK5C}sO(R;{$F-LmSO(KUh)mE|>68-=-HZUFE z=j`NoUr)8TCvq@~aUTgn`ld#7-F=0aMBJ^{i7oErrD{m~xzh45JzN6X=TEM1Wz}>m zGO)%A`1G24Sl>}LH}Tu0CcTwUTsgDWgSPvXgG_=Mz}C8g7G;Yvs7q(V-XA!71mlAx z7BbF;rbOhPqn5cRCy>%AoS&Ulz*l^!xUD8pcMFfpYW=>rI{m9<{|Y)}%{ zoAzIK;amBoYhBbov#aHF&-`ObJgL}#cZJ0~SpcE_6EOg*oPl3ConNcPpZj3VZ0FiD zx1~N0uj#&9ccb{*?QhF97!>6`3_|I(Y(7Syi&dg3!29Gjxg}@dg{~+{WgL8)zupQp zw<;Yb3<+%mKSYkghzwz2%90Thf(&b`q%r>G>G3iuuWf0JQz&Sk_a2s`kvJC993w!0 zYqvJG|2i>3UZ@uEp+i(B68$SwjT#d$Tg}VMz(Xq-{a`_i)Zx-isUOPW0%^a=4AUo{ z81) z4m*R6sKV_z=Dm48FdyyC8)oR6VmXAgf+e@f3tbQV{pPk`2a#b{ zpsvQ~;1Vy5>gTX3nxJ^d4->!?+j)jL-da4Vf1qT0EGw)HODj8Uu2An*)MQ%uMO##D zk;C$7gK@-igCQdVk3ZxVfykIuxsh%ZJ``^`U?tDyL89l3n^>HFJH(ZpI4t=`;x8KW z$T+*RfOXPmU8-hl@;wD*`60ghZ%n((3_~fMNJNw_@WY$9GaoKmpPw)7M$E^GM1j7m zFTErN22)UZuuRTb*sh3A9+@I`g}1K#sd5suJYTA434I)ojxc- zA^14%Imrwz6O9KzQKaVVAuV{yd>;5K6UuGB#v?0xBe^6=>>T}l2YtBlubc-BzqMc1 z(EYN@`g~TZpl)hUt=m43Ll{fMY z=lXfEW04_>bEyiYk#iu!VdN3urre7N9M>5M*=Ucc1x4b5!79UiZQdI`@*vs|(ILFD zHiswf0?W?1i6MS6uT(^re;=)pp_s#<+cd{Qm0ejLf#LoqTy z|9IcOg=y@jXBO)0=zewZEAdpVIlh#_sE^Mu)%KAv!dVrtK3@$<$y! zCt)ZipC$+(OTk$!n5a&B8(DOt}_jsV9zrTYdRUROU+YyQ_! zZMzKiP1CBrH&|IDjETfWW=Hng3u?musKETlnA2d*r)d~Wi#%^*bl(Q-BRY;i))Kh7 z7_ma2tA7nL<0J6YWkMw=_=O2CZ^UIl@9`&i8q@6Xz-$hS^56 zll!+hIl?RFSBBa$q!~#TNWD-{NbG0};t+Zgf9rV;l2O-l4<}VgnaDiduiT7MOaoCE z`VeEHdo2I(LYM7Lf4lu@sYUH)L%Vgjy+*a{TT8{~plZ~dOkJc!#cD+9piKn$9XJmkQDKai7YzH#ep zN(;UmAc|ii%O&OmtZn>a+6g$qDya=y$DOo;A`gQ^p{v5+R1Pw~DK3rwe#17WHU0IV zMN6S9RW$bRWLg{Zjj8UHL2=OZ6us!1OvFY<$%vcsC`yn;E%1kEM}C~La{W{-USa;g z((WfQCqhs$6gGJqiobC??1?2h&55#q^LFsy2OhJvU&+$v#d9~#p2v%50UxS&#Y?DS zQ^+I9uvreL0N<2m)}ZSe0mWmXc82~?t|qN!BSAb4EMjsS2pDMyeH>>~0y{mQG!n1E zg9{Z-U`E7@J8TbXla;T{SB1-}dJ2e%Q2gppcMP{9A0d+7x=ejz1=3e;65_mB)Sw=W zH|kMZHn7@zuDShx0F-}Se9Wx{{@vq(+v$ZE?wgoLf#^Dx!gI2Pzaa|1PK4$-M3N|M z(M5%~#CmWXc1m?h8GJge{hl590qpsT;S#_BX(Uo(I%}%`<#jejv;bX@whsixXOe0M-0>j5}V` z)FlWC>m&HXv@U1&l^GkFZs=T-%~v=&&x*}(n7}>+f|An&!c~VkAx}cW$HblEVxrIs zcw^)5;?%!cL9e&=bGgo$XgB|#5IE6~f%V9(GZ}#QZji0$2PAI53 zzOQw=2L0`xR3fEEGtZra39-d6;Wp_L;ijgw6C}v(V zlp-&e2BzuLN^?P=rLm=lx@cX7=#X0fCh}4e%{yq)N7om}_yS9u(*T3q@(9V|067IM zp9uTu?~?;@`|D8x;r<_{Ea6UpOFr6w{nDqu33g#WHmA`b!eQ~5A<-6$P?ORVIpVv7 zA^hLmL>;20+#J$x-=lj7ErO<$kdN$Lpu0vOydYlwLiQSJ@&+g4iNR1Jh)cuG%{WT; z%i8@t^3I}bQZ1rsH9l*Fb7e<1-$S-cV>pVrI6ZCj`%EmAM<2HS??@!u0h14VNk2rM zPO@L|osw&tLh6do%|c80V_?lfGfr4P(gFP$M&9;TNStr3hk~%YvB!LZCR8Ma3wz#vZFRd{-l+fG`$_(V zuj)nMFs}kGmn^wyS_``U7LyN_F4-MV^_u(;!bx2HF$(9Ox9ru-;(IU2lIy6pvc=@c zo4z_+B3&KGf?gKJHV0&Ac+IZ_sJ!z*=d4*pF$;6St&XINgxGjq>NrWvrmmPE9!4}3 z$|QV{!hE$Arg_lWkY3Ic;K=fVccCqhXQM~F+f+|Ik1ec}#l(c*?>ua;83#UE898&h zZQNeVlJFS3Q`1K_U{KXgoAAYin{@$;urjhvOGKqOWTAvvOYjZ-)Spc@LR?MHZ$=|| z$FJ_mFFVB}Pwg#6f-41fzI(j{BfXfPr_qv3NUB{2x*UX(VTb>{+CwGWh5Fl939xMM}EDq-P3EMI81KnIb|fq z2-&ye>&ZC~TwK&3ATO2j6qG2(kL*N&f>N7AD>9)x(}lU=L-jIaiVwt8d@ z4VJ*{^-CQ6w@>nW#nPEQekXB_m(lX)gjJ0|wzT}#(y)qUF_TMAPrW7j`<5;caaXxM zhllvUDAO^P;kD)B-jlW0r82RDHkVpcbNhj71@K1%62xmwT>wB|2aV)2d-KlvOoaCM z(6$*C>*yVx6EMJJFYj$AiX zdox_vCB8RW4uFyaF`Sy728;jmr+`%7eDi(|dI4{$F*!d8_xDbDmMku<$9QZGK=p5ymd)sP4I*prbF|cv5rVJ+ds21gWNc@ZEZ7_8&(@vrmy9%WNc+zr*S*vl@sG>h`~s_fIJ4R( zbXNw`f8dB(SoS=3m(A}^{Yc%bAEXHd&E*YHXOKP%h4hkCL%XwwxX=T14a5pdlf`{{ zoTnZl6LjNjH*8(d+$=cTkp z66ds$Ok_o1D$-Sz;Fl#<1cU&=IP9PwWq(!}!_Hri&`&h`q$Ifx+AG>JNR67&g9ts0 zb58VxW{t#mZCuxlSl^}J>{Ulf|8?wx64?L zXX!x)HUV32&S2SJ_6e=V<&!UMQLBgq>9RGW&kpZ}CnP*$Pvw$F!qy*A&n}_9huZ+1QW8vpL#o*T};2WyhXIT9(S2#d1 zNV?;fe}OmM^5OE%+K<|&6};|5c4DkV6wv2qo1P#aze+mv+EG>?Fr~kk{>yBTvkh+^ zO_`8_;`RdL5yUCAKj&mQR2qbJdmYJJ>K1Z)i zm*9R^mrR|KQBODYXl;xN?h&`H;Y???HK@|-AL?rrsv_W0Aer?DP6QvKIwugK^-zYTyuqoQ?`6}m z$q|`Bl5PaiG@^3SAHI+xk4Pk)Mt4ogaWY@he;2|jJ#??#Z#&=z(Z?KS5Il8bJP%i$ z=b#}9V@5e804J}ZodGH*>Nq<&+FhAZ`899m9Bce)P)p`_JaW-cFGk-g`4riCZ@5qE z)NUNB)KkDTgo>~K%V(s|1Q8kn&L+|2t2*Bb!q&4rWw7bl@?b-Y9gh5-Wg)^x-xf~g zZ-7EJo88^&Q~sNf_qe7JhHf7*nCA(;UH>0u({C=!%l+|BX`+6CoEh(ahzDgVdPZl{B0<=E}Oa~Of`6nPc~mgQjJ;6`_|bm(wRG` zOY;8-Kx(k;Ch(@kIYZhz3#N^}<%ZiQ`FW+%Kg&qW)3WLQa%e!;`7OtmOidihK%g!y z?d|KZzI33>cCRyvv#<)jN5V=YAD{o!bx~l+Cv|~h3aT8;cnIX}^PMh%>G@Ju%nB0} zdU(VXrBl*D84i_~;WOf24qt3QhA|^uL9RK#rY)u44@NmBE@PhK4|<`+q84$DUBY|6 z5b`=f?F2e)bU_|mU03Y|sMYBEo5UF~(6PFH%j|Harqns)PQ5HcEW3*uXRsV%>O}B0 zkG@$4zA3JB@-8@OS@x;g%R9jPh1ccisH5mM1C|-zmD&@)-F+{2?U96n;LWqXYjB)% zthA-A>oXnlkV!r92?adFm*2&rkFly3oS>%0U*PwJ^#JZ*r7Sh264b!Tx`J66PSX`D z-p+~m1n)XBtF_-x!PKYmI#Lg|ML+X2>2dIdS-kZY zc~^OiZZEqFT*S2 z(-7gsm-4h+yEI7r{@h7DRg2aVtlI50tStnSc<**y&kLV9CnjqN$}bSK%Ax6XhvL?e z4gLJ+%DGcB^4Zh!v68v+wdy_zX(+yn;RT9;m)W zDM%E+1EPT){>f>K9Ou(Fk>CI)kGIVm#?9yoF#8+c;CZ+O0b8SrkT1fzIX@1 zCPwHVios`=ymKYCg31f?4wHRH9vu5WY*h*AHAgdNB>s%Kv9dxRz!Uy|Oy>rN0Pj{d zrqK*ORAXVO1N`59FMVfid-W0vJpVO%GSkz=McchEkc{H`?d~L5o^t45#!7^2EPtp^ zJkwESTdUW{a6DN_Grudh>9nzoQNA(EqErKW6wt!C;_jaFX2}vH` zE*j*V4#kY_MIo>ZH=f#8l2Hw8_FB4XO+HS&KtX%eJH0}a`@~(DuL-{-Q{%cUT(#z^ zNtKhodbE&gHiC)+$XD;Q8tNtl`*xFn?4<2)^w<2s#Zwe~2^M-_o1X(6RbTOt4F+|& z;LXXAGI%^YNLIV?-~ndOzIg*iyiMJAtEZ0ZCi;g91bX)-`_Sz70b9%!NCN1;8%k+yok&tbJQeYzmCK23 zI8Fycu|iR;P9rA`d(oBfSM}8ol)AhtyOD}0YJ(}vy@PJo{hLUbIM|Su}taMqj^JC9rJpHTYVy7xY72@b;E7g7ttB+C>bI>tk$1~6TW;?%d zLDBJG3i+yle_m__gCoGh%hb#Ym)vZsl*kv!HKl<;KD4DE4NJg=ow}&=Ph61t9?S`j z4F%pU@I{B>=RiXDn&RVQa+$#4`TydpGkP)A(E|y6Sn9duRM(a1q;W)AHT&L zFD)T!)wN8AT#tTEb82QHGCviOXKU5iN=|2YVu-7zcEiP$LJ7z$ZHvXBXu?M@h9mY# zZ3;^eZh2#_(OY^wI=cG^{kgPnxk?7EA6een=>&saaea(pd<3Gf25|5JFj=2i3-$cl zo7T~%vfW=%Y>DXRX!16;<@lSnhdHC^D61dwNSUdfd;+|D0jc4ybcPPCf( z;(FMn%hFMcdDTk-)qnGs8A!zo*z+H3Lgn@4%uJiVlxbOwZk;8c+rCG5_aCiW{2h5M zgo8WjJ)2dC<;RbrVDC?K$?tC>^%i#V=_Gq3@IQl>beLCWvR|()e6}nSbu{K(mAP1d zDQpL>#I&2pp%zoqMr&h?iT-_cy?=7>X3KmTj?H2t#tXjhlKmpfN9MoNxszi;PW-t( z1|$r5lGd@83XON^hA%J62J4-FczCv4l-C=Swl&(>VPnu_)w+)g=x?9Cw8LSid?=VB z2o$EezTn0_#oye-8^WY1;92d+@bsRW9*3t}XU4cxaB62t!P!-~W)d~Az2H7;=~msH zuVLm)3#miB(JjU{cG&ISEhfl-9-dut{C8Ta?1Be3pN0jWO?ONa<|e5v(Y^2F4{BLi zy?+CSx&Q%rd~G&DDYK8whoy1hbZorV-6a~T4i;R_q@oB^bLGZjb||pNcPZ{pne}8` zG#(})pU9pWIWzr!^*5bBRlG0fe^KRrf1VVMGr0YD>sj?y(=wy--p%I_iK7)n<8UM| z?e*_p0L9)H1)OLJL{?|Z&Q>}JonXsm-fUGf>nF34+COP4M@U&b&9=FycE6#YA$g*J zI@sqRCXbboqXaI_ibK=UL4Q`Ul{IHMwHYZ!wRY`Ae|o$z>)ZPlja2>H#~*V8l}%%e z9N6HKHXtNaCX+WFG6plid=u{1(9$n!q?^?Q$4z)tQ}n-7)0k&+DFt9#KwX8Epz%SEda0nb@c*-hT9eL*!N9Ss9wQau(L`3Yf%ij0SPG7P8% zpLK?CN?%D}gtDLmCByVHECV@yP9$$HWk&yROlIgd>dk@3Oz8yaN}$Gh9qQoTFB{8L zA}x5VCjxY{BkT^WtZ3wVX+0lUBmTvo^7^+!>_UK7OppJs1xQZzYAkyTx}|S07-H!g zsVvFgmq3V(;BtW}P0RJw`pn;qL@azj=cr#rn#;Q>YnD4Pk}abq8n{@+x|sAR>;XGZo!vEaIVImk8Mu(cHzN)zZBNl3B8xV2t)+YI+PZk) zhma`|5!lI$eoMnmg$e}+O6`!7{+j82JNDz70&j!b1s}p#8KmzgC?Fl0}R_~ovu|&&(ZjYP-CJ# zxz*N4QBaLc)S(b102_1OG@OgNCf8qpO0`+-e}h?Y$tw}mf9Ex>eaIZAT?Ry#i~lV- z4SnC9r{~UiDrnD#zP0dKujc)&|K%Vp@O`;e%ZLEzcsEC@f@RO+?Byu!jH-q~=qTm9*V}c-|_Lcl# zM87adpu?qX^bGVq%Ij}(;vHY?fLo!*9rOd*y;S31frsMyTSf^7dp& zBTdy>yVeyOhCA-HJjoxie~IG@<+a3tcz{{gy*Yq91cK4ms3ILhlm!V=fWulq)s@gxkt@EdxJ!>?T^S?7R8!yIz49 zPwIR0X8q~GOUC-#luTrx&(2j<4>W%{4)e8PjJBSf?b@Tfh_?j{53XZCWIOsAGitW4 zYe6qRjfqR ztkW%EYsbr#FnD8ef{|p2Q#^&dW#BZCEFWF;%qe4ZAvR?xm*7C>B z?nV)kV#c63eEc#I`fq26Ryr(A=*(F?Zhf>JH+G#(1ozgwbl1Sa4_JK+68;?1R&p@Y zle5zkM1@?=ug9-!20d&4+HXKgFu>%oT{CYOZx1u!HCKiuUx@YF6M2~aeGn^yUi$>6 zBAF5__&Io0l~q^7!@iq7qAZq3#9>z|QvFTx?cry3swtOqwDK%}r@{Xb4KU|BYz7>7 zZ1GpaNQR3Q0e^RN_dRvWg_>mSWk=T%LlZiBPYs&3!RuB3aF)OEYA27-RgM%@h(0w$ zqoqnVEHNG8CDcx&2O6NJseLGHK>O1T5@8z?A}vZ46g&pdP1`Ww`M1qzGWiLkq>%kG z=QAk3O|ZISPH;~oaEA4G)Gvg*Cg&jeviHy&Gn{zSB`iGBojvT+w3CRvS5h@O@8~|? zEq9mH@gdmyLMe~B3&ae(Svyh^Mc?9(-Oc$-`}qsCT$lx>MUzEkt5#~J#j*{1rk;Q1 z5gCS;o?Tgs7H6_&cC$@IS8<^#wOk?$78jNP`VWpM|L`g2pa&zCRX{nTr@klV=Zc9< ztB%pQvKN1#_w|}T&^`XZWs-+L)c7sbX59xK?))e7scx2689-U+Le-N|ctaIl z+(#94N7YqoZAb;!UMsy`28#eON2xELB;`KAfSAq^HZh2^`hRHI5b1}RYilDr-dQj^ z#;pTugnGF3d^MQTh3(?XzI5(RWIde*Y*@2e+{bvo>$>Goa48n%-bptC?FCct`HT4H zYm1K~PEi&JI?Jfi9!y`Q1SD4FP0)*rp>W;IxFZ_LNoq0&An$jyB zra{Sefj9Dw6LWM^aoPz`lon_{u6g5K|2!6eso+%i_o~}I>p?X>H0^Uf`#sK+oVa!* z47pi2c6J!6so-A``s5Ax=`J_WY8_4L0#06&C*z7mYp;*Hqn{9oQs~g|t0zW5ygdjq zlGylB>XAD$=dPUwoGW1IMk0UQ^6*D4GR`ZGf$nP5+iX7YLPskJ?#1%o&~;S09!eFPC*6qU8} zMww2U{hX6KALXC2y<&Y@yxGjfSfZGv)snnVk%*sa%8)bLM{SL9?|Q&H>9y z!IqDQdwmOMSukqo%#c(Fu>C)|=%K9H3EXk?s-(?sX97)YM18Ec4cGO9T*uI#|o~|7Le$7S~63mZUuc2A<@9yf)`FLv{R3s(d!BaXnl9 zvq+5rRq(CCoW72Is2Bo4Za1T_m@~1K{+P~|E34gg&3ap^w5koTTDg|)sYddwv*BKo zyw=5WdYbMdUXi6D$@<~x3HH9eFj~_0wXHMMDC$lQXH}oT9QfO9HLJ&tR$G7?Elx!L zvwWwWS^NCv&;3Fz+4=lZkKs!)OF~axPF|}|v|Lzd3fzD&X*P8L9&?Lp!tS`L*Q5Lu ztACc0^yH3&unqUkv6u6%&KO}V2Lo8{J^ewExo9BtUwRq%VldbU^=6OSBf~@?jLU{= zd>_V~TygPxkH#tfzqZ{VNV>z^j@ zdv1Dq=PK`=@6aEg&+;$XO9BigeT~U^ObC9~V(hib{@fH!i#8QHs=DiC?)l7r7Tm7F zr>(HH^=SM$KbKzX*xhPGmPfI3sj!J#+(&ThfGU50fF&1(te7;5xSV?!5x4mO|Lt{9 z+*8^!!tTzq+k&%SY68hJB{yzsQhnXfX)bmQs~bD0(Y;;zbcK(O>}(VOP*ZQsosdW3 zCv}Ci0%y&5l#+z-utOlGh#a4Mc-FJ8H{~g%U!P1CCayJ|cEpcX-l=boSKR%;rgI77 zHGwkdn_C#bsVkiub5dt+J080m1c@ic@A)Z(SF|Jv%QxLnHP$!fS@NRKXDtTM%gG;M zNF(Casoa;YT}>(4&uO(?*4-w{g10Jw*eQ~vPazQ_rp(L$3>RS>f+Gf_r~6B;tKEC& zWFlbASI;N$#1?#H*{OzlYLTI**CEWPT-fgfI?(2Q1Q}57 z=zd0@yf~SK+Cy|84>6Ow$mH{fhXvqyNbBJ2lYbrGs!yr?stSK`l$n*J#U?J&A==S) z>-#-A9B{hT(}c$m;^vhiRC(Jlc4L7o5bJr(Tmz1eo^sg3Jh zfLW{zK?=p>#y}ClMpj=3QOBO57oV+tet{F(%6g&UM#KRbil5?3xo#5?UjK`59SU-S z_6sd^+zdj#CBY&Q@_**yU@<+gGmzbe82%OB`4^3(1!;R|0|rVhbR+LnxfcV{jd;A z_ZFe^0x!)a7bzt-Gqyl`>5a>~=j#lyd>VipEfCJ$AK>TZyH-tKyZE>tbkAn2uR$bF z%UbHYjNj#-zUH9xfxZj;B@-^X2{5L`kaLMIWb_E+KTl(Hjea)FwM^(Es*ssy*>G;^ zCiF#t$_Yhc52NaXDP3MLwObWv%^gKP_iGQh%zmzDP-HPG4xt&8|E|j{^0_|1$Y$8u z9{~a{5o->!a%H)8fNV8gSfGf!ov^CO57?nsbFsM*U|+Z7u6byK4*L^=mK??>vI&E2 zW5ka8(KlTaFqd`VH###=%iqs}$<#*xj~``;asT=$AdQjSRDc+gwvUDuB{v42I6;`s z$8l#2u+wk$Cni4TY=aaxF8RUeKwpIkGSR1=L+&T@H)fKCrt==EG*Xqw_sR|j7}*g|4cu5wnUEd>aC_lLT?*y(qcLV=gxrn2Jm@tF9@){fg<({~j3bfc1u_a)mq zryfp;b5MUDbm$C372f5TnD66@amC{)mT{$ws#P58UL3$j+T#7VI8A^WZ1ax(&jk>y z_FCos9v8`fu#vOaj7?=$97ij#vPC=IQV>>c5=kJ!6vrX4RGxLCfuIzbn}EVGpkB$> zaQAuzGS7>2)VfM;X6JplzE+*x?pQ&z?|8=gKieEWeK6Cvx5pJjqxXyVY(Kto6&;;W zi;p_F(Ns=<D|Thcr*fg5xno3sYX(#Ic!7E z&Mdh5wrZOi44&uN=!D4X7me+17$OMc;Xwzrl!9c0*>SlO61lslaO|gXa7H!w=;pfo z~ju#VaWDiSZG)r!u0u_LOa zmsq}>32jH;n0;aCuQ_2)>^;I?WV1@IMHBNY(VW=5?Y9%j1cNk> zAr!@g9ZmiwzZdl1fmr72&kDaN7gCK?no?Pd2w|n#V1Q>k;tFpOiA!4pygdk6g>AN2`*QPCE zl5`2VHjhzbPAGz#5pI!y4_yLlV_wS1e^H1Z+#)V4!w?b`RSxnfgnJgUQk%=mHz(&YP8J04S1wTC>CyWl zyhdnwrF)}0!1ZI{%-Ps)I%xHLKp2HwAhPUlkg3N_{wny44N%mTUB!A2zppXG@vLo@ey9t7RLRiX{SF)4^U;HtRKtZy)$0JL#tR}AIdfNY4_n;;H%`VzWnwU2` z_)DT3jzgYwvN025UF8x(LrXj5zTlk` z-tuMLmZC;y1y?1 z&F&@S9yhqI`&#@*(y@U>qRL$RVvvQ74#%CVpd13(Vr=D*j-=dm^A&2xs5`8Da@rW3We} zjH|XOKolh5&bfUdpc;3Ssi|qOLyIR(Z*=7;-+83w;ou=wu};Da?`0M+-RI?n$iB1X z(y{*rFt`@UjvGPu@MIAo@JZNtd#~-D(RC{M%fh5FIJx14ET&}H-av5w;$Lzi zIQ4Rhf|(dLmqNM0kB57Y^6Y9Ni=JvIgL()_CZH4?;Yg@WKS>^YT); zoxblSSD^UCldd>AWk7inyE$2f8~mcQ_&&mIVXD+l_7|;v zSvn(1khj|8ROOrS_~0({SH*n3F(<5}EpF25YVFbEpp^{~l%2ET^tyKc{6$I7iKm3b zZeq%SO`gH{sqj5Lj=sHkx~Sw_+`bJwGAHd^_zT0MXlDNLPr@LPo~^deb0$< zmwt7CL4Zrk{L9+$NS$3>| z^^H+}9oHZf>(5PuXs`sc_4PIOQET##o1=5jG8Du1LY7_6tHrK%2`}oE#OheYW40Bh z3toA1viA$#v{iI@1e|m7$BL%>%-RoxTMb-FFS=n&RH|}ESX}HOpT33&;E{ib z>xuC!dPD9m;&k)8^HZASP^PLkyBRweMiO~ah}f=TcT}V(I}qi5u$SViA1mkntbiuC z5VLVT@uN9Cr%Mc|U{r$YGl9j2=8q1>>|j@fV27cQ@1V|Xfd$!F(M)NHd8~`@ci#ya zoO`q`SLZLwKtb}9ryD)~#H&@Ny(>8@yM9am9}AhHyd)-@Ho;v4FID_GD)L^w`sV#O z(jMQ9Urs3wD$q617`7jr9h2Yt%cjD%Qqv47Taqp8YG~@dHf#NuNxT^U>YdZ80Ysrw zRSn1}X2OI)W5xcGcrTk9n!Qi{mkR(Sd^dD&x#*ZQ(?3NYIu*caF%MQ0R~SAA5tcjMB!-s= z&Ci~Ufs*=)hA&xQimZcH2a}vEe|4?mCq#Cg@J^@h6i+7NWMJzv50?oupz1OL)e-fP zfzG#nQJQ?XSa+qZ;XEtD&tT|$=&I%MvhId`<-w=KsDIKTEDh;{72AtoQ2>eYm-((W z1VS#1NiM=7L}60P==97hW^z=IxJ*)TGuzkvI9}4SaruyY`mzu-i*vlMdeUDC%3)grT*;Z5p%&8s-b-<7dF`Bw`s9jmRPN zCo#{gTSx6AkSZAm2JLKD;ty!KHllSja3qO!tom#fH7)A`S9DGP^MXTs|JDbg@RORI zF*A-x{oeL{y=(kw;Pm0fYtXPFh8pmR9Cqi}Z);F;5dH6cat{2{!QMCjwt*;hhx`<+ ziI)o_gF5$tdr&w#&{NUldz1Z<453Z`_qhW&Ble7*5QEtf5*J$r5M`8SZegz zQ2tP&G7M=(oiCGIO7WssX0G%%HWInN7XP4=R(mi`$h~d4 zYPf1NG4A|zYn}cmNRZ#ac8`lm7Y0raVp*49zbD|Dk57P0L5z&3}#P;b%;9jgbjbh){|ZoR2NszJ2i7h9e)X&b2s#s4P z)}Ph!6x0fZ8xKp5e6>B^kJ$z=s^I&sGzDzba-;b^ftB61M7(*O-D>vQ} z3o70K5*ohNUipCzfTNLkV&@LADI4snLTDs>A&KPh?DPl*ArPE5i0tF!_y$%TKW!aG z?&F6Bk8C1XapM0T;`ml^$6mvc@Xgr{O4ekhTNG59j^o}^ts-vD4@-=!B9j3VVFmn_dr#G@_!U(ejd(ITTh@sD;nS<2KjoD&y2@1JpK$0f zGQuI`ir8-kpv~$bT4$eJy?Qkg1f`u?(Q1gNpN?V0Kp0F65I*yFt`)k-Q68#4%y%NtKO?svo5E)`mtW! z675oEN_Y+yHgyXfoCZW1BX`5D8lFmD!(Q+6kJM()IA>|=SA%XeZ&=U-m#U1sS(khr z+XMcbG5+gi_MT!JIC$4q2#k3uzh|8UBv}n$cLT6sSpYauY`atu`1(Gn7IRz1e$%8+ z{#;S{V@XK@+a5Wg@*kQs6LzY@{x83I;JB+gn(@%Hu!jdy4spsaukL!;%{t>csF}z~ zAMt-mm~=nSj)Kex`(Y8z(5*s6fTr86Vi@GfO`tw-F!=9Wj&NsVmTupXJzTssx;~VQ z83ybkaTVMd9}<38;IFpjuMWh;4e8lI9nX2&&!ssjb!D(Jjh7dm>GFT%h4EPG%pA-_ z#Ww9+HLr{N>T)i~bCXZDCC;j#Y;!bFe`9;GwxP9c)u$cGI7-y8msLX$o55oNeH3ET z>pV>8XI0~m+n{8J*ifKW6Ru))8u8s9^Gu0z&j6KTA z?K2uHuCWTryqbWXzQp(crv(^@bcjOqYV;{~t66A!z~re;_9JVBa>9P~)fw->#t)NW zEp;NrTT(pcxZ7shDCO%4knU5Cf!GuWNDxV{;jJ1xqK84zunNW!W!!}k!7w%>Bskh7 zJEN#(YUJSX?~tR@i$$CBw-aln|5WE7(2_XD0&>{dOrg=KA%0piuK3=Oj#ex_^+KHhV+Ofk2iap-alJsJq!2NZ6s-GEVYl-q9OE!f69d(-RFSy{ZTN6 zpm^8wVqaf@z%rjX$anhmTTwZCfN0#gj_O7IL?+${79yvQHPd0&P&xBoT*j;A7kb`z=y^J{j6*e)B7j_*D_SI&@n{x{+F`~dJ;%C{H} z)Jb5k>d%{~6kX+8vSmZ2)Zp81^ArTT3jv%hZyB#kR$ok)z{S6X^l-zq0gbFh~cp@ML-}%xIxB8=XozSqHb)IkuQ@qU^U;rM5F>5 zKcyaouZ%hjQbvB0W2?aQL8Ffq%>zyu1-oH7pYH`5T|Of%G(Q)3R=YR9C0yam@e)+2 z?;{OUiL!q36*`6Iet;r?f%_4Bp(jXQW>J~44SaJ_VPYx#RgB%I37$RkC`XnPxM6I@ zBRJBdL_?W0%YR(ye#G3~- zBu2*?&e(Hr`D~ncsCwp=LE?JDR{7O%jt{E^+H4agbCL*lUy+K~(4He~z~avvE7^0t zJx9k_a2TDr{Mgw;?Bq{)i?MQb)BfzGFj3pA)?7@m>G%Er-wWzMhU2#S zHeRO!$bQs!?X^-Gb^7^Q>7EBY1~79>makj1qn+qZOB}V+d(AfwoW52o^mwoxskdaU z`TE_0rEg!95vzF<>aubhS9MlC(N;MB1Vm-8aQzf9U4MY?9(P)G*CMrAdAPr5Z~uWc z$8EgsSUWf}X(C4so%+;FWck%Dl_wT6j0IXOfN(CwT}tl)JXy}9{3tgVyS8bgjwf(4 z)IcGuTzn;^_A&HVhK9~>Q)FoBgb1<}>D8}lb5k~!b2FM{l&)^mrMR%?frUNspG~05 zD#`8hxQr)mx{!K;Sdofb!LN?ho~&=9B}o>8dsETT7Q>RFahY(iPH{nO7Zto}J;WnH_r-@I?Jzabc!vqZnz)Ttqb# z){r!dtgEMAX<3z~1iax)a9NE@$DY`U<;tVpM+sF6x_k*5^R#eL&`rjKnYjc2<5OP} zffsW-W9r3DLXspmkHIyjRx-#J$Wni0;X$7U1??~LLt=>`XuHoJ(84T@$>aW|5RrUuHmMa9oxdYnksF368NmSs$4l} zrY>eMDthNXFu!wM_vFM~04)__!p-m1_kcT`d2FxnaVnCkt8q}XfsH^_TGB%-a4)Gk z>I6%{G?X0J^Exg|j)iYpVS9gyE~Ed*h_}0PVC&on$oveg!n+ z4=A=o!4)Ev%I{j8F3(4hC45DN>+NBNa?PvOpKsmaDxNCI-%x72WVy`#!sCx;eGCq= z5iqE<7Y?sl<@dZa?cha6Kf0Yta&_7CA^7tA#ZVh5P<*8Y_N(k6U6~!=1F57#aRMS} zzIK#3{6%t>@mCZ3T@kT@wS95~&IA>;+X$>(9y0b{W0<(~xduE`0TEwa>wQ)tgri^6 zB%zDTFuUE(+o6l6aERnW4~Dded_l4`*ZFU6#Z5aNf4%K>e`3vx0akQD1=69pV8>A# zFr^N^a915#;cWJ^0VQ!y>*$`8(WuyZ%jv$w)FGC$TnJ7bhcrj*a(~5RdhZQpj;afn z?#uaOZ_Yx@M0_pJer%e4-Egv$o@mvkK298kF+n%^sh8@;H=bZ|TXSxHyDT?$CoOXd zkDV2#ldQyuURka{qRd0*zlu#u;oE^GH#Gr{j_6?~=_WVc233+>sF6Ij{+^$N-`()E z?TW|iR)5(xiiMb@A|mO;rRDs9smYW;*Re0D{j=kHczC_MMOEUV6+8!BA(gkkZ-U+} zmf>}d^D&Oua-wX+g^ef@SbSb$@~t@F8P95CSi1yKAKqE#gQ+oY8iE-VIini%fJkzb z;eW{6?m7>XzEXl8sG3vCuu7x&XX}331q|qw-Kz=J*V^zt>^wOXkXHJH{>@tHFpPO*abh^?Fal@2X_rW z=e&oVLlSs4*wFz)WJ@!R5poR&k$ETDk|jc|{$C<(&0=lH6vXf_1F7)QQ^Xw^h$ALS z96eY%uXgi|D(+*~n6@stK!R2WvjJK$JP7D)BRKfED4%dwyY&Krbx-Uur|rS#TjP2+ zfrei1JvM{C-So)ndOid9p?4B~3#=k0oIMn*;wG`$=h!L3$ye0Du$`JkY^F(;h35o* zQS0lm3r)#k?nnO$dH58tj`!bEb6%7W%*IeUm|;nq@a9UhatL#VW@@rD_FTLTLOyzU zm5FRB6HqV~fzWKMFj&MGHV9@lZ$ME4iG1_c&X)BBrefkzeyN2QrRnXcJ*rX0)FJ|& z`5qk|{_3$BG~?Y}YRw+UJy{=wak40$m}j#}*(jo(PmXCn{x zXYq|mgUf&`YWn_?W3uts>nDfCWSU?qe1u&D>>J0c+D&I)58o2d!IYkRVqh+~L=5)m%< zGb1O6{l9?)LIXidC+Fy+Qh;e~klUswWx3Qx7qE2i zhbxTk|Lf;~cU{Jt4&Ys;0TTeZ3>7!?pUok^b5O#1(p-GMPkET8`h^0mdCjV`_$m~7 zGZYN~Ijez5@?jA1mr{lO@jPdV5E7}!+miR|5IAy>+-i_B~CkR4M)LXs=XX>yBTF7uGP;PiH)1a5b2H&{_O+ znBUf}M3eoN&-*4+B@q~zKl8?CXEhJO07!nhwI*d-NM0NEZ6vwgf0?eYK`8k za#CiNmt!(o>q-pcpx72+;6)FgLi_$Z7wbG8q&|WRG5Chw=RuMRzmC@(-#FucS(O1A zuPXtV?}@1I)i$F70(Z$1@QP~_NO4dTy1MATP=GhxfZ-nMoM8@L>i;Dw2_>v`&)o*sFbQ$z}6iHjTXe{ z5=F#2rIIx(H9AUNVs#yLr2eC@wGLM2)aRo z|NscHQOohU@5qQuEmU{y4nD1wNcbOIhMn>|-;0(?PE3LJOx66l`o+9sm!52L79CAx>8t?;RuI1zB*w ze|IUOvHyRfd`dxkMHKdpgf##nrTw5PQ#b|L8ozAs5Bgl{%hH!gn^l{8p6kL8!@<~u z*5!ZMk`6!JFONOEk{xFm}0a0ocQ{}A9b)M5Tt=Qt@gyK-bc+nIKOIfa-}I=QE9eQk2)R@Nf_ z-Cz0cgI-P)g93kT=rPi%`|!Ei_i=vrKNUW`-%3XMr-l#`cINJCh~|9p2T~gftk6%0 zB?oTqU{!f*OXFtOt?Tk<_nO4(j&mB^-hL1voGiu5tCA@dHs1q*=NI!Aib*~En_pUZNS8eQ0Age|Xelm(WVkkK1AHkw7sM2k# zIx#{Rp4ca={3Qb(%<5(u_EC8xae)kMfWFA;hrYYshxPA<_DSAhd;-7hEQ~%437pzr z+}Aw3e$}31%Wm#92E4mqXUhocAYeXzOPma36QOQ$|V$bT4!N{D+N9Qk%vA-Pl{MK}zzW!y% zisB)Gh)`lXCkGaZ;tovkpG9R|z;*wwi3^Ow=kC)HW>7ZINI}$>%yuS#Mu7=+8Try| z==8L|dzq|#yVn*b{ei~QK0lq**x+FIl1MqCZJ}puPPjw;<>|rOYN6OJjLM^r15bgX zDGpAQ6(QumaCFGwqXSs{(&4`b3gM>f-(Gn`2mHh+aYrNUkBTi}jG)&GfXcs~JvF#1 z#I0UiKJjQg#<@6sW>uiiV&m+kM2Nf)EUKZ7AFXxv8S->7RkJ|yHv5}HJcs=NKPv3h zN<;+0Xd8{yd)xSmT7C9Ru%p*a#TwGrjcbf8*9`_O^!!3j98A@EtYa9zcs+*tGiPX3 z?KSNdy7I?Vs}PwNUdxDtltkTAiyg8Rj0ey$-Ge>$Bu4fV(s)p@`j1RnY zQOc#QiGmMry=%(L%4FLIO+qd1HZRJZb-wOsMS?UIGxSS=f&o6QUE`THeqJdZK5yUh z^%`MAK2Fk+34O#m6cLE9PgX4ae6N}1J8xLEBz+j(dk`s$s0j}q$Qv%RyM`%I4Y z!SQHtP0h~nBA_KbMd?D>)KmUslwGN!90`}+qsL)*Oa5!X!7Z|4PRbn+N1s;zU3EOx ziwM{k_pEao(@ksqybD7QJ*oi;24Ki*uFzLz&zAQedOkJlRU{Uf!={8TYVr$aYq0ng zJM0`!yd}x6HW3!WtRW;*hqMXvHggl0Z{1DKfcM{$!l~{r-u4f6eALL^sM#Gj(~H801v6foW-B-S>zjC@19U#Y1A6~2 zm;U`lFvQ^#Wb6yirm)uylYJiYzOSN+45kXf)>flDL-1BE(cEa^)ez2bnRzC`Lh?(8jjGasUG%e!!`+p=>W16iRmsm6X2k^C zbBbJiwp;-jWC{=?3OYg@JW`7UuT+_%V+#piMcL6bERCK#;^?&BE?u<4+tbW?UV`BF z#R1nu#R|jy9W|vs!J$>Yk420OFT>B@kLmsP9QQsaZQJ$|iAAe>>1)FT* zTDp@Ws+^XsPL*0sKM#5D4XhPLZ>NS3!Cy3XgtLRcuD25#`QPoHugJeyO;i>?FgtvG z+#0{1qKksEf&$Vzs#)oIIkbDUb|ppE-pl9A-gj+G8Z_3ks9{J1rjiM<2eZ}SW(EbJ z1dC_to3>~x1=kGd7hmsN?e)%0(eO~0uhEm_HD2Rucg zh2ha1)F;+Wsq;XP%Vr9;6=pk7)r(nHkWuC5_bC~zljYyNZ=e=+L7&5}M8*y&>qQ+t zoK4YuIP$_^S#q9U2z%IC!*rsNxo)Z~vi)7=n!!_iyRN@=u`r4l6WBO<<_Srts^Let`)WzA)=tr1H*g;5zc;2g#`28r_|&C>NLaZ976ep z>xJ4m;sJZ}vdg-%HJn2e*9~;loNbMI>?V>NNbm{bmN&pyUD<3_m&i~}Ok}7ZnqEgH zoQ?EI$Dt9I&ey<;^GpG3#GFd>4imNlwJAm#W=3R$0dh*V$oPhJ5y6;K>qPrf*AA}r z@wtS0$ZwA9+j-)uZ$PKeFBy>Iv=*QFsa$N$lK7lNd9#2Gj^SCmzYPP642qXWmg~)l z!W+lJUJguh8igGJPA&7gwiwShHjTms@})3q)Zt>C-u&QOujvz8x16=k_3`v+{^Y2c ziV^*>WIs-azEq|d0&yuQaxTWfBR)AlpB*hTtNfRB__vvI)!aIa4Snv9Ym+;c9WBSD z6*Z-j{Z`53DBWM&P&Qpl&(9^QQqi?bvNNv`Q)pJw)T4Cw^%k&o@iQUr-Ofk|QZ+vq zKcC>ZEu*!`8-z3D^t(0PEA^J6C+uAh(Vr>vDNA$lcb^+I%GF|XM(_OEy~%}T+49>; zk&YgbeXKZAb1wYja@EU_KP6Z1*H(rT71)3Yg~cg?U@(TbW65Qb$R4*Jb0s^2cQIY#>t2sC3KC*G5J^fzCqBea#f$s9P^&w9?;a=yzk|2c z)04Mzjn1&;ESBL0lUepJ@qfs9KUKZQaQ{Qkd(}e%L)(FnU!%!7BoQ)29j!Sg?RelO ze(IO~xW6gPJxB)UFIUww+0%I)6Q3`f&6&)teb?kK^7u^X?IuN>NSAv3V_}=2d75aJ zY+7Uh=~FLmO?ahp9=7|EEhYLf z1|_+i#p`l)L0Xco4lwNz#@9M6Y^8nFV3Tgh=(^9VLbBzPSJzGJNsqMedJ&IiTGEom zvZjaTo$CXdRSDKGJajN7oM@odwA^2{R6~@%WVs=@Fo>Txv4=lPZ7;gde4YEcwpXiQ zX<4L@CtS6~$@f;6pGWjd3 zse0@{AN5bG2nTs%`{Px2Y#|S{`nEnTTl+KBo7yNmF7qmueY*r1t$)dS$d<_KOd7cSI50 zsuT0%T40&+{L0-lZWCYP^}CGV<$3Gt!5Q5z$-U$fcviR^EMgRNr5c26QDS;#IU}Dy z0a_ZNm;IOMmlTiAcD7Ei#Tv>k=}<7|W;bPXmVN(JU9<@D5R8|6QSJS8!p(&~XY4?} zmc4r8qK=+5wSHN;6{)itwm~3UpfR+y`S0#kC9FR+37UMBy`enrNpoFQ?Jx6I!)lK` zS=JgsTkn<`&}e|1E8!go?_Q4O>*Qn39E1SE0nVWTR|dj8daOTUeN=%v$R$~nsHcX8 z+4)QGM92cx?nodregVq)v(VcmA@pJmJ#a*6Pph^R7}JCbpjYLy8WNKvnxB@%WPDNB zX`lJ@mF*5%UmvQ&6j|Ld!dZ931`V5IwP|O_0Q?~FNdk4l^_M#an=WsGoDUtXF>f;<+S4p88Ix(Rk2zAi zFo7Z<1sA~Npfj;o<=M?bXT@v#{+>J#V&8SOb0M&9ScK=VKMbRTde)8e=^sJ@NS}D1 zGTtE*parq|_j}^e1O3&b^MxXwoO_(s4I7OdRYyc@tfd7nhuh-*KBuw~akb49{iXmS zVN|>i2#@%MhulxaDf;tB8WAKFml;N}7ppm@xl5xLVPZ3Tx4oQIXshjauf_k@|Lo7m zi2d|;Wlo<75J9(?w-Vb3Dje=c>!M%%iF@oc>V~CZ>-CfL)jZ%`N|#JXF%H5{4Lks{ z=^#!Rb2$T)>67Xid%kFhGo3B9e<+n(HN&Pb5wB*SRA7-2kb)~J&Zk8Hz%qAJVgmLy zMH(%hghEM*9VmUmXoMl;Pj4C8xWCD{;;z$@(goG^mDfYUtE&PJYP#rINX%~@Zel0G z_VkZl?cacNy&ytnUxFwK5g4e9TaYQ?d**w=k4=1hwNc)mq0+v)C>47^Kfm~6yMqz# z!X7bNPi!qwOr*aEtI%l4qA#=uQ6GRbDZBf)S~>e+48La+_VONIL$U!MC(E0^u5--pvfQA!6_tO<7Ey-|fg1h_B13(@MvKN=sK)uu_8>$q^=U z)pnznsffH>a62F|EM2>d{d~AuG~! z#ruC+0G{d(9>>77Ud!I3N|gJ1gYDEyLQZsFS%p9se2yf><>4+Ud#(qA(#*NA6A^8L z)w(%I``@ZYaCOFop(kIvnD#}|3{+HiU(`FBOj1C?-_bGvsQ|z8%M~PZJ^&yBrZ+T+BLVQz>XRFlfER59Rj5Zzgk!FlWPGkJjP)Ml7rhf|>O(f)yqVDe!ZYn)lu` zK*-Hwqjc4mu0UBk;ORbmIFe}e!=6sO=+kCqQ8+GLGjPrkcMOXGUz?U=0&%Z>cxO3g zW&I&vN6X9L9#@xcGMG{-Yl_^_c=LWqDOIG~q=0QT#+x>rl9V;8)iSs9@%FUoAuPc0 z#FoqS4XzXMW$bj5Iv$ndt0^$3!8quKz$UVT_Vr%uprXVT!p>D_Cb$9!d4tO;5?U;^Rr8L`-|@yRc{uTIK`uciLXC4`Mn z?S-AR3p_raNM{%|3PhVg+0dvZmLBn$Gk+KyywYN-tT0;8P2G6Ouv{{uz9JQL-K*Kh z(InJNlU55fv0caza);3cbkll9yh2(2EM{s4-?81#X8CZU?>srGc&wktx;;q!~ zi%!uOyQGvXlu(gC8x!Mag?4sC?}I`(5=Gu6WdFgiEBni!eSeuxeP#WQd&3sNHZBt9 zGaz2*+b$;!`z4&jVRNukA|+$KAu>gcv*rlD@`TVbA$Vt@T8gw`5NY?;GAFxb)!KO! zrW?dALnarD)u61b1-_h0V2FG}1l6pX0bibV)=tL+{quZ0C#w9g7NJ6wH^?UPC<|O= zCp2a%Cih}JsK{gn2pD-(xrJi^JG(MZP(W8lG|TO#k288w=mw&mn55gE-T>g`hnHf* zTPtC=YeSwESB-M%g@~z+jGb?o<0O#&Cfqs1whMo`TCG{NO8_zA4uyB@Xv8) zQSv#L>onxB5||WrV-i}in@WujKphq_VXJDQTViU-H~+H;9=Fw*p^8CldylkCDZn_9 zmvUxrah~~;1|S|ylgt>C!ryQ>!0#36_#IpCEc6lb(ADANS~%GOx$i0^NhDAR>Z8!q z0p$MvS^b?x%W>@+3P|v^znYAxX1U3}q18+$c#zuC3JEdNW>hk;<}cxU4hr#3pyRrM zJxD6e2Qt$E4(AQ<_jilD9lGbSUBF-<>vTmMNPZ98I~9qO$OIzyQ5ZC{wLYr74t8Dl z-cRlEf%mGt4{-DGs%AsQtwVDa5^m0h3AlVL=PcnU$nn2~G6KI)7K$EBys1nC@MV_| z+!Sec-X1yL6$H4JpWojIDI-u-J4uCT*921jI*7BuCI)Bbi&!A-*Za=K1k9a*!8{Ww z_--E$WVaK{zANZ6Z#$y>IQo*Mh9qbIDFH?0s~@Kj;Cb6ANq#ab=^^=fVWDx*C1b&V z$@A0qXddrT#PQ%f6->B2pnOVn$!=R=!)+u9Z;=kUz z4D^?8Z%R*?Jzf#dfBB`4o~S94AUOe%luk(-yjOZw4RTUmUAHo;ZP5bnR{pl1g4kGL zC2In4S2a22guOh&Lab_A85_yiaXIB8Myte-s>tzq6}p090)eiq=zXFvD7ny5W(HvJ z(%C|5z|G)P*R$};UW&F+^$ic?7{p(lOm7v*p!=GzvBLl0$b4Maj3#x7uQ853r^+fY z#NoJPjgf*fZ^yNk!cTv@D;C{Pn2nfMG#7>x)2qlnOD)ccI-r8GMw>UbNwjeh)%utq zJcWnXw$z>YATcSw;{VuoQIXkR|8nK67GQAjAFOT$A>(Vx^YH^aeE&;N_Ky${|LB=K z&Fga|girr4P5rY@S@W0S+C)Qdi^&fR!&729U!;$6Ag^0;W?-Twy)$k!QCU`Kc4M^p zVAz--T>v5gQyQP|3np)Md@O%_|2E#ky%GZGV$~q3K4)ZkUtOEqegUt1Wj*U8HjQSX zv6qtai1+i?0Ev|9ewGRh|7V)Jk3S3LV}-$^v<9|oe0bSzBzTnYfFe}o`EFfDQ~&@0 zKnu&7V)HV4JGrp81NXXrG!EKaci-{Vr2~-~F@F~#FkDlF^e2IzLB-__Ega`uzFBlg zy$W&`7>1*k@B?OS++QwY{X6Eo&R*5V@p|DRJ|1ksiIWFYhy+3#J7V{NVDKK9dCgoD zXFT5?d%x-mG9IJq9*A-f-{KifdDUq7sXbfFL)PBc6ipr!ni=oG#zjgS)8JU+vSw!235P`#$4z zJ0CM*8Md`Ck!u3OA3Rt|wL>+x^&*VUvyj4E6*0q|NJ&S6?}T6{im*uzJ=%?y37vvz zkrKY^>4=#Q1eL^DUE5$bls8wUE3w*x&`1qSD%Qw4Se1mI22GFNP7CySlxn%H(CKs2 z>vJxgZ@TB|{d~De1;Q72$|Lt2Ie*}Z$zdvftuk&I` zf7Pu96*T%JS`gTNam+27#7DfX->`tI4FpmF5GUWQo0(){|27M?cMA0ZpZPtm>y)mx z=OU_+XrPM^zwsK%>z}l`OEY&KwJclIYJ=^VZnvrf%bm#HQ(O>XUH)oY-9cPUdl1NSq#epZoC^dTvQRQ zi2S!x3}463X_HtO?quX0+-I&i zqqq@tbe#=!VZ{y3GmzTP9l5_=P*T2#2zXi;-fQ~3;-JywtJOmNu=0FArx8+EZ07!R zT`F%fVPeMF?>|^YL11qeuD4-uB=yq%XS8E}#Q0qtJ`^DYxes^}cD)N}&>``&@@(y` z4n1?>Q3k)V7|}A_%(OqOE4x>J)%U+LtrUc!yY{^dXB6+{#S}ppfPs_Wm50lAfgAm+ zBNKy>H2Ac3mVZV9UaKCL521v=+2p8Uo4{=;chfuf?DTF4@W|uo3UFsC-(X=>#3HBpN=?&Iw@!xG8pV%PI3^xlo1%(UdQ42vw-s&-*Tr zWTT($=~qT*-4z3Vkz%!)6DeDQY}>* zQX5)f{M{>+sOB+O;VORRRJfCtR6O@P{&Y<)onLjg=6U4uG4SI2xdCN*>|U*$!~rhC z358;SDk7Y>M^QcJl%x7{0xhbxb;KYbpia0+!2k7p8_{FTCb`SA<(Pr6c!G{Tp`svC zYC%5dXg@*8qd#Y*inszzX+HibHb3M&kE6CXu|dJ^!FbWh>N9-)de4xGwZPVlL<-=j zv6#7I_&pMxtovY*Xgi}i=ZeJZ66~D5xv{>slxgJoq(w*2nh9c2ExcG(y!hsFK3&{9 zvS}VLyt-ILmNK#1zrNJ3LFuytH0ud<5F0d3YdBUNh@<8@dQWbHJzQD>7ocYQ;!%>1 z#^FR#E-60j^LX!1jre%N6`Q04$Ti&p&C+GWlFz}qG3z_5b zARJ$|_0F9Aw`Y34HeY`yxM<1H+kyA{Ay3r%zhw6#0EcXGH1sjx&$aM;?9NWeq5s~a zg1w)#tB`QB#24pA2v65?z}~=eL;r{@Uc9&rE4tOznCr6$+@MGlF-76KmenPdZEm4% z#tc;1?Bjg>NcS>-_7op$e%kycR{Z1UrtS)JhK2UpUrP=< z%X4!5ml7h1Lc)k1NQ2Ejf{Ux#+INlzA*}02I^*moc}h}Px$Om7DsiflpEacZBKgfZNfK?4}DvN+(Z1O8=$F%$6 zq#;?rkqgUuxZyOpA&wISBr|nB7!jJ&u7Xoi3(j`IBTU z(w`s~!v3p?Hya(gF=2m`#bSwbMNRe%r1YB@szU|r&>JOO{5*I)r_0V6b-MQJ?1Wed zf@$J~LfhIeROc|{u)j^)0)cf$TT>EQw7#Bs2{Cc%?%xORb38q&P7#ley$^b5`lSPU z-YO#iaoQR@nfwpsUHBVIYd(AX!G`F`7t8aazRfzVMnd-gts7P^A=l&ZZJ(I^EcFnt zwx<7;*ShEb77{l-kaCuZwx_raFc5MyPZK68%=FqnpL(yvO`#QyF$uoLYjf!IwfC#? zok!5##Lfn~vBGT|C!8bBJnDen(}nXFmdYeec>;IEOZ0c4e&t`D?oVZVo>}VK*QX8lT*lgxXFg;l+-klKH~aahhN^D$8)4*x$Xm zhUeTb`ghR%4e!9f1oHJL5;2;wF92b1D_x*GBL1BChVtzvGtz=(6@(H+T*tUVG}t%~ zfQ%tAlRrV2&~--p;hI==V+~3s?p4&#rhmxe1~GqU%uwOku`gutS4* zOVHlDy!0NJvj%kgH|ziWD)#uin=mB!DJ(sifon39IzbL47KHTI{8EBk;G+k>j)h~{w6j#X!|QFjfMBVvg+BB*ijE>IvvhiZ|)?Krpu>;da6A`GBOa=JdHFkzFl zoivW_j`qSyll*YBvl-M~@w@Cz2eLUgo+RR?9s#_Z9}F`Qo&rrnj9#t&O_Bi(Pmrzh zjM2Pf>Q9JUmCFCSFE4+-_+WOq5O5(K%gl`{jVM{CUxIpai7*s!-#?6D$j8$~Op1}E zvI}d_;}i$2SYd|tP3$u{zF7E9MUMU~_jt)@yoRNM@Uz;6PWk)+?Ql0z1dt6gjH?DW zp5ow=a{%@C3fg4Xno#(v=g=A`_2?8_^&(yUeL!e{R{){32)ZLvS?}U#e`fbS6YEQ8 zC$VeYFVf-$)rV3vxRc2+L{wDyIr@bJ?WR;A{?sGR9XjUQ zgzL))oN=!Cao7YTWl>gqRIAS@0N4T1ZxL8nzUS;wD*z;)yA=94MmtjC!mT}fmY)pY zN4}a@#Pz-(R)3F+I^ zySL$&AHp`><0MH*P7ULTYQM$7(^xO?a}r>|2ar+5%F?8#ugf)H4~FiS+!W`okDsOp zOe>}Lz2=0%1a8J*OF|FSxYC6yd-<@8JWV*ntPG!*N3Lg%5{V^*e|`bjAVj?!%;WwJ zjgnTumHa84LO7cL*1j~{5lIC3^~xWp{6w}pKR>x-5*DleYw92A7}k}1{^TWsfVcy9!`yPvQf*7KrSPKuPQnHzE)`Z9>m zhKiX9g%1}-p#sfL4$lm2Pdqd~SV;f9s)|(L!xa9a=#KH}OXW<>!jDY@1s3if@X$)V zSQUYe$=g3zGE^vPKEuNV{RwK&=|b>h z1#gDeQt{8%uBzdP>YmHQDW?{MDrzCo+?icN2NVCH;kyCZk-3wmh%NxVN6~SaqEr74 z3DDT^U8MhPGXWi@@x}%rON`u29v;gVXA{0X9~_+A9I=4cIwLc>9$s#CSrxJnYl43& zf7pr<#nOpjEG}HGA^Aa4CHGn3M4ZpsTecU)__~u$XA7S~I1FL4s4MsN>ni?%ijXV% ze%sTHjg_`5DV@=ja??!+aD~VIPavGdE-TmT7245n6u^T}yDsYs2$lH^1fCqU(9Lmf&$~AdQt2CEYU}MDQ;HH4p#@qY?cv6<68eEfG!H z65`{>Mc9Q>c4H71^X^j^+FoR4)#(p9>KI64a`9krgk)&@GOn|l=Hqw#xv&O{7zCSugyeS+LX9&e9q2r137Pm zTjT;rWWDOki};#$9bIq6CRJsjvoHOqG!W}^)A3DOx8Thub3r5yD$n@EJ>n;e3Xi&k zwyP9aac|`TH~W>b2X)~~Y*tk2toyh)cu<`=9H3~*49*drE{iAu^=zbtaZOF1g6;mn zNI^QM-6r_tdS4Kt5X^xIE4Z>^#yeIw*CFd(>-e+vdhx*DU4~*M;$R1Y31-Utp^}S_ za>&$XTFn~m-XQdB(0XNX*@{bpV)<{nt0skf`}fp+`|r~0RSEfM1ru;HPR0gnmCC|a zk-U!)nX=&ktR#^3-~+3^R;$2d{2>xf8S_$~Hh7zAU>|t>$GiJ5^CIY=yfVj1MrTZnQ<`o+=j1 z*hw@aX7u)=S|vt{&^i(u6YdfiQ>=09iJ}zr+CbaP{Qv;QVUpq-9Hdrtc20%}`Mw~a zJa2CvmN{in-MY?NbCmm%A~|oO&-W;u;(Xj91L*=LRSom%1&VtU3Gv+D^$2e=za3*4 z+8mNYpSw5m)*6m=KOa{ig@ode2h*&k#@^3V^~$)Dc@GX&B{n;>;kECrnNc5dv^X2j z%9+SIn|h-}XGzHj`VgW^K@ppT21&2oY%Qm}Jp;e_3@<&J(9=uNlT{f@AOs7yc@4T= z;~+)xS$~}(N_laB*eYr1;4kfq^0uyZ-OMKxVrct{OGYM!a@7PLs3>Fyh75k?s#gvz z+?JtNTq|-YyVsg`I?7Js&%64q5lDt z;Qxy`2O;`$VEt9P+Si|Tu-Z?T{`b+YQ!9t`j4+2lBsPa*I(+t-GgFSU}0{{`5Ad2Gnh|w4-~rH2Qyh6cvEE`oB%|U>C*ZMduZT z)Fuk!Rh(2up*J1FgaaA+{`|n+`b4lU-v@K0G$<^m^lT$XGC4843AVwqHz($fyw~fU z>?54_3!V7IfFKw|^!>c2p8_i^AV*{5^cMZALgUoxZ7MaQ0I;m8XBb~i38yd%we>W0_ zsyw;AM8Kt{9@nP9!(|4Vk%!T`gt_!ww4TH&>yV;1O-tjM=9#2(5UK-@a9Q`dYQ{Y@NO>YZx#tTL8zLqk4hBjY=-#x-D~X^F90qbe}l z5bL53kfUtbEHOvg`Q*Fz@-xTc(Z6MTT%G>xYW?$pR_Uv6`PiambnO=S>*<4?C96Wy;=8zpXy91yfj)*Kfio>rt6Z z?Dy=XMmEIij-x7eqrwvLu}k2xLcyjW`QG|iSLJK@-yW?Ps$tNpS`L&MpN1&w58{K5 zG03v`zj3!Y8^8i8pl~)3D2?%bQT_Lq`)cSqyyjH${!WLA{#;%-CnjcUP6(-4H~C|= z?F#Ew zm8b7N-@_)eI8o*|Y!7AK;ML|-7L-h6Kon=a7Vv!JI$+z#*Ny5%&%<2ROIe5=iU@1DxCWx!uQ_5fvixAUw8ggfSH z_t}zt9Z@kQhv76JRiFsrt}zsi2t2%aJ&(CppNG$&Uu@U(Lw54=l&^uHoke^%G_<5K z0&{N(P(Q%&QxEuQlD_$=UyT9amQ-YgF~mIIfpa2gh)@=Q<~LuL;&b5P z!T7Fn%2=A)I6Vwx7j7ktHk-4SF7)02Wba@>QEj6dy%vkszA zsJRR-1M^w5=l@65S9Zm82m;C*5trQV`<+z^;N0i^;)A_yW9uNP zlyf#_HDFmOY7ZZQh;{TyI2D7s{MG1X)U}nw#wqBW_?}QC6xRAIHKV5s3``v>U0xQu zlODG#S~>rgW0fyxBYaW7kPfWXg~JLgzO8REcT4q9xGr|X zYgvfB2OLlAT;F;1(Fri+%q7B15$0W$x^n0ZXIK=1dX79TQS|1-lABh}fX&?2Y z2@21VB#Kjv5=VTaooSt>1cScfbB<*Gfr-c06p$l5e7WvM@z&qE)fKPTR%cSbZ?P=} zPI$=~+-6L_EG-{Ky{n(K+WkHbK?*TrFY;eUr0m43eO)>2gB6Qo%cOR4i=AR<;PWAwZ$y3To>&*fG{5$#Y!Y7a=H7ia(hfW;_T zIE+r;27dl-Ze1TucB~M82M25znzRsDR=#s12eeStB&wQA-(marmSMQpZN`D)I=+-U z3awqW^Wel?$M7hnl40|JrMwlDi+Bv^9?g4rnsY(#H&7c#6-jDV+#z$@jCTz`&Dd7k z_n0(T`Gu{^DqPpOT$(ihamd-uXbz{amUI_Gr@2$WUNRbdnCT@BjFER}JMze#^VR0Y z1mhw{?b5Wlu8CX>1yfW}!LfFCL@OC-ihvp0K24|lUmXd@Ic>2natDIkwopv!U`8fs z#DP2~Y6=l8M1%KRrh_Ge`$87khBW}wO^7Q3O)%AjvbKvr>=gfiR}H(MkadrDGp#W{ z68)^1WiP?EN3CeTow@e=yF#ynxnw%rlRQomd1#mIt;Z$=cKF|h2w51Yb={g~lQ3ok zb^8j|)B2;S575RqUMx75f=g-NkiV^bvL{PsTX8GZH@&$xV{R4_;SZm8&5lg`I~xK& zuc+^vAm#L(hd|=rIt+QFga0k|Umj`j)=Kg^!SfzYzy^0x@_TTyU)G_8fKx$oaYKM} zZ;&o>$LJ6bJ&Bx`Ops;=H~Hzd?f_l_So|xb7!FX1$e_tSUlWHcWyI|G#>)H9bbIJz z57X^{MF2OXY=Hm|`=JN)kz|FiK?E@RV}}Z2<@>P%L|OxfCbS<%WNPs{BdOAZCm$?a zfG3NR+w+qEzvy{RKn4sZPe#7wqRY5yPLjLZ_=4}rN-gPmSKMUp&6#FVQ^y7B=oZnW zP~@BwIXoNz9KpxZsUg~0fl9dH)W!Y%Kpii#j+6o?`*|!Pqzlxj!%K9~nbhl>z*9T9 zN7H7<&}Z79hAfiGy+BkxMw{6pe5q|Vnp}OhR9C?hCHE~NlhU11X);NOH5b4%)+p5? zAo9MTwP#iDI0XI#+4$SGXO3yXG)A#5-1^SI+_j!oOQbpJ^GG(8y&6-Cu5z551i;XD zNaOytZ;>s!lI}-h>ME|@iSr2v!5Ge@q|y+ERXm_vRSDZLUT3ku{Zwtdy!@>E&TL0{ z{Z>e56H{B<0R^sxvvqN8`2E?unU%?7ec?T)j6*{cC?OmGS!Yts#$UE^#RG47g+3{) zKY=Gw{grAVGV4dU($d3^#er}2J8CIdCfl#m#w?6m)si2f0tsj zn&m^%_7O&9=PYVMi-3+)mUxNQ-Q9Z2SVT0Vy-XWB&ZNzfb%hWGKRS*}Cye zMXCAaD?|VvfpD~ikX5qw$m8H<7G7~kHY2RK&ItoIH8GB*_uQc@qZsxB8q}c~D*VP(mOb!$;KKcLj?@Nsdf}+n#*y)~LKZ z6@;`EDiLE>l05E-H#avu4t?%7#4qo<%wPG4KZittu<7~CMv9S)WK0iYVA=s`voDJJ zEs+B8e}I$@FQ@cgv%xDzT8NM-16Z*26R@O!WEO8b4H05Dd=pUmXNvj4?SZ_@NVMY8^ z4v?)e+(m}k;z%Qzj5Ek9I6WV-__E(z9fCfZ4PU(>*{b|WsrA?$$siGVi+~R`fgBy8 zDrg767+zAKviK$!eL&2&jZleJOTlm#x|0@h{7AC9LvJ`>#h^u*--=+YT~RpRg(dRw zNTuUINGKPVsfK0Ew#V&BStzrX_>k3F}aNvMhJKtQ(EA5cFnQc<)RQgb=0ICa;kcq9O5memNo02>cDJH32K zF)i*;6jY7?)%Nw5e{0umz(|z>VUyaCqH1uQ7rGuKzsVHryQ%daw^282xe_s+JZ^?L zgFqi!`E|Rc*Dh-Mo*7v$AB*Clt9pRXbjSUk_TIFu!dA3ma=G8ES(0chPLe2DHT`uc z$+2;$r=eTCo_330c}W00ZeDE-WX}x66bKl2XnwhHtUukdyP!jXy9)d(LZub$Ivyeu zczO6?R!ZOaSz3SeHbLyaS%Gg-CwUesk);Et5i}*CCIbh~xV_AJ3}~I1JZ7gSj0S^n?Cj~VI7pKQWSIV0-?8NDE=HVj~!hk8&Het2;UgJ+1B zqFQC*Y?xj9W2>tz%T{#@?F18m)N2?ASK?1i0L6z9WHv{`hpY+bH;cIdz09K5eu0iA zYYoaKo;U@00kTlm7vPtT8@txF3j53bO%T7brqCt`4(YO)73ajx2WZf8GcjjBk!|wh z1lHQXN)u*?Z7s{A$PZ4kI^ba>BKusYJ4c+?!Xv}q!@t}01h z!a9f0P)N&NYtgw;hLTI`e680x*q+p_cG9%fe#*puah75qcF%_pwTKJKE@GFb_ULnw zRm1{p@nx}$Rpnc0&63#33oc`N>_6rkIVM|~f zd$gyF&2ETz^z*AjZwWD>6Ak@ce-YHL9R+3u*9AQ)Z630?^4JhwX>)eHbT55UuY@L2 zxBW4!8yXcL^0Gnai~5BeZYmDTyR1_Pnr{&6j*L9>lbTFzJuXi)icsi_(Y6L{3oV zPqh6g-qfrAJ^)w+v95W|vv4KG`l{;dGQ&oC;cBVw>;=^`HKKwD+{QiYuolGeriEAX zTODnF@X1#qJU8EBhS>FfsxLtJmo&><+JoO-$*NMpjbUdFIOpA`c*HxgzB>B4(SadB z5ml8gN31Eu{~5W1iyq-Wg2VR7*x;e6LNa5F`Yeg!k9@@WHaKtf5Hg8r^-4=2nq z3H^xN&kJwaK8W0EzPSZ#@CB&1=7f1b>-V|4_aeFKzZ0oc6;SqL2$QQ78gssLWv1+* zXGY3ui)J0Gd~4c7_JPGKO6k$o$6){s~aQfvN=08*RrCe;o}x< zGYv9ctPW>^`SMhFH$O9@eb%(7dqfaOUn|$;Vv^`E;T#M>O)mHgSZIc=34`>|*y55O zU;1jeZKk8<{2DIYzt`I5j~!jumwTL>w#rZTH(?edpBn$9j}=7uQ_DGLOm(G^7BMo! z@q4pYi@qSqM@Dg{SZ7YSinA`ZWn6&yu&FSmC=7O93eIAk=xe7gn|zpxm5s~g%oN=X zL+_LJs4Au6tSFLuZ^V&)P6+||a6x4gea93OLrLMn`;KesQ!IE(P6(MeWEkAyc0SJtKB_jF~g9fHkQ^4?< z4et#XjyhO9e{xM$=wGJ+drp8ez(3v$ZhH5@xtL(oaFXk{P4Em>TQM`Es8Xc@5D0|i z)Y{!UOz&bcrFV*R#!aMfhXnwAkE)(q4PclgxI?c~vOsqXvK?VJpS#x92`W0S`ctca z+F3c!Gh#p^eTwsbYlb5-jIFe&*Lu>Ro0rXSx#=`8Iew~o-nTyEOj*XElpxPXOz!o) zNijl&5|d~7n@>EpGR22L4BeU6t??Gt>vo83BN&bUEv16o*fhCM2D{N^Uj->bG^&65 zZdC%uTtry9@w;VL=9RAA(VIe=7X}5+IMnXp*t?ppqBv9^;%6EjWTF&&=(i(lxd@Dhp```OJ z$TNy)gae5K={;JG`FI1GrT^4s?a4>cae={Wj{q!Uu^#YytV6d~Q&R;^pBENZU>*%m z#(e`*q+Bz$qFA#7I}+3p4Y^oe@5MIRB3!MwD7IOScjNip?pj2pvD1r)4GWPNMr!6< z=%3SOs)euq&<2WyP2xa;3U7x;@!cuBMoy27b6Z4~?i5OAfk$9MAF^vk#g;g{I?<1*`|2M5AeiIViuGvOgnbzNmI-=t^y?023W4~Pqa zkS4k4z@PVFa@m9Bcc;$3DG0TC5ft2H4J-NK-oNtsO76kG{9M#^P%dyk!W zbvavp(i2R(eDb@aL~F^wH`;*Fa)&PleY(Vm8Wo4f5Vdi5h#uUOn^M%5*zC-1-@wo9 znr$UpQ)*0`E(OAI=Rq)O9FXN`a9OlVTXKs3ME>2Pac);>Sw0ncl?^ucnnC%ft0!>9 z)25w1j0Ey4@ndQ*aA%==Fs!lirtoq-lh4h-+qcAieO0wF%_0cOG7A%QoNx5s_6G}& zU$)W{w+^kz!&=!s*Y20(R(3#+@9K~tkkYWO{?N$u zee5vmv%V?Qn8P4AeW5ftsfs+qo9dx*_M84T{E>2D^|z5Bhaec4Kr;m7DFpE{h&>Y8 zy^GiL)0w`W=RDlawP_PN^S$@``+G@?+9-tJl*-;4_P-$Jd3+RznEU`%2!Ra!qzW(G z>k>^Ey3Sf8=c^id2)C9Kfk;vH*`XZLc+K={xCkzKK>7NO+o$nQLTE7xiDw@&Xy@>m zx`sG1tx8H%SmGrLq^LLoMzyy@S{}8u(kI0#pFb{{&@-}VWV&iHI-U@LF>%1vLDdzRS^5q4^Nq{2Y?ZVHwby%5A4uSy$MQsSVt+~*o z{WppH%ZjK3!H~wNkd;qjWYyJ9Zc~42=H`-3ugC0T>xCYB0kPtMSWpO^UcY|sW-wx~ zzs=UYb>uR2Z`-)`#i!JHHnNt&?4ULaW*eMm)@_IMBTeZ3ptI&e!U3!zNun$IQhjPW zvM99N65ZnYv%>emt>~-!secR7>Ir;L!^`iEhc>s_=NI)M)Oo8%g-SdRg*0m1S0%f+ z4K!$VuwEMd0wwq%Pyf>vPo8`C{U*R7*ze$4dp$nWUG$F!`Fc_B(|)4n#}03hsZwh5 za0!VgEF&@?I%!Ne-ghSvT&u6r&p#Uw`w$6Io*~FrKQi>3T;0i`r=^~ruJBU0`K6Z6 zafv4*jtm41RL}<>?`><9W(^%rO8@zDEuFQoic*0@4r69&+&s>zo)Ju8|5Hdb4r)a- zRFEr-39X&ia7N)d{djo=cDY;Gn+M6@zNW>6V~^H}TkJ@Dn(tf@I;S;3 zpN%BO@A}}$&Cc~jKv}&WZTN70BN_H~_K!7gJ;c2dkunnUByxviZ;zbhpw^S;LfTX{ z5!ZYb-{jdtF7sOS(46g97x#0}4V|b5 z2`}XvO0gkf!0*pFlQrB2DV4gTtkioOv4tF6KWu23D_pM&X6fYb>`ostZ_p1eNHW4M zkhwI>=&PU*egP@T#kfnOe|5hbzVAA^UvnPY8OCYcuw~Sj5S0O~!ZAE8&6vn*s7gX0 zIKnAVp+b>G?X%GxuZGN5k|(fJJiYSo@)s?AdI@{w`T+$7YrJ-9)k`wK4GV{SO;@ER zdMgKOWkrC14v#<+hKLs@!JpTl))stccXCb)t3Ay@6gUij(Otp_oM9LQ>V4c+&&Yl2 z>l^2n>&SGz>CSGMic{&@E(o zB>pRpvu~ZOTJyjUj6|H7yY>)hU-=$rD2^i0ETB11D<;m~Txtg131sdZBB|*3eB(}@&x&7Bw#d9*>B5VPtFPbeez+2$P@gsbaxtduk@-N^geDk9N)GWKZK|Tc zw4{Hi3I@?^?@&%xL6Yi3eoTmP%&Bux{;xxzzjfWN(ws^Q6clxEpkbVZJcfUYzqqIa zo|W?k3Xh2LdiGFq$x*MHfc*4DHr|xketLe8P<>lscZBV2os@W=D0@?1|F*hLk(*;e ztNlitmhkJcLA%?=#<5%f5sH}H7zye&B>I9OtZ~~OdpcY(0_qxxse)Ut+GWxwGMOGW zy>Mw=`K*)la(er$gXobHx@T;TGez^W;0hpOO8Kw;1ck@k2k^qe9(@%0}guZ#|kC0n!x?*Op)K<+03vlgv7cu(Z=rEA! z9$+);t{~*ybf+;7%W^)h!z2Pm8)=U4sK@JMJeDLZ|M=qc^oynik zjxi2kRRUM|7HQu!9BQ=X*7|Ezy~Xa|q0^1hgaCbjWLHY`r;`PJMx{U%0Y z&s7gT+fX0I&#nHTT{qER&ELOCa(+9#-rb9&yxgCNt}*C?7DGrdY#qh^&@uJ?%dnlH=&LI_M+9VXA&v`NU}G_m729uunto2J4z^ zdYa!K!5<;3*xwF1V4(RdpN9O)ZAc$CUyB~LL5wffufL)6r~9HQ!Gd1CDY=|PZUyD# zzjw~775wn%wZ7CXgr+2b=C9G;xxt=;z5mc0KRxijjXC4W@6tWcw-EeP^7=;haZ(ut z?ke^7GxfJKCdLKHkJ1xLDmtkO^?SYaW1#cjSFj4hX824PCp>XSnN6d6PSKXI+MrNU z9C7e-_|`Fu(o$SjZkh{~_=|`~y$;i>x($UmO1U4O@Wtf5qXmXV|Mg!>Q&O7LD?+^8 zK7T0Vf#hO!bm?_Z?=))16yw_+Sz@(r==n22bg6fI;tM9$74}{^KxN|533oeKCLDW9es+mZ`N~QyPKf$v1^P8&*zq0FJ-iIpAC<-b= zNY^;LsN~yEC>LU)7-CjQ-%lpIu}rQ_6-9-!_^6(<`GTvuj--lMyNNxQ@_j0tro7Fo<3KJv{iAXN~) z#L#3%!>jobIJ`VAz1^Az=|pdwgGxlAT?mz_&J^#0egnYN^5@=dJYH|Nqbzn=JQ4`j zVxlk6=8993_DSol4;hMK>&mnSn|8Ch$6e(=s-Wq`P9a0T5&?Mr=LImefb~1;-lB;L zMN~@J3iUZyc)bDidlEE7dGMp-O-LtJLL&k8Vk#E?fu}N0e%IHEiM#ik+r4o9`|E{? zW6Hh98yj+fgK7_!d;WO(kk4Oenw7eAe?SayNJHW=-ccYEz+&fB^`XApPn_P+f&K## z79+r|!d_2OtNGsGH!|j4M9hFxACyKlLyF`}rgRGRWkYb&;vGViiaCc9cE-y}r&hv5 z9RKRnGw`6XC0VTc^Bn0^9ZjS%uGu^_Ch}(<_`k1mdVwcb!uzGtjMbinN1;=l7| zA+n&6fuVE=$k&&6xF7^_QJXYtqE2bvs+=rU0`nI!)`^5(-bnp}vlqy>2Aas$%lqEB zZmH$4&L*C8DCCY&Z5-b6xt!$rqecoi7Wunw+lWmzezlzxl)Rys ztfAY(0!bO0&+1o!jk#c_m5*EpojdQ@g+@__GBIkO@uP*JbhMYbHnE%Cxpk0QqvuWI zkkSsZJu}LyA|7_P#+pT84BA8qR*RYfE@K&yoRSsIDtX{T928nO)6kJ%tw_YlvLpJDNfAy`Z(M69BEet*YL2{o}Ih`WX; zCcjK2rLA^&%u{23yaDw_63*)QawAG=TN{`a%;#cs{t<*2cfq3YrVclIkAK5dz#csY zx_aIs3TQ#U`c9X2raFY(I=x&|F7}W)zwgMxQpMSyX??; z8JIN7mZCLyD&`+&2wAIs?8T5z6-+c2sB2|wF041M#(45^1AkYKuN;*DRs16qlwSW@|PdOISHeqg0b~3f5i=)Vz6#`P)n(3+%pHD4&O0 zw$6~kN^^bUi43c5GBq^(%rKBFn$s6DbRPLj10!CwIf~Ve*Rzqp$v_xAXnHHjG%cS$hXIPNg^`6)^^0*rRPhi=&RgIR85(te@A7 z0f)A2L%#R7fQ*_1jr?Y-mQMK}OguLbCf5?q|1kL4G%#Nbx|~7LL?S*}7tg!>gPmT+ z^$e=t3;UMDQ(2d1rP?1=9|cDae?}TvCLi$>5x3;DFPc5jUoXii41)pY1?x^D`+w&R zcx-5D`&W*+z#rv$_d&uwevJvH>y+f#QG@methSqyLsU2aesgN2`2xcx%baw#EDX`L73kQav0$A^9FM3FU7jW7K9Ep{6X~zG{B~x>v1P zrS?bewc~r0LGTAUHL=A@)0)(l-wWT5)Et zJyo6$z9jlm0l+&$h$9DQbFJcPrpo7D*+=T!@gz=I@km=K2{*-OjL>M*aTenym^Q*H zW*jLGI;h3J6u!xi&ca%L(b&BkU75muTxkK=&+OmGOzydGEM+yzkub#siT~;tno-7V zQ#TQisCnTo@=prJxEvct`?!q)U(<&LY$H{ct{EBiF~9<$G8oEfR| z9t#Fh`gplh#~S;@@N-mu<6~3`@gh@FRIG=K$2Xzzn!_M&XTc_xP=>rQY}pYT*%F>! z_pej@4N^w3Hx{ z3b0R|o-*mm(VWU}CK_=45q-D+m@4){x3@eV>6(y$0W~Yi{u#Yqw-w6}Zq>9EYLFGv zsvic(U5!Xb^LwuRH5BMjQK^18^7nF%?%2=$doBHzBk6;ZVg3wq(TMT8&2_d2XeW9o zS=i6sjT21%JkWT%)!m>>l?x|1I^Da*buqRy(6H}ZsA0*} z1O)}k26oZ9C&6f&tTo)*;+FSxjg;!N%W=B-QyH8L?HN4GvVGU|P$>ENuz?T(CHa*$ z&L3yw9(PK37v~f!wM@PLFqY&a(tjM*oUB$r)rzC${p%5Qo~u>}hhHB>G7IN(@9uD4 z*5*?O7~>B3Av#+{tLyzn=&vc{&6)=*KG8xAs2cSSsdy3k*qS>$0{nW*ZmB4PA%vD* zG!VT+p-;n7A3Zd&zBm}vGS1D~@%7s1B$oTFmK>t|uwcBv#YBaga0xXEg0i8Y$*Tn? z5owEAn|wds)H^*x2cH^sp3eqFOv1EhBb)5yUBOdL9zZz8WL z>j5=~W`!2#uo4O_2rg?^YV=~VUINdZY_W^2ktbC2I?A)<+Gm3R#qW##@{zI>-tt%f z#hhV&eT>00?;@yu;Mhec%Kfb15W|yTKuJ-U7Do}u3a|_|IR2FqzqhA-!2pWWs}Nyb z_Tsf1q#jto+GyK65F1ZVIc+TC0jAdHc;38pQ17aCr2jxAk*oh2yz5DQVYh-*2}H?g zKD&rgh*kCd6N}7oaK+nOQIcJ^k-XEAiI5MxuI(5yeQs4PA_&+sl1lGC7s{6Rgha7A zfXg)2IBqaW6{nwtYEsFnm21s{mUc(|f?!N99~6JFId&R&lo-QuJ1`()JL1J&R?7)n z#FgaVJIN2J4hriRv(6w|_Rvy8O>Ipk+yS7M)QT*%dsv!b2GcT7yjpQL|9RdTtGtXu zQvT&3nT;we?9K_^`p`4FcdqWG(9gVTi&2NiDLI>*4q(H#E%sJT2`xjkkPCgbE2(4X zJ*F$5!3)Uq74`uSZT@{HQNb{gxZoY3zt3y-9ST_}kqjPI+!AWs;p8x2Pnq#e#%D@M za|SsZfoe4L%yZom&Pfv?p>J0+7L3U^|9x)}!BC$ZURP})5Kez?iz!Vu8sJ!x{&3b) zJrl>ULZ?!e=FZ6qx*-qLKtSFZF7lYpZVGd=Ik;QCTFp-6Jc$}~VSNXtNtg(D%-hFh;1N=W^EU9a42Bd5x@tXO} zK7d^W0j&^7A^~gga7#KO~)ogHc z{=zn}Uw$W65FV3xt9=lBTG!8dM%I*>Jk6S}RMoW@x@GwJCIDOgp!E zR6f|@BO!S+3*tgl7MdNhninyCihiZ(XFXuD@L1npk$R(@=9rfx8HZe*V;-s##$^8M-Ba8MvpX4Qwn*<14ujC=Kye|$hm z=$(f%oKHavZBk#1#|en2jcO1^u^K_MQCFT<+9e5w^gxJ1_fL=rDiC#5AX+w>_go|K zY328IUTTxM)BPhaDyn9P&Kqv}2n(`C7Ar26;`L?}%FrcUs#b!V9d+HfxFx&2u>A^t zpxf!z2kYZZT0dINbFu7jz!<_xqiO{$YPhAp3axA!X`%4R!NsK9r+d7HyRgI4iT^-AOn>Q^+QmvoBR4@ zmxzeAXiG3w6_-P6{AjxdKSB@z(-S5%0mX}e+F-n~Y5nrqk;*okGKl5K z1VVNN@!+WI{^2|{PX(Q#f17@C-$Bmy^K4uqqgDAuno7za+KV1;L{0XXP(>+&4)eZ3ac*)> zquVo6QCwHZRT>J@4H&n)tu>a=I;P z#wi%;;`10>T@VC0bxpI-TZ9Th{&|MPW0q2+SsEc%pAQU;73`4=mMv5S7((*qQDntG z(<4GfAfoL7GOh|R&*o`joj2{C+Ven;dCZlwkqgB*0o5OHrl%c(KwXq&UJxdQTs+MY zPsYOi$v8k=gk!)pn`Vu4L^lu?rdCqyy$=ha?$7-{CA< zbjg}3g*E935T)tOsO?wb*KHneEQ-{)9F;@WJ2x_#B%${Qq`TA{u=tSO5km1UA-pWw ziS|99ELkZu2{O>jRfOr@Y;oh*y?DK|!7`uW%$OzbYXcAQ$qmastvO{nxE+M1IjC4+lw}a}%B( z=i5^BABA?pe94w+YaV~Z)y+w10AIT>c9sf@{L4@vdu^IQj63ruuMT~%7#VUPg}EwA z?pofkgwg`#o15Dv>49GoGz?IPp)gR<+WF~Qlr4x-5Bi%z!UH!{t%VZb*Lp_12?f{r zm)CGo?wf|G$dC>OoqQ&+smXV(np$)-30I-EkE{o9@IB7B7ZC zM@)m5?Nh)c-0T(Vr1sh_6Db%=kq^o0)KDH-y*g`ay<^jBJ{H9InT*1ykt^DY1swn~ zR2yIngd~XBcf^&OZ9p(MlWAYq@pgAs&6SLfx`tpPhmn`3ms z)~mF2ouE&ianS^qKhAL)Dru{Nml$R2&0a%mP^y-wL?j~w8@2xKvrM~&0r%K!?vq%5 z#%)$G989X{h{?ZGjN>Q#PjZXgp0AZR`Hlb}elt}dH+Au2XUAqQ_%JNI``Vu;8Np^; z%R=_kQ+fb-di=Mq|7~8W&*-l$8vgFda*`$M0+NwcGnP2{U%eYYF2N6DciD>bJ|sG0267T;bOpV(t^+kqDiF8I1j=kWTy>CWjskdx5Et zEN&lue3(Dmv;KHiTAmQ~I3}!|N{n^lO4w{e-Ny}Zw$I#vLt_>l4=mn1WigCGif!1_ zV(WXn^j1h)lD9Py5uLSlT0qnLdaAGCoDe3bNFu~9|?xIMB zN3s&T)L2q=(TN+&pb^Rp9_bK`vj)5Hdr_RG+3Vj(a}q)A)LALT`dz>q2~LK#bqJmg0RTNsPF|{sY6RN ze3Z~VacGp;#Yn|jnDJqdl)ew#WzG+17zrmf24!SY&6H6`%aTq^=(>>I-=C;X?t{$S zFp}7iVa=e#JTGVam#edCmY}h03}y2AD+MeIoY_*la#vu&ZmN!q6Mo{tfQUmwQFDYu z+D+*iKWC9}2ek=%XM`2-am#Uh&0U{cdby~qN2h39;R5Fo zkl74)?316M+MYdcmm%2wR&pezVQ;-UL z$$^AFf`Emm52PYMhsvUEF}yG*POM064*EN--n{H1Pyx7rv0KVZ=!Zit*|Blp7h<qVuB=~lLXWNIM+<<{ zQAv-uA-&)^7fG-CYe|)^AyI{Agqsk`uBmH$bN_ei!@LY``tit%?x>FMa%np&H&2c$ zk(ZV3NNAB+qGHUp5k^E~6hjFKgEH`}2B;x`afdA5!eM@sEYNQ3q@nYQHu&Z1)$xPs zkqI%AYc?t?0AnjFA#}4#P2{C4ZG7xW_)K;ui(ZfWl3(jkzgzj2OF~Gi0at~o8zNw z8fo9NAyMk(WC~BVbXK=IqufUun@l+uV`1jqO<1hb9!iDz80bCP@c#(_s8?s&??+d2@;}S+lB`86+<5jNFd*AXm==zln$?Y2-q?P6DW+Tn+%Bq*q%4=sXDd2 zua{tN#!PC(utb4OX#u6egdKmVNL`NR+leoYnq^(ZUg^W$KFjXQ)tN1L3Vl!k@XWQT zT1=}YM3-eWKoCw*b~X!9AO?5XWGq0>FVOIJ{GFis&eJ8+annvu){Ad#Q1yagiv3a` z$^ciS71e6h2fDJJxtE-BIb8C49V$j0+>lMAGeq4M^EF*_S#K4CI8|mKke-MyEACo} zuoKCkN%d_Jig}1YY~|-LLAL46Ior&9|DF4T4E(3-Q`Xt~#A#50FRtmlLX&^XH);i! zTHZf}?HI6>!&4i~v+eT#Y{~_)%iL_ zG88h?$%O4olD0%fD$bh^EI+i;B3muXMG_|2A68h7xWP;FUg$P^`7*xmPy5y<=Gv~D zNn2>p>Q|naX`8kSKq64KBB{lrBx!Qa?bb25j_n$X(I0<4gYizlZyXp<>Rx+0_qDIQ z+40lR&)GTS(UuP4J;-Aq} z=rL&Jg5t4H>SDc2;i7VKU`-;Fx6f2jFo_y*u<7DIA<}WaWtRVFpjH0ooBy#+)MK#9 z#H&FOq~XVH;pr%Erfi@;)+O`nN0AvvaB)~{;oT)C^ZbFSO zGm{vAb}n&%KY=#A?5L3oU#f;{6IpFkh^4)%q{EB20F;{5J<76hu997%v!8f>nQGC8 zeVPlJxe2r&pa(Jp=6%&3Zs=6DLrM5cJ!Nk*;ToAyR?}>c0|sX8W3L` zKn;Y)(8OTSepX?=Xbc1*6ysUy9-9&Bsr`OqT+MU|&D<7*MCAnxz39ByuJ(*qZ+cU# zdhU7(t7;=7K~(H$Z8b>p6sk*VG^e5O^1y=t8=dsSXJo(I1Gq32=lTG80UGB`!3lNb z3XJyw1gF2een*;>^jsdb(T&!-KYY9hxV^7e3ld4q=VWIa{i5;_$1QEg=emY%VibJc zaT=iw8Uwe3Mb6XeL1n!BURMgF^A#Lw&XBNpIS7W3bonVY`Y;D66r}#aHSxA$Xf6jH z$-yO>;ZMxDKHRo2+((R_3S|758^m`!e_qSX@#O;0s%5ljN%q;WB>jT7OURI)ve9`a z=Zxzw%Q@5ox#Hp1e%#(kue5sn&kJx(okW2{PL9|dWVnRDjn-Nd6DyQ6Y_^(zG9b0C zoEHn0h!t;r>3zG18}GeQ_zmSTLLH8agQ1<%M8B}+^SP#kPa`?+%J}5Z;sp0dI=S+| zzf3jxT5<6e@WnS>Y%###wYd65hEEFo4U-^%AW)gu0yLw9<1vDZEO&EW-0Jvc_~}30 zPh+�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

    =O{}c3R5TVlrIekho?d(HK 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℞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%0Aq)+wUM*0EtVEoPyrp8%2B4%U@VXOt( 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

    w8j;{7ca=3>A9Q=l<)jm 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 literal 0 HcmV?d00001 diff --git a/examples/shaders/resources/shaders/glsl100/pbr.fs b/examples/shaders/resources/shaders/glsl100/pbr.fs new file mode 100644 index 000000000..1ada83317 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl100/pbr.fs @@ -0,0 +1,156 @@ +#version 100 + +precision mediump float; + +#define MAX_LIGHTS 4 +#define LIGHT_DIRECTIONAL 0 +#define LIGHT_POINT 1 +#define PI 3.14159265358979323846 + +struct Light { + int enabled; + int type; + vec3 position; + vec3 target; + vec4 color; + float intensity; +}; + +// Input vertex attributes (from vertex shader) +varying in vec3 fragPosition; +varying in vec2 fragTexCoord; +varying in vec4 fragColor; +varying in vec3 fragNormal; +varying in vec4 shadowPos; +varying in mat3 TBN; + + +// Input uniform values +uniform int numOfLights; +uniform sampler2D albedoMap; +uniform sampler2D mraMap; +uniform sampler2D normalMap; +uniform sampler2D emissiveMap; // r: Hight g:emissive + +uniform vec2 tiling; +uniform vec2 offset; + +uniform int useTexAlbedo; +uniform int useTexNormal; +uniform int useTexMRA; +uniform int useTexEmissive; + +uniform vec4 albedoColor; +uniform vec4 emissiveColor; +uniform float normalValue; +uniform float metallicValue; +uniform float roughnessValue; +uniform float aoValue; +uniform float emissivePower; + +// Input lighting values +uniform Light lights[MAX_LIGHTS]; +uniform vec3 viewPos; + +uniform vec3 ambientColor; +uniform float ambient; + +// refl in range 0 to 1 +// returns base reflectivity to 1 +// incrase reflectivity when surface view at larger angle +vec3 schlickFresnel(float hDotV,vec3 refl) +{ + return refl + (1.0 - refl) * pow(1.0 - hDotV,5.0); +} + +float ggxDistribution(float nDotH,float roughness) +{ + float a = roughness * roughness * roughness * roughness; + float d = nDotH * nDotH * (a - 1.0) + 1.0; + d = PI * d * d; + return a / max(d,0.0000001); +} + +float geomSmith(float nDotV,float nDotL,float roughness) +{ + float r = roughness + 1.0; + float k = r * r / 8.0; + float ik = 1.0 - k; + float ggx1 = nDotV / (nDotV * ik + k); + float ggx2 = nDotL / (nDotL * ik + k); + return ggx1 * ggx2; +} + +vec3 pbr(){ + vec3 albedo = texture2D(albedoMap,vec2(fragTexCoord.x*tiling.x+offset.x,fragTexCoord.y*tiling.y+offset.y)).rgb; + albedo = vec3(albedoColor.x*albedo.x,albedoColor.y*albedo.y,albedoColor.z*albedo.z); + float metallic = clamp(metallicValue,0.0,1.0); + float roughness = clamp(roughnessValue,0.0,1.0); + float ao = clamp(aoValue,0.0,1.0); + if(useTexMRA == 1) { + vec4 mra = texture2D(mraMap, vec2(fragTexCoord.x * tiling.x + offset.x, fragTexCoord.y * tiling.y + offset.y)); + metallic = clamp(mra.r+metallicValue,0.04,1.0); + roughness = clamp(mra.g+roughnessValue,0.04,1.0); + ao = (mra.b+aoValue)*0.5; + } + + + + vec3 N = normalize(fragNormal); + if(useTexNormal == 1) { + N = texture2D(normalMap, vec2(fragTexCoord.x * tiling.x + offset.y, fragTexCoord.y * tiling.y + offset.y)).rgb; + N = normalize(N * 2.0 - 1.0); + N = normalize(N * TBN); + } + + vec3 V = normalize(viewPos - fragPosition); + + vec3 e = vec3(0); + e = (texture2D(emissiveMap, vec2(fragTexCoord.x*tiling.x+offset.x, fragTexCoord.y*tiling.y+offset.y)).rgb).g * emissiveColor.rgb*emissivePower * float(useTexEmissive); + + //return N;//vec3(metallic,metallic,metallic); + //if dia-electric use base reflectivity of 0.04 otherwise ut is a metal use albedo as base reflectivity + vec3 baseRefl = mix(vec3(0.04),albedo.rgb,metallic); + vec3 Lo = vec3(0.0); // acumulate lighting lum + + for(int i=0;ipbrShader = pbrShader; + + pbrMat->texAlbedo = (Texture2D){0}; + pbrMat->texNormal = (Texture2D){0}; + pbrMat->texMRA = (Texture2D){0}; + pbrMat->texEmissive = (Texture2D){0}; + + //PBRParam + pbrMat->albedo[0] = 1.0; + pbrMat->albedo[1] = 1.0; + pbrMat->albedo[2] = 1.0; + pbrMat->albedo[3] = 1.0; + pbrMat->metallic = 0; + pbrMat->roughness = 0; + pbrMat->ao = 1.0; + pbrMat->normal = 1; + pbrMat->emissive[0] = 0; + pbrMat->emissive[1] = 0; + pbrMat->emissive[2] = 0; + pbrMat->emissive[3] = 0; + + pbrMat->texTiling[0] = 1.0; + pbrMat->texTiling[1] = 1.0; + pbrMat->texOffset[0] = 0.0; + pbrMat->texOffset[1] = 0.0; + pbrMat->emissivePower = 1.0; + // Set up PBR shader material locations + + pbrMat->albedoLoc = GetShaderLocation(pbrMat->pbrShader, "albedoColor"); + pbrMat->normalLoc = GetShaderLocation(pbrMat->pbrShader, "normalValue"); + pbrMat->metallicLoc = GetShaderLocation(pbrMat->pbrShader, "metallicValue"); + pbrMat->roughnessLoc = GetShaderLocation(pbrMat->pbrShader, "roughnessValue"); + pbrMat->aoLoc = GetShaderLocation(pbrMat->pbrShader, "aoValue"); + pbrMat->emissiveColorLoc = GetShaderLocation(pbrMat->pbrShader, "emissiveColor"); + pbrMat->emissivePowerLoc = GetShaderLocation(pbrMat->pbrShader, "emissivePower"); + + pbrMat->texTilingLoc = GetShaderLocation(pbrMat->pbrShader, "tiling"); + pbrMat->texOffsetLoc = GetShaderLocation(pbrMat->pbrShader, "offset"); + + pbrMat->useTexAlbedoLoc = GetShaderLocation(pbrMat->pbrShader, "useTexAlbedo"); + pbrMat->useTexNormalLoc = GetShaderLocation(pbrMat->pbrShader, "useTexNormal"); + pbrMat->useTexMRAELoc = GetShaderLocation(pbrMat->pbrShader, "useTexMRA"); + pbrMat->useTexEmissiveLoc = GetShaderLocation(pbrMat->pbrShader, "useTexEmissive"); + + SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); + SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); + SetShaderValue(pbrMat->pbrShader, pbrMat->emissivePowerLoc, &pbrMat->emissivePower, SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,pbrMat->texTiling,SHADER_UNIFORM_VEC2); + SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,pbrMat->texOffset,SHADER_UNIFORM_VEC2); +} + +void PBRLoadTextures(PBRMaterial *pbrMat,PBRTexType pbrTexType,const char *fileName){ + if(pbrMat == NULL) return; + switch(pbrTexType){ + case PBR_TEXTURE_ALBEDO: + pbrMat->texAlbedo = LoadTexture(fileName); + pbrMat->useTexAlbedo = 1; + break; + case PBR_TEXTURE_MRA: + pbrMat->texMRA = LoadTexture(fileName); + pbrMat->useTexMRA = 1; + break; + case PBR_TEXTURE_NORMAL: + pbrMat->texNormal = LoadTexture(fileName); + pbrMat->useTexNormal = 1; + break; + case PBR_TEXTURE_EMISSIVE: + pbrMat->texEmissive = LoadTexture(fileName); + pbrMat->useTexEmissive = 1; + break; + } +} + +void UnloadPBRMaterial(PBRMaterial pbrMat){ + if(pbrMat.useTexAlbedo == 1) UnloadTexture(pbrMat.texAlbedo); + if(pbrMat.useTexNormal == 1) UnloadTexture(pbrMat.texNormal); + if(pbrMat.useTexMRA == 1) UnloadTexture(pbrMat.texMRA); + if(pbrMat.useTexEmissive == 1) UnloadTexture(pbrMat.texEmissive); +} + +void PBRSetColor(PBRMaterial *pbrMat,PBRColorType pbrColorType,Color color){ + if(pbrMat == NULL) return; + switch(pbrColorType){ + case PBR_COLOR_ALBEDO: + pbrMat->albedo[0] = (float) color.r / 255; + pbrMat->albedo[1] = (float) color.g / 255; + pbrMat->albedo[2] = (float) color.b / 255; + pbrMat->albedo[3] = (float) color.a / 255; + SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); + break; + case PBR_COLOR_EMISSIVE: + pbrMat->emissive[0] = (float) color.r / 255; + pbrMat->emissive[1] = (float) color.g / 255; + pbrMat->emissive[2] = (float) color.b / 255; + pbrMat->emissive[3] = (float) color.a / 255; + SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); + break; + } +} + +void PBRSetFloat(PBRMaterial *pbrMat, PBRFloatType pbrParamType, float value){ + if(pbrMat == NULL) return; + switch(pbrParamType){ + case PBR_PARAM_METALLIC: + pbrMat->metallic = value; + SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); + break; + case PBR_PARAM_ROUGHNESS: + pbrMat->roughness = value; + SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); + break; + case PBR_PARAM_NORMAL: + pbrMat->normal = value; + SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); + break; + case PBR_PARAM_AO: + pbrMat->ao = value; + SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); + break; + case PBR_PARAM_EMISSIVE: + pbrMat->emissivePower = value; + SetShaderValue(pbrMat->pbrShader,pbrMat->emissivePowerLoc,&pbrMat->emissivePower,SHADER_UNIFORM_FLOAT); + break; + } +} + + +void PBRSetVec2(PBRMaterial *pbrMat,PBRVec2Type type,Vector2 value){ + switch(type){ + case PBR_VEC2_TILING: + pbrMat->texTiling[0] = value.x; + pbrMat->texTiling[1] = value.y; + SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,&pbrMat->texTiling,SHADER_UNIFORM_VEC2); + break; + case PBR_VEC2_OFFSET: + pbrMat->texOffset[0] = value.x; + pbrMat->texOffset[1] = value.y; + SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,&pbrMat->texOffset,SHADER_UNIFORM_VEC2); + break; + } +} + +void PBRSetMaterial(PBRModel* model,PBRMaterial* pbrMat,int matIndex){ + + + model->pbrMat = *pbrMat; + model->model.materials[matIndex].shader = model->pbrMat.pbrShader; + pbrMat->pbrShader.locs[SHADER_LOC_MAP_MRA] = GetShaderLocation(pbrMat->pbrShader, "mraMap"); + pbrMat->pbrShader.locs[SHADER_LOC_MAP_EMISSIVE] = GetShaderLocation(pbrMat->pbrShader, "emissiveMap"); + pbrMat->pbrShader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(pbrMat->pbrShader, "normalMap"); + + if(pbrMat->useTexAlbedo) { + model->model.materials[matIndex].maps[MATERIAL_MAP_ALBEDO].texture = pbrMat->texAlbedo; + } + if(pbrMat->useTexMRA) { + model->model.materials[matIndex].maps[MATERIAL_MAP_MRA].texture = pbrMat->texMRA; + } + if(pbrMat->useTexNormal) { + model->model.materials[matIndex].maps[MATERIAL_MAP_NORMAL].texture = pbrMat->texNormal; + } + if(pbrMat->useTexEmissive) { + model->model.materials[matIndex].maps[MATERIAL_MAP_EMISSIVE].texture = pbrMat->texEmissive; + } + + SetShaderValue(pbrMat->pbrShader,pbrMat->useTexAlbedoLoc,&pbrMat->useTexAlbedo,SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader,pbrMat->useTexNormalLoc,&pbrMat->useTexNormal,SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader, pbrMat->useTexMRAELoc, &pbrMat->useTexMRA, SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader, pbrMat->useTexEmissiveLoc, &pbrMat->useTexEmissive, SHADER_UNIFORM_INT); +} + +void PBRDrawModel(PBRModel pbrModel, Vector3 position, float scale){ + PBRMaterial *pbrMat = &pbrModel.pbrMat; + SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); + SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); + SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); + SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,pbrMat->texTiling,SHADER_UNIFORM_VEC2); + SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,pbrMat->texOffset,SHADER_UNIFORM_VEC2); + + SetShaderValue(pbrMat->pbrShader,pbrMat->useTexAlbedoLoc,&pbrMat->useTexAlbedo,SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader,pbrMat->useTexNormalLoc,&pbrMat->useTexNormal,SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader, pbrMat->useTexMRAELoc, &pbrMat->useTexMRA, SHADER_UNIFORM_INT); + SetShaderValue(pbrMat->pbrShader, pbrMat->useTexEmissiveLoc, &pbrMat->useTexEmissive, SHADER_UNIFORM_INT); + + DrawModel(pbrModel.model,position,scale,WHITE); +} + +PBRModel PBRModelLoad(const char *fileName){ + PBRModel pbrModel = (PBRModel){0}; + pbrModel.model = LoadModel(fileName); + return pbrModel; +} + +PBRModel PBRModelLoadFromMesh(Mesh mesh){ + PBRModel pbrModel = (PBRModel){0}; + pbrModel.model = LoadModelFromMesh(mesh); + return pbrModel; +} +#endif // RPBR_IMPLEMENTATION diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c new file mode 100644 index 000000000..92a888811 --- /dev/null +++ b/examples/shaders/shaders_basic_pbr.c @@ -0,0 +1,171 @@ +/******************************************************************************************* +* +* raylib [core] example - Model Defuse Normal Shader (adapted for HTML5 platform) +* +* This example is prepared to compile for PLATFORM_WEB and PLATFORM_DESKTOP +* As you will notice, code structure is slightly different to the other examples... +* To compile it for PLATFORM_WEB just uncomment #define PLATFORM_WEB at beginning +* +* This example has been created using raylib 5.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2023-2024 Afan OLOVCIC (@_DevDad) 2015 Ramon Santamaria (@raysan5) +* Model: "Old Rusty Car" (https://skfb.ly/LxRy) by Renafox is licensed under Creative Commons Attribution-NonCommercial (http://creativecommons.org/licenses/by-nc/4.0/). +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) +#include +#endif + +#define RPBR_IMPLEMENTATION +#include "rpbr.h" + +#if defined(PLATFORM_DESKTOP) +#define GLSL_VERSION 330 +#else // PLATFORM_ANDROID, PLATFORM_WEB +#define GLSL_VERSION 120 +#endif + + +//---------------------------------------------------------------------------------- +// Main Entry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - basic pbr"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 2.0f, 2.0f, 6.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera projection type + + + Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs",GLSL_VERSION), + TextFormat("resources/shaders/glsl%i/pbr.fs",GLSL_VERSION)); + + + + PBRModel model = PBRModelLoad("resources/models/old_car_new.glb"); + //if we use obj file formator if model doesn't have tangents we have to calculate MeshTangents + //by using raylib function GenMeshTangents(mesh) for example: obj file doesn't support tangents + //GenMeshTangents(&model.model.meshes[0]); + + PBRMaterial model_mat = (PBRMaterial){0}; + PBRMaterialSetup(&model_mat, shader, NULL); //environment = NULL for now + PBRLoadTextures(&model_mat, PBR_TEXTURE_ALBEDO, "resources/old_car_d.png"); + PBRLoadTextures(&model_mat, PBR_TEXTURE_MRA, "resources/old_car_mra.png"); + PBRLoadTextures(&model_mat, PBR_TEXTURE_NORMAL, "resources/old_car_n.png"); + PBRLoadTextures(&model_mat, PBR_TEXTURE_EMISSIVE, "resources/old_car_e.png"); + PBRSetColor(&model_mat,PBR_COLOR_EMISSIVE, (Color){255,162,0,255}); + PBRSetVec2(&model_mat, PBR_VEC2_TILING,(Vector2){0.5,0.5}); + PBRSetMaterial(&model,&model_mat,0); + + PBRModel floor = PBRModelLoad("resources/models/plane.glb"); + + PBRMaterial floor_mat = (PBRMaterial){0}; + PBRMaterialSetup(&floor_mat, shader, NULL); + PBRLoadTextures(&floor_mat, PBR_TEXTURE_ALBEDO, "resources/road_a.png"); + PBRLoadTextures(&floor_mat, PBR_TEXTURE_MRA, "resources/road_mra.png"); + PBRLoadTextures(&floor_mat, PBR_TEXTURE_NORMAL, "resources/road_n.png"); + PBRSetVec2(&floor_mat, PBR_VEC2_TILING,(Vector2){0.5,0.5}); + PBRSetMaterial(&floor,&floor_mat,0); + + shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); + int numOfLightsLoc = GetShaderLocation(shader, "numOfLights"); + int numOfLights = 4; + SetShaderValue(shader, numOfLightsLoc, &numOfLights, SHADER_UNIFORM_INT); + + Color ambCol = (Color){26,32,135,255}; + float ambIntens = 0.02; + + int albedoLoc = GetShaderLocation(shader, "albedo"); + PBRSetAmbient(shader,ambCol,ambIntens); + + // Create lights + PBRLight lights[MAX_LIGHTS] = { 0 }; + lights[0] = PBRLightCreate(LIGHT_POINT, (Vector3){ -1, 1, -2 }, (Vector3){0,0,0}, YELLOW,4, shader); + lights[1] = PBRLightCreate(LIGHT_POINT, (Vector3){ 2, 1, 1 }, (Vector3){0,0,0}, GREEN,3.3, shader); + lights[2] = PBRLightCreate(LIGHT_POINT, (Vector3){ -2, 1, 1 }, (Vector3){0,0,0}, RED,8.3, shader); + lights[3] = PBRLightCreate(LIGHT_POINT, (Vector3){ 1, 1, -2 }, (Vector3){0,0,0}, BLUE,2, shader); + SetShaderValueV(shader, GetShaderLocation(shader, "lights"), lights, SHADER_UNIFORM_FLOAT, numOfLights); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second------------------------------------------------------------- + + int emissiveCnt = 0; + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera, CAMERA_ORBITAL); + + // Update the shader with the camera view vector (points towards { 0.0f, 0.0f, 0.0f }) + float cameraPos[3] = {camera.position.x, camera.position.y, camera.position.z}; + SetShaderValue(shader, shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3); + + // Check key inputs to enable/disable lights + if (IsKeyPressed(KEY_Y)) { lights[0].enabled = !lights[0].enabled; } + if (IsKeyPressed(KEY_G)) { lights[1].enabled = !lights[1].enabled; } + if (IsKeyPressed(KEY_R)) { lights[2].enabled = !lights[2].enabled; } + if (IsKeyPressed(KEY_B)) { lights[3].enabled = !lights[3].enabled; } + + // Update light values (actually, only enable/disable them) + for (int i = 0; i < MAX_LIGHTS; i++) PBRLightUpdate(shader, lights[i]); + emissiveCnt--; + if(emissiveCnt<=0){ + emissiveCnt = GetRandomValue(0,20); + PBRSetFloat(&model_mat,PBR_PARAM_EMISSIVE,(float)GetRandomValue(0,100)/100); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + ClearBackground(BLACK); + BeginMode3D(camera); + + PBRDrawModel(floor, (Vector3){0,0,0}, 5.0f); + PBRDrawModel(model, (Vector3) {0, 0.0, 0}, 0.005); + + // Draw spheres to show where the lights are + for (int i = 0; i < MAX_LIGHTS; i++) { + Color col = (Color) {lights[i].color[0] * 255, lights[i].color[1] * 255, lights[i].color[2] * 255, + lights[i].color[3] * 255}; + if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, col); + else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(col, 0.3f)); + } + EndMode3D(); + + DrawText("(c) Old Rusty Car model by Renafox (https://skfb.ly/LxRy)", screenWidth - 320, screenHeight - 20, 10, GRAY); + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + //-------------------------------------------------------------------------------------- + // De-Initialization + //-------------------------------------------------------------------------------------- + + UnloadModel(floor.model); // Unload model + UnloadModel(model.model); // Unload model + UnloadShader(shader); // Unload Shader + UnloadPBRMaterial(floor_mat); // Unload PBRMaterial + UnloadPBRMaterial(model_mat); // Unload PBRMaterial + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; + } From e001f7e75e4535d3e3576b9d4d16a5ffb8b83dbe Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:36:27 -0300 Subject: [PATCH 074/790] Add ToggleFullscreen() and required changes for PLATFORM_WEB (#3634) --- src/platforms/rcore_web.c | 77 ++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 13 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 6387420f9..396ce30e5 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -73,6 +73,7 @@ //---------------------------------------------------------------------------------- typedef struct { GLFWwindow *handle; // GLFW window handle (graphic device) + bool ourFullscreen; // Internal var to filter our handling of fullscreen vs the user handling of fullscreen } PlatformData; //---------------------------------------------------------------------------------- @@ -140,6 +141,37 @@ bool WindowShouldClose(void) // Toggle fullscreen mode void ToggleFullscreen(void) { + platform.ourFullscreen = true; + bool enterFullscreen = false; + + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + EM_ASM(document.exitFullscreen();); + + if (CORE.Window.flags & FLAG_FULLSCREEN_MODE) enterFullscreen = false; + else enterFullscreen = true; + + CORE.Window.fullscreen = false; + CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; + CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; + } + else enterFullscreen = true; + + if (enterFullscreen) + { + // NOTE: The setTimeouts handle the browser mode change delay + EM_ASM( + setTimeout(function() + { + Module.requestFullscreen(false, false); + }, 100); + ); + CORE.Window.fullscreen = true; + CORE.Window.flags |= FLAG_FULLSCREEN_MODE; + } + + // NOTE: Old notes below: /* EM_ASM ( @@ -204,40 +236,44 @@ void ToggleFullscreen(void) CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; } */ - - CORE.Window.fullscreen = !CORE.Window.fullscreen; // Toggle fullscreen flag } // Toggle borderless windowed mode void ToggleBorderlessWindowed(void) { + platform.ourFullscreen = true; + bool enterBorderless = false; + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); if (wasFullscreen) { EM_ASM(document.exitFullscreen();); + if (CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) enterBorderless = false; + else enterBorderless = true; + CORE.Window.fullscreen = false; CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; + CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; } + else enterBorderless = true; - if (!IsWindowState(FLAG_BORDERLESS_WINDOWED_MODE)) + if (enterBorderless) { // NOTE: 1. The setTimeouts handle the browser mode change delay - // 2. The style unset handles the possibility of a width="100%" like on the default shell.html file + // 2. The style unset handles the possibility of a width="value%" like on the default shell.html file EM_ASM( setTimeout(function() { - Module.requestFullscreen(true, true); + Module.requestFullscreen(false, true); setTimeout(function() { canvas.style.width="unset"; }, 100); }, 100); ); - CORE.Window.flags |= FLAG_BORDERLESS_WINDOWED_MODE; } - else CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; } // Set window state: maximized, if resizable @@ -277,9 +313,9 @@ void SetWindowState(unsigned int flags) } // State change: FLAG_FULLSCREEN_MODE - if ((flags & FLAG_FULLSCREEN_MODE) > 0) + if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) != (flags & FLAG_FULLSCREEN_MODE)) { - TRACELOG(LOG_WARNING, "SetWindowState(FLAG_FULLSCREEN_MODE) not available yet on target platform"); + ToggleFullscreen(); // NOTE: Window state flag updated inside function } // State change: FLAG_WINDOW_RESIZABLE @@ -384,9 +420,9 @@ void ClearWindowState(unsigned int flags) } // State change: FLAG_FULLSCREEN_MODE - if ((flags & FLAG_FULLSCREEN_MODE) > 0) + if (((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) && ((flags & FLAG_FULLSCREEN_MODE) > 0)) { - TRACELOG(LOG_WARNING, "ClearWindowState(FLAG_FULLSCREEN_MODE) not available yet on target platform"); + ToggleFullscreen(); // NOTE: Window state flag updated inside function } // State change: FLAG_WINDOW_RESIZABLE @@ -1015,6 +1051,9 @@ int InitPlatform(void) CORE.Window.display.width = CORE.Window.screen.width; CORE.Window.display.height = CORE.Window.screen.height; + // Init fullscreen toggle required var: + platform.ourFullscreen = false; + if (CORE.Window.fullscreen) { // remember center for switchinging from fullscreen to window @@ -1148,7 +1187,7 @@ int InitPlatform(void) // Initialize input events callbacks //---------------------------------------------------------------------------- // Setup callback functions for the DOM events - emscripten_set_fullscreenchange_callback("#canvas", NULL, 1, EmscriptenFullscreenChangeCallback); + emscripten_set_fullscreenchange_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, NULL, 1, EmscriptenFullscreenChangeCallback); // WARNING: Below resize code was breaking fullscreen mode for sample games and examples, it needs review // Check fullscreen change events(note this is done on the window since most browsers don't support this on #canvas) @@ -1412,7 +1451,19 @@ static void CursorEnterCallback(GLFWwindow *window, int enter) // Register fullscreen change events static EM_BOOL EmscriptenFullscreenChangeCallback(int eventType, const EmscriptenFullscreenChangeEvent *event, void *userData) { - // TODO: Implement EmscriptenFullscreenChangeCallback()? + // NOTE: 1. Reset the fullscreen flags if the user left fullscreen manually by pressing the Escape key + // 2. Which is a necessary safeguard because that case will bypass the toggles CORE.Window.flags resets + if (platform.ourFullscreen) platform.ourFullscreen = false; + else + { + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (!wasFullscreen) + { + CORE.Window.fullscreen = false; + CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; + CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; + } + } return 1; // The event was consumed by the callback handler } From 9de79861ea289822ce965b63e565b04a46c0ec11 Mon Sep 17 00:00:00 2001 From: Dongkun Lee Date: Sat, 16 Dec 2023 02:32:01 +0900 Subject: [PATCH 075/790] BM Font Extender (#3536) * loadbmfont * bmfontextender * bm font * Modify LoadBM Font * Delete loadbmfontex.diff * REVIEWED: `LoadBMFont()` PR * Update rtext.c * Update rtext.c --------- Co-authored-by: Dongkun Lee Co-authored-by: Ray --- src/rtext.c | 122 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 52 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index a919fa4ad..2a6aa1273 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2051,7 +2051,8 @@ static int GetLine(const char *origin, char *buffer, int maxLength) // REQUIRES: strstr(), sscanf(), strrchr(), memcpy() static Font LoadBMFont(const char *fileName) { - #define MAX_BUFFER_SIZE 256 + #define MAX_BUFFER_SIZE 256 + #define MAX_FONT_IMAGE_PAGES 8 Font font = { 0 }; @@ -2063,7 +2064,8 @@ static Font LoadBMFont(const char *fileName) int imWidth = 0; int imHeight = 0; - char imFileName[129] = { 0 }; + int pageCount = 1; + char imFileName[MAX_FONT_IMAGE_PAGES][129] = { 0 }; int base = 0; // Useless data int readBytes = 0; // Data bytes read @@ -2082,17 +2084,26 @@ static Font LoadBMFont(const char *fileName) // Read line data readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); searchPoint = strstr(buffer, "lineHeight"); - readVars = sscanf(searchPoint, "lineHeight=%i base=%i scaleW=%i scaleH=%i", &fontSize, &base, &imWidth, &imHeight); + readVars = sscanf(searchPoint, "lineHeight=%i base=%i scaleW=%i scaleH=%i pages=%i", &fontSize, &base, &imWidth, &imHeight, &pageCount); fileTextPtr += (readBytes + 1); if (readVars < 4) { UnloadFileText(fileText); return font; } // Some data not available, file malformed + + if (pageCount > MAX_FONT_IMAGE_PAGES) + { + TRACELOG(LOG_WARNING, "FONT: [%s] Font defines more pages than supported: %i/%i", fileName, pageCount, MAX_FONT_IMAGE_PAGES); + pageCount = MAX_FONT_IMAGE_PAGES; + } - readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); - searchPoint = strstr(buffer, "file"); - readVars = sscanf(searchPoint, "file=\"%128[^\"]\"", imFileName); - fileTextPtr += (readBytes + 1); + for (int i = 0; i < pageCount; i++) + { + readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); + searchPoint = strstr(buffer, "file"); + readVars = sscanf(searchPoint, "file=\"%128[^\"]\"", imFileName[i]); + fileTextPtr += (readBytes + 1); - if (readVars < 1) { UnloadFileText(fileText); return font; } // No fileName read + if (readVars < 1) { UnloadFileText(fileText); return font; } // No fileName read + } readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); searchPoint = strstr(buffer, "count"); @@ -2101,50 +2112,56 @@ static Font LoadBMFont(const char *fileName) if (readVars < 1) { UnloadFileText(fileText); return font; } // No glyphCount read - // Compose correct path using route of .fnt file (fileName) and imFileName - char *imPath = NULL; - char *lastSlash = NULL; + // Load all required images for further compose + Image *imFonts = (Image *)RL_CALLOC(pageCount, sizeof(Image)); // Font atlases, multiple images - lastSlash = strrchr(fileName, '/'); - if (lastSlash == NULL) lastSlash = strrchr(fileName, '\\'); - - if (lastSlash != NULL) + for (int i = 0; i < pageCount; i++) { - // NOTE: We need some extra space to avoid memory corruption on next allocations! - imPath = (char *)RL_CALLOC(TextLength(fileName) - TextLength(lastSlash) + TextLength(imFileName) + 4, 1); - memcpy(imPath, fileName, TextLength(fileName) - TextLength(lastSlash) + 1); - memcpy(imPath + TextLength(fileName) - TextLength(lastSlash) + 1, imFileName, TextLength(imFileName)); - } - else imPath = imFileName; + imFonts[i] = LoadImage(TextFormat("%s/%s", GetDirectoryPath(fileName), imFileName[i])); - TRACELOGD(" > Image loading path: %s", imPath); - - Image imFont = LoadImage(imPath); - - if (imFont.format == PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - // Convert image to GRAYSCALE + ALPHA, using the mask as the alpha channel - Image imFontAlpha = { - .data = RL_CALLOC(imFont.width*imFont.height, 2), - .width = imFont.width, - .height = imFont.height, - .mipmaps = 1, - .format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA - }; - - for (int p = 0, i = 0; p < (imFont.width*imFont.height*2); p += 2, i++) + if (imFonts[i].format == PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) { - ((unsigned char *)(imFontAlpha.data))[p] = 0xff; - ((unsigned char *)(imFontAlpha.data))[p + 1] = ((unsigned char *)imFont.data)[i]; - } + // Convert image to GRAYSCALE + ALPHA, using the mask as the alpha channel + Image imFontAlpha = { + .data = RL_CALLOC(imFonts[i].width*imFonts[i].height, 2), + .width = imFonts[i].width, + .height = imFonts[i].height, + .mipmaps = 1, + .format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA + }; - UnloadImage(imFont); - imFont = imFontAlpha; + for (int p = 0, pi = 0; p < (imFonts[i].width*imFonts[i].height*2); p += 2, pi++) + { + ((unsigned char *)(imFontAlpha.data))[p] = 0xff; + ((unsigned char *)(imFontAlpha.data))[p + 1] = ((unsigned char *)imFonts[i].data)[pi]; + } + + UnloadImage(imFonts[i]); + imFonts[i] = imFontAlpha; + } } - font.texture = LoadTextureFromImage(imFont); + Image fullFont = imFonts[0]; + for (int i = 1; i < pageCount; i++) UnloadImage(imFonts[i]); - if (lastSlash != NULL) RL_FREE(imPath); + // If multiple atlas, then merge atlas + // NOTE: WARNING: This process could be really slow! + if (pageCount > 1) + { + // Resize font atlas to draw additional images + ImageResizeCanvas(&fullFont, imWidth, imHeight*pageCount, 0, 0, BLACK); + + for (int i = 1; i < pageCount; i++) + { + Rectangle srcRec = { 0.0f, 0.0f, (float)imWidth, (float)imHeight }; + Rectangle destRec = { 0.0f, (float)imHeight*(float)i, (float)imWidth, (float)imHeight }; + ImageDraw(&fullFont, imFonts[i], srcRec, destRec, WHITE); + } + } + + RL_FREE(imFonts); + + font.texture = LoadTextureFromImage(fullFont); // Fill font characters info data font.baseSize = fontSize; @@ -2153,19 +2170,19 @@ static Font LoadBMFont(const char *fileName) font.glyphs = (GlyphInfo *)RL_MALLOC(glyphCount*sizeof(GlyphInfo)); font.recs = (Rectangle *)RL_MALLOC(glyphCount*sizeof(Rectangle)); - int charId, charX, charY, charWidth, charHeight, charOffsetX, charOffsetY, charAdvanceX; + int charId, charX, charY, charWidth, charHeight, charOffsetX, charOffsetY, charAdvanceX, pageID; for (int i = 0; i < glyphCount; i++) { readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); - readVars = sscanf(buffer, "char id=%i x=%i y=%i width=%i height=%i xoffset=%i yoffset=%i xadvance=%i", - &charId, &charX, &charY, &charWidth, &charHeight, &charOffsetX, &charOffsetY, &charAdvanceX); + readVars = sscanf(buffer, "char id=%i x=%i y=%i width=%i height=%i xoffset=%i yoffset=%i xadvance=%i page=%i", + &charId, &charX, &charY, &charWidth, &charHeight, &charOffsetX, &charOffsetY, &charAdvanceX, &pageID); fileTextPtr += (readBytes + 1); - if (readVars == 8) // Make sure all char data has been properly read + if (readVars == 9) // Make sure all char data has been properly read { // Get character rectangle in the font atlas texture - font.recs[i] = (Rectangle){ (float)charX, (float)charY, (float)charWidth, (float)charHeight }; + font.recs[i] = (Rectangle){ (float)charX, (float)charY + (float)imHeight*pageID, (float)charWidth, (float)charHeight }; // Save data properly in sprite font font.glyphs[i].value = charId; @@ -2173,13 +2190,13 @@ static Font LoadBMFont(const char *fileName) font.glyphs[i].offsetY = charOffsetY; font.glyphs[i].advanceX = charAdvanceX; - // Fill character image data from imFont data - font.glyphs[i].image = ImageFromImage(imFont, font.recs[i]); + // Fill character image data from full font data + font.glyphs[i].image = ImageFromImage(fullFont, font.recs[i]); } else TRACELOG(LOG_WARNING, "FONT: [%s] Some characters data not correctly provided", fileName); } - UnloadImage(imFont); + UnloadImage(fullFont); UnloadFileText(fileText); if (font.texture.id == 0) @@ -2192,6 +2209,7 @@ static Font LoadBMFont(const char *fileName) return font; } + #endif #endif // SUPPORT_MODULE_RTEXT From 0fc1765ff3849d3b1fb8a1b193c48ea96cee2664 Mon Sep 17 00:00:00 2001 From: Toctave Date: Fri, 15 Dec 2023 18:34:34 +0100 Subject: [PATCH 076/790] Implement miters in DrawSplineLinear (#3585) * Implement miters in DrawSplineLinear * Follow raylib style --- src/rshapes.c | 79 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 70 insertions(+), 9 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index 4b3f2cfd0..b7fc0ed7f 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -1546,26 +1546,87 @@ void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, fl // Draw spline: linear, minimum 2 points void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) { - Vector2 delta = { 0 }; - float length = 0.0f; - float scale = 0.0f; + if (pointCount < 2) + { + return; + } + + Vector2 prevNormal = (Vector2){-(points[1].y - points[0].y), (points[1].x - points[0].x)}; + float prevLength = sqrtf(prevNormal.x*prevNormal.x + prevNormal.y*prevNormal.y); + if (prevLength > 0.0f) + { + prevNormal.x /= prevLength; + prevNormal.y /= prevLength; + } + else + { + prevNormal.x = 0.0f; + prevNormal.y = 0.0f; + } + Vector2 prevRadius = {.5f * thick * prevNormal.x, .5f * thick * prevNormal.y}; + for (int i = 0; i < pointCount - 1; i++) { - delta = (Vector2){ points[i + 1].x - points[i].x, points[i + 1].y - points[i].y }; - length = sqrtf(delta.x*delta.x + delta.y*delta.y); + Vector2 normal = {0}; - if (length > 0) scale = thick/(2*length); + if (i < pointCount - 2) + { + normal = (Vector2){-(points[i+2].y - points[i+1].y), (points[i+2].x - points[i+1].x)}; + float normalLength = sqrtf(normal.x*normal.x + normal.y*normal.y); + if (normalLength > 0.0f) + { + normal.x /= normalLength; + normal.y /= normalLength; + } + else + { + normal.x = 0.0f; + normal.y = 0.0f; + } + } + else + { + normal = prevNormal; + } - Vector2 radius = { -scale*delta.y, scale*delta.x }; + Vector2 radius = {prevNormal.x + normal.x, prevNormal.y + normal.y}; + float radiusLength = sqrtf(radius.x*radius.x + radius.y*radius.y); + if (radiusLength > 0.0f) + { + radius.x /= radiusLength; + radius.y /= radiusLength; + } + else + { + radius.x = 0.0f; + radius.y = 0.0f; + } + + float cosTheta = radius.x * normal.x + radius.y * normal.y; + + if (cosTheta != 0.0f) + { + radius.x *= thick * .5f / cosTheta; + radius.y *= thick * .5f / cosTheta; + } + else + { + radius.x = 0.0f; + radius.y = 0.0f; + } + Vector2 strip[4] = { - { points[i].x - radius.x, points[i].y - radius.y }, - { points[i].x + radius.x, points[i].y + radius.y }, + { points[i].x - prevRadius.x, points[i].y - prevRadius.y }, + { points[i].x + prevRadius.x, points[i].y + prevRadius.y }, { points[i + 1].x - radius.x, points[i + 1].y - radius.y }, { points[i + 1].x + radius.x, points[i + 1].y + radius.y } }; DrawTriangleStrip(strip, 4, color); + + prevRadius = radius; + prevNormal = normal; } #if defined(SUPPORT_SPLINE_SEGMENT_CAPS) From f3adde8bbd7fbc930f5b3abd57a5481413ff5644 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 15 Dec 2023 18:40:19 +0100 Subject: [PATCH 077/790] REVIEWED: `DrawSplineLinear()` to `SUPPORT_SPLINE_MITERS` --- src/rshapes.c | 53 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index b7fc0ed7f..b8c17e702 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -1546,13 +1546,12 @@ void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, fl // Draw spline: linear, minimum 2 points void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) { - if (pointCount < 2) - { - return; - } - + if (pointCount < 2) return; + +#if defined(SUPPORT_SPLINE_MITERS) Vector2 prevNormal = (Vector2){-(points[1].y - points[0].y), (points[1].x - points[0].x)}; float prevLength = sqrtf(prevNormal.x*prevNormal.x + prevNormal.y*prevNormal.y); + if (prevLength > 0.0f) { prevNormal.x /= prevLength; @@ -1564,16 +1563,17 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) prevNormal.y = 0.0f; } - Vector2 prevRadius = {.5f * thick * prevNormal.x, .5f * thick * prevNormal.y}; + Vector2 prevRadius = { 0.5f*thick*prevNormal.x, 0.5f*thick*prevNormal.y }; for (int i = 0; i < pointCount - 1; i++) { - Vector2 normal = {0}; + Vector2 normal = { 0 }; if (i < pointCount - 2) { - normal = (Vector2){-(points[i+2].y - points[i+1].y), (points[i+2].x - points[i+1].x)}; + normal = (Vector2){-(points[i + 2].y - points[i + 1].y), (points[i + 2].x - points[i + 1].x)}; float normalLength = sqrtf(normal.x*normal.x + normal.y*normal.y); + if (normalLength > 0.0f) { normal.x /= normalLength; @@ -1590,8 +1590,9 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) normal = prevNormal; } - Vector2 radius = {prevNormal.x + normal.x, prevNormal.y + normal.y}; + Vector2 radius = { prevNormal.x + normal.x, prevNormal.y + normal.y }; float radiusLength = sqrtf(radius.x*radius.x + radius.y*radius.y); + if (radiusLength > 0.0f) { radius.x /= radiusLength; @@ -1603,12 +1604,12 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) radius.y = 0.0f; } - float cosTheta = radius.x * normal.x + radius.y * normal.y; + float cosTheta = radius.x*normal.x + radius.y*normal.y; if (cosTheta != 0.0f) { - radius.x *= thick * .5f / cosTheta; - radius.y *= thick * .5f / cosTheta; + radius.x *= (thick*0.5f/cosTheta); + radius.y *= (thick*0.5f/cosTheta); } else { @@ -1628,8 +1629,34 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) prevRadius = radius; prevNormal = normal; } -#if defined(SUPPORT_SPLINE_SEGMENT_CAPS) +#else // !SUPPORT_SPLINE_MITTERS + + Vector2 delta = { 0 }; + float length = 0.0f; + float scale = 0.0f; + + for (int i = 0; i < pointCount - 1; i++) + { + delta = (Vector2){ points[i + 1].x - points[i].x, points[i + 1].y - points[i].y }; + length = sqrtf(delta.x*delta.x + delta.y*delta.y); + + if (length > 0) scale = thick/(2*length); + + Vector2 radius = { -scale*delta.y, scale*delta.x }; + Vector2 strip[4] = { + { points[i].x - radius.x, points[i].y - radius.y }, + { points[i].x + radius.x, points[i].y + radius.y }, + { points[i + 1].x - radius.x, points[i + 1].y - radius.y }, + { points[i + 1].x + radius.x, points[i + 1].y + radius.y } + }; + + DrawTriangleStrip(strip, 4, color); + } +#endif + +#if defined(SUPPORT_SPLINE_SEGMENT_CAPS) + // TODO: Add spline segment rounded caps at the begin/end of the spline #endif } From fd84ab3cf735a643a074780ba73559d125e35aad Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 15 Dec 2023 19:17:44 +0100 Subject: [PATCH 078/790] Bump CMake version required to avoid deprecated #3639 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9619768c8..ce2de5788 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) project(raylib) # Avoid excessive expansion of variables in conditionals. In particular, if From 0df78d4eeb259d152850c0e2a68c7b079c8ec84d Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Sat, 16 Dec 2023 14:22:02 -0300 Subject: [PATCH 079/790] Fix fullscreen known issue 1 for PLATFORM_WEB (#3642) --- src/platforms/rcore_web.c | 75 +++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 14 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 396ce30e5..ea74472e5 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -147,10 +147,17 @@ void ToggleFullscreen(void) const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); if (wasFullscreen) { - EM_ASM(document.exitFullscreen();); - if (CORE.Window.flags & FLAG_FULLSCREEN_MODE) enterFullscreen = false; - else enterFullscreen = true; + else if (CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) enterFullscreen = true; + else + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int canvasStyleWidth = EM_ASM_INT( { return parseInt(document.getElementById('canvas').style.width); }, 0); + if (canvasStyleWidth > canvasWidth) enterFullscreen = false; + else enterFullscreen = true; + } + + EM_ASM(document.exitFullscreen();); CORE.Window.fullscreen = false; CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; @@ -247,10 +254,17 @@ void ToggleBorderlessWindowed(void) const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); if (wasFullscreen) { - EM_ASM(document.exitFullscreen();); - if (CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) enterBorderless = false; - else enterBorderless = true; + else if (CORE.Window.flags & FLAG_FULLSCREEN_MODE) enterBorderless = true; + else + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int screenWidth = EM_ASM_INT( { return screen.width; }, 0); + if (screenWidth == canvasWidth) enterBorderless = false; + else enterBorderless = true; + } + + EM_ASM(document.exitFullscreen();); CORE.Window.fullscreen = false; CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; @@ -307,15 +321,31 @@ void SetWindowState(unsigned int flags) } // State change: FLAG_BORDERLESS_WINDOWED_MODE - if (((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) != (flags & FLAG_BORDERLESS_WINDOWED_MODE)) && ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0)) + if ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0) { - ToggleBorderlessWindowed(); // NOTE: Window state flag updated inside function + // NOTE: Window state flag updated inside ToggleBorderlessWindowed() function + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int canvasStyleWidth = EM_ASM_INT( { return parseInt(document.getElementById('canvas').style.width); }, 0); + if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) || canvasStyleWidth > canvasWidth) ToggleBorderlessWindowed(); + } + else ToggleBorderlessWindowed(); } // State change: FLAG_FULLSCREEN_MODE - if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) != (flags & FLAG_FULLSCREEN_MODE)) + if ((flags & FLAG_FULLSCREEN_MODE) > 0) { - ToggleFullscreen(); // NOTE: Window state flag updated inside function + // NOTE: Window state flag updated inside ToggleFullscreen() function + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int screenWidth = EM_ASM_INT( { return screen.width; }, 0); + if ((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) || screenWidth == canvasWidth ) ToggleFullscreen(); + } + else ToggleFullscreen(); } // State change: FLAG_WINDOW_RESIZABLE @@ -414,15 +444,32 @@ void ClearWindowState(unsigned int flags) } // State change: FLAG_BORDERLESS_WINDOWED_MODE - if (((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0) && ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0)) + if ((flags & FLAG_BORDERLESS_WINDOWED_MODE) > 0) { - ToggleBorderlessWindowed(); // NOTE: Window state flag updated inside function + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int screenWidth = EM_ASM_INT( { return screen.width; }, 0); + if ((CORE.Window.flags & FLAG_BORDERLESS_WINDOWED_MODE) || (screenWidth == canvasWidth)) EM_ASM(document.exitFullscreen();); + } + + CORE.Window.flags &= ~FLAG_BORDERLESS_WINDOWED_MODE; } // State change: FLAG_FULLSCREEN_MODE - if (((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) && ((flags & FLAG_FULLSCREEN_MODE) > 0)) + if ((flags & FLAG_FULLSCREEN_MODE) > 0) { - ToggleFullscreen(); // NOTE: Window state flag updated inside function + const bool wasFullscreen = EM_ASM_INT( { if (document.fullscreenElement) return 1; }, 0); + if (wasFullscreen) + { + const int canvasWidth = EM_ASM_INT( { return document.getElementById('canvas').width; }, 0); + const int canvasStyleWidth = EM_ASM_INT( { return parseInt(document.getElementById('canvas').style.width); }, 0); + if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) || (canvasStyleWidth > canvasWidth)) EM_ASM(document.exitFullscreen();); + } + + CORE.Window.fullscreen = false; + CORE.Window.flags &= ~FLAG_FULLSCREEN_MODE; } // State change: FLAG_WINDOW_RESIZABLE From 2487174b48385247566f8e0af5564518446f7c13 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Sat, 16 Dec 2023 14:25:55 -0300 Subject: [PATCH 080/790] Fix CORE.Input.Mouse.cursorHidden with callbacks for PLATFORM_WEB (#3644) --- src/platforms/rcore_web.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index ea74472e5..ba44096bb 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -114,6 +114,7 @@ static EM_BOOL EmscriptenResizeCallback(int eventType, const EmscriptenUiEvent * // Emscripten input callback events static EM_BOOL EmscriptenMouseCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData); +static EM_BOOL EmscriptenPointerlockCallback(int eventType, const EmscriptenPointerlockChangeEvent *pointerlockChangeEvent, void *userData); static EM_BOOL EmscriptenTouchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData); static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadEvent *gamepadEvent, void *userData); @@ -765,7 +766,7 @@ void EnableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); - CORE.Input.Mouse.cursorHidden = false; + // NOTE: CORE.Input.Mouse.cursorHidden handled by EmscriptenPointerlockCallback() } // Disables cursor (lock cursor) @@ -777,7 +778,7 @@ void DisableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); - CORE.Input.Mouse.cursorHidden = true; + // NOTE: CORE.Input.Mouse.cursorHidden handled by EmscriptenPointerlockCallback() } // Swap back buffer with front buffer (screen drawing) @@ -1251,6 +1252,7 @@ int InitPlatform(void) // Support mouse events emscripten_set_click_callback("#canvas", NULL, 1, EmscriptenMouseCallback); + emscripten_set_pointerlockchange_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, NULL, 1, EmscriptenPointerlockCallback); // Support touch events emscripten_set_touchstart_callback("#canvas", NULL, 1, EmscriptenTouchCallback); @@ -1570,6 +1572,14 @@ static EM_BOOL EmscriptenMouseCallback(int eventType, const EmscriptenMouseEvent return 1; // The event was consumed by the callback handler } +// Register pointer lock events +static EM_BOOL EmscriptenPointerlockCallback(int eventType, const EmscriptenPointerlockChangeEvent *pointerlockChangeEvent, void *userData) +{ + CORE.Input.Mouse.cursorHidden = EM_ASM_INT( { if (document.pointerLockElement) return 1; }, 0); + + return 1; // The event was consumed by the callback handler +} + // Register connected/disconnected gamepads events static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadEvent *gamepadEvent, void *userData) { From 9fcfc8d64b061da24e589faaaf9d8af79b3d1f3e Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Sun, 17 Dec 2023 09:46:21 -0300 Subject: [PATCH 081/790] [rcore] Fix `ShowCursor()`, `HideCursor()` and review `SetMouseCursor()` for `PLATFORM_WEB` (#3647) * Fix ShowCursor(), HideCursor() and review SetMouseCursor() for PLATFORM_WEB * Add static to cursorLUT[] * Re-review SetMouseCursor() --- src/platforms/rcore_web.c | 58 +++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index ba44096bb..fa60eaff1 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -83,6 +83,23 @@ extern CoreData CORE; // Global CORE state context static PlatformData platform = { 0 }; // Platform specific data +//---------------------------------------------------------------------------------- +// Local Variables Definition +//---------------------------------------------------------------------------------- +static const char cursorLUT[11][12] = { + "default", // 0 MOUSE_CURSOR_DEFAULT + "default", // 1 MOUSE_CURSOR_ARROW + "text", // 2 MOUSE_CURSOR_IBEAM + "crosshair", // 3 MOUSE_CURSOR_CROSSHAIR + "pointer", // 4 MOUSE_CURSOR_POINTING_HAND + "ew-resize", // 5 MOUSE_CURSOR_RESIZE_EW + "ns-resize", // 6 MOUSE_CURSOR_RESIZE_NS + "nwse-resize", // 7 MOUSE_CURSOR_RESIZE_NWSE + "nesw-resize", // 8 MOUSE_CURSOR_RESIZE_NESW + "move", // 9 MOUSE_CURSOR_RESIZE_ALL + "not-allowed" // 10 MOUSE_CURSOR_NOT_ALLOWED +}; + //---------------------------------------------------------------------------------- // Module Internal Functions Declaration //---------------------------------------------------------------------------------- @@ -749,13 +766,23 @@ const char *GetClipboardText(void) // Show mouse cursor void ShowCursor(void) { - CORE.Input.Mouse.cursorHidden = false; + if (CORE.Input.Mouse.cursorHidden) + { + EM_ASM( { document.getElementById("canvas").style.cursor = UTF8ToString($0); }, cursorLUT[CORE.Input.Mouse.cursor]); + + CORE.Input.Mouse.cursorHidden = false; + } } // Hides mouse cursor void HideCursor(void) { - CORE.Input.Mouse.cursorHidden = true; + if (!CORE.Input.Mouse.cursorHidden) + { + EM_ASM(document.getElementById('canvas').style.cursor = 'none';); + + CORE.Input.Mouse.cursorHidden = true; + } } // Enables cursor (unlock cursor) @@ -837,32 +864,9 @@ void SetMouseCursor(int cursor) { if (CORE.Input.Mouse.cursor != cursor) { - const char *cursorName = NULL; + if (!CORE.Input.Mouse.cursorHidden) EM_ASM( { document.getElementById('canvas').style.cursor = UTF8ToString($0); }, cursorLUT[cursor]); + CORE.Input.Mouse.cursor = cursor; - - switch (cursor) - { - case MOUSE_CURSOR_IBEAM: cursorName = "text"; break; - case MOUSE_CURSOR_CROSSHAIR: cursorName = "crosshair"; break; - case MOUSE_CURSOR_POINTING_HAND: cursorName = "pointer"; break; - case MOUSE_CURSOR_RESIZE_EW: cursorName = "ew-resize"; break; - case MOUSE_CURSOR_RESIZE_NS: cursorName = "ns-resize"; break; - case MOUSE_CURSOR_RESIZE_NWSE: cursorName = "nwse-resize"; break; - case MOUSE_CURSOR_RESIZE_NESW: cursorName = "nesw-resize"; break; - case MOUSE_CURSOR_RESIZE_ALL: cursorName = "move"; break; - case MOUSE_CURSOR_NOT_ALLOWED: cursorName = "not-allowed"; break; - case MOUSE_CURSOR_ARROW: // WARNING: It does not seem t be a specific cursor for arrow - case MOUSE_CURSOR_DEFAULT: cursorName = "default"; break; - default: - { - cursorName = "default"; - CORE.Input.Mouse.cursor = MOUSE_CURSOR_DEFAULT; - } break; - } - - // Set the cursor element on the canvas CSS - // The canvas is coded to the Id "canvas" on init - EM_ASM({document.getElementById("canvas").style.cursor = UTF8ToString($0);}, cursorName); } } From 34a9163c520a353ebb9889ea291b7b8babd1d286 Mon Sep 17 00:00:00 2001 From: TheManTheMythTheGameDev <76568234+TheManTheMythTheGameDev@users.noreply.github.com> Date: Tue, 19 Dec 2023 01:36:03 -0800 Subject: [PATCH 082/790] Remove dependencies from PBR example (#3649) * Remove dependencies from PBR example * Reviewed example PR --------- Co-authored-by: Ray --- examples/shaders/rpbr.h | 466 --------------------------- examples/shaders/shaders_basic_pbr.c | 218 ++++++++++--- 2 files changed, 171 insertions(+), 513 deletions(-) delete mode 100644 examples/shaders/rpbr.h diff --git a/examples/shaders/rpbr.h b/examples/shaders/rpbr.h deleted file mode 100644 index a8b7e9394..000000000 --- a/examples/shaders/rpbr.h +++ /dev/null @@ -1,466 +0,0 @@ -/********************************************************************************************** -* -* raylib.pbr - Some useful functions to deal with pbr materials and lights -* -* CONFIGURATION: -* -* #define RPBR_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2023-2024 Afan OLOVCIC (@_DevDad) 2017-2020 Victor Fisac(@victorfisac),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 RPBR_H -#define RPBR_H -#include "raylib.h" - - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#define MAX_LIGHTS 4 // Max dynamic lights supported by shader -#define SHADER_LOC_MAP_MRA SHADER_LOC_MAP_METALNESS //METALLIC, ROUGHNESS and AO -#define SHADER_LOC_MAP_EMISSIVE SHADER_LOC_MAP_HEIGHT //EMISSIVE -#define MATERIAL_MAP_MRA MATERIAL_MAP_METALNESS -#define MATERIAL_MAP_EMISSIVE MATERIAL_MAP_HEIGHT -#define NULL 0 -#define COLOR_TO_ARRAY(c) - -typedef struct { - int enabled; - int type; - Vector3 position; - Vector3 target; - float color[4]; - float intensity; - - int enabledLoc; - int typeLoc; - int positionLoc; - int targetLoc; - int colorLoc; - int intensityLoc; -} PBRLight; - -typedef enum { - LIGHT_DIRECTIONAL = 0, - LIGHT_POINT, - LIGHT_SPOT -} PBRLightType; - -typedef struct{ - Shader pbrShader; - Shader skyShader; - unsigned int cubemap; - unsigned int irradiance; - unsigned int prefilter; - unsigned int brdf; - int modelMatrixLoc; - int pbrViewLoc; - int skyViewLoc; - int skyResolutionLoc; -} PBREnvironment; - -typedef enum{ - PBR_COLOR_ALBEDO = 0, - PBR_COLOR_EMISSIVE -}PBRColorType; - -typedef enum{ - PBR_VEC2_TILING = 0, - PBR_VEC2_OFFSET -}PBRVec2Type; - -typedef enum{ - PBR_PARAM_NORMAL =0, - PBR_PARAM_METALLIC, - PBR_PARAM_ROUGHNESS, - PBR_PARAM_EMISSIVE, - PBR_PARAM_AO -}PBRFloatType; - -typedef enum{ - PBR_TEXTURE_ALBEDO = 0, - PBR_TEXTURE_NORMAL, - PBR_TEXTURE_MRA, - PBR_TEXTURE_EMISSIVE -}PBRTexType; - -// Textures are moved to material from params to pack better and use less textures on the end -// texture MRAE 4Channel R: Metallic G: Roughness B: A: Ambient Occlusion -// texEmissive use just one channel, so we have 3 channels still to use if we need -typedef struct { - Shader pbrShader; - float albedo[4]; - float normal; - float metallic; - float roughness; - float ao; - float emissive[4]; - float ambient[3]; - float emissivePower; - - Texture2D texAlbedo; - Texture2D texNormal; - Texture2D texMRA;//r: Metallic g: Roughness b: AO a:Empty - Texture2D texEmissive; //Emissive Texture - // Using float4 to store tilling at 1st and 2nd position and offset at 3rd and 4th - float texTiling[2]; - float texOffset[2]; - - int useTexAlbedo; - int useTexNormal; - int useTexMRA; - int useTexEmissive; - - int albedoLoc; - int normalLoc; - int metallicLoc; - int roughnessLoc; - int aoLoc; - int emissiveColorLoc; - int emissivePowerLoc; - - int texTilingLoc; - int texOffsetLoc; - - int useTexAlbedoLoc; - int useTexNormalLoc; - int useTexMRAELoc; - int useTexEmissiveLoc; -} PBRMaterial; - -typedef struct{ - Model model; - PBRMaterial pbrMat; -}PBRModel; - -#ifdef __cplusplus -extern "C" { -#endif - - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- - -// Create a light and get shader locations -PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color,float intensity, Shader shader); -// Send light properties to shader -void PBRLightUpdate(Shader shader, PBRLight light); - -//For now until we do real skylight -void PBRSetAmbient(Shader shader, Color color, float intensity); - -PBRModel PBRModelLoad(const char *fileName); -PBRModel PBRModelLoadFromMesh(Mesh mesh); - -void PBRLoadTextures(PBRMaterial *pbrMat,PBRTexType pbrTexType,const char *fileName); -void UnloadPBRMaterial(PBRMaterial pbrMat); -void PBRSetColor(PBRMaterial *pbrMat,PBRColorType pbrColorType,Color color); -void PBRSetVec2(PBRMaterial *pbrMat,PBRVec2Type type,Vector2 value); -void PBRSetFloat(PBRMaterial *pbrMat, PBRFloatType pbrParamType, float value); - -void PBRMaterialSetup( PBRMaterial *pbrMat,Shader pbrShader, PBREnvironment* environment); -void PBRSetMaterial(PBRModel* model,PBRMaterial* pbrMat,int matIndex); -void PBRDrawModel(PBRModel pbrModel, Vector3 position, float scale); - -#ifdef __cplusplus -} -#endif - -#endif //RPBR_H - -/*********************************************************************************** -* -* RPBR IMPLEMENTATION -* -************************************************************************************/ - -#if defined(RPBR_IMPLEMENTATION) - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -static int lightsCount = 0; // Current amount of created lights - -// Create a light and get shader locations -PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color,float intensity, Shader shader) -{ - PBRLight light = { 0 }; - - if (lightsCount < MAX_LIGHTS) - { - light.enabled = 1; - light.type = type; - light.position = position; - light.target = target; - light.color[0] = (float)color.r/(float)255; - light.color[1] = (float)color.g/(float)255; - light.color[2] = (float)color.b/(float)255; - light.color[3] = (float)color.a/(float)255; - light.intensity = intensity; - // NOTE: Lighting shader naming must be the provided ones - light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightsCount)); - light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightsCount)); - light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightsCount)); - light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightsCount)); - light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightsCount)); - light.intensityLoc = GetShaderLocation(shader, TextFormat("lights[%i].intensity", lightsCount)); - PBRLightUpdate(shader, light); - - lightsCount++; - } - - return light; -} - -// Send light properties to shader -// NOTE: Light shader locations should be available -void PBRLightUpdate(Shader shader, PBRLight light) -{ - SetShaderValue(shader, light.enabledLoc, &light.enabled, SHADER_UNIFORM_INT); - SetShaderValue(shader, light.typeLoc, &light.type, SHADER_UNIFORM_INT); - // Send to shader light position values - float position[3] = { light.position.x, light.position.y, light.position.z }; - SetShaderValue(shader, light.positionLoc, position, SHADER_UNIFORM_VEC3); - - // Send to shader light target position values - float target[3] = { light.target.x, light.target.y, light.target.z }; - SetShaderValue(shader, light.targetLoc, target, SHADER_UNIFORM_VEC3); - SetShaderValue(shader, light.colorLoc, light.color, SHADER_UNIFORM_VEC4); - SetShaderValue(shader, light.intensityLoc, &light.intensity, SHADER_UNIFORM_FLOAT); -} - -void PBRSetAmbient(Shader shader, Color color, float intensity){ - float col[3] = {color.r/255,color.g/255,color.b/255}; - SetShaderValue(shader, GetShaderLocation(shader, "ambientColor"), col, SHADER_UNIFORM_VEC3); - SetShaderValue(shader, GetShaderLocation(shader, "ambient"), &intensity, SHADER_UNIFORM_FLOAT); -} - -void PBRMaterialSetup(PBRMaterial *pbrMat, Shader pbrShader, PBREnvironment* environment){ - pbrMat->pbrShader = pbrShader; - - pbrMat->texAlbedo = (Texture2D){0}; - pbrMat->texNormal = (Texture2D){0}; - pbrMat->texMRA = (Texture2D){0}; - pbrMat->texEmissive = (Texture2D){0}; - - //PBRParam - pbrMat->albedo[0] = 1.0; - pbrMat->albedo[1] = 1.0; - pbrMat->albedo[2] = 1.0; - pbrMat->albedo[3] = 1.0; - pbrMat->metallic = 0; - pbrMat->roughness = 0; - pbrMat->ao = 1.0; - pbrMat->normal = 1; - pbrMat->emissive[0] = 0; - pbrMat->emissive[1] = 0; - pbrMat->emissive[2] = 0; - pbrMat->emissive[3] = 0; - - pbrMat->texTiling[0] = 1.0; - pbrMat->texTiling[1] = 1.0; - pbrMat->texOffset[0] = 0.0; - pbrMat->texOffset[1] = 0.0; - pbrMat->emissivePower = 1.0; - // Set up PBR shader material locations - - pbrMat->albedoLoc = GetShaderLocation(pbrMat->pbrShader, "albedoColor"); - pbrMat->normalLoc = GetShaderLocation(pbrMat->pbrShader, "normalValue"); - pbrMat->metallicLoc = GetShaderLocation(pbrMat->pbrShader, "metallicValue"); - pbrMat->roughnessLoc = GetShaderLocation(pbrMat->pbrShader, "roughnessValue"); - pbrMat->aoLoc = GetShaderLocation(pbrMat->pbrShader, "aoValue"); - pbrMat->emissiveColorLoc = GetShaderLocation(pbrMat->pbrShader, "emissiveColor"); - pbrMat->emissivePowerLoc = GetShaderLocation(pbrMat->pbrShader, "emissivePower"); - - pbrMat->texTilingLoc = GetShaderLocation(pbrMat->pbrShader, "tiling"); - pbrMat->texOffsetLoc = GetShaderLocation(pbrMat->pbrShader, "offset"); - - pbrMat->useTexAlbedoLoc = GetShaderLocation(pbrMat->pbrShader, "useTexAlbedo"); - pbrMat->useTexNormalLoc = GetShaderLocation(pbrMat->pbrShader, "useTexNormal"); - pbrMat->useTexMRAELoc = GetShaderLocation(pbrMat->pbrShader, "useTexMRA"); - pbrMat->useTexEmissiveLoc = GetShaderLocation(pbrMat->pbrShader, "useTexEmissive"); - - SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); - SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); - SetShaderValue(pbrMat->pbrShader, pbrMat->emissivePowerLoc, &pbrMat->emissivePower, SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,pbrMat->texTiling,SHADER_UNIFORM_VEC2); - SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,pbrMat->texOffset,SHADER_UNIFORM_VEC2); -} - -void PBRLoadTextures(PBRMaterial *pbrMat,PBRTexType pbrTexType,const char *fileName){ - if(pbrMat == NULL) return; - switch(pbrTexType){ - case PBR_TEXTURE_ALBEDO: - pbrMat->texAlbedo = LoadTexture(fileName); - pbrMat->useTexAlbedo = 1; - break; - case PBR_TEXTURE_MRA: - pbrMat->texMRA = LoadTexture(fileName); - pbrMat->useTexMRA = 1; - break; - case PBR_TEXTURE_NORMAL: - pbrMat->texNormal = LoadTexture(fileName); - pbrMat->useTexNormal = 1; - break; - case PBR_TEXTURE_EMISSIVE: - pbrMat->texEmissive = LoadTexture(fileName); - pbrMat->useTexEmissive = 1; - break; - } -} - -void UnloadPBRMaterial(PBRMaterial pbrMat){ - if(pbrMat.useTexAlbedo == 1) UnloadTexture(pbrMat.texAlbedo); - if(pbrMat.useTexNormal == 1) UnloadTexture(pbrMat.texNormal); - if(pbrMat.useTexMRA == 1) UnloadTexture(pbrMat.texMRA); - if(pbrMat.useTexEmissive == 1) UnloadTexture(pbrMat.texEmissive); -} - -void PBRSetColor(PBRMaterial *pbrMat,PBRColorType pbrColorType,Color color){ - if(pbrMat == NULL) return; - switch(pbrColorType){ - case PBR_COLOR_ALBEDO: - pbrMat->albedo[0] = (float) color.r / 255; - pbrMat->albedo[1] = (float) color.g / 255; - pbrMat->albedo[2] = (float) color.b / 255; - pbrMat->albedo[3] = (float) color.a / 255; - SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); - break; - case PBR_COLOR_EMISSIVE: - pbrMat->emissive[0] = (float) color.r / 255; - pbrMat->emissive[1] = (float) color.g / 255; - pbrMat->emissive[2] = (float) color.b / 255; - pbrMat->emissive[3] = (float) color.a / 255; - SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); - break; - } -} - -void PBRSetFloat(PBRMaterial *pbrMat, PBRFloatType pbrParamType, float value){ - if(pbrMat == NULL) return; - switch(pbrParamType){ - case PBR_PARAM_METALLIC: - pbrMat->metallic = value; - SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); - break; - case PBR_PARAM_ROUGHNESS: - pbrMat->roughness = value; - SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); - break; - case PBR_PARAM_NORMAL: - pbrMat->normal = value; - SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); - break; - case PBR_PARAM_AO: - pbrMat->ao = value; - SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); - break; - case PBR_PARAM_EMISSIVE: - pbrMat->emissivePower = value; - SetShaderValue(pbrMat->pbrShader,pbrMat->emissivePowerLoc,&pbrMat->emissivePower,SHADER_UNIFORM_FLOAT); - break; - } -} - - -void PBRSetVec2(PBRMaterial *pbrMat,PBRVec2Type type,Vector2 value){ - switch(type){ - case PBR_VEC2_TILING: - pbrMat->texTiling[0] = value.x; - pbrMat->texTiling[1] = value.y; - SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,&pbrMat->texTiling,SHADER_UNIFORM_VEC2); - break; - case PBR_VEC2_OFFSET: - pbrMat->texOffset[0] = value.x; - pbrMat->texOffset[1] = value.y; - SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,&pbrMat->texOffset,SHADER_UNIFORM_VEC2); - break; - } -} - -void PBRSetMaterial(PBRModel* model,PBRMaterial* pbrMat,int matIndex){ - - - model->pbrMat = *pbrMat; - model->model.materials[matIndex].shader = model->pbrMat.pbrShader; - pbrMat->pbrShader.locs[SHADER_LOC_MAP_MRA] = GetShaderLocation(pbrMat->pbrShader, "mraMap"); - pbrMat->pbrShader.locs[SHADER_LOC_MAP_EMISSIVE] = GetShaderLocation(pbrMat->pbrShader, "emissiveMap"); - pbrMat->pbrShader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(pbrMat->pbrShader, "normalMap"); - - if(pbrMat->useTexAlbedo) { - model->model.materials[matIndex].maps[MATERIAL_MAP_ALBEDO].texture = pbrMat->texAlbedo; - } - if(pbrMat->useTexMRA) { - model->model.materials[matIndex].maps[MATERIAL_MAP_MRA].texture = pbrMat->texMRA; - } - if(pbrMat->useTexNormal) { - model->model.materials[matIndex].maps[MATERIAL_MAP_NORMAL].texture = pbrMat->texNormal; - } - if(pbrMat->useTexEmissive) { - model->model.materials[matIndex].maps[MATERIAL_MAP_EMISSIVE].texture = pbrMat->texEmissive; - } - - SetShaderValue(pbrMat->pbrShader,pbrMat->useTexAlbedoLoc,&pbrMat->useTexAlbedo,SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader,pbrMat->useTexNormalLoc,&pbrMat->useTexNormal,SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader, pbrMat->useTexMRAELoc, &pbrMat->useTexMRA, SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader, pbrMat->useTexEmissiveLoc, &pbrMat->useTexEmissive, SHADER_UNIFORM_INT); -} - -void PBRDrawModel(PBRModel pbrModel, Vector3 position, float scale){ - PBRMaterial *pbrMat = &pbrModel.pbrMat; - SetShaderValue(pbrMat->pbrShader,pbrMat->albedoLoc,pbrMat->albedo,SHADER_UNIFORM_VEC4); - SetShaderValue(pbrMat->pbrShader, pbrMat->emissiveColorLoc, pbrMat->emissive, SHADER_UNIFORM_VEC4); - SetShaderValue(pbrMat->pbrShader,pbrMat->metallicLoc,&pbrMat->metallic,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->roughnessLoc,&pbrMat->roughness,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->aoLoc,&pbrMat->ao,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->normalLoc,&pbrMat->normal,SHADER_UNIFORM_FLOAT); - SetShaderValue(pbrMat->pbrShader,pbrMat->texTilingLoc,pbrMat->texTiling,SHADER_UNIFORM_VEC2); - SetShaderValue(pbrMat->pbrShader,pbrMat->texOffsetLoc,pbrMat->texOffset,SHADER_UNIFORM_VEC2); - - SetShaderValue(pbrMat->pbrShader,pbrMat->useTexAlbedoLoc,&pbrMat->useTexAlbedo,SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader,pbrMat->useTexNormalLoc,&pbrMat->useTexNormal,SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader, pbrMat->useTexMRAELoc, &pbrMat->useTexMRA, SHADER_UNIFORM_INT); - SetShaderValue(pbrMat->pbrShader, pbrMat->useTexEmissiveLoc, &pbrMat->useTexEmissive, SHADER_UNIFORM_INT); - - DrawModel(pbrModel.model,position,scale,WHITE); -} - -PBRModel PBRModelLoad(const char *fileName){ - PBRModel pbrModel = (PBRModel){0}; - pbrModel.model = LoadModel(fileName); - return pbrModel; -} - -PBRModel PBRModelLoadFromMesh(Mesh mesh){ - PBRModel pbrModel = (PBRModel){0}; - pbrModel.model = LoadModelFromMesh(mesh); - return pbrModel; -} -#endif // RPBR_IMPLEMENTATION diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index 92a888811..11e423d6b 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -19,15 +19,45 @@ #include #endif -#define RPBR_IMPLEMENTATION -#include "rpbr.h" - #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB #define GLSL_VERSION 120 #endif +#include // Required for: NULL + +#define MAX_LIGHTS 4 // Max dynamic lights supported by shader +int lightsCount; // Current number of dynamic lights that have been created + +typedef struct { + int enabled; + int type; + Vector3 position; + Vector3 target; + float color[4]; + float intensity; + + int enabledLoc; + int typeLoc; + int positionLoc; + int targetLoc; + int colorLoc; + int intensityLoc; +} PBRLight; + +typedef enum { + LIGHT_DIRECTIONAL = 0, + LIGHT_POINT, + LIGHT_SPOT +} PBRLightType; + +// Create a light and get shader locations +PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader); + +// Send light properties to shader +// NOTE: Light shader locations should be available +void PBRLightUpdate(Shader shader, PBRLight light); //---------------------------------------------------------------------------------- // Main Entry Point @@ -53,44 +83,69 @@ int main() Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs",GLSL_VERSION), TextFormat("resources/shaders/glsl%i/pbr.fs",GLSL_VERSION)); - - - - PBRModel model = PBRModelLoad("resources/models/old_car_new.glb"); - //if we use obj file formator if model doesn't have tangents we have to calculate MeshTangents - //by using raylib function GenMeshTangents(mesh) for example: obj file doesn't support tangents - //GenMeshTangents(&model.model.meshes[0]); - - PBRMaterial model_mat = (PBRMaterial){0}; - PBRMaterialSetup(&model_mat, shader, NULL); //environment = NULL for now - PBRLoadTextures(&model_mat, PBR_TEXTURE_ALBEDO, "resources/old_car_d.png"); - PBRLoadTextures(&model_mat, PBR_TEXTURE_MRA, "resources/old_car_mra.png"); - PBRLoadTextures(&model_mat, PBR_TEXTURE_NORMAL, "resources/old_car_n.png"); - PBRLoadTextures(&model_mat, PBR_TEXTURE_EMISSIVE, "resources/old_car_e.png"); - PBRSetColor(&model_mat,PBR_COLOR_EMISSIVE, (Color){255,162,0,255}); - PBRSetVec2(&model_mat, PBR_VEC2_TILING,(Vector2){0.5,0.5}); - PBRSetMaterial(&model,&model_mat,0); - - PBRModel floor = PBRModelLoad("resources/models/plane.glb"); - - PBRMaterial floor_mat = (PBRMaterial){0}; - PBRMaterialSetup(&floor_mat, shader, NULL); - PBRLoadTextures(&floor_mat, PBR_TEXTURE_ALBEDO, "resources/road_a.png"); - PBRLoadTextures(&floor_mat, PBR_TEXTURE_MRA, "resources/road_mra.png"); - PBRLoadTextures(&floor_mat, PBR_TEXTURE_NORMAL, "resources/road_n.png"); - PBRSetVec2(&floor_mat, PBR_VEC2_TILING,(Vector2){0.5,0.5}); - PBRSetMaterial(&floor,&floor_mat,0); + shader.locs[SHADER_LOC_MAP_ALBEDO] = GetShaderLocation(shader, "albedoMap"); + // In reality, metalness, roughness, and ambient occlusion are all packed into the MRA texture + // We'll pass it in as the metalness map + shader.locs[SHADER_LOC_MAP_METALNESS] = GetShaderLocation(shader, "mraMap"); + shader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(shader, "normalMap"); + // Similarly to the MRA map, the emissive map packs different information into a single texture + // This map stores both height and emission in reality + shader.locs[SHADER_LOC_MAP_EMISSION] = GetShaderLocation(shader, "emissiveMap"); + shader.locs[SHADER_LOC_COLOR_DIFFUSE] = GetShaderLocation(shader, "albedoColor"); shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); int numOfLightsLoc = GetShaderLocation(shader, "numOfLights"); int numOfLights = 4; SetShaderValue(shader, numOfLightsLoc, &numOfLights, SHADER_UNIFORM_INT); - Color ambCol = (Color){26,32,135,255}; + Color ambCol = (Color){ 26,32,135,255 }; + Vector3 ambColNormalized = (Vector3){ ambCol.r / 255.0f, ambCol.g / 255.0f, ambCol.b / 255.0f }; float ambIntens = 0.02; int albedoLoc = GetShaderLocation(shader, "albedo"); - PBRSetAmbient(shader,ambCol,ambIntens); + int ambColLoc = GetShaderLocation(shader, "ambientColor"); + int ambLoc = GetShaderLocation(shader, "ambient"); + SetShaderValue(shader, ambColLoc, &ambColNormalized, SHADER_UNIFORM_VEC3); + SetShaderValue(shader, ambLoc, &ambIntens, SHADER_UNIFORM_FLOAT); + + int emissiveIntensityLoc = GetShaderLocation(shader, "emissivePower"); + int emissiveColorLoc = GetShaderLocation(shader, "emissiveColor"); + int textureTilingLoc = GetShaderLocation(shader, "tiling"); + + Model model = LoadModel("resources/models/old_car_new.glb"); + // If the OBJ file format is used, we will have to generate tangents manually: + // GenMeshTangents(&model.meshes[0]); + + model.materials[0].shader = shader; + + model.materials[0].maps[MATERIAL_MAP_ALBEDO].color = WHITE; + model.materials[0].maps[MATERIAL_MAP_METALNESS].value = 0.0f; + model.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value = 0.0f; + model.materials[0].maps[MATERIAL_MAP_OCCLUSION].value = 1.0f; + model.materials[0].maps[MATERIAL_MAP_EMISSION].color = (Color){ 255, 162, 0, 255 }; + + model.materials[0].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/old_car_d.png"); + model.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/old_car_mra.png"); + model.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/old_car_n.png"); + model.materials[0].maps[MATERIAL_MAP_EMISSION].texture = LoadTexture("resources/old_car_e.png"); + // We store tiling parameters in the generic parameter slots in the Material class + Vector2 modelTiling = (Vector2){ 0.5f, 0.5f }; + + Model floor = LoadModel("resources/models/plane.glb"); + + floor.materials[0].shader = shader; + + floor.materials[0].maps[MATERIAL_MAP_ALBEDO].color = WHITE; + floor.materials[0].maps[MATERIAL_MAP_METALNESS].value = 0.0f; + floor.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value = 0.0f; + floor.materials[0].maps[MATERIAL_MAP_OCCLUSION].value = 1.0f; + floor.materials[0].maps[MATERIAL_MAP_EMISSION].color = BLACK; + + floor.materials[0].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/road_a.png"); + floor.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/road_mra.png"); + floor.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/road_n.png"); + + Vector2 floorTiling = (Vector2){ 0.5f, 0.5f }; // Create lights PBRLight lights[MAX_LIGHTS] = { 0 }; @@ -98,7 +153,13 @@ int main() lights[1] = PBRLightCreate(LIGHT_POINT, (Vector3){ 2, 1, 1 }, (Vector3){0,0,0}, GREEN,3.3, shader); lights[2] = PBRLightCreate(LIGHT_POINT, (Vector3){ -2, 1, 1 }, (Vector3){0,0,0}, RED,8.3, shader); lights[3] = PBRLightCreate(LIGHT_POINT, (Vector3){ 1, 1, -2 }, (Vector3){0,0,0}, BLUE,2, shader); - SetShaderValueV(shader, GetShaderLocation(shader, "lights"), lights, SHADER_UNIFORM_FLOAT, numOfLights); + + // The textures are always used + int one = 1; + SetShaderValue(shader, GetShaderLocation(shader, "useTexAlbedo"), &one, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexNormal"), &one, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexMRA"), &one, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexEmissive"), &one, SHADER_UNIFORM_INT); SetTargetFPS(60); // Set our game to run at 60 frames-per-second------------------------------------------------------------- @@ -122,32 +183,45 @@ int main() // Update light values (actually, only enable/disable them) for (int i = 0; i < MAX_LIGHTS; i++) PBRLightUpdate(shader, lights[i]); - emissiveCnt--; - if(emissiveCnt<=0){ - emissiveCnt = GetRandomValue(0,20); - PBRSetFloat(&model_mat,PBR_PARAM_EMISSIVE,(float)GetRandomValue(0,100)/100); - } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); + ClearBackground(BLACK); + BeginMode3D(camera); + + SetShaderValue(shader, textureTilingLoc, &floorTiling, SHADER_UNIFORM_VEC2); + Vector4 floorEmission = ColorNormalize(floor.materials[0].maps[MATERIAL_MAP_EMISSION].color); + SetShaderValue(shader, emissiveColorLoc, &floorEmission, SHADER_UNIFORM_VEC4); + DrawModel(floor, (Vector3){0,0,0}, 5.0f, WHITE); - PBRDrawModel(floor, (Vector3){0,0,0}, 5.0f); - PBRDrawModel(model, (Vector3) {0, 0.0, 0}, 0.005); + emissiveCnt--; + if (emissiveCnt <= 0) + { + emissiveCnt = GetRandomValue(0, 20); + float intensity = (float)GetRandomValue(0, 100) / 100; + SetShaderValue(shader, emissiveIntensityLoc, &intensity, SHADER_UNIFORM_FLOAT); + } + SetShaderValue(shader, textureTilingLoc, &modelTiling, SHADER_UNIFORM_VEC2); + Vector4 modelEmission = ColorNormalize(model.materials[0].maps[MATERIAL_MAP_EMISSION].color); + SetShaderValue(shader, emissiveColorLoc, &modelEmission, SHADER_UNIFORM_VEC4); + DrawModel(model, (Vector3) {0, 0.0, 0}, 0.005, WHITE); // Draw spheres to show where the lights are - for (int i = 0; i < MAX_LIGHTS; i++) { + for (int i = 0; i < MAX_LIGHTS; i++) + { Color col = (Color) {lights[i].color[0] * 255, lights[i].color[1] * 255, lights[i].color[2] * 255, lights[i].color[3] * 255}; if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, col); else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(col, 0.3f)); } + EndMode3D(); - DrawText("(c) Old Rusty Car model by Renafox (https://skfb.ly/LxRy)", screenWidth - 320, screenHeight - 20, 10, GRAY); + DrawText("(c) Old Rusty Car model by Renafox (https://skfb.ly/LxRy)", screenWidth - 320, screenHeight - 20, 10, LIGHTGRAY); DrawFPS(10, 10); EndDrawing(); @@ -157,15 +231,65 @@ int main() //-------------------------------------------------------------------------------------- // De-Initialization //-------------------------------------------------------------------------------------- - - UnloadModel(floor.model); // Unload model - UnloadModel(model.model); // Unload model + model.materials[0].shader = (Shader){ 0 }; + floor.materials[0].shader = (Shader){ 0 }; + UnloadMaterial(model.materials[0]); + UnloadMaterial(floor.materials[0]); + model.materials[0].maps = NULL; + floor.materials[0].maps = NULL; + UnloadModel(floor); // Unload model + UnloadModel(model); // Unload model UnloadShader(shader); // Unload Shader - UnloadPBRMaterial(floor_mat); // Unload PBRMaterial - UnloadPBRMaterial(model_mat); // Unload PBRMaterial CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; +} + +PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader) +{ + PBRLight light = { 0 }; + + if (lightsCount < MAX_LIGHTS) + { + light.enabled = 1; + light.type = type; + light.position = position; + light.target = target; + light.color[0] = (float)color.r / (float)255; + light.color[1] = (float)color.g / (float)255; + light.color[2] = (float)color.b / (float)255; + light.color[3] = (float)color.a / (float)255; + light.intensity = intensity; + // NOTE: Lighting shader naming must be the provided ones + light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightsCount)); + light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightsCount)); + light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightsCount)); + light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightsCount)); + light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightsCount)); + light.intensityLoc = GetShaderLocation(shader, TextFormat("lights[%i].intensity", lightsCount)); + PBRLightUpdate(shader, light); + + lightsCount++; } + + return light; +} + +// Send light properties to shader +// NOTE: Light shader locations should be available +void PBRLightUpdate(Shader shader, PBRLight light) +{ + SetShaderValue(shader, light.enabledLoc, &light.enabled, SHADER_UNIFORM_INT); + SetShaderValue(shader, light.typeLoc, &light.type, SHADER_UNIFORM_INT); + // Send to shader light position values + float position[3] = { light.position.x, light.position.y, light.position.z }; + SetShaderValue(shader, light.positionLoc, position, SHADER_UNIFORM_VEC3); + + // Send to shader light target position values + float target[3] = { light.target.x, light.target.y, light.target.z }; + SetShaderValue(shader, light.targetLoc, target, SHADER_UNIFORM_VEC3); + SetShaderValue(shader, light.colorLoc, light.color, SHADER_UNIFORM_VEC4); + SetShaderValue(shader, light.intensityLoc, &light.intensity, SHADER_UNIFORM_FLOAT); +} From 1fc3d9aeb2bc629959a203dcb79b74efcb3c9882 Mon Sep 17 00:00:00 2001 From: TheManTheMythTheGameDev <76568234+TheManTheMythTheGameDev@users.noreply.github.com> Date: Tue, 19 Dec 2023 01:37:41 -0800 Subject: [PATCH 083/790] Add shadowmapping example (#3653) --- examples/Makefile | 1 + examples/Makefile.Web | 1 + examples/shaders/resources/models/robot.glb | Bin 0 -> 1602604 bytes .../resources/shaders/glsl120/shadowmap.fs | 86 ++++++ .../resources/shaders/glsl120/shadowmap.vs | 32 +++ .../resources/shaders/glsl330/shadowmap.fs | 86 ++++++ .../resources/shaders/glsl330/shadowmap.vs | 32 +++ examples/shaders/shaders_shadowmap.c | 251 ++++++++++++++++++ examples/shaders/shaders_shadowmap.png | Bin 0 -> 37581 bytes 9 files changed, 489 insertions(+) create mode 100644 examples/shaders/resources/models/robot.glb create mode 100644 examples/shaders/resources/shaders/glsl120/shadowmap.fs create mode 100644 examples/shaders/resources/shaders/glsl120/shadowmap.vs create mode 100644 examples/shaders/resources/shaders/glsl330/shadowmap.fs create mode 100644 examples/shaders/resources/shaders/glsl330/shadowmap.vs create mode 100644 examples/shaders/shaders_shadowmap.c create mode 100644 examples/shaders/shaders_shadowmap.png diff --git a/examples/Makefile b/examples/Makefile index 11669e3a3..235deda28 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -560,6 +560,7 @@ SHADERS = \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ + shaders/shaders_shadowmap \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index a3c2bb729..8bec06452 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -466,6 +466,7 @@ SHADERS = \ shaders/shaders_palette_switch \ shaders/shaders_postprocessing \ shaders/shaders_raymarching \ + shaders/shaders_shadowmap \ shaders/shaders_shapes_textures \ shaders/shaders_simple_mask \ shaders/shaders_spotlight \ diff --git a/examples/shaders/resources/models/robot.glb b/examples/shaders/resources/models/robot.glb new file mode 100644 index 0000000000000000000000000000000000000000..549011e75ee4ab8cd69b99743df72020d685b7f9 GIT binary patch literal 1602604 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 z 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%0D1Lm(5^wA`BLP&KScWwx!Y5a!G03$N#uFoLyq^) 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�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 R=f_{y80lJ5_x^R} 0.0) specCo = pow(max(0.0, dot(viewD, reflect(-(l), normal))), 16.0); // 16 refers to shine + specular += specCo; + + vec4 finalColor = (texelColor*((colDiffuse + vec4(specular, 1.0))*vec4(lightDot, 1.0))); + + // Shadow calculations + vec4 fragPosLightSpace = lightVP * vec4(fragPosition, 1); + fragPosLightSpace.xyz /= fragPosLightSpace.w; // Perform the perspective division + fragPosLightSpace.xyz = (fragPosLightSpace.xyz + 1.0f) / 2.0f; // Transform from [-1, 1] range to [0, 1] range + vec2 sampleCoords = fragPosLightSpace.xy; + float curDepth = fragPosLightSpace.z; + // Slope-scale depth bias: depth biasing reduces "shadow acne" artifacts, where dark stripes appear all over the scene. + // The solution is adding a small bias to the depth + // In this case, the bias is proportional to the slope of the surface, relative to the light + float bias = max(0.0008 * (1.0 - dot(normal, l)), 0.00008); + int shadowCounter = 0; + const int numSamples = 9; + // PCF (percentage-closer filtering) algorithm: + // Instead of testing if just one point is closer to the current point, + // we test the surrounding points as well. + // This blurs shadow edges, hiding aliasing artifacts. + vec2 texelSize = vec2(1.0f / float(shadowMapResolution)); + for (int x = -1; x <= 1; x++) + { + for (int y = -1; y <= 1; y++) + { + float sampleDepth = texture2D(shadowMap, sampleCoords + texelSize * vec2(x, y)).r; + if (curDepth - bias > sampleDepth) + { + shadowCounter++; + } + } + } + finalColor = mix(finalColor, vec4(0, 0, 0, 1), float(shadowCounter) / float(numSamples)); + + // Add ambient lighting whether in shadow or not + finalColor += texelColor*(ambient/10.0)*colDiffuse; + + // Gamma correction + finalColor = pow(finalColor, vec4(1.0/2.2)); + gl_FragColor = finalColor; +} diff --git a/examples/shaders/resources/shaders/glsl120/shadowmap.vs b/examples/shaders/resources/shaders/glsl120/shadowmap.vs new file mode 100644 index 000000000..bace1d70d --- /dev/null +++ b/examples/shaders/resources/shaders/glsl120/shadowmap.vs @@ -0,0 +1,32 @@ +#version 120 + +// Input vertex attributes +attribute vec3 vertexPosition; +attribute vec2 vertexTexCoord; +attribute vec3 vertexNormal; +attribute vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; +uniform mat4 matNormal; + +// Output vertex attributes (to fragment shader) +varying vec3 fragPosition; +varying vec2 fragTexCoord; +varying vec4 fragColor; +varying vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0))); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/resources/shaders/glsl330/shadowmap.fs b/examples/shaders/resources/shaders/glsl330/shadowmap.fs new file mode 100644 index 000000000..506b51a8b --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/shadowmap.fs @@ -0,0 +1,86 @@ +#version 330 + +// This shader is based on the basic lighting shader +// This only supports one light, which is directional, and it (of course) supports shadows + +// Input vertex attributes (from vertex shader) +in vec3 fragPosition; +in vec2 fragTexCoord; +//in vec4 fragColor; +in vec3 fragNormal; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// Input lighting values +uniform vec3 lightDir; +uniform vec4 lightColor; +uniform vec4 ambient; +uniform vec3 viewPos; + +// Input shadowmapping values +uniform mat4 lightVP; // Light source view-projection matrix +uniform sampler2D shadowMap; + +uniform int shadowMapResolution; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + vec3 lightDot = vec3(0.0); + vec3 normal = normalize(fragNormal); + vec3 viewD = normalize(viewPos - fragPosition); + vec3 specular = vec3(0.0); + + vec3 l = -lightDir; + + float NdotL = max(dot(normal, l), 0.0); + lightDot += lightColor.rgb*NdotL; + + float specCo = 0.0; + if (NdotL > 0.0) specCo = pow(max(0.0, dot(viewD, reflect(-(l), normal))), 16.0); // 16 refers to shine + specular += specCo; + + finalColor = (texelColor*((colDiffuse + vec4(specular, 1.0))*vec4(lightDot, 1.0))); + + // Shadow calculations + vec4 fragPosLightSpace = lightVP * vec4(fragPosition, 1); + fragPosLightSpace.xyz /= fragPosLightSpace.w; // Perform the perspective division + fragPosLightSpace.xyz = (fragPosLightSpace.xyz + 1.0f) / 2.0f; // Transform from [-1, 1] range to [0, 1] range + vec2 sampleCoords = fragPosLightSpace.xy; + float curDepth = fragPosLightSpace.z; + // Slope-scale depth bias: depth biasing reduces "shadow acne" artifacts, where dark stripes appear all over the scene. + // The solution is adding a small bias to the depth + // In this case, the bias is proportional to the slope of the surface, relative to the light + float bias = max(0.0002 * (1.0 - dot(normal, l)), 0.00002) + 0.00001; + int shadowCounter = 0; + const int numSamples = 9; + // PCF (percentage-closer filtering) algorithm: + // Instead of testing if just one point is closer to the current point, + // we test the surrounding points as well. + // This blurs shadow edges, hiding aliasing artifacts. + vec2 texelSize = vec2(1.0f / float(shadowMapResolution)); + for (int x = -1; x <= 1; x++) + { + for (int y = -1; y <= 1; y++) + { + float sampleDepth = texture(shadowMap, sampleCoords + texelSize * vec2(x, y)).r; + if (curDepth - bias > sampleDepth) + { + shadowCounter++; + } + } + } + finalColor = mix(finalColor, vec4(0, 0, 0, 1), float(shadowCounter) / float(numSamples)); + + // Add ambient lighting whether in shadow or not + finalColor += texelColor*(ambient/10.0)*colDiffuse; + + // Gamma correction + finalColor = pow(finalColor, vec4(1.0/2.2)); +} diff --git a/examples/shaders/resources/shaders/glsl330/shadowmap.vs b/examples/shaders/resources/shaders/glsl330/shadowmap.vs new file mode 100644 index 000000000..f8ec45f19 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/shadowmap.vs @@ -0,0 +1,32 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; +uniform mat4 matNormal; + +// Output vertex attributes (to fragment shader) +out vec3 fragPosition; +out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0))); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/shaders_shadowmap.c b/examples/shaders/shaders_shadowmap.c new file mode 100644 index 000000000..15ffe008d --- /dev/null +++ b/examples/shaders/shaders_shadowmap.c @@ -0,0 +1,251 @@ +/******************************************************************************************* +* +* raylib [shaders] example - Shadowmap +* +* Example originally created with raylib 5.0, last time updated with raylib 5.0 +* +* Example contributed by @TheManTheMythTheGameDev and reviewed by Ramon Santamaria (@raysan5) +* +* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" +#include "rlgl.h" + +#if defined(PLATFORM_DESKTOP) +#define GLSL_VERSION 330 +#else // PLATFORM_ANDROID, PLATFORM_WEB +#define GLSL_VERSION 120 +#endif + +#define SHADOWMAP_RESOLUTION 1024 + +RenderTexture2D LoadShadowmapRenderTexture(int width, int height); +void UnloadShadowmapRenderTexture(RenderTexture2D target); +void DrawScene(Model cube, Model robot); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); + // Shadows are a HUGE topic, and this example shows an extremely simple implementation of the shadowmapping algorithm, + // which is the industry standard for shadows. This algorithm can be extended in a ridiculous number of ways to improve + // realism and also adapt it for different scenes. This is pretty much the simplest possible implementation. + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shadowmap"); + + Camera3D cam = (Camera3D){ 0 }; + cam.position = (Vector3){ 10.0f, 10.0f, 10.0f }; + cam.target = Vector3Zero(); + cam.projection = CAMERA_PERSPECTIVE; + cam.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + cam.fovy = 45.0f; + + Shader shadowShader = LoadShader(TextFormat("resources/shaders/glsl%i/shadowmap.vs", GLSL_VERSION), + TextFormat("resources/shaders/glsl%i/shadowmap.fs", GLSL_VERSION)); + shadowShader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shadowShader, "viewPos"); + Vector3 lightDir = Vector3Normalize((Vector3){ 0.35f, -1.0f, -0.35f }); + Color lightColor = WHITE; + Vector4 lightColorNormalized = ColorNormalize(lightColor); + int lightDirLoc = GetShaderLocation(shadowShader, "lightDir"); + int lightColLoc = GetShaderLocation(shadowShader, "lightColor"); + SetShaderValue(shadowShader, lightDirLoc, &lightDir, SHADER_UNIFORM_VEC3); + SetShaderValue(shadowShader, lightColLoc, &lightColorNormalized, SHADER_UNIFORM_VEC4); + int ambientLoc = GetShaderLocation(shadowShader, "ambient"); + float ambient[4] = {0.1f, 0.1f, 0.1f, 1.0f}; + SetShaderValue(shadowShader, ambientLoc, ambient, SHADER_UNIFORM_VEC4); + int lightVPLoc = GetShaderLocation(shadowShader, "lightVP"); + int shadowMapLoc = GetShaderLocation(shadowShader, "shadowMap"); + int shadowMapResolution = SHADOWMAP_RESOLUTION; + SetShaderValue(shadowShader, GetShaderLocation(shadowShader, "shadowMapResolution"), &shadowMapResolution, SHADER_UNIFORM_INT); + + Model cube = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); + cube.materials[0].shader = shadowShader; + Model robot = LoadModel("resources/models/robot.glb"); + for (int i = 0; i < robot.materialCount; i++) + { + robot.materials[i].shader = shadowShader; + } + int animCount = 0; + ModelAnimation* robotAnimations = LoadModelAnimations("resources/models/robot.glb", &animCount); + + RenderTexture2D shadowMap = LoadShadowmapRenderTexture(SHADOWMAP_RESOLUTION, SHADOWMAP_RESOLUTION); + // For the shadowmapping algorithm, we will be rendering everything from the light's point of view + Camera3D lightCam = (Camera3D){ 0 }; + lightCam.position = Vector3Scale(lightDir, -15.0f); + lightCam.target = Vector3Zero(); + // Use an orthographic projection for directional lights + lightCam.projection = CAMERA_ORTHOGRAPHIC; + lightCam.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + lightCam.fovy = 20.0f; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + int fc = 0; + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + float dt = GetFrameTime(); + + Vector3 cameraPos = cam.position; + SetShaderValue(shadowShader, shadowShader.locs[SHADER_LOC_VECTOR_VIEW], &cameraPos, SHADER_UNIFORM_VEC3); + UpdateCamera(&cam, CAMERA_ORBITAL); + + fc++; + fc %= (robotAnimations[0].frameCount); + UpdateModelAnimation(robot, robotAnimations[0], fc); + + const float cameraSpeed = 0.05f; + if (IsKeyDown(KEY_LEFT)) + { + if (lightDir.x < 0.6f) + lightDir.x += cameraSpeed * 60.0f * dt; + } + if (IsKeyDown(KEY_RIGHT)) + { + if (lightDir.x > -0.6f) + lightDir.x -= cameraSpeed * 60.0f * dt; + } + if (IsKeyDown(KEY_UP)) + { + if (lightDir.z < 0.6f) + lightDir.z += cameraSpeed * 60.0f * dt; + } + if (IsKeyDown(KEY_DOWN)) + { + if (lightDir.z > -0.6f) + lightDir.z -= cameraSpeed * 60.0f * dt; + } + lightDir = Vector3Normalize(lightDir); + lightCam.position = Vector3Scale(lightDir, -15.0f); + SetShaderValue(shadowShader, lightDirLoc, &lightDir, SHADER_UNIFORM_VEC3); + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + // First, render all objects into the shadowmap + // The idea is, we record all the objects' depths (as rendered from the light source's point of view) in a buffer + // Anything that is "visible" to the light is in light, anything that isn't is in shadow + // We can later use the depth buffer when rendering everything from the player's point of view + // to determine whether a given point is "visible" to the light + + // Record the light matrices for future use! + Matrix lightView; + Matrix lightProj; + BeginTextureMode(shadowMap); + ClearBackground(WHITE); + BeginMode3D(lightCam); + lightView = rlGetMatrixModelview(); + lightProj = rlGetMatrixProjection(); + DrawScene(cube, robot); + EndMode3D(); + EndTextureMode(); + Matrix lightViewProj = MatrixMultiply(lightView, lightProj); + + ClearBackground(RAYWHITE); + + SetShaderValueMatrix(shadowShader, lightVPLoc, lightViewProj); + + rlEnableShader(shadowShader.id); + int slot = 10; // Can be anything 0 to 15, but 0 will probably be taken up + rlActiveTextureSlot(10); + rlEnableTexture(shadowMap.depth.id); + rlSetUniform(shadowMapLoc, &slot, SHADER_UNIFORM_INT, 1); + + BeginMode3D(cam); + + // Draw the same exact things as we drew in the shadowmap! + DrawScene(cube, robot); + + EndMode3D(); + + DrawText("Shadows in raylib using the shadowmapping algorithm!", screenWidth - 320, screenHeight - 20, 10, GRAY); + DrawText("Use the arrow keys to rotate the light!", 10, 10, 30, RED); + + EndDrawing(); + + if (IsKeyPressed(KEY_F)) + { + TakeScreenshot("shaders_shadowmap.png"); + } + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + + UnloadShader(shadowShader); + UnloadModel(cube); + UnloadModel(robot); + UnloadModelAnimations(robotAnimations, animCount); + UnloadShadowmapRenderTexture(shadowMap); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +RenderTexture2D LoadShadowmapRenderTexture(int width, int height) +{ + RenderTexture2D target = { 0 }; + + target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + target.texture.width = width; + target.texture.height = height; + + if (target.id > 0) + { + rlEnableFramebuffer(target.id); + + // Create depth texture + // We don't need a color texture for the shadowmap + target.depth.id = rlLoadTextureDepth(width, height, false); + target.depth.width = width; + target.depth.height = height; + target.depth.format = 19; //DEPTH_COMPONENT_24BIT? + target.depth.mipmaps = 1; + + // Attach depth texture to FBO + rlFramebufferAttach(target.id, target.depth.id, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_TEXTURE2D, 0); + + // Check if fbo is complete with attachments (valid) + if (rlFramebufferComplete(target.id)) TRACELOG(LOG_INFO, "FBO: [ID %i] Framebuffer object created successfully", target.id); + + rlDisableFramebuffer(); + } + else TRACELOG(LOG_WARNING, "FBO: Framebuffer object can not be created"); + + return target; +} + +// Unload shadowmap render texture from GPU memory (VRAM) +void UnloadShadowmapRenderTexture(RenderTexture2D target) +{ + if (target.id > 0) + { + // NOTE: Depth texture/renderbuffer is automatically + // queried and deleted before deleting framebuffer + rlUnloadFramebuffer(target.id); + } +} + +void DrawScene(Model cube, Model robot) +{ + DrawModelEx(cube, Vector3Zero(), (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, (Vector3) { 10.0f, 1.0f, 10.0f }, BLUE); + DrawModelEx(cube, (Vector3) { 1.5f, 1.0f, -1.5f }, (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, Vector3One(), WHITE); + DrawModelEx(robot, (Vector3) { 0.0f, 0.5f, 0.0f }, (Vector3) { 0.0f, 1.0f, 0.0f }, 0.0f, (Vector3) { 1.0f, 1.0f, 1.0f }, RED); +} diff --git a/examples/shaders/shaders_shadowmap.png b/examples/shaders/shaders_shadowmap.png new file mode 100644 index 0000000000000000000000000000000000000000..2d180ee73ef64722dd533750efc880c435af19b3 GIT binary patch literal 37581 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 Date: Tue, 19 Dec 2023 02:38:57 -0700 Subject: [PATCH 084/790] [rmodels] Set cgltf callbacks to use `LoadFileData()` and `UnloadFileData()` (#3652) --- src/rmodels.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index 84c7d9cbe..9773391f4 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4740,6 +4740,25 @@ static ModelAnimation *LoadModelAnimationsIQM(const char *fileName, int *animCou #endif #if defined(SUPPORT_FILEFORMAT_GLTF) +// Load file data callback for cgltf +static cgltf_result LoadFileGLTFCallback(const struct cgltf_memory_options *memoryOptions, const struct cgltf_file_options *fileOptions, const char *path, cgltf_size *size, void **data) +{ + int filesize; + unsigned char *filedata = LoadFileData(path, &filesize); + + if (filedata == NULL) return cgltf_result_io_error; + + *size = filesize; + *data = filedata; + + return cgltf_result_success; +} + +// Release file data callback for cgltf +static void ReleaseFileGLTFCallback(const struct cgltf_memory_options *memoryOptions, const struct cgltf_file_options *fileOptions, void *data) { + UnloadFileData(data); +} + // Load image from different glTF provided methods (uri, path, buffer_view) static Image LoadImageFromCgltfImage(cgltf_image *cgltfImage, const char *texPath) { @@ -4768,6 +4787,8 @@ static Image LoadImageFromCgltfImage(cgltf_image *cgltfImage, const char *texPat void *data = NULL; cgltf_options options = { 0 }; + options.file.read = LoadFileGLTFCallback; + options.file.release = ReleaseFileGLTFCallback; cgltf_result result = cgltf_load_buffer_base64(&options, outSize, cgltfImage->uri + i + 1, &data); if (result == cgltf_result_success) @@ -4891,6 +4912,8 @@ static Model LoadGLTF(const char *fileName) // glTF data loading cgltf_options options = { 0 }; + options.file.read = LoadFileGLTFCallback; + options.file.release = ReleaseFileGLTFCallback; cgltf_data *data = NULL; cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data); @@ -5387,6 +5410,8 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo // glTF data loading cgltf_options options = { 0 }; + options.file.read = LoadFileGLTFCallback; + options.file.release = ReleaseFileGLTFCallback; cgltf_data *data = NULL; cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data); From 57a5ebe6c6cf586221666a50a861dcf3e127c5c1 Mon Sep 17 00:00:00 2001 From: Cinghy Creations <111689901+cinghycreations@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:47:04 +0100 Subject: [PATCH 085/790] Don't use a separate thread when polling for gamepad events on DRM platforms (#3641) --- src/platforms/rcore_drm.c | 45 +++++++++++---------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index 2fec53f58..3449e6993 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -128,7 +128,6 @@ typedef struct { int touchSlot; // Hold the touch slot number of the currently being sent multitouch block // Gamepad data - pthread_t gamepadThreadId; // Gamepad reading thread id int gamepadStreamFd[MAX_GAMEPADS]; // Gamepad device file descriptor } PlatformData; @@ -191,7 +190,7 @@ static void PollKeyboardEvents(void); // Process evdev keyboard events static void *EventThread(void *arg); // Input device events reading thread static void InitGamepad(void); // Initialize raw gamepad input -static void *GamepadThread(void *arg); // Mouse reading thread +static void PollGamepadEvents(void); // Gamepad reading function static int FindMatchingConnectorMode(const drmModeConnector *connector, const drmModeModeInfo *mode); // Search matching DRM mode in connector's mode list static int FindExactConnectorMode(const drmModeConnector *connector, uint width, uint height, uint fps, bool allowInterlaced); // Search exactly matching DRM connector mode in connector's list @@ -575,14 +574,7 @@ void PollInputEvents(void) } // Register gamepads buttons events - for (int i = 0; i < MAX_GAMEPADS; i++) - { - if (CORE.Input.Gamepad.ready[i]) - { - // Register previous gamepad states - for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; - } - } + PollGamepadEvents(); // Register previous touch states for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i]; @@ -598,9 +590,6 @@ void PollInputEvents(void) // stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console if (!platform.eventKeyboardMode) ProcessKeyboard(); - - // NOTE: Mouse input events polling is done asynchronously in another pthread - EventThread() - // NOTE: Gamepad (Joystick) input events polling is done asynchronously in another pthread - GamepadThread() #endif // Handle the mouse/touch/gestures events: @@ -1228,8 +1217,6 @@ void ClosePlatform(void) pthread_join(platform.eventWorker[i].threadId, NULL); } } - - if (platform.gamepadThreadId) pthread_join(platform.gamepadThreadId, NULL); } // Initialize Keyboard system (using standard input) @@ -1943,14 +1930,8 @@ static void InitGamepad(void) { CORE.Input.Gamepad.ready[i] = true; - // NOTE: Only create one thread - if (i == 0) - { - int error = pthread_create(&platform.gamepadThreadId, NULL, &GamepadThread, NULL); - - if (error != 0) TRACELOG(LOG_WARNING, "RPI: Failed to create gamepad input event thread"); - else TRACELOG(LOG_INFO, "RPI: Gamepad device initialized successfully"); - } + // NOTE: Only show message for first gamepad + if (i == 0) TRACELOG(LOG_INFO, "RPI: Gamepad device initialized successfully"); ioctl(platform.gamepadStreamFd[i], JSIOCGNAME(64), &CORE.Input.Gamepad.name[i]); ioctl(platform.gamepadStreamFd[i], JSIOCGAXES, &CORE.Input.Gamepad.axisCount[i]); @@ -1959,7 +1940,7 @@ static void InitGamepad(void) } // Process Gamepad (/dev/input/js0) -static void *GamepadThread(void *arg) +static void PollGamepadEvents(void) { #define JS_EVENT_BUTTON 0x01 // Button pressed/released #define JS_EVENT_AXIS 0x02 // Joystick axis moved @@ -1975,18 +1956,21 @@ static void *GamepadThread(void *arg) // Read gamepad event struct js_event gamepadEvent = { 0 }; - while (!CORE.Window.shouldClose) + for (int i = 0; i < MAX_GAMEPADS; i++) { - for (int i = 0; i < MAX_GAMEPADS; i++) + if (CORE.Input.Gamepad.ready[i]) { - if (read(platform.gamepadStreamFd[i], &gamepadEvent, sizeof(struct js_event)) == (int)sizeof(struct js_event)) + // Register previous gamepad states + for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; + + while (read(platform.gamepadStreamFd[i], &gamepadEvent, sizeof(struct js_event)) == (int)sizeof(struct js_event)) { gamepadEvent.type &= ~JS_EVENT_INIT; // Ignore synthetic events // Process gamepad events by type if (gamepadEvent.type == JS_EVENT_BUTTON) { - //TRACELOG(LOG_WARNING, "RPI: Gamepad button: %i, value: %i", gamepadEvent.number, gamepadEvent.value); + TRACELOG(LOG_DEBUG, "RPI: Gamepad %i button: %i, value: %i", i, gamepadEvent.number, gamepadEvent.value); if (gamepadEvent.number < MAX_GAMEPAD_BUTTONS) { @@ -1999,7 +1983,7 @@ static void *GamepadThread(void *arg) } else if (gamepadEvent.type == JS_EVENT_AXIS) { - //TRACELOG(LOG_WARNING, "RPI: Gamepad axis: %i, value: %i", gamepadEvent.number, gamepadEvent.value); + TRACELOG(LOG_DEBUG, "RPI: Gamepad %i axis: %i, value: %i", i, gamepadEvent.number, gamepadEvent.value); if (gamepadEvent.number < MAX_GAMEPAD_AXIS) { @@ -2008,11 +1992,8 @@ static void *GamepadThread(void *arg) } } } - else WaitTime(0.001); // Sleep for 1 ms to avoid hogging CPU time } } - - return NULL; } // Search matching DRM mode in connector's mode list From 3f776df94e774a550985b49900cc1bc16fb1d5de Mon Sep 17 00:00:00 2001 From: fubark Date: Tue, 19 Dec 2023 17:30:17 -0500 Subject: [PATCH 086/790] Update ray-cyber to 5.0 in BINDINGS.md (#3654) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index c66c12808..61ba1f17f 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -16,7 +16,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | claw-raylib | **auto** | [Common Lisp](https://common-lisp.net/) | Apache-2.0 | https://github.com/bohonghuang/claw-raylib | | chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib | | raylib-cr | **4.6-dev (5e1a81)** | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | -| ray-cyber | 4.5 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | +| ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | | raylib-c3 | **4.5** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | | bindbc-raylib3 | **4.5** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | From e71153258b2f1b78b2d6de5578786f22582e523f Mon Sep 17 00:00:00 2001 From: Jett <30197659+JettMonstersGoBoom@users.noreply.github.com> Date: Tue, 19 Dec 2023 18:27:59 -0500 Subject: [PATCH 087/790] fix for deferred rendering example. (#3655) * fix for deferred rendering example. * missed defines to build. --- examples/shaders/shaders_deferred_render.c | 4 ++-- src/rlgl.h | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c index 21d2af346..9df1b2496 100644 --- a/examples/shaders/shaders_deferred_render.c +++ b/examples/shaders/shaders_deferred_render.c @@ -254,8 +254,8 @@ int main(void) EndMode3D(); // As a last step, we now copy over the depth buffer from our g-buffer to the default framebuffer. - rlEnableFramebuffer(gBuffer.framebuffer); //glBindFramebuffer(GL_READ_FRAMEBUFFER, gBuffer.framebuffer); - rlEnableFramebuffer(0); //glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + rlBindFramebuffer(GL_READ_FRAMEBUFFER, gBuffer.framebuffer); + rlBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); rlBlitFramebuffer(0, 0, screenWidth, screenHeight, 0, 0, screenWidth, screenHeight, 0x00000100); // GL_DEPTH_BUFFER_BIT rlDisableFramebuffer(); diff --git a/src/rlgl.h b/src/rlgl.h index 4b3184986..b49185f15 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -320,6 +320,8 @@ #define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA #define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -621,6 +623,7 @@ RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int id,unsigned int val); // bind (FBO) // General render state RLAPI void rlEnableColorBlend(void); // Enable color blending @@ -631,6 +634,7 @@ RLAPI void rlEnableDepthMask(void); // Enable depth write RLAPI void rlDisableDepthMask(void); // Disable depth write RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool,bool,bool,bool); // color mask control RLAPI void rlSetCullFace(int mode); // Set face culling mode RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test @@ -1737,6 +1741,14 @@ void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX #endif } +// bind framebuffer object +void rlBindFramebuffer(unsigned int id,unsigned int val) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(id, val); +#endif +} + // Activate multiple draw color buffers // NOTE: One color buffer is always active by default void rlActiveDrawBuffers(int count) @@ -1813,6 +1825,8 @@ void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } // Disable backface culling void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } +void rlColorMask(bool r,bool g,bool b,bool a) { glColorMask(r,g,b,a); } + // Set face culling mode void rlSetCullFace(int mode) { From 2fe68a8a121ec9bd864467b69c79a30a9b9eaf45 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 20 Dec 2023 00:51:51 +0100 Subject: [PATCH 088/790] REVIEWED PR deferred render --- examples/shaders/shaders_deferred_render.c | 4 ++-- src/rlgl.h | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c index 9df1b2496..6ba71e4e8 100644 --- a/examples/shaders/shaders_deferred_render.c +++ b/examples/shaders/shaders_deferred_render.c @@ -254,8 +254,8 @@ int main(void) EndMode3D(); // As a last step, we now copy over the depth buffer from our g-buffer to the default framebuffer. - rlBindFramebuffer(GL_READ_FRAMEBUFFER, gBuffer.framebuffer); - rlBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + rlBindFramebuffer(RL_READ_FRAMEBUFFER, gBuffer.framebuffer); + rlBindFramebuffer(RL_DRAW_FRAMEBUFFER, 0); rlBlitFramebuffer(0, 0, screenWidth, screenHeight, 0, 0, screenWidth, screenHeight, 0x00000100); // GL_DEPTH_BUFFER_BIT rlDisableFramebuffer(); diff --git a/src/rlgl.h b/src/rlgl.h index b49185f15..f3bbcd337 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -320,8 +320,8 @@ #define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA #define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -623,7 +623,7 @@ RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer -RLAPI void rlBindFramebuffer(unsigned int id,unsigned int val); // bind (FBO) +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) // General render state RLAPI void rlEnableColorBlend(void); // Enable color blending @@ -634,7 +634,7 @@ RLAPI void rlEnableDepthMask(void); // Enable depth write RLAPI void rlDisableDepthMask(void); // Disable depth write RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling -RLAPI void rlColorMask(bool,bool,bool,bool); // color mask control +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control RLAPI void rlSetCullFace(int mode); // Set face culling mode RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test @@ -1741,11 +1741,11 @@ void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX #endif } -// bind framebuffer object -void rlBindFramebuffer(unsigned int id,unsigned int val) +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); { #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(id, val); + glBindFramebuffer(target, framebuffer); #endif } @@ -1825,7 +1825,8 @@ void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } // Disable backface culling void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } -void rlColorMask(bool r,bool g,bool b,bool a) { glColorMask(r,g,b,a); } +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } // Set face culling mode void rlSetCullFace(int mode) From 68b6c79c3f4cea31f9b9baf9940a232b6f3372b5 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 20 Dec 2023 01:03:52 +0100 Subject: [PATCH 089/790] Update rlgl.h --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index f3bbcd337..eb7320a66 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1742,7 +1742,7 @@ void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX } // Bind framebuffer object (fbo) -void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) { #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(target, framebuffer); From fbecab32e720e68cba78e040f7a13cf61c8dea6a Mon Sep 17 00:00:00 2001 From: glowiak <52356948+glowiak@users.noreply.github.com> Date: Thu, 21 Dec 2023 19:31:34 +0100 Subject: [PATCH 090/790] Add new COBOL binding (#3661) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index 61ba1f17f..c9b93bd84 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -85,6 +85,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-raku | **auto** | [Raku](https://www.raku.org/) | Artistic License 2.0 | https://github.com/vushu/raylib-raku | | Raylib.lean | 4.5 | [Lean4](https://lean-lang.org/) | BSD-3-Clause | https://github.com/KislyjKisel/Raylib.lean | | Raylib-CSharp-Vinculum | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/ZeroElectric/Raylib-CSharp-Vinculum | +| raylib-cobol | **auto** | [COBOL](https://gnucobol.sourceforge.io) | Public domain | https://codeberg.org/glowiak/raylib-cobol | ### Utility Wrapers These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. From 4805dddc1888a4b5fc70e419c508ce084a7ba5b7 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 21 Dec 2023 21:32:00 +0100 Subject: [PATCH 091/790] Update shaders_deferred_render.c --- examples/shaders/shaders_deferred_render.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c index 6ba71e4e8..b5e2e46d7 100644 --- a/examples/shaders/shaders_deferred_render.c +++ b/examples/shaders/shaders_deferred_render.c @@ -33,6 +33,7 @@ #define MAX_CUBES 30 +// GBuffer data typedef struct GBuffer { unsigned int framebuffer; @@ -43,6 +44,7 @@ typedef struct GBuffer { unsigned int depthRenderbuffer; } GBuffer; +// Deferred mode passes typedef enum { DEFERRED_POSITION, DEFERRED_NORMAL, @@ -270,9 +272,9 @@ int main(void) } rlDisableShader(); EndMode3D(); + DrawText("FINAL RESULT", 10, screenHeight - 30, 20, DARKGREEN); } break; - case DEFERRED_POSITION: { DrawTextureRec((Texture2D){ @@ -280,9 +282,9 @@ int main(void) .width = screenWidth, .height = screenHeight, }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("POSITION TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); } break; - case DEFERRED_NORMAL: { DrawTextureRec((Texture2D){ @@ -290,9 +292,9 @@ int main(void) .width = screenWidth, .height = screenHeight, }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("NORMAL TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); } break; - case DEFERRED_ALBEDO: { DrawTextureRec((Texture2D){ @@ -300,8 +302,10 @@ int main(void) .width = screenWidth, .height = screenHeight, }, (Rectangle) { 0, 0, screenWidth, -screenHeight }, Vector2Zero(), RAYWHITE); + DrawText("ALBEDO TEXTURE", 10, screenHeight - 30, 20, DARKGREEN); } break; + default: break; } DrawText("Toggle lights keys: [Y][R][G][B]", 10, 40, 20, DARKGRAY); @@ -318,7 +322,7 @@ int main(void) UnloadModel(model); // Unload the models UnloadModel(cube); - UnloadShader(deferredShader); // Unload shaders + UnloadShader(deferredShader); // Unload shaders UnloadShader(gbufferShader); // Unload geometry buffer and all attached textures @@ -333,4 +337,3 @@ int main(void) return 0; } - From bb18018f292d3332af2c0b426e26f250893c89ad Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 21 Dec 2023 21:32:53 +0100 Subject: [PATCH 092/790] REVIEWED: `shaders_basic_pbr`, added more comments --- examples/shaders/shaders_basic_pbr.c | 253 ++++++++++++++----------- examples/shaders/shaders_basic_pbr.png | Bin 0 -> 495504 bytes 2 files changed, 147 insertions(+), 106 deletions(-) create mode 100644 examples/shaders/shaders_basic_pbr.png diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index 11e423d6b..685181d75 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -1,35 +1,43 @@ /******************************************************************************************* * -* raylib [core] example - Model Defuse Normal Shader (adapted for HTML5 platform) +* raylib [shaders] example - Basic PBR * -* This example is prepared to compile for PLATFORM_WEB and PLATFORM_DESKTOP -* As you will notice, code structure is slightly different to the other examples... -* To compile it for PLATFORM_WEB just uncomment #define PLATFORM_WEB at beginning +* Example originally created with raylib 5.0, last time updated with raylib 5.1-dev * -* This example has been created using raylib 5.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* Example contributed by Afan OLOVCIC (@_DevDad) and reviewed by Ramon Santamaria (@raysan5) +* +* Example 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) 2023-2024 Afan OLOVCIC (@_DevDad) +* +* Model: "Old Rusty Car" (https://skfb.ly/LxRy) by Renafox, +* licensed under Creative Commons Attribution-NonCommercial +* (http://creativecommons.org/licenses/by-nc/4.0/) * -* Copyright (c) 2023-2024 Afan OLOVCIC (@_DevDad) 2015 Ramon Santamaria (@raysan5) -* Model: "Old Rusty Car" (https://skfb.ly/LxRy) by Renafox is licensed under Creative Commons Attribution-NonCommercial (http://creativecommons.org/licenses/by-nc/4.0/). ********************************************************************************************/ #include "raylib.h" #if defined(PLATFORM_WEB) -#include + #include #endif #if defined(PLATFORM_DESKTOP) -#define GLSL_VERSION 330 + #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB -#define GLSL_VERSION 120 + #define GLSL_VERSION 120 #endif #include // Required for: NULL #define MAX_LIGHTS 4 // Max dynamic lights supported by shader -int lightsCount; // Current number of dynamic lights that have been created +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- + +// Light data typedef struct { int enabled; int type; @@ -44,20 +52,29 @@ typedef struct { int targetLoc; int colorLoc; int intensityLoc; -} PBRLight; +} Light; +// Light type typedef enum { LIGHT_DIRECTIONAL = 0, LIGHT_POINT, LIGHT_SPOT -} PBRLightType; +} LightType; +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static int lightCount = 0; // Current number of dynamic lights that have been created + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- // Create a light and get shader locations -PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader); +static Light CreateLight(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader); -// Send light properties to shader +// Update light properties on shader // NOTE: Light shader locations should be available -void PBRLightUpdate(Shader shader, PBRLight light); +static void UpdateLight(Shader shader, Light light); //---------------------------------------------------------------------------------- // Main Entry Point @@ -80,59 +97,73 @@ int main() camera.fovy = 45.0f; // Camera field-of-view Y camera.projection = CAMERA_PERSPECTIVE; // Camera projection type - - Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs",GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/pbr.fs",GLSL_VERSION)); + // Load PBR shader and setup all required locations + Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs", GLSL_VERSION), + TextFormat("resources/shaders/glsl%i/pbr.fs", GLSL_VERSION)); shader.locs[SHADER_LOC_MAP_ALBEDO] = GetShaderLocation(shader, "albedoMap"); - // In reality, metalness, roughness, and ambient occlusion are all packed into the MRA texture - // We'll pass it in as the metalness map + // WARNING: Metalness, roughness, and ambient occlusion are all packed into a MRA texture + // They are passed as to the SHADER_LOC_MAP_METALNESS location for convenience, + // shader already takes care of it accordingly shader.locs[SHADER_LOC_MAP_METALNESS] = GetShaderLocation(shader, "mraMap"); shader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(shader, "normalMap"); - // Similarly to the MRA map, the emissive map packs different information into a single texture - // This map stores both height and emission in reality + // WARNING: Similar to the MRA map, the emissive map packs different information + // into a single texture: it stores height and emission data + // It is binded to SHADER_LOC_MAP_EMISSION location an properly processed on shader shader.locs[SHADER_LOC_MAP_EMISSION] = GetShaderLocation(shader, "emissiveMap"); shader.locs[SHADER_LOC_COLOR_DIFFUSE] = GetShaderLocation(shader, "albedoColor"); + // Setup additional required shader locations, including lights data shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); - int numOfLightsLoc = GetShaderLocation(shader, "numOfLights"); - int numOfLights = 4; - SetShaderValue(shader, numOfLightsLoc, &numOfLights, SHADER_UNIFORM_INT); + int lightCountLoc = GetShaderLocation(shader, "numOfLights"); + int maxLightCount = MAX_LIGHTS; + SetShaderValue(shader, lightCountLoc, &maxLightCount, SHADER_UNIFORM_INT); - Color ambCol = (Color){ 26,32,135,255 }; - Vector3 ambColNormalized = (Vector3){ ambCol.r / 255.0f, ambCol.g / 255.0f, ambCol.b / 255.0f }; - float ambIntens = 0.02; + // Setup ambient color and intensity parameters + Color ambientColor = (Color){ 26, 32, 135, 255 }; + Vector3 ambientColorNormalized = (Vector3){ ambientColor.r/255.0f, ambientColor.g/255.0f, ambientColor.b/255.0f }; + float ambientIntensity = 0.02; int albedoLoc = GetShaderLocation(shader, "albedo"); - int ambColLoc = GetShaderLocation(shader, "ambientColor"); - int ambLoc = GetShaderLocation(shader, "ambient"); - SetShaderValue(shader, ambColLoc, &ambColNormalized, SHADER_UNIFORM_VEC3); - SetShaderValue(shader, ambLoc, &ambIntens, SHADER_UNIFORM_FLOAT); + int ambientColorLoc = GetShaderLocation(shader, "ambientColor"); + int ambientLoc = GetShaderLocation(shader, "ambient"); + SetShaderValue(shader, ambientColorLoc, &ambientColorNormalized, SHADER_UNIFORM_VEC3); + SetShaderValue(shader, ambientLoc, &ambientIntensity, SHADER_UNIFORM_FLOAT); int emissiveIntensityLoc = GetShaderLocation(shader, "emissivePower"); int emissiveColorLoc = GetShaderLocation(shader, "emissiveColor"); int textureTilingLoc = GetShaderLocation(shader, "tiling"); - Model model = LoadModel("resources/models/old_car_new.glb"); - // If the OBJ file format is used, we will have to generate tangents manually: - // GenMeshTangents(&model.meshes[0]); + // Load old car model using PBR maps and shader + // WARNING: We know this model consists of a single model.meshes[0] and + // that model.materials[0] is by default assigned to that mesh + // There could be more complex models consisting of multiple meshes and + // multiple materials defined for those meshes... but always 1 mesh = 1 material + Model car = LoadModel("resources/models/old_car_new.glb"); - model.materials[0].shader = shader; + // Assign already setup PBR shader to model.materials[0], used by models.meshes[0] + car.materials[0].shader = shader; - model.materials[0].maps[MATERIAL_MAP_ALBEDO].color = WHITE; - model.materials[0].maps[MATERIAL_MAP_METALNESS].value = 0.0f; - model.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value = 0.0f; - model.materials[0].maps[MATERIAL_MAP_OCCLUSION].value = 1.0f; - model.materials[0].maps[MATERIAL_MAP_EMISSION].color = (Color){ 255, 162, 0, 255 }; + // Setup materials[0].maps default parameters + car.materials[0].maps[MATERIAL_MAP_ALBEDO].color = WHITE; + car.materials[0].maps[MATERIAL_MAP_METALNESS].value = 0.0f; + car.materials[0].maps[MATERIAL_MAP_ROUGHNESS].value = 0.0f; + car.materials[0].maps[MATERIAL_MAP_OCCLUSION].value = 1.0f; + car.materials[0].maps[MATERIAL_MAP_EMISSION].color = (Color){ 255, 162, 0, 255 }; - model.materials[0].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/old_car_d.png"); - model.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/old_car_mra.png"); - model.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/old_car_n.png"); - model.materials[0].maps[MATERIAL_MAP_EMISSION].texture = LoadTexture("resources/old_car_e.png"); - // We store tiling parameters in the generic parameter slots in the Material class - Vector2 modelTiling = (Vector2){ 0.5f, 0.5f }; + // Setup materials[0].maps default textures + car.materials[0].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/old_car_d.png"); + car.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/old_car_mra.png"); + car.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/old_car_n.png"); + car.materials[0].maps[MATERIAL_MAP_EMISSION].texture = LoadTexture("resources/old_car_e.png"); + + // Old car model texture tiling parameter can be stored in the Material struct if required (CURRENTLY NOT USED) + // NOTE: Material.params[4] are available for generic parameters storage (float) + Vector2 carTextureTiling = (Vector2){ 0.5f, 0.5f }; + // Load floor model mesh and assign material parameters Model floor = LoadModel("resources/models/plane.glb"); + // Assign material shader for our floor model, same PBR shader floor.materials[0].shader = shader; floor.materials[0].maps[MATERIAL_MAP_ALBEDO].color = WHITE; @@ -145,25 +176,27 @@ int main() floor.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/road_mra.png"); floor.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/road_n.png"); - Vector2 floorTiling = (Vector2){ 0.5f, 0.5f }; + // Floor texture tiling parameter + Vector2 floorTextureTiling = (Vector2){ 0.5f, 0.5f }; - // Create lights - PBRLight lights[MAX_LIGHTS] = { 0 }; - lights[0] = PBRLightCreate(LIGHT_POINT, (Vector3){ -1, 1, -2 }, (Vector3){0,0,0}, YELLOW,4, shader); - lights[1] = PBRLightCreate(LIGHT_POINT, (Vector3){ 2, 1, 1 }, (Vector3){0,0,0}, GREEN,3.3, shader); - lights[2] = PBRLightCreate(LIGHT_POINT, (Vector3){ -2, 1, 1 }, (Vector3){0,0,0}, RED,8.3, shader); - lights[3] = PBRLightCreate(LIGHT_POINT, (Vector3){ 1, 1, -2 }, (Vector3){0,0,0}, BLUE,2, shader); + // Create some lights + Light lights[MAX_LIGHTS] = { 0 }; + lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -1, 1, -2 }, (Vector3){0,0,0}, YELLOW,4, shader); + lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 2, 1, 1 }, (Vector3){0,0,0}, GREEN,3.3, shader); + lights[2] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, 1 }, (Vector3){0,0,0}, RED,8.3, shader); + lights[3] = CreateLight(LIGHT_POINT, (Vector3){ 1, 1, -2 }, (Vector3){0,0,0}, BLUE,2, shader); - // The textures are always used - int one = 1; - SetShaderValue(shader, GetShaderLocation(shader, "useTexAlbedo"), &one, SHADER_UNIFORM_INT); - SetShaderValue(shader, GetShaderLocation(shader, "useTexNormal"), &one, SHADER_UNIFORM_INT); - SetShaderValue(shader, GetShaderLocation(shader, "useTexMRA"), &one, SHADER_UNIFORM_INT); - SetShaderValue(shader, GetShaderLocation(shader, "useTexEmissive"), &one, SHADER_UNIFORM_INT); + // Setup material texture maps usage in shader + // NOTE: By default, the texture maps are always used + int usage = 1; + SetShaderValue(shader, GetShaderLocation(shader, "useTexAlbedo"), &usage, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexNormal"), &usage, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexMRA"), &usage, SHADER_UNIFORM_INT); + SetShaderValue(shader, GetShaderLocation(shader, "useTexEmissive"), &usage, SHADER_UNIFORM_INT); + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //--------------------------------------------------------------------------------------- - SetTargetFPS(60); // Set our game to run at 60 frames-per-second------------------------------------------------------------- - - int emissiveCnt = 0; // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { @@ -181,8 +214,8 @@ int main() if (IsKeyPressed(KEY_R)) { lights[2].enabled = !lights[2].enabled; } if (IsKeyPressed(KEY_B)) { lights[3].enabled = !lights[3].enabled; } - // Update light values (actually, only enable/disable them) - for (int i = 0; i < MAX_LIGHTS; i++) PBRLightUpdate(shader, lights[i]); + // Update light values on shader (actually, only enable/disable them) + for (int i = 0; i < MAX_LIGHTS; i++) UpdateLight(shader, lights[i]); //---------------------------------------------------------------------------------- // Draw @@ -193,53 +226,58 @@ int main() BeginMode3D(camera); - SetShaderValue(shader, textureTilingLoc, &floorTiling, SHADER_UNIFORM_VEC2); - Vector4 floorEmission = ColorNormalize(floor.materials[0].maps[MATERIAL_MAP_EMISSION].color); - SetShaderValue(shader, emissiveColorLoc, &floorEmission, SHADER_UNIFORM_VEC4); - DrawModel(floor, (Vector3){0,0,0}, 5.0f, WHITE); + // Set floor model texture tiling and emissive color parameters on shader + SetShaderValue(shader, textureTilingLoc, &floorTextureTiling, SHADER_UNIFORM_VEC2); + Vector4 floorEmissiveColor = ColorNormalize(floor.materials[0].maps[MATERIAL_MAP_EMISSION].color); + SetShaderValue(shader, emissiveColorLoc, &floorEmissiveColor, SHADER_UNIFORM_VEC4); + + DrawModel(floor, (Vector3){ 0.0f, 0.0f, 0.0f }, 5.0f, WHITE); // Draw floor model - emissiveCnt--; - if (emissiveCnt <= 0) - { - emissiveCnt = GetRandomValue(0, 20); - float intensity = (float)GetRandomValue(0, 100) / 100; - SetShaderValue(shader, emissiveIntensityLoc, &intensity, SHADER_UNIFORM_FLOAT); - } - SetShaderValue(shader, textureTilingLoc, &modelTiling, SHADER_UNIFORM_VEC2); - Vector4 modelEmission = ColorNormalize(model.materials[0].maps[MATERIAL_MAP_EMISSION].color); - SetShaderValue(shader, emissiveColorLoc, &modelEmission, SHADER_UNIFORM_VEC4); - DrawModel(model, (Vector3) {0, 0.0, 0}, 0.005, WHITE); + // Set old car model texture tiling, emissive color and emissive intensity parameters on shader + SetShaderValue(shader, textureTilingLoc, &carTextureTiling, SHADER_UNIFORM_VEC2); + Vector4 carEmissiveColor = ColorNormalize(car.materials[0].maps[MATERIAL_MAP_EMISSION].color); + SetShaderValue(shader, emissiveColorLoc, &carEmissiveColor, SHADER_UNIFORM_VEC4); + float emissiveIntensity = 0.01f; + SetShaderValue(shader, emissiveIntensityLoc, &emissiveIntensity, SHADER_UNIFORM_FLOAT); + + DrawModel(car, (Vector3){ 0.0f, 0.0f, 0.0f }, 0.005f, WHITE); // Draw car model - // Draw spheres to show where the lights are + // Draw spheres to show the lights positions for (int i = 0; i < MAX_LIGHTS; i++) { - Color col = (Color) {lights[i].color[0] * 255, lights[i].color[1] * 255, lights[i].color[2] * 255, - lights[i].color[3] * 255}; - if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, col); - else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(col, 0.3f)); + Color lightColor = (Color){ lights[i].color[0]*255, lights[i].color[1]*255, lights[i].color[2]*255, lights[i].color[3]*255 }; + + if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, lightColor); + else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(lightColor, 0.3f)); } EndMode3D(); + + DrawText("Toggle lights: [Y][R][G][B]", 10, 40, 20, LIGHTGRAY); DrawText("(c) Old Rusty Car model by Renafox (https://skfb.ly/LxRy)", screenWidth - 320, screenHeight - 20, 10, LIGHTGRAY); + DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } - //-------------------------------------------------------------------------------------- // De-Initialization //-------------------------------------------------------------------------------------- - model.materials[0].shader = (Shader){ 0 }; + // Unbind (disconnect) shader from car.material[0] + // to avoid UnloadMaterial() trying to unload it automatically + car.materials[0].shader = (Shader){ 0 }; + UnloadMaterial(car.materials[0]); + car.materials[0].maps = NULL; + UnloadModel(car); + floor.materials[0].shader = (Shader){ 0 }; - UnloadMaterial(model.materials[0]); UnloadMaterial(floor.materials[0]); - model.materials[0].maps = NULL; floor.materials[0].maps = NULL; - UnloadModel(floor); // Unload model - UnloadModel(model); // Unload model - UnloadShader(shader); // Unload Shader + UnloadModel(floor); + + UnloadShader(shader); // Unload Shader CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- @@ -247,11 +285,13 @@ int main() return 0; } -PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader) +// Create light with provided data +// NOTE: It updated the global lightCount and it's limited to MAX_LIGHTS +static Light CreateLight(int type, Vector3 position, Vector3 target, Color color, float intensity, Shader shader) { - PBRLight light = { 0 }; + Light light = { 0 }; - if (lightsCount < MAX_LIGHTS) + if (lightCount < MAX_LIGHTS) { light.enabled = 1; light.type = type; @@ -263,15 +303,15 @@ PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, light.color[3] = (float)color.a / (float)255; light.intensity = intensity; // NOTE: Lighting shader naming must be the provided ones - light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightsCount)); - light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightsCount)); - light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightsCount)); - light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightsCount)); - light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightsCount)); - light.intensityLoc = GetShaderLocation(shader, TextFormat("lights[%i].intensity", lightsCount)); - PBRLightUpdate(shader, light); + light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightCount)); + light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightCount)); + light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightCount)); + light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightCount)); + light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightCount)); + light.intensityLoc = GetShaderLocation(shader, TextFormat("lights[%i].intensity", lightCount)); + UpdateLight(shader, light); - lightsCount++; + lightCount++; } return light; @@ -279,10 +319,11 @@ PBRLight PBRLightCreate(int type, Vector3 position, Vector3 target, Color color, // Send light properties to shader // NOTE: Light shader locations should be available -void PBRLightUpdate(Shader shader, PBRLight light) +static void UpdateLight(Shader shader, Light light) { SetShaderValue(shader, light.enabledLoc, &light.enabled, SHADER_UNIFORM_INT); SetShaderValue(shader, light.typeLoc, &light.type, SHADER_UNIFORM_INT); + // Send to shader light position values float position[3] = { light.position.x, light.position.y, light.position.z }; SetShaderValue(shader, light.positionLoc, position, SHADER_UNIFORM_VEC3); diff --git a/examples/shaders/shaders_basic_pbr.png b/examples/shaders/shaders_basic_pbr.png new file mode 100644 index 0000000000000000000000000000000000000000..1150ebffafcdece6732250ef0d0696262538ba24 GIT binary patch literal 495504 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%0D8_I^_L4zu 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⪥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

    tFYplJJ7XXox=D9Jp}DIFg8 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�BWyHkHO20Vkb*xf=ML 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%0A%zM@GLg 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 Xj-0gjUY8~Xl)qorZ(4WNpDXx3s%{=t literal 0 HcmV?d00001 From a06f3d0e34fbba8fd4a49bb53ea1bdf7e3d2a011 Mon Sep 17 00:00:00 2001 From: o3o Date: Fri, 22 Dec 2023 17:40:57 +0100 Subject: [PATCH 093/790] Update BINDINGS.md (#3662) Udated version of `bindbd-raylib3` to 5.0.0 (bind to raylib 5.0.0) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index c9b93bd84..b7cddf238 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -19,7 +19,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | | raylib-c3 | **4.5** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | -| bindbc-raylib3 | **4.5** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | +| bindbc-raylib3 | **5.0** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | | dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | | raylib-d | **5.0** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | | dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib | From f914020d45f6e44b2de4e6ba6af8e5b60fe42731 Mon Sep 17 00:00:00 2001 From: Tim Romero Date: Sat, 23 Dec 2023 02:22:16 -0800 Subject: [PATCH 094/790] VSCode sample project Mac fixup (#3666) Change vscode config and makefile to add a missing IOKit framework reference and use whichever MacOSX sdk symlink is available --- projects/VSCode/.vscode/c_cpp_properties.json | 2 +- projects/VSCode/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/VSCode/.vscode/c_cpp_properties.json b/projects/VSCode/.vscode/c_cpp_properties.json index cbdb51941..dd0a2932e 100644 --- a/projects/VSCode/.vscode/c_cpp_properties.json +++ b/projects/VSCode/.vscode/c_cpp_properties.json @@ -32,7 +32,7 @@ "PLATFORM_DESKTOP" ], "macFrameworkPath": [ - "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks" + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks" ], "compilerPath": "/usr/bin/clang", "cStandard": "c11", diff --git a/projects/VSCode/Makefile b/projects/VSCode/Makefile index a2a26f092..25e00c0b4 100644 --- a/projects/VSCode/Makefile +++ b/projects/VSCode/Makefile @@ -319,7 +319,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa -framework IOKit endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling From 1792bce2924d2cfed9f63aa855dc56be449334f2 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 23 Dec 2023 11:26:23 +0100 Subject: [PATCH 095/790] REVIEWED: `LoadTextureCubemap()`, added `mipmaps` #3665 --- src/rtextures.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index d42304c7d..c53d30aa6 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3778,7 +3778,9 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) if ((image.height/6) == image.width) { layout = CUBEMAP_LAYOUT_LINE_VERTICAL; cubemap.width = image.height/6; } else if ((image.width/3) == (image.height/4)) { layout = CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR; cubemap.width = image.width/3; } } - } else { + } + else + { if (layout == CUBEMAP_LAYOUT_LINE_VERTICAL) cubemap.width = image.height/6; if (layout == CUBEMAP_LAYOUT_LINE_HORIZONTAL) cubemap.width = image.width/6; if (layout == CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR) cubemap.width = image.width/3; @@ -3795,6 +3797,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) Image faces = { 0 }; // Vertical column image Rectangle faceRecs[6] = { 0 }; // Face source rectangles + for (int i = 0; i < 6; i++) faceRecs[i] = (Rectangle){ 0, 0, (float)size, (float)size }; if (layout == CUBEMAP_LAYOUT_LINE_VERTICAL) @@ -3841,6 +3844,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) // one after the other (that's a vertical image), following convention: +X, -X, +Y, -Y, +Z, -Z cubemap.id = rlLoadTextureCubemap(faces.data, size, faces.format); if (cubemap.id == 0) TRACELOG(LOG_WARNING, "IMAGE: Failed to load cubemap image"); + else cubemap.mipmaps = 1; UnloadImage(faces); } From efe3510a9a2863afc48c50d38679c0d2ef1929d4 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 23 Dec 2023 12:04:19 +0100 Subject: [PATCH 096/790] REVIEWED: SDL text input to Unicode codepoints #3650 REVIEWED: GLFW naming conventions to reflect codepoints reading --- src/platforms/rcore_desktop.c | 10 +++++----- src/platforms/rcore_desktop_sdl.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 0dfcacd81..2bbb3f2bc 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -126,7 +126,7 @@ static void WindowDropCallback(GLFWwindow *window, int count, const char **paths // Input callbacks events static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods); // GLFW3 Keyboard Callback, runs on key pressed -static void CharCallback(GLFWwindow *window, unsigned int key); // GLFW3 Char Key Callback, runs on key pressed (get char value) +static void CharCallback(GLFWwindow *window, unsigned int codepoint); // GLFW3 Char Callback, runs on key pressed (get codepoint value) static void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods); // GLFW3 Mouse Button Callback, runs on mouse button pressed static void MouseCursorPosCallback(GLFWwindow *window, double x, double y); // GLFW3 Cursor Position Callback, runs on mouse move static void MouseScrollCallback(GLFWwindow *window, double xoffset, double yoffset); // GLFW3 Scrolling Callback, runs on mouse wheel @@ -1714,10 +1714,10 @@ static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, i if ((key == CORE.Input.Keyboard.exitKey) && (action == GLFW_PRESS)) glfwSetWindowShouldClose(platform.handle, GLFW_TRUE); } -// GLFW3 Char Key Callback, runs on key down (gets equivalent unicode char value) -static void CharCallback(GLFWwindow *window, unsigned int key) +// GLFW3 Char Callback, get unicode codepoint value +static void CharCallback(GLFWwindow *window, unsigned int codepoint) { - //TRACELOG(LOG_DEBUG, "Char Callback: KEY:%i(%c)", key, key); + //TRACELOG(LOG_DEBUG, "Char Callback: Codepoint: %i", codepoint); // NOTE: Registers any key down considering OS keyboard layout but // does not detect action events, those should be managed by user... @@ -1728,7 +1728,7 @@ static void CharCallback(GLFWwindow *window, unsigned int key) if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { // Add character to the queue - CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = key; + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = codepoint; CORE.Input.Keyboard.charPressedQueueCount++; } } diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index e1e6e4c9a..1e55cbac4 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1111,19 +1111,23 @@ void PollInputEvents(void) case SDL_TEXTINPUT: { + // NOTE: event.text.text data comes an UTF-8 text sequence but we register codepoints (int) + + int codepointSize = 0; + // Check if there is space available in the key queue if (CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE) { - // Add character to the queue - CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = event.text.text[0]; + // Add character (key) to the queue + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = GetCodepointNext(event.text.text, &codepointSize); CORE.Input.Keyboard.keyPressedQueueCount++; } // Check if there is space available in the queue if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { - // Add character to the queue - CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = event.text.text[0]; + // Add character (codepoint) to the queue + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = GetCodepointNext(event.text.text, &codepointSize); CORE.Input.Keyboard.charPressedQueueCount++; } } break; From 7ca95512d876c47864f066aa5e90151a48290892 Mon Sep 17 00:00:00 2001 From: Antonis Geralis <43617260+planetis-m@users.noreply.github.com> Date: Sat, 23 Dec 2023 13:14:39 +0200 Subject: [PATCH 097/790] Review UnloadAutomationEventList (#3658) * Review UnloadAutomationEventList * Update raylib.h * Update rcore.c * Update core_automation_events.c * Fix mistake --- examples/core/core_automation_events.c | 2 +- src/raylib.h | 2 +- src/rcore.c | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/examples/core/core_automation_events.c b/examples/core/core_automation_events.c index b58d572bd..319b013ba 100644 --- a/examples/core/core_automation_events.c +++ b/examples/core/core_automation_events.c @@ -98,7 +98,7 @@ int main(void) // Supports loading .rgs style files (text or binary) and .png style palette images if (IsFileExtension(droppedFiles.paths[0], ".txt;.rae")) { - UnloadAutomationEventList(&aelist); + UnloadAutomationEventList(aelist); aelist = LoadAutomationEventList(droppedFiles.paths[0]); eventRecording = false; diff --git a/src/raylib.h b/src/raylib.h index 206b26573..2ab3f3041 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1138,7 +1138,7 @@ RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize // Automation events functionality RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList *list); // Unload automation events list from file +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording diff --git a/src/rcore.c b/src/rcore.c index 8691be304..3ddf3596d 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2480,13 +2480,10 @@ AutomationEventList LoadAutomationEventList(const char *fileName) } // Unload automation events list from file -void UnloadAutomationEventList(AutomationEventList *list) +void UnloadAutomationEventList(AutomationEventList list) { #if defined(SUPPORT_AUTOMATION_EVENTS) - RL_FREE(list->events); - list->events = NULL; - list->count = 0; - list->capacity = 0; + RL_FREE(list.events); #endif } From 706f74bce056c13ba32729c88bb7b30ceb6df34b Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 23 Dec 2023 13:32:47 +0100 Subject: [PATCH 098/790] Update shaders_basic_pbr.c --- examples/shaders/shaders_basic_pbr.c | 68 ++++++++++++++-------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index 685181d75..e630fbc4e 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -37,23 +37,6 @@ // Types and Structures Definition //---------------------------------------------------------------------------------- -// Light data -typedef struct { - int enabled; - int type; - Vector3 position; - Vector3 target; - float color[4]; - float intensity; - - int enabledLoc; - int typeLoc; - int positionLoc; - int targetLoc; - int colorLoc; - int intensityLoc; -} Light; - // Light type typedef enum { LIGHT_DIRECTIONAL = 0, @@ -61,6 +44,24 @@ typedef enum { LIGHT_SPOT } LightType; +// Light data +typedef struct { + int type; + int enabled; + Vector3 position; + Vector3 target; + float color[4]; + float intensity; + + // Shader light parameters locations + int typeLoc; + int enabledLoc; + int positionLoc; + int targetLoc; + int colorLoc; + int intensityLoc; +} Light; + //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- @@ -119,16 +120,13 @@ int main() SetShaderValue(shader, lightCountLoc, &maxLightCount, SHADER_UNIFORM_INT); // Setup ambient color and intensity parameters + float ambientIntensity = 0.02f; Color ambientColor = (Color){ 26, 32, 135, 255 }; Vector3 ambientColorNormalized = (Vector3){ ambientColor.r/255.0f, ambientColor.g/255.0f, ambientColor.b/255.0f }; - float ambientIntensity = 0.02; - - int albedoLoc = GetShaderLocation(shader, "albedo"); - int ambientColorLoc = GetShaderLocation(shader, "ambientColor"); - int ambientLoc = GetShaderLocation(shader, "ambient"); - SetShaderValue(shader, ambientColorLoc, &ambientColorNormalized, SHADER_UNIFORM_VEC3); - SetShaderValue(shader, ambientLoc, &ambientIntensity, SHADER_UNIFORM_FLOAT); + SetShaderValue(shader, GetShaderLocation(shader, "ambientColor"), &ambientColorNormalized, SHADER_UNIFORM_VEC3); + SetShaderValue(shader, GetShaderLocation(shader, "ambient"), &ambientIntensity, SHADER_UNIFORM_FLOAT); + // Get location for shader parameters that can be modified in real time int emissiveIntensityLoc = GetShaderLocation(shader, "emissivePower"); int emissiveColorLoc = GetShaderLocation(shader, "emissiveColor"); int textureTilingLoc = GetShaderLocation(shader, "tiling"); @@ -156,12 +154,12 @@ int main() car.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/old_car_n.png"); car.materials[0].maps[MATERIAL_MAP_EMISSION].texture = LoadTexture("resources/old_car_e.png"); - // Old car model texture tiling parameter can be stored in the Material struct if required (CURRENTLY NOT USED) - // NOTE: Material.params[4] are available for generic parameters storage (float) - Vector2 carTextureTiling = (Vector2){ 0.5f, 0.5f }; - // Load floor model mesh and assign material parameters + // NOTE: A basic plane shape can be generated instead of being loaded from a model file Model floor = LoadModel("resources/models/plane.glb"); + //Mesh floorMesh = GenMeshPlane(10, 10, 10, 10); + //GenMeshTangents(&floorMesh); // TODO: Review tangents generation + //Model floor = LoadModelFromMesh(floorMesh); // Assign material shader for our floor model, same PBR shader floor.materials[0].shader = shader; @@ -176,7 +174,9 @@ int main() floor.materials[0].maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/road_mra.png"); floor.materials[0].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/road_n.png"); - // Floor texture tiling parameter + // Models texture tiling parameter can be stored in the Material struct if required (CURRENTLY NOT USED) + // NOTE: Material.params[4] are available for generic parameters storage (float) + Vector2 carTextureTiling = (Vector2){ 0.5f, 0.5f }; Vector2 floorTextureTiling = (Vector2){ 0.5f, 0.5f }; // Create some lights @@ -209,10 +209,10 @@ int main() SetShaderValue(shader, shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3); // Check key inputs to enable/disable lights - if (IsKeyPressed(KEY_Y)) { lights[0].enabled = !lights[0].enabled; } - if (IsKeyPressed(KEY_G)) { lights[1].enabled = !lights[1].enabled; } - if (IsKeyPressed(KEY_R)) { lights[2].enabled = !lights[2].enabled; } - if (IsKeyPressed(KEY_B)) { lights[3].enabled = !lights[3].enabled; } + if (IsKeyPressed(KEY_ONE)) { lights[2].enabled = !lights[2].enabled; } + if (IsKeyPressed(KEY_TWO)) { lights[1].enabled = !lights[1].enabled; } + if (IsKeyPressed(KEY_THREE)) { lights[3].enabled = !lights[3].enabled; } + if (IsKeyPressed(KEY_FOUR)) { lights[0].enabled = !lights[0].enabled; } // Update light values on shader (actually, only enable/disable them) for (int i = 0; i < MAX_LIGHTS; i++) UpdateLight(shader, lights[i]); @@ -253,7 +253,7 @@ int main() EndMode3D(); - DrawText("Toggle lights: [Y][R][G][B]", 10, 40, 20, LIGHTGRAY); + DrawText("Toggle lights: [1][2][3][4]", 10, 40, 20, LIGHTGRAY); DrawText("(c) Old Rusty Car model by Renafox (https://skfb.ly/LxRy)", screenWidth - 320, screenHeight - 20, 10, LIGHTGRAY); From e039a221a3cf45d115aa9d9489e7d7e03d92b91e Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 23 Dec 2023 14:07:45 +0100 Subject: [PATCH 099/790] Review formating --- .../shaders/resources/shaders/glsl330/pbr.fs | 163 +++++++++--------- .../shaders/resources/shaders/glsl330/pbr.vs | 13 +- src/rmodels.c | 4 +- src/rtextures.c | 2 +- 4 files changed, 92 insertions(+), 90 deletions(-) diff --git a/examples/shaders/resources/shaders/glsl330/pbr.fs b/examples/shaders/resources/shaders/glsl330/pbr.fs index 5375d4498..d7544d310 100644 --- a/examples/shaders/resources/shaders/glsl330/pbr.fs +++ b/examples/shaders/resources/shaders/glsl330/pbr.fs @@ -24,8 +24,8 @@ in mat3 TBN; // Output fragment color out vec4 finalColor; -// Input uniform values +// Input uniform values uniform int numOfLights; uniform sampler2D albedoMap; uniform sampler2D mraMap; @@ -55,105 +55,108 @@ uniform vec3 viewPos; uniform vec3 ambientColor; uniform float ambient; -// refl in range 0 to 1 -// returns base reflectivity to 1 -// incrase reflectivity when surface view at larger angle -vec3 schlickFresnel(float hDotV,vec3 refl) +// Reflectivity in range 0.0 to 1.0 +// NOTE: Reflectivity is increased when surface view at larger angle +vec3 SchlickFresnel(float hDotV,vec3 refl) { - return refl + (1.0 - refl) * pow(1.0 - hDotV,5.0); + return refl + (1.0 - refl)*pow(1.0 - hDotV, 5.0); } -float ggxDistribution(float nDotH,float roughness) +float GgxDistribution(float nDotH,float roughness) { - float a = roughness * roughness * roughness * roughness; - float d = nDotH * nDotH * (a - 1.0) + 1.0; - d = PI * d * d; - return a / max(d,0.0000001); + float a = roughness * roughness * roughness * roughness; + float d = nDotH * nDotH * (a - 1.0) + 1.0; + d = PI * d * d; + return a / max(d,0.0000001); } -float geomSmith(float nDotV,float nDotL,float roughness) +float GeomSmith(float nDotV,float nDotL,float roughness) { - float r = roughness + 1.0; - float k = r * r / 8.0; - float ik = 1.0 - k; - float ggx1 = nDotV / (nDotV * ik + k); - float ggx2 = nDotL / (nDotL * ik + k); - return ggx1 * ggx2; + float r = roughness + 1.0; + float k = r*r / 8.0; + float ik = 1.0 - k; + float ggx1 = nDotV/(nDotV*ik + k); + float ggx2 = nDotL/(nDotL*ik + k); + return ggx1*ggx2; } -vec3 pbr(){ - vec3 albedo = texture(albedoMap,vec2(fragTexCoord.x*tiling.x+offset.x,fragTexCoord.y*tiling.y+offset.y)).rgb; - albedo = vec3(albedoColor.x*albedo.x,albedoColor.y*albedo.y,albedoColor.z*albedo.z); - float metallic = clamp(metallicValue,0.0,1.0); - float roughness = clamp(roughnessValue,0.0,1.0); - float ao = clamp(aoValue,0.0,1.0); - if(useTexMRA == 1) { - vec4 mra = texture(mraMap, vec2(fragTexCoord.x * tiling.x + offset.x, fragTexCoord.y * tiling.y + offset.y)) * useTexMRA; - metallic = clamp(mra.r+metallicValue,0.04,1.0); - roughness = clamp(mra.g+roughnessValue,0.04,1.0); - ao = (mra.b+aoValue)*0.5; - } +vec3 ComputePBR() +{ + vec3 albedo = texture(albedoMap,vec2(fragTexCoord.x*tiling.x + offset.x, fragTexCoord.y*tiling.y + offset.y)).rgb; + albedo = vec3(albedoColor.x*albedo.x, albedoColor.y*albedo.y, albedoColor.z*albedo.z); + + float metallic = clamp(metallicValue, 0.0, 1.0); + float roughness = clamp(roughnessValue, 0.0, 1.0); + float ao = clamp(aoValue, 0.0, 1.0); + + if (useTexMRA == 1) + { + vec4 mra = texture(mraMap, vec2(fragTexCoord.x*tiling.x + offset.x, fragTexCoord.y*tiling.y + offset.y))*useTexMRA; + metallic = clamp(mra.r + metallicValue, 0.04, 1.0); + roughness = clamp(mra.g + roughnessValue, 0.04, 1.0); + ao = (mra.b + aoValue)*0.5; + } + vec3 N = normalize(fragNormal); + if (useTexNormal == 1) + { + N = texture(normalMap, vec2(fragTexCoord.x*tiling.x + offset.y, fragTexCoord.y*tiling.y + offset.y)).rgb; + N = normalize(N*2.0 - 1.0); + N = normalize(N*TBN); + } + vec3 V = normalize(viewPos - fragPosition); - vec3 N = normalize(fragNormal); - if(useTexNormal == 1) { - N = texture(normalMap, vec2(fragTexCoord.x * tiling.x + offset.y, fragTexCoord.y * tiling.y + offset.y)).rgb; - N = normalize(N * 2.0 - 1.0); - N = normalize(N * TBN); - } + vec3 emissive = vec3(0); + emissive = (texture(emissiveMap, vec2(fragTexCoord.x*tiling.x+offset.x, fragTexCoord.y*tiling.y+offset.y)).rgb).g * emissiveColor.rgb*emissivePower * useTexEmissive; - vec3 V = normalize(viewPos - fragPosition); + // return N;//vec3(metallic,metallic,metallic); + // if dia-electric use base reflectivity of 0.04 otherwise ut is a metal use albedo as base reflectivity + vec3 baseRefl = mix(vec3(0.04), albedo.rgb, metallic); + vec3 lightAccum = vec3(0.0); // Acumulate lighting lum - vec3 e = vec3(0); - e = (texture(emissiveMap, vec2(fragTexCoord.x*tiling.x+offset.x, fragTexCoord.y*tiling.y+offset.y)).rgb).g * emissiveColor.rgb*emissivePower * useTexEmissive; + for (int i = 0; i < numOfLights; i++) + { + vec3 L = normalize(lights[i].position - fragPosition); // Compute light vector + vec3 H = normalize(V + L); // Compute halfway bisecting vector + float dist = length(lights[i].position - fragPosition); // Compute distance to light + float attenuation = 1.0/(dist*dist*0.23); // Compute attenuation + vec3 radiance = lights[i].color.rgb*lights[i].intensity*attenuation; // Compute input radiance, light energy comming in + // Cook-Torrance BRDF distribution function + float nDotV = max(dot(N,V), 0.0000001); + float nDotL = max(dot(N,L), 0.0000001); + float hDotV = max(dot(H,V), 0.0); + float nDotH = max(dot(N,H), 0.0); + float D = GgxDistribution(nDotH, roughness); // Larger the more micro-facets aligned to H + float G = GeomSmith(nDotV, nDotL, roughness); // Smaller the more micro-facets shadow + vec3 F = SchlickFresnel(hDotV, baseRefl); // Fresnel proportion of specular reflectance - - - - //return N;//vec3(metallic,metallic,metallic); - //if dia-electric use base reflectivity of 0.04 otherwise ut is a metal use albedo as base reflectivity - vec3 baseRefl = mix(vec3(0.04),albedo.rgb,metallic); - vec3 Lo = vec3(0.0); // acumulate lighting lum - - for(int i=0;iuri + i + 1, &data); if (result == cgltf_result_success) diff --git a/src/rtextures.c b/src/rtextures.c index c53d30aa6..a16fb386a 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1967,7 +1967,7 @@ void ImageBlurGaussian(Image *image, int blurSize) { avgG += pixelsCopy1[row*image->width + i].y; avgB += pixelsCopy1[row*image->width + i].z; avgAlpha += pixelsCopy1[row*image->width + i].w; - } + } for (int x = 0; x < image->width; x++) { From 36df9c5bd6999d5a047cf94097f258a27aaafc52 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 23 Dec 2023 18:16:06 +0100 Subject: [PATCH 100/790] Update shaders_basic_pbr.c --- examples/shaders/shaders_basic_pbr.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/examples/shaders/shaders_basic_pbr.c b/examples/shaders/shaders_basic_pbr.c index e630fbc4e..d025ab8a9 100644 --- a/examples/shaders/shaders_basic_pbr.c +++ b/examples/shaders/shaders_basic_pbr.c @@ -19,10 +19,6 @@ #include "raylib.h" -#if defined(PLATFORM_WEB) - #include -#endif - #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 #else // PLATFORM_ANDROID, PLATFORM_WEB @@ -181,10 +177,10 @@ int main() // Create some lights Light lights[MAX_LIGHTS] = { 0 }; - lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -1, 1, -2 }, (Vector3){0,0,0}, YELLOW,4, shader); - lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 2, 1, 1 }, (Vector3){0,0,0}, GREEN,3.3, shader); - lights[2] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, 1 }, (Vector3){0,0,0}, RED,8.3, shader); - lights[3] = CreateLight(LIGHT_POINT, (Vector3){ 1, 1, -2 }, (Vector3){0,0,0}, BLUE,2, shader); + lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -1.0f, 1.0f, -2.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, YELLOW, 4.0f, shader); + lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 2.0f, 1.0f, 1.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, GREEN, 3.3f, shader); + lights[2] = CreateLight(LIGHT_POINT, (Vector3){ -2.0f, 1.0f, 1.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, RED, 8.3f, shader); + lights[3] = CreateLight(LIGHT_POINT, (Vector3){ 1.0f, 1.0f, -2.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, BLUE, 2.0f, shader); // Setup material texture maps usage in shader // NOTE: By default, the texture maps are always used @@ -297,18 +293,20 @@ static Light CreateLight(int type, Vector3 position, Vector3 target, Color color light.type = type; light.position = position; light.target = target; - light.color[0] = (float)color.r / (float)255; - light.color[1] = (float)color.g / (float)255; - light.color[2] = (float)color.b / (float)255; - light.color[3] = (float)color.a / (float)255; + light.color[0] = (float)color.r/255.0f; + light.color[1] = (float)color.g/255.0f; + light.color[2] = (float)color.b/255.0f; + light.color[3] = (float)color.a/255.0f; light.intensity = intensity; - // NOTE: Lighting shader naming must be the provided ones + + // NOTE: Shader parameters names for lights must match the requested ones light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightCount)); light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightCount)); light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightCount)); light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightCount)); light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightCount)); light.intensityLoc = GetShaderLocation(shader, TextFormat("lights[%i].intensity", lightCount)); + UpdateLight(shader, light); lightCount++; From 21bfd06570497a19e8bb64d0a1e97ad70c3bfd6d Mon Sep 17 00:00:00 2001 From: iacore <74560659+iacore@users.noreply.github.com> Date: Mon, 25 Dec 2023 13:38:49 +0000 Subject: [PATCH 101/790] Update BINDINGS.md (#3672) Update zig libs version --- BINDINGS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index b7cddf238..cb6ccd715 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -76,8 +76,8 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | | raylib-vapi | 4.2 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | | raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | -| raylib-zig | 4.2 | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | -| raylib.zig | **4.5** | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | +| raylib-zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | +| raylib.zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | | hare-raylib | **auto** | [Hare](https://harelang.org/) | Zlib | https://git.sr.ht/~evantj/hare-raylib | | raylib-sunder | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | https://github.com/ashn-dot-dev/raylib-sunder | | rayed-bqn | **auto** | [BQN](https://mlochbaum.github.io/BQN/) | MIT | https://github.com/Brian-ED/rayed-bqn | From 99f22a47ff09ae3bef4ee16c1910953efc46832b Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 25 Dec 2023 14:44:49 +0100 Subject: [PATCH 102/790] Update some versions BINDINGS.md --- BINDINGS.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index cb6ccd715..80dd0c277 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -9,51 +9,51 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | | raylib-beef | **5.0** | [Beef](https://www.beeflang.org/) | MIT | https://github.com/Starpelly/raylib-beef | | raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo | -| Raylib-cs | **4.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | +| Raylib-cs | 4.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | | Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo | | cl-raylib | 4.0 | [Common Lisp](https://common-lisp.net/) | MIT | https://github.com/longlene/cl-raylib | -| claylib/wrap | **4.5** | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | +| claylib/wrap | 4.5 | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | | claw-raylib | **auto** | [Common Lisp](https://common-lisp.net/) | Apache-2.0 | https://github.com/bohonghuang/claw-raylib | | chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib | -| raylib-cr | **4.6-dev (5e1a81)** | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | +| raylib-cr | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | | ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | -| raylib-c3 | **4.5** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | +| raylib-c3 | 4.5 | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | | bindbc-raylib3 | **5.0** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | | dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | | raylib-d | **5.0** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | | dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib | | rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex | -| raylib-factor | **4.5** | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | +| raylib-factor | 4.5 | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | | raylib-freebasic | **5.0** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic | -| fortran-raylib | **4.5** | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib | -| raylib for Pascal | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib | +| fortran-raylib | 4.5 | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib | +| raylib for Pascal | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib | | raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | | raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile | | gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | **???** | https://github.com/ArnautDaniel/gforth-raylib | -| h-raylib | **4.6-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | +| h-raylib | 4.6-dev | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | | raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx | | hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib | | jaylib | 5.0 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib | -| jaylib | **4.5** | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | https://github.com/electronstudio/jaylib/ | +| jaylib | 4.5 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | https://github.com/electronstudio/jaylib/ | | raylib-j | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | https://github.com/CreedVI/Raylib-J | | raylib.jl | 4.2 | [Julia](https://julialang.org/) | Zlib | https://github.com/irishgreencitrus/raylib.jl | | kaylib | 3.7 | [Kotlin/native](https://kotlinlang.org) | ? | https://github.com/electronstudio/kaylib | -| KaylibKit | **4.5**| [Kotlin/native](https://kotlinlang.org) | Zlib | https://codeberg.org/Kenta/KaylibKit | -| raylib-lua | **4.5** | [Lua](http://www.lua.org/) | ISC | https://github.com/TSnake41/raylib-lua | +| KaylibKit | 4.5 | [Kotlin/native](https://kotlinlang.org) | Zlib | https://codeberg.org/Kenta/KaylibKit | +| raylib-lua | 4.5 | [Lua](http://www.lua.org/) | ISC | https://github.com/TSnake41/raylib-lua | | raylua | 4.0 | [Lua](http://www.lua.org/) | MIT | https://github.com/Rabios/raylua | | raylib-matte | 4.6-dev | [Matte](https://github.com/jcorks/matte/) | MIT | https://github.com/jcorks/raylib-matte | | nelua-raylib | 4.0 | [nelua](https://nelua.io/) | MIT | https://github.com/AKDev21/nelua-raylib | | Raylib.nelua | **5.0** | [nelua](https://nelua.io/) | Zlib | https://github.com/AuzFox/Raylib.nelua | | NimraylibNow! | 4.2 | [Nim](https://nim-lang.org/) | MIT | https://github.com/greenfork/nimraylib_now | -| raylib-bindings | **4.5** | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings | +| raylib-bindings | 4.5 | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings | | raylib-Forever | auto | [Nim](https://nim-lang.org/) | ? | https://github.com/Guevara-chan/Raylib-Forever | | naylib | auto | [Nim](https://nim-lang.org/) | MIT | https://github.com/planetis-m/naylib | -| node-raylib | **4.5** | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib | -| raylib-odin | **4.5** | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | +| node-raylib | 4.5 | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib | +| raylib-odin | 4.5 | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | | raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings | -| raylib-ocaml | **4.5** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | -| TurboRaylib | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | +| raylib-ocaml | 4.5 | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | +| TurboRaylib | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | | Ray4Laz | **5.0** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz | | Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal | | pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib | From ad64a43b34bb413f29850ed602df733961b62d60 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Thu, 28 Dec 2023 06:40:03 -0800 Subject: [PATCH 103/790] [rshapes] Expose shapes drawing texture and rectangle (#3677) * provide access to the shape texture so that shapes can be extended outside of raylib with the same optimizations as internal raylib functions. * PR feedback, comply with C standards * oops --- src/raylib.h | 2 + src/rshapes.c | 223 ++++++++++++++++++++++++++++---------------------- 2 files changed, 126 insertions(+), 99 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 2ab3f3041..cd31da621 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1220,6 +1220,8 @@ RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, f // NOTE: It can be useful when using basic shapes and one single font, // defining a font char white rectangle would allow drawing everything in a single draw call RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing +RLAPI Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing // Basic shapes drawing functions RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel diff --git a/src/rshapes.c b/src/rshapes.c index b8c17e702..53d12fe3a 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -112,6 +112,18 @@ void SetShapesTexture(Texture2D texture, Rectangle source) } } +// Get texture that is used for shapes drawing +Texture2D GetShapesTexture(void) +{ + return texShapes; +} + +// Get texture source rectangle that is used for shapes drawing +Rectangle GetShapesTextureRectangle(void) +{ + return texShapesRec; +} + // Draw a pixel void DrawPixel(int posX, int posY, Color color) { @@ -122,23 +134,25 @@ void DrawPixel(int posX, int posY, Color color) void DrawPixelV(Vector2 position, Color color) { #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); rlNormal3f(0.0f, 0.0f, 1.0f); rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/ shapeRect.width, shapeRect.y/ shapeRect.height); rlVertex2f(position.x, position.y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/ shapeRect.width, (shapeRect.y + shapeRect.height)/ shapeRect.height); rlVertex2f(position.x, position.y + 1); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/ shapeRect.width, (shapeRect.y + shapeRect.height)/ shapeRect.height); rlVertex2f(position.x + 1, position.y + 1); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/ shapeRect.width, shapeRect.y/ shapeRect.height); rlVertex2f(position.x + 1, position.y); rlEnd(); @@ -300,7 +314,8 @@ void DrawCircleSector(Vector2 center, float radius, float startAngle, float endA float angle = startAngle; #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); @@ -309,16 +324,16 @@ void DrawCircleSector(Vector2 center, float radius, float startAngle, float endA { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength*2.0f))*radius, center.y + sinf(DEG2RAD*(angle + stepLength*2.0f))*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*radius, center.y + sinf(DEG2RAD*(angle + stepLength))*radius); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*radius, center.y + sinf(DEG2RAD*angle)*radius); angle += (stepLength*2.0f); @@ -329,16 +344,16 @@ void DrawCircleSector(Vector2 center, float radius, float startAngle, float endA { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*radius, center.y + sinf(DEG2RAD*(angle + stepLength))*radius); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*radius, center.y + sinf(DEG2RAD*angle)*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); } @@ -528,23 +543,24 @@ void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startA float angle = startAngle; #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); for (int i = 0; i < segments; i++) { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*outerRadius, center.y + sinf(DEG2RAD*angle)*outerRadius); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*innerRadius, center.y + sinf(DEG2RAD*angle)*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*innerRadius, center.y + sinf(DEG2RAD*(angle + stepLength))*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*outerRadius, center.y + sinf(DEG2RAD*(angle + stepLength))*outerRadius); angle += stepLength; @@ -707,23 +723,24 @@ void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color } #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); rlNormal3f(0.0f, 0.0f, 1.0f); rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(topLeft.x, topLeft.y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(bottomLeft.x, bottomLeft.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(bottomRight.x, bottomRight.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(topRight.x, topRight.y); rlEnd(); @@ -764,26 +781,27 @@ void DrawRectangleGradientH(int posX, int posY, int width, int height, Color col // NOTE: Colors refer to corners, starting at top-lef corner and counter-clockwise void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4) { - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); rlNormal3f(0.0f, 0.0f, 1.0f); // NOTE: Default raylib font character 95 is a white square rlColor4ub(col1.r, col1.g, col1.b, col1.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(rec.x, rec.y); rlColor4ub(col2.r, col2.g, col2.b, col2.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(rec.x, rec.y + rec.height); rlColor4ub(col3.r, col3.g, col3.b, col3.a); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(rec.x + rec.width, rec.y + rec.height); rlColor4ub(col4.r, col4.g, col4.b, col4.a); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(rec.x + rec.width, rec.y); rlEnd(); @@ -904,7 +922,8 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co const float angles[4] = { 180.0f, 270.0f, 0.0f, 90.0f }; #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); // Draw all the 4 corners: [1] Upper Left Corner, [3] Upper Right Corner, [5] Lower Right Corner, [7] Lower Left Corner @@ -917,16 +936,16 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co for (int i = 0; i < segments/2; i++) { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength*2))*radius, center.y + sinf(DEG2RAD*(angle + stepLength*2))*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*radius, center.y + sinf(DEG2RAD*(angle + stepLength))*radius); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*radius, center.y + sinf(DEG2RAD*angle)*radius); angle += (stepLength*2); @@ -936,73 +955,73 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co if (segments%2) { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*radius, center.y + sinf(DEG2RAD*(angle + stepLength))*radius); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*radius, center.y + sinf(DEG2RAD*angle)*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); } } // [2] Upper Rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[0].x, point[0].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[8].x, point[8].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[9].x, point[9].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[1].x, point[1].y); // [4] Right Rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[2].x, point[2].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[9].x, point[9].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[10].x, point[10].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[3].x, point[3].y); // [6] Bottom Rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[11].x, point[11].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[5].x, point[5].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[4].x, point[4].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[10].x, point[10].y); // [8] Left Rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[7].x, point[7].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[6].x, point[6].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[11].x, point[11].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[8].x, point[8].y); // [9] Middle Rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[8].x, point[8].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[11].x, point[11].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[10].x, point[10].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[9].x, point[9].y); rlEnd(); @@ -1139,7 +1158,8 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, flo if (lineThick > 1) { #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); @@ -1152,16 +1172,16 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, flo { rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*innerRadius, center.y + sinf(DEG2RAD*angle)*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*innerRadius, center.y + sinf(DEG2RAD*(angle + stepLength))*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*(angle + stepLength))*outerRadius, center.y + sinf(DEG2RAD*(angle + stepLength))*outerRadius); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(DEG2RAD*angle)*outerRadius, center.y + sinf(DEG2RAD*angle)*outerRadius); angle += stepLength; @@ -1170,46 +1190,46 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, flo // Upper rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[0].x, point[0].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[8].x, point[8].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[9].x, point[9].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[1].x, point[1].y); // Right rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[2].x, point[2].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[10].x, point[10].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[11].x, point[11].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[3].x, point[3].y); // Lower rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[13].x, point[13].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[5].x, point[5].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[4].x, point[4].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[12].x, point[12].y); // Left rectangle rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[15].x, point[15].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[7].x, point[7].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(point[6].x, point[6].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(point[14].x, point[14].y); rlEnd(); @@ -1314,21 +1334,22 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, flo void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) { #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(v1.x, v1.y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(v2.x, v2.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(v2.x, v2.y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(v3.x, v3.y); rlEnd(); @@ -1367,22 +1388,24 @@ void DrawTriangleFan(Vector2 *points, int pointCount, Color color) { if (pointCount >= 3) { - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); + rlBegin(RL_QUADS); rlColor4ub(color.r, color.g, color.b, color.a); for (int i = 1; i < pointCount - 1; i++) { - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(points[0].x, points[0].y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(points[i].x, points[i].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(points[i + 1].x, points[i + 1].y); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(points[i + 1].x, points[i + 1].y); } rlEnd(); @@ -1426,7 +1449,8 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col float angleStep = 360.0f/(float)sides*DEG2RAD; #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); for (int i = 0; i < sides; i++) @@ -1434,16 +1458,16 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col rlColor4ub(color.r, color.g, color.b, color.a); float nextAngle = centralAngle + angleStep; - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x, center.y); - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(centralAngle)*radius, center.y + sinf(centralAngle)*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(nextAngle)*radius, center.y + sinf(nextAngle)*radius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(centralAngle)*radius, center.y + sinf(centralAngle)*radius); centralAngle = nextAngle; @@ -1494,7 +1518,8 @@ void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, fl float innerRadius = radius - (lineThick*cosf(DEG2RAD*exteriorAngle/2.0f)); #if defined(SUPPORT_QUADS_DRAW_MODE) - rlSetTexture(texShapes.id); + rlSetTexture(GetShapesTexture().id); + Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); for (int i = 0; i < sides; i++) @@ -1502,16 +1527,16 @@ void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, fl rlColor4ub(color.r, color.g, color.b, color.a); float nextAngle = centralAngle + exteriorAngle; - rlTexCoord2f(texShapesRec.x/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(centralAngle)*radius, center.y + sinf(centralAngle)*radius); - rlTexCoord2f(texShapesRec.x/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(centralAngle)*innerRadius, center.y + sinf(centralAngle)*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, (texShapesRec.y + texShapesRec.height)/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(center.x + cosf(nextAngle)*innerRadius, center.y + sinf(nextAngle)*innerRadius); - rlTexCoord2f((texShapesRec.x + texShapesRec.width)/texShapes.width, texShapesRec.y/texShapes.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(center.x + cosf(nextAngle)*radius, center.y + sinf(nextAngle)*radius); centralAngle = nextAngle; From 1727ddb9ea3de9fb4f5f4e287958ac85c77a5213 Mon Sep 17 00:00:00 2001 From: WisonYe Date: Fri, 29 Dec 2023 03:41:33 +1300 Subject: [PATCH 104/790] [ fix-crash-caused-by-zig-build ] - Fixed 'Illegal instruction' crash on 'rtextures' and 'raudio' model that caused by zig build. (#3682) --- src/build.zig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/build.zig b/src/build.zig index 12d4a7a58..a574ad632 100644 --- a/src/build.zig +++ b/src/build.zig @@ -29,7 +29,9 @@ pub fn addRaylib(b: *std.Build, target: std.zig.CrossTarget, optimize: std.built if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/raudio.c", - }, raylib_flags); + }, &[_][]const u8{ + "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 + } ++ raylib_flags); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ @@ -51,7 +53,9 @@ pub fn addRaylib(b: *std.Build, target: std.zig.CrossTarget, optimize: std.built if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rtextures.c", - }, raylib_flags); + }, &[_][]const u8{ + "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 + } ++ raylib_flags); } var gen_step = b.addWriteFiles(); From 43b4f90eb7b12bff4539a419663ebbfbf4f58503 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 28 Dec 2023 16:08:04 -0300 Subject: [PATCH 105/790] Fix SUPPORT_WINMM_HIGHRES_TIMER for PLATFORM_DESKTOP_SDL (#3679) --- src/platforms/rcore_desktop_sdl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 1e55cbac4..28dd9d1dc 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1112,7 +1112,7 @@ void PollInputEvents(void) case SDL_TEXTINPUT: { // NOTE: event.text.text data comes an UTF-8 text sequence but we register codepoints (int) - + int codepointSize = 0; // Check if there is space available in the key queue @@ -1426,6 +1426,10 @@ int InitPlatform(void) //---------------------------------------------------------------------------- // NOTE: No need to call InitTimer(), let SDL manage it internally CORE.Time.previous = GetTime(); // Get time as double + + #if defined(_WIN32) && defined(SUPPORT_WINMM_HIGHRES_TIMER) && !defined(SUPPORT_BUSY_WAIT_LOOP) + SDL_SetHint(SDL_HINT_TIMER_RESOLUTION, "1"); // SDL equivalent of timeBeginPeriod() and timeEndPeriod() + #endif //---------------------------------------------------------------------------- // Initialize storage system From 7cfdf33ff03f2c453f4b525eca66c074cdfe299c Mon Sep 17 00:00:00 2001 From: maverikou Date: Thu, 28 Dec 2023 21:09:49 +0200 Subject: [PATCH 106/790] TextReplace const correctness (#3678) * TextReplace const correctness * cleanup --- src/raylib.h | 2 +- src/rtext.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index cd31da621..0e6ef23fb 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1472,7 +1472,7 @@ RLAPI bool TextIsEqual(const char *text1, const char *text2); RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending RLAPI const char *TextFormat(const char *text, ...); // Text formatting with variables (sprintf() style) RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string -RLAPI char *TextReplace(char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) RLAPI const char *TextJoin(const char **textList, int count, const char *delimiter); // Join text strings with delimiter RLAPI const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings diff --git a/src/rtext.c b/src/rtext.c index 2a6aa1273..104e302ac 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1514,7 +1514,7 @@ const char *TextSubtext(const char *text, int position, int length) // Replace text string // REQUIRES: strlen(), strstr(), strncpy(), strcpy() // WARNING: Allocated memory must be manually freed -char *TextReplace(char *text, const char *replace, const char *by) +char *TextReplace(const char *text, const char *replace, const char *by) { // Sanity checks and initialization if (!text || !replace || !by) return NULL; From 3fc43c109642135ce33c77b06b376dd24a5811eb Mon Sep 17 00:00:00 2001 From: IoIxD <30945097+IoIxD@users.noreply.github.com> Date: Thu, 28 Dec 2023 12:12:52 -0700 Subject: [PATCH 107/790] LoadImageAnimFromMemory (#3681) --- src/rtextures.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/rtextures.c b/src/rtextures.c index a16fb386a..953458e1e 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -438,6 +438,45 @@ Image LoadImageAnim(const char *fileName, int *frames) return image; } +// Load animated image data +// - Image.data buffer includes all frames: [image#0][image#1][image#2][...] +// - Number of frames is returned through 'frames' parameter +// - All frames are returned in RGBA format +// - Frames delay data is discarded +Image LoadImageAnimFromMemory(const char *fileType,const char *fileData, int dataSize,int *frames) +{ + Image image = { 0 }; + int frameCount = 0; + +#if defined(SUPPORT_FILEFORMAT_GIF) + if ((strcmp(fileType, ".gif") == 0) || (strcmp(fileType, ".GIF") == 0)) + { + if (fileData != NULL) + { + int comp = 0; + int *delays = NULL; + image.data = stbi_load_gif_from_memory(fileData, dataSize, &delays, &image.width, &image.height, &frameCount, &comp, 4); + + image.mipmaps = 1; + image.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; + + RL_FREE(fileData); + RL_FREE(delays); // NOTE: Frames delays are discarded + } + } +#else + if (false) { } +#endif + else + { + image = LoadImageFromMemory(fileType,fileData,dataSize); + frameCount = 1; + } + + *frames = frameCount; + return image; +} + // Load image from memory buffer, fileType refers to extension: i.e. ".png" // WARNING: File extension must be provided in lower-case Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize) From 7ea6adb29eaf39e18c6faa4d7d6d9bd8a9d60910 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 28 Dec 2023 22:10:10 +0100 Subject: [PATCH 108/790] Update raylib.h --- src/raylib.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 2ab3f3041..d22e11cfc 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -748,10 +748,11 @@ typedef enum { // Material map index typedef enum { MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) - MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) MATERIAL_MAP_NORMAL, // Normal material + MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) MATERIAL_MAP_ROUGHNESS, // Roughness material MATERIAL_MAP_OCCLUSION, // Ambient occlusion material + MATERIAL_MAP_MRA, // Metalness-Roughness-AmbientOcclusion material, combined in a single image (RBG channels) MATERIAL_MAP_EMISSION, // Emission material MATERIAL_MAP_HEIGHT, // Heightmap material MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) From 5b5a2d035d61554b0032c3aa7b524a0cb0c52160 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 28 Dec 2023 19:13:47 -0300 Subject: [PATCH 109/790] Fix TextReplace warning for const (#3687) --- src/rtext.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 104e302ac..4ead02ca7 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -653,7 +653,7 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz chars[i].offsetY += (int)((float)ascent*scaleFactor); } - // NOTE: We create an empty image for space character, + // NOTE: We create an empty image for space character, // it could be further required for atlas packing if (ch == 32) { @@ -1534,7 +1534,7 @@ char *TextReplace(const char *text, const char *replace, const char *by) byLen = TextLength(by); // Count the number of replacements needed - insertPoint = text; + insertPoint = (char*)text; for (count = 0; (temp = strstr(insertPoint, replace)); count++) insertPoint = temp + replaceLen; // Allocate returning string and point temp to it @@ -2086,9 +2086,9 @@ static Font LoadBMFont(const char *fileName) searchPoint = strstr(buffer, "lineHeight"); readVars = sscanf(searchPoint, "lineHeight=%i base=%i scaleW=%i scaleH=%i pages=%i", &fontSize, &base, &imWidth, &imHeight, &pageCount); fileTextPtr += (readBytes + 1); - + if (readVars < 4) { UnloadFileText(fileText); return font; } // Some data not available, file malformed - + if (pageCount > MAX_FONT_IMAGE_PAGES) { TRACELOG(LOG_WARNING, "FONT: [%s] Font defines more pages than supported: %i/%i", fileName, pageCount, MAX_FONT_IMAGE_PAGES); @@ -2148,17 +2148,17 @@ static Font LoadBMFont(const char *fileName) // NOTE: WARNING: This process could be really slow! if (pageCount > 1) { - // Resize font atlas to draw additional images - ImageResizeCanvas(&fullFont, imWidth, imHeight*pageCount, 0, 0, BLACK); + // Resize font atlas to draw additional images + ImageResizeCanvas(&fullFont, imWidth, imHeight*pageCount, 0, 0, BLACK); for (int i = 1; i < pageCount; i++) { Rectangle srcRec = { 0.0f, 0.0f, (float)imWidth, (float)imHeight }; Rectangle destRec = { 0.0f, (float)imHeight*(float)i, (float)imWidth, (float)imHeight }; - ImageDraw(&fullFont, imFonts[i], srcRec, destRec, WHITE); + ImageDraw(&fullFont, imFonts[i], srcRec, destRec, WHITE); } } - + RL_FREE(imFonts); font.texture = LoadTextureFromImage(fullFont); @@ -2178,7 +2178,7 @@ static Font LoadBMFont(const char *fileName) readVars = sscanf(buffer, "char id=%i x=%i y=%i width=%i height=%i xoffset=%i yoffset=%i xadvance=%i page=%i", &charId, &charX, &charY, &charWidth, &charHeight, &charOffsetX, &charOffsetY, &charAdvanceX, &pageID); fileTextPtr += (readBytes + 1); - + if (readVars == 9) // Make sure all char data has been properly read { // Get character rectangle in the font atlas texture From fd5e1e6afb69ef190e74ac780ec3718d36e2d7d1 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Thu, 28 Dec 2023 19:15:04 -0300 Subject: [PATCH 110/790] [rtextures] Fix `LoadImageAnimFromMemory()` warning for `fileData` (#3686) * Fix LoadImageAnimFromMemory() warning for fileData * Add LoadImageAnimFromMemory() to raylib.h * Fix missing ; on previous commit --- src/raylib.h | 1 + src/rtextures.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 0e6ef23fb..8b126141a 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1302,6 +1302,7 @@ RLAPI Image LoadImage(const char *fileName); RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data RLAPI Image LoadImageSvg(const char *fileNameOrString, int width, int height); // Load image from SVG file data or string with specified size RLAPI Image LoadImageAnim(const char *fileName, int *frames); // Load image sequence from file (frames appended to image.data) +RLAPI Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer RLAPI Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. '.png' RLAPI Image LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data RLAPI Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot) diff --git a/src/rtextures.c b/src/rtextures.c index 953458e1e..e9fb95cb3 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -443,7 +443,7 @@ Image LoadImageAnim(const char *fileName, int *frames) // - Number of frames is returned through 'frames' parameter // - All frames are returned in RGBA format // - Frames delay data is discarded -Image LoadImageAnimFromMemory(const char *fileType,const char *fileData, int dataSize,int *frames) +Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames) { Image image = { 0 }; int frameCount = 0; @@ -2147,14 +2147,14 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ { startRange = -kernelWidth/2; endRange = kernelWidth/2; - } else + } else { startRange = -kernelWidth/2; endRange = kernelWidth/2+1; } - for(int x = 0; x < image->height; x++) + for(int x = 0; x < image->height; x++) { - for(int y = 0; y < image->width; y++) + for(int y = 0; y < image->width; y++) { for(int xk = startRange; xk < endRange; xk++) @@ -2232,14 +2232,14 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ } } - for (int i = 0; i < (image->width) * (image->height); i++) + for (int i = 0; i < (image->width) * (image->height); i++) { float alpha = (float)imageCopy2[i].w; pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f); pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f); pixels[i].b = (unsigned char)((imageCopy2[i].z)*255.0f); pixels[i].a = (unsigned char)((alpha)*255.0f); - // printf("pixels[%d] = %d", i, pixels[i].r); + // printf("pixels[%d] = %d", i, pixels[i].r); } @@ -3817,7 +3817,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) if ((image.height/6) == image.width) { layout = CUBEMAP_LAYOUT_LINE_VERTICAL; cubemap.width = image.height/6; } else if ((image.width/3) == (image.height/4)) { layout = CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR; cubemap.width = image.width/3; } } - } + } else { if (layout == CUBEMAP_LAYOUT_LINE_VERTICAL) cubemap.width = image.height/6; @@ -3836,7 +3836,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) Image faces = { 0 }; // Vertical column image Rectangle faceRecs[6] = { 0 }; // Face source rectangles - + for (int i = 0; i < 6; i++) faceRecs[i] = (Rectangle){ 0, 0, (float)size, (float)size }; if (layout == CUBEMAP_LAYOUT_LINE_VERTICAL) From 1f3121d2faa3e47afd018722d9f7f8d16e269101 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 28 Dec 2023 23:17:07 +0100 Subject: [PATCH 111/790] Revert "Update raylib.h" This reverts commit 7ea6adb29eaf39e18c6faa4d7d6d9bd8a9d60910. --- src/raylib.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 04853145e..8b126141a 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -748,11 +748,10 @@ typedef enum { // Material map index typedef enum { MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) - MATERIAL_MAP_NORMAL, // Normal material MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) + MATERIAL_MAP_NORMAL, // Normal material MATERIAL_MAP_ROUGHNESS, // Roughness material MATERIAL_MAP_OCCLUSION, // Ambient occlusion material - MATERIAL_MAP_MRA, // Metalness-Roughness-AmbientOcclusion material, combined in a single image (RBG channels) MATERIAL_MAP_EMISSION, // Emission material MATERIAL_MAP_HEIGHT, // Heightmap material MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) From 710e811b2768e573b3c1a9eb4883f7a552d3d101 Mon Sep 17 00:00:00 2001 From: Kenta <106167071+Its-Kenta@users.noreply.github.com> Date: Fri, 29 Dec 2023 22:41:44 +0000 Subject: [PATCH 112/790] Update BINDINGS.md (#3689) Update Raylib.c3 to 5.0 --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 80dd0c277..8c821903c 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -17,7 +17,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib | | raylib-cr | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | | ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | -| raylib-c3 | 4.5 | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | +| raylib-c3 | **5.0** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | | bindbc-raylib3 | **5.0** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | | dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | From 0a25a3ed7051377d7966cec6c3a3555d8ee0d551 Mon Sep 17 00:00:00 2001 From: seiren Date: Sun, 31 Dec 2023 23:06:46 +0900 Subject: [PATCH 113/790] Update raylib_api.* by CI (#3692) * wip: add parse.yml * Temporarily force run * Auto commit parse files * Update raylib_api.* by CI * Remove temporary setting * format --------- Co-authored-by: github-actions[bot] --- .github/workflows/parse.yml | 37 ++ parser/output/raylib_api.json | 98 ++++- parser/output/raylib_api.lua | 65 ++- parser/output/raylib_api.txt | 766 ++++++++++++++++++---------------- parser/output/raylib_api.xml | 34 +- 5 files changed, 584 insertions(+), 416 deletions(-) create mode 100644 .github/workflows/parse.yml diff --git a/.github/workflows/parse.yml b/.github/workflows/parse.yml new file mode 100644 index 000000000..dcbd3e43d --- /dev/null +++ b/.github/workflows/parse.yml @@ -0,0 +1,37 @@ +name: Parse raylib_api + +on: + workflow_dispatch: + push: + paths: + - "src/raylib.h" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Update parse files + working-directory: parser + run: | + make raylib_api + mv raylib_api.* output + + - name: Diff parse files + id: diff + run: | + git add -N parser + git diff --name-only --exit-code + continue-on-error: true + + - name: Commit parse files + if: steps.diff.outcome == 'failure' + run: | + set -x + git config user.email "github-actions[bot]@users.noreply.github.com" + git config user.name "github-actions[bot]" + git add parser + git commit -m "Update raylib_api.* by CI" + git push diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 4b7049d8d..c64a080f1 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -1231,11 +1231,6 @@ "name": "vScreenSize", "description": "Vertical size in meters" }, - { - "type": "float", - "name": "vScreenCenter", - "description": "Screen center in meters" - }, { "type": "float", "name": "eyeToScreenDistance", @@ -4637,7 +4632,7 @@ "returnType": "void", "params": [ { - "type": "AutomationEventList *", + "type": "AutomationEventList", "name": "list" } ] @@ -5172,6 +5167,16 @@ } ] }, + { + "name": "GetShapesTexture", + "description": "Get texture that is used for shapes drawing", + "returnType": "Texture2D" + }, + { + "name": "GetShapesTextureRectangle", + "description": "Get texture source rectangle that is used for shapes drawing", + "returnType": "Rectangle" + }, { "name": "DrawPixel", "description": "Draw a pixel", @@ -6703,6 +6708,29 @@ } ] }, + { + "name": "LoadImageAnimFromMemory", + "description": "Load image sequence from memory buffer", + "returnType": "Image", + "params": [ + { + "type": "const char *", + "name": "fileType" + }, + { + "type": "const unsigned char *", + "name": "fileData" + }, + { + "type": "int", + "name": "dataSize" + }, + { + "type": "int *", + "name": "frames" + } + ] + }, { "name": "LoadImageFromMemory", "description": "Load image from memory buffer, fileType refers to extension: i.e. '.png'", @@ -9194,7 +9222,7 @@ "returnType": "char *", "params": [ { - "type": "char *", + "type": "const char *", "name": "text" }, { @@ -9342,6 +9370,17 @@ } ] }, + { + "name": "TextToFloat", + "description": "Get float value from text (negative values not supported)", + "returnType": "float", + "params": [ + { + "type": "const char *", + "name": "text" + } + ] + }, { "name": "DrawLine3D", "description": "Draw a line in 3D world space", @@ -10219,21 +10258,6 @@ } ] }, - { - "name": "ExportMesh", - "description": "Export mesh data to file, returns true on success", - "returnType": "bool", - "params": [ - { - "type": "Mesh", - "name": "mesh" - }, - { - "type": "const char *", - "name": "fileName" - } - ] - }, { "name": "GetMeshBoundingBox", "description": "Compute mesh bounding box limits", @@ -10256,6 +10280,36 @@ } ] }, + { + "name": "ExportMesh", + "description": "Export mesh data to file, returns true on success", + "returnType": "bool", + "params": [ + { + "type": "Mesh", + "name": "mesh" + }, + { + "type": "const char *", + "name": "fileName" + } + ] + }, + { + "name": "ExportMeshAsCode", + "description": "Export mesh as code file (.h) defining multiple arrays of vertex attributes", + "returnType": "bool", + "params": [ + { + "type": "Mesh", + "name": "mesh" + }, + { + "type": "const char *", + "name": "fileName" + } + ] + }, { "name": "GenMeshPoly", "description": "Generate polygonal mesh", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 18375e179..091b2a0ad 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -1231,11 +1231,6 @@ return { name = "vScreenSize", description = "Vertical size in meters" }, - { - type = "float", - name = "vScreenCenter", - description = "Screen center in meters" - }, { type = "float", name = "eyeToScreenDistance", @@ -4150,7 +4145,7 @@ return { description = "Unload automation events list from file", returnType = "void", params = { - {type = "AutomationEventList *", name = "list"} + {type = "AutomationEventList", name = "list"} } }, { @@ -4539,6 +4534,16 @@ return { {type = "Rectangle", name = "source"} } }, + { + name = "GetShapesTexture", + description = "Get texture that is used for shapes drawing", + returnType = "Texture2D" + }, + { + name = "GetShapesTextureRectangle", + description = "Get texture source rectangle that is used for shapes drawing", + returnType = "Rectangle" + }, { name = "DrawPixel", description = "Draw a pixel", @@ -5263,6 +5268,17 @@ return { {type = "int *", name = "frames"} } }, + { + name = "LoadImageAnimFromMemory", + description = "Load image sequence from memory buffer", + returnType = "Image", + params = { + {type = "const char *", name = "fileType"}, + {type = "const unsigned char *", name = "fileData"}, + {type = "int", name = "dataSize"}, + {type = "int *", name = "frames"} + } + }, { name = "LoadImageFromMemory", description = "Load image from memory buffer, fileType refers to extension: i.e. '.png'", @@ -6616,7 +6632,7 @@ return { description = "Replace text string (WARNING: memory must be freed!)", returnType = "char *", params = { - {type = "char *", name = "text"}, + {type = "const char *", name = "text"}, {type = "const char *", name = "replace"}, {type = "const char *", name = "by"} } @@ -6702,6 +6718,14 @@ return { {type = "const char *", name = "text"} } }, + { + name = "TextToFloat", + description = "Get float value from text (negative values not supported)", + returnType = "float", + params = { + {type = "const char *", name = "text"} + } + }, { name = "DrawLine3D", description = "Draw a line in 3D world space", @@ -7126,15 +7150,6 @@ return { {type = "int", name = "instances"} } }, - { - name = "ExportMesh", - description = "Export mesh data to file, returns true on success", - returnType = "bool", - params = { - {type = "Mesh", name = "mesh"}, - {type = "const char *", name = "fileName"} - } - }, { name = "GetMeshBoundingBox", description = "Compute mesh bounding box limits", @@ -7151,6 +7166,24 @@ return { {type = "Mesh *", name = "mesh"} } }, + { + name = "ExportMesh", + description = "Export mesh data to file, returns true on success", + returnType = "bool", + params = { + {type = "Mesh", name = "mesh"}, + {type = "const char *", name = "fileName"} + } + }, + { + name = "ExportMeshAsCode", + description = "Export mesh as code file (.h) defining multiple arrays of vertex attributes", + returnType = "bool", + params = { + {type = "Mesh", name = "mesh"}, + {type = "const char *", name = "fileName"} + } + }, { name = "GenMeshPoly", description = "Generate polygonal mesh", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 8a57b4e15..d3370dca6 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -510,19 +510,18 @@ Struct 29: Music (5 fields) Field[3]: bool looping // Music looping enable Field[4]: int ctxType // Type of music context (audio filetype) Field[5]: void * ctxData // Audio context data, depends on type -Struct 30: VrDeviceInfo (10 fields) +Struct 30: VrDeviceInfo (9 fields) Name: VrDeviceInfo Description: VrDeviceInfo, Head-Mounted-Display device parameters Field[1]: int hResolution // Horizontal resolution in pixels Field[2]: int vResolution // Vertical resolution in pixels Field[3]: float hScreenSize // Horizontal size in meters Field[4]: float vScreenSize // Vertical size in meters - Field[5]: float vScreenCenter // Screen center in meters - Field[6]: float eyeToScreenDistance // Distance between eye and display in meters - Field[7]: float lensSeparationDistance // Lens separation distance in meters - Field[8]: float interpupillaryDistance // IPD (distance between pupils) in meters - Field[9]: float[4] lensDistortionValues // Lens distortion constant parameters - Field[10]: float[4] chromaAbCorrection // Chromatic aberration correction parameters + Field[5]: float eyeToScreenDistance // Distance between eye and display in meters + Field[6]: float lensSeparationDistance // Lens separation distance in meters + Field[7]: float interpupillaryDistance // IPD (distance between pupils) in meters + Field[8]: float[4] lensDistortionValues // Lens distortion constant parameters + Field[9]: float[4] chromaAbCorrection // Chromatic aberration correction parameters Struct 31: VrStereoConfig (8 fields) Name: VrStereoConfig Description: VrStereoConfig, VR stereo rendering configuration for simulator @@ -980,7 +979,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 553 +Functions found: 558 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -1770,7 +1769,7 @@ Function 147: UnloadAutomationEventList() (1 input parameters) Name: UnloadAutomationEventList Return type: void Description: Unload automation events list from file - Param[1]: list (type: AutomationEventList *) + Param[1]: list (type: AutomationEventList) Function 148: ExportAutomationEventList() (2 input parameters) Name: ExportAutomationEventList Return type: bool @@ -2055,20 +2054,30 @@ Function 201: SetShapesTexture() (2 input parameters) Description: Set texture and rectangle to be used on shapes drawing Param[1]: texture (type: Texture2D) Param[2]: source (type: Rectangle) -Function 202: DrawPixel() (3 input parameters) +Function 202: GetShapesTexture() (0 input parameters) + Name: GetShapesTexture + Return type: Texture2D + Description: Get texture that is used for shapes drawing + No input parameters +Function 203: GetShapesTextureRectangle() (0 input parameters) + Name: GetShapesTextureRectangle + Return type: Rectangle + Description: Get texture source rectangle that is used for shapes drawing + No input parameters +Function 204: DrawPixel() (3 input parameters) Name: DrawPixel Return type: void Description: Draw a pixel Param[1]: posX (type: int) Param[2]: posY (type: int) Param[3]: color (type: Color) -Function 203: DrawPixelV() (2 input parameters) +Function 205: DrawPixelV() (2 input parameters) Name: DrawPixelV Return type: void Description: Draw a pixel (Vector version) Param[1]: position (type: Vector2) Param[2]: color (type: Color) -Function 204: DrawLine() (5 input parameters) +Function 206: DrawLine() (5 input parameters) Name: DrawLine Return type: void Description: Draw a line @@ -2077,14 +2086,14 @@ Function 204: DrawLine() (5 input parameters) Param[3]: endPosX (type: int) Param[4]: endPosY (type: int) Param[5]: color (type: Color) -Function 205: DrawLineV() (3 input parameters) +Function 207: DrawLineV() (3 input parameters) Name: DrawLineV Return type: void Description: Draw a line (using gl lines) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: color (type: Color) -Function 206: DrawLineEx() (4 input parameters) +Function 208: DrawLineEx() (4 input parameters) Name: DrawLineEx Return type: void Description: Draw a line (using triangles/quads) @@ -2092,14 +2101,14 @@ Function 206: DrawLineEx() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 207: DrawLineStrip() (3 input parameters) +Function 209: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void Description: Draw lines sequence (using gl lines) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 208: DrawLineBezier() (4 input parameters) +Function 210: DrawLineBezier() (4 input parameters) Name: DrawLineBezier Return type: void Description: Draw line segment cubic-bezier in-out interpolation @@ -2107,7 +2116,7 @@ Function 208: DrawLineBezier() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 209: DrawCircle() (4 input parameters) +Function 211: DrawCircle() (4 input parameters) Name: DrawCircle Return type: void Description: Draw a color-filled circle @@ -2115,7 +2124,7 @@ Function 209: DrawCircle() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 210: DrawCircleSector() (6 input parameters) +Function 212: DrawCircleSector() (6 input parameters) Name: DrawCircleSector Return type: void Description: Draw a piece of a circle @@ -2125,7 +2134,7 @@ Function 210: DrawCircleSector() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 211: DrawCircleSectorLines() (6 input parameters) +Function 213: DrawCircleSectorLines() (6 input parameters) Name: DrawCircleSectorLines Return type: void Description: Draw circle sector outline @@ -2135,7 +2144,7 @@ Function 211: DrawCircleSectorLines() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 212: DrawCircleGradient() (5 input parameters) +Function 214: DrawCircleGradient() (5 input parameters) Name: DrawCircleGradient Return type: void Description: Draw a gradient-filled circle @@ -2144,14 +2153,14 @@ Function 212: DrawCircleGradient() (5 input parameters) Param[3]: radius (type: float) Param[4]: color1 (type: Color) Param[5]: color2 (type: Color) -Function 213: DrawCircleV() (3 input parameters) +Function 215: DrawCircleV() (3 input parameters) Name: DrawCircleV Return type: void Description: Draw a color-filled circle (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 214: DrawCircleLines() (4 input parameters) +Function 216: DrawCircleLines() (4 input parameters) Name: DrawCircleLines Return type: void Description: Draw circle outline @@ -2159,14 +2168,14 @@ Function 214: DrawCircleLines() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 215: DrawCircleLinesV() (3 input parameters) +Function 217: DrawCircleLinesV() (3 input parameters) Name: DrawCircleLinesV Return type: void Description: Draw circle outline (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 216: DrawEllipse() (5 input parameters) +Function 218: DrawEllipse() (5 input parameters) Name: DrawEllipse Return type: void Description: Draw ellipse @@ -2175,7 +2184,7 @@ Function 216: DrawEllipse() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 217: DrawEllipseLines() (5 input parameters) +Function 219: DrawEllipseLines() (5 input parameters) Name: DrawEllipseLines Return type: void Description: Draw ellipse outline @@ -2184,7 +2193,7 @@ Function 217: DrawEllipseLines() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 218: DrawRing() (7 input parameters) +Function 220: DrawRing() (7 input parameters) Name: DrawRing Return type: void Description: Draw ring @@ -2195,7 +2204,7 @@ Function 218: DrawRing() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 219: DrawRingLines() (7 input parameters) +Function 221: DrawRingLines() (7 input parameters) Name: DrawRingLines Return type: void Description: Draw ring outline @@ -2206,7 +2215,7 @@ Function 219: DrawRingLines() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 220: DrawRectangle() (5 input parameters) +Function 222: DrawRectangle() (5 input parameters) Name: DrawRectangle Return type: void Description: Draw a color-filled rectangle @@ -2215,20 +2224,20 @@ Function 220: DrawRectangle() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 221: DrawRectangleV() (3 input parameters) +Function 223: DrawRectangleV() (3 input parameters) Name: DrawRectangleV Return type: void Description: Draw a color-filled rectangle (Vector version) Param[1]: position (type: Vector2) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 222: DrawRectangleRec() (2 input parameters) +Function 224: DrawRectangleRec() (2 input parameters) Name: DrawRectangleRec Return type: void Description: Draw a color-filled rectangle Param[1]: rec (type: Rectangle) Param[2]: color (type: Color) -Function 223: DrawRectanglePro() (4 input parameters) +Function 225: DrawRectanglePro() (4 input parameters) Name: DrawRectanglePro Return type: void Description: Draw a color-filled rectangle with pro parameters @@ -2236,7 +2245,7 @@ Function 223: DrawRectanglePro() (4 input parameters) Param[2]: origin (type: Vector2) Param[3]: rotation (type: float) Param[4]: color (type: Color) -Function 224: DrawRectangleGradientV() (6 input parameters) +Function 226: DrawRectangleGradientV() (6 input parameters) Name: DrawRectangleGradientV Return type: void Description: Draw a vertical-gradient-filled rectangle @@ -2246,7 +2255,7 @@ Function 224: DrawRectangleGradientV() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 225: DrawRectangleGradientH() (6 input parameters) +Function 227: DrawRectangleGradientH() (6 input parameters) Name: DrawRectangleGradientH Return type: void Description: Draw a horizontal-gradient-filled rectangle @@ -2256,7 +2265,7 @@ Function 225: DrawRectangleGradientH() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 226: DrawRectangleGradientEx() (5 input parameters) +Function 228: DrawRectangleGradientEx() (5 input parameters) Name: DrawRectangleGradientEx Return type: void Description: Draw a gradient-filled rectangle with custom vertex colors @@ -2265,7 +2274,7 @@ Function 226: DrawRectangleGradientEx() (5 input parameters) Param[3]: col2 (type: Color) Param[4]: col3 (type: Color) Param[5]: col4 (type: Color) -Function 227: DrawRectangleLines() (5 input parameters) +Function 229: DrawRectangleLines() (5 input parameters) Name: DrawRectangleLines Return type: void Description: Draw rectangle outline @@ -2274,14 +2283,14 @@ Function 227: DrawRectangleLines() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 228: DrawRectangleLinesEx() (3 input parameters) +Function 230: DrawRectangleLinesEx() (3 input parameters) Name: DrawRectangleLinesEx Return type: void Description: Draw rectangle outline with extended parameters Param[1]: rec (type: Rectangle) Param[2]: lineThick (type: float) Param[3]: color (type: Color) -Function 229: DrawRectangleRounded() (4 input parameters) +Function 231: DrawRectangleRounded() (4 input parameters) Name: DrawRectangleRounded Return type: void Description: Draw rectangle with rounded edges @@ -2289,7 +2298,7 @@ Function 229: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 230: DrawRectangleRoundedLines() (5 input parameters) +Function 232: DrawRectangleRoundedLines() (5 input parameters) Name: DrawRectangleRoundedLines Return type: void Description: Draw rectangle with rounded edges outline @@ -2298,7 +2307,7 @@ Function 230: DrawRectangleRoundedLines() (5 input parameters) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 231: DrawTriangle() (4 input parameters) +Function 233: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2306,7 +2315,7 @@ Function 231: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 232: DrawTriangleLines() (4 input parameters) +Function 234: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2314,21 +2323,21 @@ Function 232: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 233: DrawTriangleFan() (3 input parameters) +Function 235: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 234: DrawTriangleStrip() (3 input parameters) +Function 236: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 235: DrawPoly() (5 input parameters) +Function 237: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2337,7 +2346,7 @@ Function 235: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 236: DrawPolyLines() (5 input parameters) +Function 238: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2346,7 +2355,7 @@ Function 236: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 237: DrawPolyLinesEx() (6 input parameters) +Function 239: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2356,7 +2365,7 @@ Function 237: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 238: DrawSplineLinear() (4 input parameters) +Function 240: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points @@ -2364,7 +2373,7 @@ Function 238: DrawSplineLinear() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 239: DrawSplineBasis() (4 input parameters) +Function 241: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points @@ -2372,7 +2381,7 @@ Function 239: DrawSplineBasis() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 240: DrawSplineCatmullRom() (4 input parameters) +Function 242: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points @@ -2380,7 +2389,7 @@ Function 240: DrawSplineCatmullRom() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 241: DrawSplineBezierQuadratic() (4 input parameters) +Function 243: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] @@ -2388,7 +2397,7 @@ Function 241: DrawSplineBezierQuadratic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 242: DrawSplineBezierCubic() (4 input parameters) +Function 244: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] @@ -2396,7 +2405,7 @@ Function 242: DrawSplineBezierCubic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 243: DrawSplineSegmentLinear() (4 input parameters) +Function 245: DrawSplineSegmentLinear() (4 input parameters) Name: DrawSplineSegmentLinear Return type: void Description: Draw spline segment: Linear, 2 points @@ -2404,7 +2413,7 @@ Function 243: DrawSplineSegmentLinear() (4 input parameters) Param[2]: p2 (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 244: DrawSplineSegmentBasis() (6 input parameters) +Function 246: DrawSplineSegmentBasis() (6 input parameters) Name: DrawSplineSegmentBasis Return type: void Description: Draw spline segment: B-Spline, 4 points @@ -2414,7 +2423,7 @@ Function 244: DrawSplineSegmentBasis() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 245: DrawSplineSegmentCatmullRom() (6 input parameters) +Function 247: DrawSplineSegmentCatmullRom() (6 input parameters) Name: DrawSplineSegmentCatmullRom Return type: void Description: Draw spline segment: Catmull-Rom, 4 points @@ -2424,7 +2433,7 @@ Function 245: DrawSplineSegmentCatmullRom() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 246: DrawSplineSegmentBezierQuadratic() (5 input parameters) +Function 248: DrawSplineSegmentBezierQuadratic() (5 input parameters) Name: DrawSplineSegmentBezierQuadratic Return type: void Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point @@ -2433,7 +2442,7 @@ Function 246: DrawSplineSegmentBezierQuadratic() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: thick (type: float) Param[5]: color (type: Color) -Function 247: DrawSplineSegmentBezierCubic() (6 input parameters) +Function 249: DrawSplineSegmentBezierCubic() (6 input parameters) Name: DrawSplineSegmentBezierCubic Return type: void Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points @@ -2443,14 +2452,14 @@ Function 247: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 248: GetSplinePointLinear() (3 input parameters) +Function 250: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 249: GetSplinePointBasis() (5 input parameters) +Function 251: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2459,7 +2468,7 @@ Function 249: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 250: GetSplinePointCatmullRom() (5 input parameters) +Function 252: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2468,7 +2477,7 @@ Function 250: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 251: GetSplinePointBezierQuad() (4 input parameters) +Function 253: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2476,7 +2485,7 @@ Function 251: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 252: GetSplinePointBezierCubic() (5 input parameters) +Function 254: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2485,13 +2494,13 @@ Function 252: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 253: CheckCollisionRecs() (2 input parameters) +Function 255: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 254: CheckCollisionCircles() (4 input parameters) +Function 256: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2499,27 +2508,27 @@ Function 254: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 255: CheckCollisionCircleRec() (3 input parameters) +Function 257: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 256: CheckCollisionPointRec() (2 input parameters) +Function 258: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 257: CheckCollisionPointCircle() (3 input parameters) +Function 259: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 258: CheckCollisionPointTriangle() (4 input parameters) +Function 260: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2527,14 +2536,14 @@ Function 258: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 259: CheckCollisionPointPoly() (3 input parameters) +Function 261: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 260: CheckCollisionLines() (5 input parameters) +Function 262: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2543,7 +2552,7 @@ Function 260: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 261: CheckCollisionPointLine() (4 input parameters) +Function 263: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2551,18 +2560,18 @@ Function 261: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 262: GetCollisionRec() (2 input parameters) +Function 264: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 263: LoadImage() (1 input parameters) +Function 265: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 264: LoadImageRaw() (5 input parameters) +Function 266: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2571,73 +2580,81 @@ Function 264: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 265: LoadImageSvg() (3 input parameters) +Function 267: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 266: LoadImageAnim() (2 input parameters) +Function 268: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 267: LoadImageFromMemory() (3 input parameters) +Function 269: LoadImageAnimFromMemory() (4 input parameters) + Name: LoadImageAnimFromMemory + Return type: Image + Description: Load image sequence from memory buffer + Param[1]: fileType (type: const char *) + Param[2]: fileData (type: const unsigned char *) + Param[3]: dataSize (type: int) + Param[4]: frames (type: int *) +Function 270: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 268: LoadImageFromTexture() (1 input parameters) +Function 271: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 269: LoadImageFromScreen() (0 input parameters) +Function 272: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 270: IsImageReady() (1 input parameters) +Function 273: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 271: UnloadImage() (1 input parameters) +Function 274: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 272: ExportImage() (2 input parameters) +Function 275: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 273: ExportImageToMemory() (3 input parameters) +Function 276: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 274: ExportImageAsCode() (2 input parameters) +Function 277: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 275: GenImageColor() (3 input parameters) +Function 278: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 276: GenImageGradientLinear() (5 input parameters) +Function 279: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2646,7 +2663,7 @@ Function 276: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 277: GenImageGradientRadial() (5 input parameters) +Function 280: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2655,7 +2672,7 @@ Function 277: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 278: GenImageGradientSquare() (5 input parameters) +Function 281: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2664,7 +2681,7 @@ Function 278: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 279: GenImageChecked() (6 input parameters) +Function 282: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2674,14 +2691,14 @@ Function 279: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 280: GenImageWhiteNoise() (3 input parameters) +Function 283: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 281: GenImagePerlinNoise() (5 input parameters) +Function 284: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2690,39 +2707,39 @@ Function 281: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 282: GenImageCellular() (3 input parameters) +Function 285: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 283: GenImageText() (3 input parameters) +Function 286: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 284: ImageCopy() (1 input parameters) +Function 287: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 285: ImageFromImage() (2 input parameters) +Function 288: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 286: ImageText() (3 input parameters) +Function 289: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 287: ImageTextEx() (5 input parameters) +Function 290: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2731,76 +2748,76 @@ Function 287: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 288: ImageFormat() (2 input parameters) +Function 291: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 289: ImageToPOT() (2 input parameters) +Function 292: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 290: ImageCrop() (2 input parameters) +Function 293: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 291: ImageAlphaCrop() (2 input parameters) +Function 294: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 292: ImageAlphaClear() (3 input parameters) +Function 295: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 293: ImageAlphaMask() (2 input parameters) +Function 296: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 294: ImageAlphaPremultiply() (1 input parameters) +Function 297: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 295: ImageBlurGaussian() (2 input parameters) +Function 298: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 296: ImageKernelConvolution() (3 input parameters) +Function 299: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 297: ImageResize() (3 input parameters) +Function 300: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 298: ImageResizeNN() (3 input parameters) +Function 301: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 299: ImageResizeCanvas() (6 input parameters) +Function 302: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2810,12 +2827,12 @@ Function 299: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 300: ImageMipmaps() (1 input parameters) +Function 303: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 301: ImageDither() (5 input parameters) +Function 304: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2824,109 +2841,109 @@ Function 301: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 302: ImageFlipVertical() (1 input parameters) +Function 305: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 303: ImageFlipHorizontal() (1 input parameters) +Function 306: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 304: ImageRotate() (2 input parameters) +Function 307: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 305: ImageRotateCW() (1 input parameters) +Function 308: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 306: ImageRotateCCW() (1 input parameters) +Function 309: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 307: ImageColorTint() (2 input parameters) +Function 310: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 308: ImageColorInvert() (1 input parameters) +Function 311: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 309: ImageColorGrayscale() (1 input parameters) +Function 312: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 310: ImageColorContrast() (2 input parameters) +Function 313: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 311: ImageColorBrightness() (2 input parameters) +Function 314: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 312: ImageColorReplace() (3 input parameters) +Function 315: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 313: LoadImageColors() (1 input parameters) +Function 316: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 314: LoadImagePalette() (3 input parameters) +Function 317: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 315: UnloadImageColors() (1 input parameters) +Function 318: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 316: UnloadImagePalette() (1 input parameters) +Function 319: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 317: GetImageAlphaBorder() (2 input parameters) +Function 320: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 318: GetImageColor() (3 input parameters) +Function 321: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 319: ImageClearBackground() (2 input parameters) +Function 322: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 320: ImageDrawPixel() (4 input parameters) +Function 323: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2934,14 +2951,14 @@ Function 320: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 321: ImageDrawPixelV() (3 input parameters) +Function 324: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 322: ImageDrawLine() (6 input parameters) +Function 325: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2951,7 +2968,7 @@ Function 322: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 323: ImageDrawLineV() (4 input parameters) +Function 326: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -2959,7 +2976,7 @@ Function 323: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 324: ImageDrawCircle() (5 input parameters) +Function 327: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -2968,7 +2985,7 @@ Function 324: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 325: ImageDrawCircleV() (4 input parameters) +Function 328: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -2976,7 +2993,7 @@ Function 325: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 326: ImageDrawCircleLines() (5 input parameters) +Function 329: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -2985,7 +3002,7 @@ Function 326: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 327: ImageDrawCircleLinesV() (4 input parameters) +Function 330: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -2993,7 +3010,7 @@ Function 327: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 328: ImageDrawRectangle() (6 input parameters) +Function 331: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3003,7 +3020,7 @@ Function 328: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 329: ImageDrawRectangleV() (4 input parameters) +Function 332: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3011,14 +3028,14 @@ Function 329: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 330: ImageDrawRectangleRec() (3 input parameters) +Function 333: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 331: ImageDrawRectangleLines() (4 input parameters) +Function 334: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3026,7 +3043,7 @@ Function 331: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 332: ImageDraw() (5 input parameters) +Function 335: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3035,7 +3052,7 @@ Function 332: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 333: ImageDrawText() (6 input parameters) +Function 336: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3045,7 +3062,7 @@ Function 333: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 334: ImageDrawTextEx() (7 input parameters) +Function 337: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3056,79 +3073,79 @@ Function 334: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 335: LoadTexture() (1 input parameters) +Function 338: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 336: LoadTextureFromImage() (1 input parameters) +Function 339: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 337: LoadTextureCubemap() (2 input parameters) +Function 340: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 338: LoadRenderTexture() (2 input parameters) +Function 341: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 339: IsTextureReady() (1 input parameters) +Function 342: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 340: UnloadTexture() (1 input parameters) +Function 343: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 341: IsRenderTextureReady() (1 input parameters) +Function 344: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 342: UnloadRenderTexture() (1 input parameters) +Function 345: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 343: UpdateTexture() (2 input parameters) +Function 346: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 344: UpdateTextureRec() (3 input parameters) +Function 347: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 345: GenTextureMipmaps() (1 input parameters) +Function 348: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 346: SetTextureFilter() (2 input parameters) +Function 349: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 347: SetTextureWrap() (2 input parameters) +Function 350: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 348: DrawTexture() (4 input parameters) +Function 351: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3136,14 +3153,14 @@ Function 348: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 349: DrawTextureV() (3 input parameters) +Function 352: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 350: DrawTextureEx() (5 input parameters) +Function 353: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3152,7 +3169,7 @@ Function 350: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 351: DrawTextureRec() (4 input parameters) +Function 354: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3160,7 +3177,7 @@ Function 351: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 352: DrawTexturePro() (6 input parameters) +Function 355: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3170,7 +3187,7 @@ Function 352: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 353: DrawTextureNPatch() (6 input parameters) +Function 356: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3180,106 +3197,106 @@ Function 353: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 354: Fade() (2 input parameters) +Function 357: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 355: ColorToInt() (1 input parameters) +Function 358: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color Param[1]: color (type: Color) -Function 356: ColorNormalize() (1 input parameters) +Function 359: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 357: ColorFromNormalized() (1 input parameters) +Function 360: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 358: ColorToHSV() (1 input parameters) +Function 361: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 359: ColorFromHSV() (3 input parameters) +Function 362: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 360: ColorTint() (2 input parameters) +Function 363: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 361: ColorBrightness() (2 input parameters) +Function 364: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 362: ColorContrast() (2 input parameters) +Function 365: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 363: ColorAlpha() (2 input parameters) +Function 366: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 364: ColorAlphaBlend() (3 input parameters) +Function 367: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 365: GetColor() (1 input parameters) +Function 368: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 366: GetPixelColor() (2 input parameters) +Function 369: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 367: SetPixelColor() (3 input parameters) +Function 370: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 368: GetPixelDataSize() (3 input parameters) +Function 371: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 369: GetFontDefault() (0 input parameters) +Function 372: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 370: LoadFont() (1 input parameters) +Function 373: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 371: LoadFontEx() (4 input parameters) +Function 374: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3287,14 +3304,14 @@ Function 371: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 372: LoadFontFromImage() (3 input parameters) +Function 375: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 373: LoadFontFromMemory() (6 input parameters) +Function 376: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3304,12 +3321,12 @@ Function 373: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 374: IsFontReady() (1 input parameters) +Function 377: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 375: LoadFontData() (6 input parameters) +Function 378: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3319,7 +3336,7 @@ Function 375: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 376: GenImageFontAtlas() (6 input parameters) +Function 379: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3329,30 +3346,30 @@ Function 376: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 377: UnloadFontData() (2 input parameters) +Function 380: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 378: UnloadFont() (1 input parameters) +Function 381: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 379: ExportFontAsCode() (2 input parameters) +Function 382: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 380: DrawFPS() (2 input parameters) +Function 383: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 381: DrawText() (5 input parameters) +Function 384: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3361,7 +3378,7 @@ Function 381: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 382: DrawTextEx() (6 input parameters) +Function 385: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3371,7 +3388,7 @@ Function 382: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 383: DrawTextPro() (8 input parameters) +Function 386: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3383,7 +3400,7 @@ Function 383: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 384: DrawTextCodepoint() (5 input parameters) +Function 387: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3392,7 +3409,7 @@ Function 384: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 385: DrawTextCodepoints() (7 input parameters) +Function 388: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3403,18 +3420,18 @@ Function 385: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 386: SetTextLineSpacing() (1 input parameters) +Function 389: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 387: MeasureText() (2 input parameters) +Function 390: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 388: MeasureTextEx() (4 input parameters) +Function 391: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3422,180 +3439,185 @@ Function 388: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 389: GetGlyphIndex() (2 input parameters) +Function 392: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 390: GetGlyphInfo() (2 input parameters) +Function 393: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 391: GetGlyphAtlasRec() (2 input parameters) +Function 394: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 392: LoadUTF8() (2 input parameters) +Function 395: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 393: UnloadUTF8() (1 input parameters) +Function 396: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 394: LoadCodepoints() (2 input parameters) +Function 397: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 395: UnloadCodepoints() (1 input parameters) +Function 398: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 396: GetCodepointCount() (1 input parameters) +Function 399: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 397: GetCodepoint() (2 input parameters) +Function 400: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 398: GetCodepointNext() (2 input parameters) +Function 401: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 399: GetCodepointPrevious() (2 input parameters) +Function 402: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 400: CodepointToUTF8() (2 input parameters) +Function 403: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 401: TextCopy() (2 input parameters) +Function 404: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 402: TextIsEqual() (2 input parameters) +Function 405: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 403: TextLength() (1 input parameters) +Function 406: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 404: TextFormat() (2 input parameters) +Function 407: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 405: TextSubtext() (3 input parameters) +Function 408: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 406: TextReplace() (3 input parameters) +Function 409: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) - Param[1]: text (type: char *) + Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 407: TextInsert() (3 input parameters) +Function 410: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 408: TextJoin() (3 input parameters) +Function 411: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 409: TextSplit() (3 input parameters) +Function 412: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 410: TextAppend() (3 input parameters) +Function 413: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 411: TextFindIndex() (2 input parameters) +Function 414: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 412: TextToUpper() (1 input parameters) +Function 415: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 413: TextToLower() (1 input parameters) +Function 416: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 414: TextToPascal() (1 input parameters) +Function 417: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 415: TextToInteger() (1 input parameters) +Function 418: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 416: DrawLine3D() (3 input parameters) +Function 419: TextToFloat() (1 input parameters) + Name: TextToFloat + Return type: float + Description: Get float value from text (negative values not supported) + Param[1]: text (type: const char *) +Function 420: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 417: DrawPoint3D() (2 input parameters) +Function 421: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 418: DrawCircle3D() (5 input parameters) +Function 422: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3604,7 +3626,7 @@ Function 418: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 419: DrawTriangle3D() (4 input parameters) +Function 423: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3612,14 +3634,14 @@ Function 419: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 420: DrawTriangleStrip3D() (3 input parameters) +Function 424: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 421: DrawCube() (5 input parameters) +Function 425: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3628,14 +3650,14 @@ Function 421: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 422: DrawCubeV() (3 input parameters) +Function 426: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 423: DrawCubeWires() (5 input parameters) +Function 427: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3644,21 +3666,21 @@ Function 423: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 424: DrawCubeWiresV() (3 input parameters) +Function 428: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 425: DrawSphere() (3 input parameters) +Function 429: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 426: DrawSphereEx() (5 input parameters) +Function 430: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3667,7 +3689,7 @@ Function 426: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 427: DrawSphereWires() (5 input parameters) +Function 431: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3676,7 +3698,7 @@ Function 427: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 428: DrawCylinder() (6 input parameters) +Function 432: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3686,7 +3708,7 @@ Function 428: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 429: DrawCylinderEx() (6 input parameters) +Function 433: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3696,7 +3718,7 @@ Function 429: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 430: DrawCylinderWires() (6 input parameters) +Function 434: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3706,7 +3728,7 @@ Function 430: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 431: DrawCylinderWiresEx() (6 input parameters) +Function 435: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3716,7 +3738,7 @@ Function 431: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 432: DrawCapsule() (6 input parameters) +Function 436: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3726,7 +3748,7 @@ Function 432: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 433: DrawCapsuleWires() (6 input parameters) +Function 437: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3736,51 +3758,51 @@ Function 433: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 434: DrawPlane() (3 input parameters) +Function 438: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 435: DrawRay() (2 input parameters) +Function 439: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 436: DrawGrid() (2 input parameters) +Function 440: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 437: LoadModel() (1 input parameters) +Function 441: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 438: LoadModelFromMesh() (1 input parameters) +Function 442: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 439: IsModelReady() (1 input parameters) +Function 443: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 440: UnloadModel() (1 input parameters) +Function 444: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 441: GetModelBoundingBox() (1 input parameters) +Function 445: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 442: DrawModel() (4 input parameters) +Function 446: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3788,7 +3810,7 @@ Function 442: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 443: DrawModelEx() (6 input parameters) +Function 447: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3798,7 +3820,7 @@ Function 443: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 444: DrawModelWires() (4 input parameters) +Function 448: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3806,7 +3828,7 @@ Function 444: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 445: DrawModelWiresEx() (6 input parameters) +Function 449: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3816,13 +3838,13 @@ Function 445: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 446: DrawBoundingBox() (2 input parameters) +Function 450: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 447: DrawBillboard() (5 input parameters) +Function 451: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3831,7 +3853,7 @@ Function 447: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 448: DrawBillboardRec() (6 input parameters) +Function 452: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3841,7 +3863,7 @@ Function 448: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 449: DrawBillboardPro() (9 input parameters) +Function 453: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3854,13 +3876,13 @@ Function 449: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 450: UploadMesh() (2 input parameters) +Function 454: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 451: UpdateMeshBuffer() (5 input parameters) +Function 455: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3869,19 +3891,19 @@ Function 451: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 452: UnloadMesh() (1 input parameters) +Function 456: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 453: DrawMesh() (3 input parameters) +Function 457: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 454: DrawMeshInstanced() (4 input parameters) +Function 458: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3889,29 +3911,35 @@ Function 454: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 455: ExportMesh() (2 input parameters) +Function 459: GetMeshBoundingBox() (1 input parameters) + Name: GetMeshBoundingBox + Return type: BoundingBox + Description: Compute mesh bounding box limits + Param[1]: mesh (type: Mesh) +Function 460: GenMeshTangents() (1 input parameters) + Name: GenMeshTangents + Return type: void + Description: Compute mesh tangents + Param[1]: mesh (type: Mesh *) +Function 461: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 456: GetMeshBoundingBox() (1 input parameters) - Name: GetMeshBoundingBox - Return type: BoundingBox - Description: Compute mesh bounding box limits +Function 462: ExportMeshAsCode() (2 input parameters) + Name: ExportMeshAsCode + Return type: bool + Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) -Function 457: GenMeshTangents() (1 input parameters) - Name: GenMeshTangents - Return type: void - Description: Compute mesh tangents - Param[1]: mesh (type: Mesh *) -Function 458: GenMeshPoly() (2 input parameters) + Param[2]: fileName (type: const char *) +Function 463: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 459: GenMeshPlane() (4 input parameters) +Function 464: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3919,42 +3947,42 @@ Function 459: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 460: GenMeshCube() (3 input parameters) +Function 465: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 461: GenMeshSphere() (3 input parameters) +Function 466: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 462: GenMeshHemiSphere() (3 input parameters) +Function 467: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 463: GenMeshCylinder() (3 input parameters) +Function 468: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 464: GenMeshCone() (3 input parameters) +Function 469: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 465: GenMeshTorus() (4 input parameters) +Function 470: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -3962,7 +3990,7 @@ Function 465: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 466: GenMeshKnot() (4 input parameters) +Function 471: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -3970,84 +3998,84 @@ Function 466: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 467: GenMeshHeightmap() (2 input parameters) +Function 472: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 468: GenMeshCubicmap() (2 input parameters) +Function 473: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 469: LoadMaterials() (2 input parameters) +Function 474: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 470: LoadMaterialDefault() (0 input parameters) +Function 475: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 471: IsMaterialReady() (1 input parameters) +Function 476: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 472: UnloadMaterial() (1 input parameters) +Function 477: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 473: SetMaterialTexture() (3 input parameters) +Function 478: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 474: SetModelMeshMaterial() (3 input parameters) +Function 479: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 475: LoadModelAnimations() (2 input parameters) +Function 480: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 476: UpdateModelAnimation() (3 input parameters) +Function 481: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 477: UnloadModelAnimation() (1 input parameters) +Function 482: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 478: UnloadModelAnimations() (2 input parameters) +Function 483: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 479: IsModelAnimationValid() (2 input parameters) +Function 484: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 480: CheckCollisionSpheres() (4 input parameters) +Function 485: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4055,40 +4083,40 @@ Function 480: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 481: CheckCollisionBoxes() (2 input parameters) +Function 486: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 482: CheckCollisionBoxSphere() (3 input parameters) +Function 487: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 483: GetRayCollisionSphere() (3 input parameters) +Function 488: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 484: GetRayCollisionBox() (2 input parameters) +Function 489: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 485: GetRayCollisionMesh() (3 input parameters) +Function 490: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 486: GetRayCollisionTriangle() (4 input parameters) +Function 491: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4096,7 +4124,7 @@ Function 486: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 487: GetRayCollisionQuad() (5 input parameters) +Function 492: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4105,158 +4133,158 @@ Function 487: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 488: InitAudioDevice() (0 input parameters) +Function 493: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 489: CloseAudioDevice() (0 input parameters) +Function 494: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 490: IsAudioDeviceReady() (0 input parameters) +Function 495: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 491: SetMasterVolume() (1 input parameters) +Function 496: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 492: GetMasterVolume() (0 input parameters) +Function 497: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 493: LoadWave() (1 input parameters) +Function 498: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 494: LoadWaveFromMemory() (3 input parameters) +Function 499: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 495: IsWaveReady() (1 input parameters) +Function 500: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 496: LoadSound() (1 input parameters) +Function 501: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 497: LoadSoundFromWave() (1 input parameters) +Function 502: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 498: LoadSoundAlias() (1 input parameters) +Function 503: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 499: IsSoundReady() (1 input parameters) +Function 504: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 500: UpdateSound() (3 input parameters) +Function 505: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 501: UnloadWave() (1 input parameters) +Function 506: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 502: UnloadSound() (1 input parameters) +Function 507: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 503: UnloadSoundAlias() (1 input parameters) +Function 508: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 504: ExportWave() (2 input parameters) +Function 509: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 505: ExportWaveAsCode() (2 input parameters) +Function 510: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 506: PlaySound() (1 input parameters) +Function 511: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 507: StopSound() (1 input parameters) +Function 512: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 508: PauseSound() (1 input parameters) +Function 513: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 509: ResumeSound() (1 input parameters) +Function 514: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 510: IsSoundPlaying() (1 input parameters) +Function 515: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 511: SetSoundVolume() (2 input parameters) +Function 516: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 512: SetSoundPitch() (2 input parameters) +Function 517: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 513: SetSoundPan() (2 input parameters) +Function 518: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 514: WaveCopy() (1 input parameters) +Function 519: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 515: WaveCrop() (3 input parameters) +Function 520: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 516: WaveFormat() (4 input parameters) +Function 521: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4264,203 +4292,203 @@ Function 516: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 517: LoadWaveSamples() (1 input parameters) +Function 522: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 518: UnloadWaveSamples() (1 input parameters) +Function 523: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 519: LoadMusicStream() (1 input parameters) +Function 524: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 520: LoadMusicStreamFromMemory() (3 input parameters) +Function 525: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 521: IsMusicReady() (1 input parameters) +Function 526: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 522: UnloadMusicStream() (1 input parameters) +Function 527: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 523: PlayMusicStream() (1 input parameters) +Function 528: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 524: IsMusicStreamPlaying() (1 input parameters) +Function 529: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 525: UpdateMusicStream() (1 input parameters) +Function 530: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 526: StopMusicStream() (1 input parameters) +Function 531: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 527: PauseMusicStream() (1 input parameters) +Function 532: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 528: ResumeMusicStream() (1 input parameters) +Function 533: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 529: SeekMusicStream() (2 input parameters) +Function 534: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 530: SetMusicVolume() (2 input parameters) +Function 535: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 531: SetMusicPitch() (2 input parameters) +Function 536: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 532: SetMusicPan() (2 input parameters) +Function 537: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 533: GetMusicTimeLength() (1 input parameters) +Function 538: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 534: GetMusicTimePlayed() (1 input parameters) +Function 539: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 535: LoadAudioStream() (3 input parameters) +Function 540: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 536: IsAudioStreamReady() (1 input parameters) +Function 541: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 537: UnloadAudioStream() (1 input parameters) +Function 542: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 538: UpdateAudioStream() (3 input parameters) +Function 543: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 539: IsAudioStreamProcessed() (1 input parameters) +Function 544: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 540: PlayAudioStream() (1 input parameters) +Function 545: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 541: PauseAudioStream() (1 input parameters) +Function 546: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 542: ResumeAudioStream() (1 input parameters) +Function 547: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 543: IsAudioStreamPlaying() (1 input parameters) +Function 548: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 544: StopAudioStream() (1 input parameters) +Function 549: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 545: SetAudioStreamVolume() (2 input parameters) +Function 550: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 546: SetAudioStreamPitch() (2 input parameters) +Function 551: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 547: SetAudioStreamPan() (2 input parameters) +Function 552: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 548: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 553: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 549: SetAudioStreamCallback() (2 input parameters) +Function 554: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 550: AttachAudioStreamProcessor() (2 input parameters) +Function 555: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as s Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 551: DetachAudioStreamProcessor() (2 input parameters) +Function 556: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 552: AttachAudioMixedProcessor() (1 input parameters) +Function 557: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s Param[1]: processor (type: AudioCallback) -Function 553: DetachAudioMixedProcessor() (1 input parameters) +Function 558: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 15cb77dce..4a483b36e 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -256,12 +256,11 @@ - + - @@ -670,7 +669,7 @@ - + @@ -1113,7 +1112,7 @@ - + @@ -1271,6 +1270,10 @@ + + + + @@ -1670,6 +1673,12 @@ + + + + + + @@ -2328,7 +2337,7 @@ - + @@ -2368,6 +2377,9 @@ + + + @@ -2597,16 +2609,20 @@ - - - - + + + + + + + + From 3f1e59a7cfd53f4a4643dc57f4466784a66542bc Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Jan 2024 20:58:12 +0100 Subject: [PATCH 114/790] Update copyright to 2024 --- examples/Makefile | 2 +- examples/Makefile.Android | 2 +- examples/Makefile.Web | 2 +- examples/audio/audio_module_playing.c | 2 +- examples/audio/audio_music_stream.c | 2 +- examples/audio/audio_raw_stream.c | 2 +- examples/audio/audio_sound_loading.c | 2 +- examples/audio/audio_stream_effects.c | 2 +- examples/core/core_2d_camera.c | 2 +- examples/core/core_2d_camera_mouse_zoom.c | 2 +- examples/core/core_2d_camera_platformer.c | 2 +- examples/core/core_3d_camera_first_person.c | 2 +- examples/core/core_3d_camera_free.c | 2 +- examples/core/core_3d_camera_mode.c | 2 +- examples/core/core_3d_camera_split_screen.c | 2 +- examples/core/core_3d_picking.c | 2 +- examples/core/core_basic_screen_manager.c | 2 +- examples/core/core_basic_window.c | 2 +- examples/core/core_basic_window_web.c | 2 +- examples/core/core_custom_frame_control.c | 2 +- examples/core/core_custom_logging.c | 2 +- examples/core/core_drop_files.c | 2 +- examples/core/core_input_gamepad.c | 2 +- examples/core/core_input_gamepad_info.c | 2 +- examples/core/core_input_gestures.c | 2 +- examples/core/core_input_keys.c | 2 +- examples/core/core_input_mouse.c | 2 +- examples/core/core_input_mouse_wheel.c | 2 +- examples/core/core_input_multitouch.c | 2 +- examples/core/core_loading_thread.c | 2 +- examples/core/core_random_values.c | 2 +- examples/core/core_scissor_test.c | 2 +- examples/core/core_smooth_pixelperfect.c | 2 +- examples/core/core_storage_values.c | 2 +- examples/core/core_vr_simulator.c | 2 +- examples/core/core_window_flags.c | 2 +- examples/core/core_window_letterbox.c | 2 +- examples/core/core_window_should_close.c | 2 +- examples/core/core_world_screen.c | 2 +- examples/models/models_animation.c | 2 +- examples/models/models_billboard.c | 2 +- examples/models/models_box_collisions.c | 2 +- examples/models/models_cubicmap.c | 2 +- examples/models/models_draw_cube_texture.c | 2 +- examples/models/models_first_person_maze.c | 2 +- examples/models/models_geometric_shapes.c | 2 +- examples/models/models_heightmap.c | 2 +- examples/models/models_loading.c | 2 +- examples/models/models_loading_gltf.c | 2 +- examples/models/models_loading_m3d.c | 2 +- examples/models/models_loading_vox.c | 2 +- examples/models/models_mesh_generation.c | 2 +- examples/models/models_mesh_picking.c | 2 +- examples/models/models_orthographic_projection.c | 2 +- examples/models/models_rlgl_solar_system.c | 2 +- examples/models/models_skybox.c | 2 +- examples/models/models_waving_cubes.c | 2 +- examples/models/models_yaw_pitch_roll.c | 2 +- examples/others/easings_testbed.c | 2 +- examples/others/embedded_files_loading.c | 2 +- examples/others/raylib_opengl_interop.c | 2 +- examples/others/reasings.h | 2 +- examples/others/rlgl_compute_shader.c | 2 +- examples/others/rlgl_standalone.c | 2 +- examples/shaders/rlights.h | 2 +- examples/shaders/shaders_basic_lighting.c | 2 +- examples/shaders/shaders_custom_uniform.c | 2 +- examples/shaders/shaders_eratosthenes.c | 2 +- examples/shaders/shaders_fog.c | 2 +- examples/shaders/shaders_hot_reloading.c | 2 +- examples/shaders/shaders_hybrid_render.c | 2 +- examples/shaders/shaders_julia_set.c | 2 +- examples/shaders/shaders_lightmap.c | 2 +- examples/shaders/shaders_mesh_instancing.c | 2 +- examples/shaders/shaders_model_shader.c | 2 +- examples/shaders/shaders_multi_sample2d.c | 2 +- examples/shaders/shaders_palette_switch.c | 2 +- examples/shaders/shaders_postprocessing.c | 2 +- examples/shaders/shaders_raymarching.c | 2 +- examples/shaders/shaders_shapes_textures.c | 2 +- examples/shaders/shaders_simple_mask.c | 2 +- examples/shaders/shaders_spotlight.c | 2 +- examples/shaders/shaders_texture_drawing.c | 2 +- examples/shaders/shaders_texture_outline.c | 2 +- examples/shaders/shaders_texture_waves.c | 2 +- examples/shaders/shaders_write_depth.c | 2 +- examples/shapes/reasings.h | 2 +- examples/shapes/shapes_basic_shapes.c | 2 +- examples/shapes/shapes_bouncing_ball.c | 2 +- examples/shapes/shapes_collision_area.c | 2 +- examples/shapes/shapes_colors_palette.c | 2 +- examples/shapes/shapes_draw_circle_sector.c | 2 +- examples/shapes/shapes_draw_rectangle_rounded.c | 2 +- examples/shapes/shapes_draw_ring.c | 2 +- examples/shapes/shapes_easings_ball_anim.c | 2 +- examples/shapes/shapes_easings_box_anim.c | 2 +- examples/shapes/shapes_easings_rectangle_array.c | 2 +- examples/shapes/shapes_following_eyes.c | 2 +- examples/shapes/shapes_lines_bezier.c | 2 +- examples/shapes/shapes_logo_raylib.c | 2 +- examples/shapes/shapes_logo_raylib_anim.c | 2 +- examples/shapes/shapes_rectangle_scaling.c | 2 +- examples/shapes/shapes_top_down_lights.c | 2 +- examples/text/text_codepoints_loading.c | 2 +- examples/text/text_draw_3d.c | 2 +- examples/text/text_font_filters.c | 2 +- examples/text/text_font_loading.c | 2 +- examples/text/text_font_sdf.c | 2 +- examples/text/text_font_spritefont.c | 2 +- examples/text/text_format_text.c | 2 +- examples/text/text_input_box.c | 2 +- examples/text/text_raylib_fonts.c | 2 +- examples/text/text_rectangle_bounds.c | 2 +- examples/text/text_unicode.c | 2 +- examples/text/text_writing_anim.c | 2 +- examples/textures/textures_background_scrolling.c | 2 +- examples/textures/textures_blend_modes.c | 2 +- examples/textures/textures_bunnymark.c | 2 +- examples/textures/textures_draw_tiled.c | 2 +- examples/textures/textures_fog_of_war.c | 2 +- examples/textures/textures_gif_player.c | 2 +- examples/textures/textures_image_drawing.c | 2 +- examples/textures/textures_image_generation.c | 2 +- examples/textures/textures_image_kernel.c | 2 +- examples/textures/textures_image_loading.c | 2 +- examples/textures/textures_image_processing.c | 2 +- examples/textures/textures_image_rotate.c | 2 +- examples/textures/textures_image_text.c | 2 +- examples/textures/textures_logo_raylib.c | 2 +- examples/textures/textures_mouse_painting.c | 2 +- examples/textures/textures_npatch_drawing.c | 2 +- examples/textures/textures_particles_blending.c | 2 +- examples/textures/textures_polygon.c | 2 +- examples/textures/textures_raw_data.c | 2 +- examples/textures/textures_sprite_anim.c | 2 +- examples/textures/textures_sprite_button.c | 2 +- examples/textures/textures_sprite_explosion.c | 2 +- examples/textures/textures_srcrec_dstrec.c | 2 +- examples/textures/textures_textured_curve.c | 2 +- examples/textures/textures_to_image.c | 2 +- parser/README.md | 2 +- parser/raylib_parser.c | 4 ++-- projects/4coder/Makefile | 2 +- projects/Geany/core_basic_window.c | 2 +- projects/VSCode/main.c | 2 +- src/Makefile | 2 +- src/config.h | 2 +- src/platforms/rcore_android.c | 2 +- src/platforms/rcore_desktop.c | 2 +- src/platforms/rcore_desktop_sdl.c | 2 +- src/platforms/rcore_drm.c | 2 +- src/platforms/rcore_template.c | 2 +- src/platforms/rcore_web.c | 2 +- src/raudio.c | 4 ++-- src/raylib.h | 2 +- src/raymath.h | 2 +- src/rcamera.h | 2 +- src/rcore.c | 2 +- src/rgestures.h | 2 +- src/rglfw.c | 2 +- src/rlgl.h | 2 +- src/rmodels.c | 4 ++-- src/rshapes.c | 2 +- src/rtext.c | 4 ++-- src/rtextures.c | 4 ++-- src/utils.c | 4 ++-- src/utils.h | 2 +- 167 files changed, 173 insertions(+), 173 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 235deda28..bc81a58f4 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -21,7 +21,7 @@ # > PLATFORM_ANDROID: # - Android (ARM, ARM64) # -# Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2024 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. diff --git a/examples/Makefile.Android b/examples/Makefile.Android index 267c4aa57..08cdf1515 100644 --- a/examples/Makefile.Android +++ b/examples/Makefile.Android @@ -2,7 +2,7 @@ # # raylib makefile for Android project (APK building) # -# Copyright (c) 2017-2023 Ramon Santamaria (@raysan5) +# Copyright (c) 2017-2024 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. diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 8bec06452..39f64c071 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2024 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. diff --git a/examples/audio/audio_module_playing.c b/examples/audio/audio_module_playing.c index bf5530fdc..6234f0e55 100644 --- a/examples/audio/audio_module_playing.c +++ b/examples/audio/audio_module_playing.c @@ -7,7 +7,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/audio/audio_music_stream.c b/examples/audio/audio_music_stream.c index 4cf29973d..bdf141edf 100644 --- a/examples/audio/audio_music_stream.c +++ b/examples/audio/audio_music_stream.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/audio/audio_raw_stream.c b/examples/audio/audio_raw_stream.c index b3173ab97..0b7954293 100644 --- a/examples/audio/audio_raw_stream.c +++ b/examples/audio/audio_raw_stream.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox) * ********************************************************************************************/ diff --git a/examples/audio/audio_sound_loading.c b/examples/audio/audio_sound_loading.c index dae6516ee..41aa2160e 100644 --- a/examples/audio/audio_sound_loading.c +++ b/examples/audio/audio_sound_loading.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/audio/audio_stream_effects.c b/examples/audio/audio_stream_effects.c index 2262d41f9..cc8273abc 100644 --- a/examples/audio/audio_stream_effects.c +++ b/examples/audio/audio_stream_effects.c @@ -7,7 +7,7 @@ * Example 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) 2022-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2022-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_2d_camera.c b/examples/core/core_2d_camera.c index 759c099a1..99b61d4e5 100644 --- a/examples/core/core_2d_camera.c +++ b/examples/core/core_2d_camera.c @@ -7,7 +7,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_2d_camera_mouse_zoom.c b/examples/core/core_2d_camera_mouse_zoom.c index 2e94d37a5..abc6a6d14 100644 --- a/examples/core/core_2d_camera_mouse_zoom.c +++ b/examples/core/core_2d_camera_mouse_zoom.c @@ -7,7 +7,7 @@ * Example 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) 2022-2023 Jeffery Myers (@JeffM2501) +* Copyright (c) 2022-2024 Jeffery Myers (@JeffM2501) * ********************************************************************************************/ diff --git a/examples/core/core_2d_camera_platformer.c b/examples/core/core_2d_camera_platformer.c index 72b1ee1e3..6c574387e 100644 --- a/examples/core/core_2d_camera_platformer.c +++ b/examples/core/core_2d_camera_platformer.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 arvyy (@arvyy) +* Copyright (c) 2019-2024 arvyy (@arvyy) * ********************************************************************************************/ diff --git a/examples/core/core_3d_camera_first_person.c b/examples/core/core_3d_camera_first_person.c index 6a2a115a7..35b18ace4 100644 --- a/examples/core/core_3d_camera_first_person.c +++ b/examples/core/core_3d_camera_first_person.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_3d_camera_free.c b/examples/core/core_3d_camera_free.c index 3c30a426e..9899dbdb5 100644 --- a/examples/core/core_3d_camera_free.c +++ b/examples/core/core_3d_camera_free.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_3d_camera_mode.c b/examples/core/core_3d_camera_mode.c index cb83a4a2b..0600fd330 100644 --- a/examples/core/core_3d_camera_mode.c +++ b/examples/core/core_3d_camera_mode.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_3d_camera_split_screen.c b/examples/core/core_3d_camera_split_screen.c index d625e1c0e..5294e8949 100644 --- a/examples/core/core_3d_camera_split_screen.c +++ b/examples/core/core_3d_camera_split_screen.c @@ -9,7 +9,7 @@ * Example 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) 2021-2023 Jeffery Myers (@JeffM2501) +* Copyright (c) 2021-2024 Jeffery Myers (@JeffM2501) * ********************************************************************************************/ diff --git a/examples/core/core_3d_picking.c b/examples/core/core_3d_picking.c index c7bf94663..fa6fcaec3 100644 --- a/examples/core/core_3d_picking.c +++ b/examples/core/core_3d_picking.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_basic_screen_manager.c b/examples/core/core_basic_screen_manager.c index a80572988..728ef1257 100644 --- a/examples/core/core_basic_screen_manager.c +++ b/examples/core/core_basic_screen_manager.c @@ -9,7 +9,7 @@ * Example 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) 2021-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_basic_window.c b/examples/core/core_basic_window.c index 5bfd186da..81bea16b8 100644 --- a/examples/core/core_basic_window.c +++ b/examples/core/core_basic_window.c @@ -17,7 +17,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_basic_window_web.c b/examples/core/core_basic_window_web.c index e0e1f9fb1..8726908cb 100644 --- a/examples/core/core_basic_window_web.c +++ b/examples/core/core_basic_window_web.c @@ -11,7 +11,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_custom_frame_control.c b/examples/core/core_custom_frame_control.c index 9bfd25d3e..6e494d86e 100644 --- a/examples/core/core_custom_frame_control.c +++ b/examples/core/core_custom_frame_control.c @@ -22,7 +22,7 @@ * Example 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) 2021-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_custom_logging.c b/examples/core/core_custom_logging.c index b4da2d575..f886267ee 100644 --- a/examples/core/core_custom_logging.c +++ b/examples/core/core_custom_logging.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Pablo Marcos Oltra (@pamarcos) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Pablo Marcos Oltra (@pamarcos) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_drop_files.c b/examples/core/core_drop_files.c index d4ddd9edc..2e51d872b 100644 --- a/examples/core/core_drop_files.c +++ b/examples/core/core_drop_files.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_gamepad.c b/examples/core/core_input_gamepad.c index c28ff1f9e..843d5d90b 100644 --- a/examples/core/core_input_gamepad.c +++ b/examples/core/core_input_gamepad.c @@ -13,7 +13,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_gamepad_info.c b/examples/core/core_input_gamepad_info.c index 9aebb815a..66fedda90 100644 --- a/examples/core/core_input_gamepad_info.c +++ b/examples/core/core_input_gamepad_info.c @@ -10,7 +10,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_gestures.c b/examples/core/core_input_gestures.c index 312e78ffd..27ecef56e 100644 --- a/examples/core/core_input_gestures.c +++ b/examples/core/core_input_gestures.c @@ -7,7 +7,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_keys.c b/examples/core/core_input_keys.c index ccff24005..8e74b93b0 100644 --- a/examples/core/core_input_keys.c +++ b/examples/core/core_input_keys.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_mouse.c b/examples/core/core_input_mouse.c index 874e16c30..e6a3e15dc 100644 --- a/examples/core/core_input_mouse.c +++ b/examples/core/core_input_mouse.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_mouse_wheel.c b/examples/core/core_input_mouse_wheel.c index 826bad3a1..54f33545e 100644 --- a/examples/core/core_input_mouse_wheel.c +++ b/examples/core/core_input_mouse_wheel.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_input_multitouch.c b/examples/core/core_input_multitouch.c index 37817e5a0..73b363576 100644 --- a/examples/core/core_input_multitouch.c +++ b/examples/core/core_input_multitouch.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Berni (@Berni8k) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Berni (@Berni8k) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_loading_thread.c b/examples/core/core_loading_thread.c index 8451ff037..8e09c99da 100644 --- a/examples/core/core_loading_thread.c +++ b/examples/core/core_loading_thread.c @@ -9,7 +9,7 @@ * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_random_values.c b/examples/core/core_random_values.c index bec1de27b..46516ea1c 100644 --- a/examples/core/core_random_values.c +++ b/examples/core/core_random_values.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_scissor_test.c b/examples/core/core_scissor_test.c index c2b853c05..62ae080cb 100644 --- a/examples/core/core_scissor_test.c +++ b/examples/core/core_scissor_test.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Chris Dill (@MysteriousSpace) +* Copyright (c) 2019-2024 Chris Dill (@MysteriousSpace) * ********************************************************************************************/ diff --git a/examples/core/core_smooth_pixelperfect.c b/examples/core/core_smooth_pixelperfect.c index 3d5ed94f9..991805981 100644 --- a/examples/core/core_smooth_pixelperfect.c +++ b/examples/core/core_smooth_pixelperfect.c @@ -10,7 +10,7 @@ * Example 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) 2021-2023 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_storage_values.c b/examples/core/core_storage_values.c index c7fd7d9b4..39edcb5e9 100644 --- a/examples/core/core_storage_values.c +++ b/examples/core/core_storage_values.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_vr_simulator.c b/examples/core/core_vr_simulator.c index 9acea1972..c98fce931 100644 --- a/examples/core/core_vr_simulator.c +++ b/examples/core/core_vr_simulator.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_window_flags.c b/examples/core/core_window_flags.c index b1cbb1b64..c9f858929 100644 --- a/examples/core/core_window_flags.c +++ b/examples/core/core_window_flags.c @@ -7,7 +7,7 @@ * Example 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) 2020-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_window_letterbox.c b/examples/core/core_window_letterbox.c index 751fb14ab..ded782431 100644 --- a/examples/core/core_window_letterbox.c +++ b/examples/core/core_window_letterbox.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Anata (@anatagawa) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Anata (@anatagawa) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_window_should_close.c b/examples/core/core_window_should_close.c index f0392b013..e28ef7dbd 100644 --- a/examples/core/core_window_should_close.c +++ b/examples/core/core_window_should_close.c @@ -7,7 +7,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/core/core_world_screen.c b/examples/core/core_world_screen.c index 6c811a509..82fa31281 100644 --- a/examples/core/core_world_screen.c +++ b/examples/core/core_world_screen.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c index 8e6f7f877..76998d1ec 100644 --- a/examples/models/models_animation.c +++ b/examples/models/models_animation.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Culacant (@culacant) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Culacant (@culacant) and Ramon Santamaria (@raysan5) * ******************************************************************************************** * diff --git a/examples/models/models_billboard.c b/examples/models/models_billboard.c index 9b02a8af1..237e1b69d 100644 --- a/examples/models/models_billboard.c +++ b/examples/models/models_billboard.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_box_collisions.c b/examples/models/models_box_collisions.c index 9cff5e058..936f65f38 100644 --- a/examples/models/models_box_collisions.c +++ b/examples/models/models_box_collisions.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_cubicmap.c b/examples/models/models_cubicmap.c index e0a2b3089..2cbb7bf32 100644 --- a/examples/models/models_cubicmap.c +++ b/examples/models/models_cubicmap.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_draw_cube_texture.c b/examples/models/models_draw_cube_texture.c index e43c3c844..edcd4b7f8 100644 --- a/examples/models/models_draw_cube_texture.c +++ b/examples/models/models_draw_cube_texture.c @@ -7,7 +7,7 @@ * Example 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) 2022-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2022-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_first_person_maze.c b/examples/models/models_first_person_maze.c index 6a4345a8b..80a2c88e5 100644 --- a/examples/models/models_first_person_maze.c +++ b/examples/models/models_first_person_maze.c @@ -7,7 +7,7 @@ * Example 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) 2019-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_geometric_shapes.c b/examples/models/models_geometric_shapes.c index 33c406347..7f66a69fe 100644 --- a/examples/models/models_geometric_shapes.c +++ b/examples/models/models_geometric_shapes.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_heightmap.c b/examples/models/models_heightmap.c index e1c3e4fb6..d59e82814 100644 --- a/examples/models/models_heightmap.c +++ b/examples/models/models_heightmap.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c index 4bce2a79e..8b4002d18 100644 --- a/examples/models/models_loading.c +++ b/examples/models/models_loading.c @@ -20,7 +20,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_loading_gltf.c b/examples/models/models_loading_gltf.c index 1d5d516fa..e85b30e6c 100644 --- a/examples/models/models_loading_gltf.c +++ b/examples/models/models_loading_gltf.c @@ -14,7 +14,7 @@ * Example 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) 2020-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_loading_m3d.c b/examples/models/models_loading_m3d.c index 71dbc8d75..6091d95f8 100644 --- a/examples/models/models_loading_m3d.c +++ b/examples/models/models_loading_m3d.c @@ -13,7 +13,7 @@ * Example 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) 2022-2023 bzt (@bztsrc) +* Copyright (c) 2022-2024 bzt (@bztsrc) * ********************************************************************************************/ diff --git a/examples/models/models_loading_vox.c b/examples/models/models_loading_vox.c index e148fd91a..b830c492d 100644 --- a/examples/models/models_loading_vox.c +++ b/examples/models/models_loading_vox.c @@ -9,7 +9,7 @@ * Example 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) 2021-2023 Johann Nadalutti (@procfxgen) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Johann Nadalutti (@procfxgen) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_mesh_generation.c b/examples/models/models_mesh_generation.c index 94e0a4c48..59aebe7c9 100644 --- a/examples/models/models_mesh_generation.c +++ b/examples/models/models_mesh_generation.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_mesh_picking.c b/examples/models/models_mesh_picking.c index 69d98aa18..4530d58a1 100644 --- a/examples/models/models_mesh_picking.c +++ b/examples/models/models_mesh_picking.c @@ -9,7 +9,7 @@ * Example 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) 2017-2023 Joel Davis (@joeld42) and Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Joel Davis (@joeld42) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_orthographic_projection.c b/examples/models/models_orthographic_projection.c index 098e4b20a..b0f74413d 100644 --- a/examples/models/models_orthographic_projection.c +++ b/examples/models/models_orthographic_projection.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Max Danielsson (@autious) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Max Danielsson (@autious) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_rlgl_solar_system.c b/examples/models/models_rlgl_solar_system.c index e458036fe..7b35263ac 100644 --- a/examples/models/models_rlgl_solar_system.c +++ b/examples/models/models_rlgl_solar_system.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index c583128b6..67d8de8c1 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_waving_cubes.c b/examples/models/models_waving_cubes.c index d382c998d..5dc1fc4aa 100644 --- a/examples/models/models_waving_cubes.c +++ b/examples/models/models_waving_cubes.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Codecat (@codecat) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Codecat (@codecat) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c index 611ee3146..91a11f73c 100644 --- a/examples/models/models_yaw_pitch_roll.c +++ b/examples/models/models_yaw_pitch_roll.c @@ -9,7 +9,7 @@ * Example 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) 2017-2023 Berni (@Berni8k) and Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Berni (@Berni8k) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/others/easings_testbed.c b/examples/others/easings_testbed.c index 45f0efd0b..1f31f5bb9 100644 --- a/examples/others/easings_testbed.c +++ b/examples/others/easings_testbed.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Juan Miguel López (@flashback-fx ) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Juan Miguel López (@flashback-fx ) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/others/embedded_files_loading.c b/examples/others/embedded_files_loading.c index 64023539c..e46fe102f 100644 --- a/examples/others/embedded_files_loading.c +++ b/examples/others/embedded_files_loading.c @@ -9,7 +9,7 @@ * Example 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) 2020-2023 Kristian Holmgren (@defutura) and Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Kristian Holmgren (@defutura) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index 09b548c60..33a58a227 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -9,7 +9,7 @@ * Example 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) 2021-2023 Stephan Soller (@arkanis) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Stephan Soller (@arkanis) and Ramon Santamaria (@raysan5) * ******************************************************************************************** * diff --git a/examples/others/reasings.h b/examples/others/reasings.h index 657ea242e..c3ee1169f 100644 --- a/examples/others/reasings.h +++ b/examples/others/reasings.h @@ -60,7 +60,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. * --------------------------------------------------------------------------------- * -* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 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. diff --git a/examples/others/rlgl_compute_shader.c b/examples/others/rlgl_compute_shader.c index 544e0a534..e8a654d2a 100644 --- a/examples/others/rlgl_compute_shader.c +++ b/examples/others/rlgl_compute_shader.c @@ -12,7 +12,7 @@ * Example 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) 2021-2023 Teddy Astie (@tsnake41) +* Copyright (c) 2021-2024 Teddy Astie (@tsnake41) * ********************************************************************************************/ diff --git a/examples/others/rlgl_standalone.c b/examples/others/rlgl_standalone.c index ad5e5e94c..60d140598 100644 --- a/examples/others/rlgl_standalone.c +++ b/examples/others/rlgl_standalone.c @@ -29,7 +29,7 @@ * This example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. diff --git a/examples/shaders/rlights.h b/examples/shaders/rlights.h index d17bf7c2e..e38b0015a 100644 --- a/examples/shaders/rlights.h +++ b/examples/shaders/rlights.h @@ -11,7 +11,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2017-2023 Victor Fisac (@victorfisac) and Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Victor Fisac (@victorfisac) and 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. diff --git a/examples/shaders/shaders_basic_lighting.c b/examples/shaders/shaders_basic_lighting.c index 3fbe60b83..5b567f651 100644 --- a/examples/shaders/shaders_basic_lighting.c +++ b/examples/shaders/shaders_basic_lighting.c @@ -14,7 +14,7 @@ * Example 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) 2019-2023 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_custom_uniform.c b/examples/shaders/shaders_custom_uniform.c index b3b804006..9d991bd1a 100644 --- a/examples/shaders/shaders_custom_uniform.c +++ b/examples/shaders/shaders_custom_uniform.c @@ -14,7 +14,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_eratosthenes.c b/examples/shaders/shaders_eratosthenes.c index 005a97aea..21b7ea8f9 100644 --- a/examples/shaders/shaders_eratosthenes.c +++ b/examples/shaders/shaders_eratosthenes.c @@ -21,7 +21,7 @@ * Example 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) 2019-2023 ProfJski and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 ProfJski and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_fog.c b/examples/shaders/shaders_fog.c index cd36936d6..ad514077d 100644 --- a/examples/shaders/shaders_fog.c +++ b/examples/shaders/shaders_fog.c @@ -14,7 +14,7 @@ * Example 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) 2019-2023 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_hot_reloading.c b/examples/shaders/shaders_hot_reloading.c index 2b1175e4b..2a9ea2d6d 100644 --- a/examples/shaders/shaders_hot_reloading.c +++ b/examples/shaders/shaders_hot_reloading.c @@ -10,7 +10,7 @@ * Example 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) 2020-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c index 6242b308d..9579adf99 100644 --- a/examples/shaders/shaders_hybrid_render.c +++ b/examples/shaders/shaders_hybrid_render.c @@ -9,7 +9,7 @@ * Example 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) 2022-2023 Buğra Alptekin Sarı (@BugraAlptekinSari) +* Copyright (c) 2022-2024 Buğra Alptekin Sarı (@BugraAlptekinSari) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_julia_set.c b/examples/shaders/shaders_julia_set.c index 608d3b52b..93a3436a8 100644 --- a/examples/shaders/shaders_julia_set.c +++ b/examples/shaders/shaders_julia_set.c @@ -14,7 +14,7 @@ * Example 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) 2019-2023 Josh Colclough (@joshcol9232) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Josh Colclough (@joshcol9232) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_lightmap.c b/examples/shaders/shaders_lightmap.c index 445d81d24..01b80a6fb 100644 --- a/examples/shaders/shaders_lightmap.c +++ b/examples/shaders/shaders_lightmap.c @@ -12,7 +12,7 @@ * Example 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) 2019-2023 Jussi Viitala (@nullstare) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Jussi Viitala (@nullstare) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_mesh_instancing.c b/examples/shaders/shaders_mesh_instancing.c index 7d603a6bf..eb42cb471 100644 --- a/examples/shaders/shaders_mesh_instancing.c +++ b/examples/shaders/shaders_mesh_instancing.c @@ -9,7 +9,7 @@ * Example 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) 2020-2023 @seanpringle, Max (@moliad) and Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 @seanpringle, Max (@moliad) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_model_shader.c b/examples/shaders/shaders_model_shader.c index 739a33b7e..bf2c112be 100644 --- a/examples/shaders/shaders_model_shader.c +++ b/examples/shaders/shaders_model_shader.c @@ -14,7 +14,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_multi_sample2d.c b/examples/shaders/shaders_multi_sample2d.c index f7c369bc4..ccdc6fa82 100644 --- a/examples/shaders/shaders_multi_sample2d.c +++ b/examples/shaders/shaders_multi_sample2d.c @@ -14,7 +14,7 @@ * Example 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) 2020-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_palette_switch.c b/examples/shaders/shaders_palette_switch.c index 6b108b092..3d7d409db 100644 --- a/examples/shaders/shaders_palette_switch.c +++ b/examples/shaders/shaders_palette_switch.c @@ -16,7 +16,7 @@ * Example 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) 2019-2023 Marco Lizza (@MarcoLizza) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Marco Lizza (@MarcoLizza) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_postprocessing.c b/examples/shaders/shaders_postprocessing.c index 1a7c621e5..54ffae931 100644 --- a/examples/shaders/shaders_postprocessing.c +++ b/examples/shaders/shaders_postprocessing.c @@ -14,7 +14,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_raymarching.c b/examples/shaders/shaders_raymarching.c index ff403e619..812d683e6 100644 --- a/examples/shaders/shaders_raymarching.c +++ b/examples/shaders/shaders_raymarching.c @@ -10,7 +10,7 @@ * Example 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) 2018-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_shapes_textures.c b/examples/shaders/shaders_shapes_textures.c index cca4959ed..65ccef659 100644 --- a/examples/shaders/shaders_shapes_textures.c +++ b/examples/shaders/shaders_shapes_textures.c @@ -14,7 +14,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_simple_mask.c b/examples/shaders/shaders_simple_mask.c index 7ed315b0a..11e0ac2e7 100644 --- a/examples/shaders/shaders_simple_mask.c +++ b/examples/shaders/shaders_simple_mask.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) * ******************************************************************************************** * diff --git a/examples/shaders/shaders_spotlight.c b/examples/shaders/shaders_spotlight.c index 067f9622d..2752a2db4 100644 --- a/examples/shaders/shaders_spotlight.c +++ b/examples/shaders/shaders_spotlight.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) * ******************************************************************************************** * diff --git a/examples/shaders/shaders_texture_drawing.c b/examples/shaders/shaders_texture_drawing.c index 43ffa21ef..52b8967f6 100644 --- a/examples/shaders/shaders_texture_drawing.c +++ b/examples/shaders/shaders_texture_drawing.c @@ -11,7 +11,7 @@ * Example 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) 2019-2023 Michał Ciesielski and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Michał Ciesielski and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_texture_outline.c b/examples/shaders/shaders_texture_outline.c index 83f2820e7..f90e41769 100644 --- a/examples/shaders/shaders_texture_outline.c +++ b/examples/shaders/shaders_texture_outline.c @@ -12,7 +12,7 @@ * Example 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) 2021-2023 Samuel SKiff (@GoldenThumbs) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Samuel SKiff (@GoldenThumbs) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_texture_waves.c b/examples/shaders/shaders_texture_waves.c index 5bdaada44..205fc636e 100644 --- a/examples/shaders/shaders_texture_waves.c +++ b/examples/shaders/shaders_texture_waves.c @@ -16,7 +16,7 @@ * Example 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) 2019-2023 Anata (@anatagawa) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Anata (@anatagawa) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_write_depth.c index 31697243a..d2eeb68a8 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_write_depth.c @@ -9,7 +9,7 @@ * Example 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) 2022-2023 Buğra Alptekin Sarı (@BugraAlptekinSari) +* Copyright (c) 2022-2024 Buğra Alptekin Sarı (@BugraAlptekinSari) * ********************************************************************************************/ diff --git a/examples/shapes/reasings.h b/examples/shapes/reasings.h index 657ea242e..c3ee1169f 100644 --- a/examples/shapes/reasings.h +++ b/examples/shapes/reasings.h @@ -60,7 +60,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. * --------------------------------------------------------------------------------- * -* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 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. diff --git a/examples/shapes/shapes_basic_shapes.c b/examples/shapes/shapes_basic_shapes.c index 40056b4e7..9c0fff7d0 100644 --- a/examples/shapes/shapes_basic_shapes.c +++ b/examples/shapes/shapes_basic_shapes.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_bouncing_ball.c b/examples/shapes/shapes_bouncing_ball.c index 38fade60a..7a3068163 100644 --- a/examples/shapes/shapes_bouncing_ball.c +++ b/examples/shapes/shapes_bouncing_ball.c @@ -7,7 +7,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_collision_area.c b/examples/shapes/shapes_collision_area.c index 752d4e79a..c2e2c1e1d 100644 --- a/examples/shapes/shapes_collision_area.c +++ b/examples/shapes/shapes_collision_area.c @@ -7,7 +7,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_colors_palette.c b/examples/shapes/shapes_colors_palette.c index d55782550..60a6dd6a2 100644 --- a/examples/shapes/shapes_colors_palette.c +++ b/examples/shapes/shapes_colors_palette.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_draw_circle_sector.c b/examples/shapes/shapes_draw_circle_sector.c index 90e8e6a58..30eaaf4bd 100644 --- a/examples/shapes/shapes_draw_circle_sector.c +++ b/examples/shapes/shapes_draw_circle_sector.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_draw_rectangle_rounded.c b/examples/shapes/shapes_draw_rectangle_rounded.c index a10e3c848..2add780a7 100644 --- a/examples/shapes/shapes_draw_rectangle_rounded.c +++ b/examples/shapes/shapes_draw_rectangle_rounded.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_draw_ring.c b/examples/shapes/shapes_draw_ring.c index 47327b7ad..60c95a4c0 100644 --- a/examples/shapes/shapes_draw_ring.c +++ b/examples/shapes/shapes_draw_ring.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_easings_ball_anim.c b/examples/shapes/shapes_easings_ball_anim.c index 866ec0971..d54f24a1d 100644 --- a/examples/shapes/shapes_easings_ball_anim.c +++ b/examples/shapes/shapes_easings_ball_anim.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_easings_box_anim.c b/examples/shapes/shapes_easings_box_anim.c index a854bf6c3..c82beac05 100644 --- a/examples/shapes/shapes_easings_box_anim.c +++ b/examples/shapes/shapes_easings_box_anim.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_easings_rectangle_array.c b/examples/shapes/shapes_easings_rectangle_array.c index 03916f5b4..ed13e93c1 100644 --- a/examples/shapes/shapes_easings_rectangle_array.c +++ b/examples/shapes/shapes_easings_rectangle_array.c @@ -10,7 +10,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_following_eyes.c b/examples/shapes/shapes_following_eyes.c index 2137d797a..f7a7b8705 100644 --- a/examples/shapes/shapes_following_eyes.c +++ b/examples/shapes/shapes_following_eyes.c @@ -7,7 +7,7 @@ * Example 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_lines_bezier.c b/examples/shapes/shapes_lines_bezier.c index aaad68047..eeb7aeed0 100644 --- a/examples/shapes/shapes_lines_bezier.c +++ b/examples/shapes/shapes_lines_bezier.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_logo_raylib.c b/examples/shapes/shapes_logo_raylib.c index 4f625c2c8..f637df2c9 100644 --- a/examples/shapes/shapes_logo_raylib.c +++ b/examples/shapes/shapes_logo_raylib.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_logo_raylib_anim.c b/examples/shapes/shapes_logo_raylib_anim.c index 5d6dd3538..ace9c8d02 100644 --- a/examples/shapes/shapes_logo_raylib_anim.c +++ b/examples/shapes/shapes_logo_raylib_anim.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_rectangle_scaling.c b/examples/shapes/shapes_rectangle_scaling.c index 18104b120..dcafab9da 100644 --- a/examples/shapes/shapes_rectangle_scaling.c +++ b/examples/shapes/shapes_rectangle_scaling.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/shapes/shapes_top_down_lights.c b/examples/shapes/shapes_top_down_lights.c index f22cf3c17..abe845f8c 100644 --- a/examples/shapes/shapes_top_down_lights.c +++ b/examples/shapes/shapes_top_down_lights.c @@ -9,7 +9,7 @@ * Example 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) 2022-2023 Jeffery Myers (@JeffM2501) +* Copyright (c) 2022-2024 Jeffery Myers (@JeffM2501) * ********************************************************************************************/ diff --git a/examples/text/text_codepoints_loading.c b/examples/text/text_codepoints_loading.c index 376b4972a..04df96e52 100644 --- a/examples/text/text_codepoints_loading.c +++ b/examples/text/text_codepoints_loading.c @@ -7,7 +7,7 @@ * Example 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) 2022-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2022-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_draw_3d.c b/examples/text/text_draw_3d.c index 097e4fc67..b279f1b36 100644 --- a/examples/text/text_draw_3d.c +++ b/examples/text/text_draw_3d.c @@ -22,7 +22,7 @@ * Example 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) 2021-2023 Vlad Adrian (@demizdor) +* Copyright (c) 2021-2024 Vlad Adrian (@demizdor) * ********************************************************************************************/ diff --git a/examples/text/text_font_filters.c b/examples/text/text_font_filters.c index e6756713c..b12f26055 100644 --- a/examples/text/text_font_filters.c +++ b/examples/text/text_font_filters.c @@ -11,7 +11,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_font_loading.c b/examples/text/text_font_loading.c index a3ff988e9..2c8786c42 100644 --- a/examples/text/text_font_loading.c +++ b/examples/text/text_font_loading.c @@ -16,7 +16,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_font_sdf.c b/examples/text/text_font_sdf.c index 40a3fa4d7..95245741e 100644 --- a/examples/text/text_font_sdf.c +++ b/examples/text/text_font_sdf.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_font_spritefont.c b/examples/text/text_font_spritefont.c index b5df2d0dc..1b2695c71 100644 --- a/examples/text/text_font_spritefont.c +++ b/examples/text/text_font_spritefont.c @@ -17,7 +17,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_format_text.c b/examples/text/text_format_text.c index 6b1b0456f..0f53f35dc 100644 --- a/examples/text/text_format_text.c +++ b/examples/text/text_format_text.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_input_box.c b/examples/text/text_input_box.c index f3923c1e9..eeb338f1f 100644 --- a/examples/text/text_input_box.c +++ b/examples/text/text_input_box.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_raylib_fonts.c b/examples/text/text_raylib_fonts.c index 8ef67c71d..acd18d94c 100644 --- a/examples/text/text_raylib_fonts.c +++ b/examples/text/text_raylib_fonts.c @@ -10,7 +10,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_rectangle_bounds.c b/examples/text/text_rectangle_bounds.c index 886c348d5..173d3f93d 100644 --- a/examples/text/text_rectangle_bounds.c +++ b/examples/text/text_rectangle_bounds.c @@ -9,7 +9,7 @@ * Example 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) 2018-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_unicode.c b/examples/text/text_unicode.c index 42227f89c..2b5245be9 100644 --- a/examples/text/text_unicode.c +++ b/examples/text/text_unicode.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/text/text_writing_anim.c b/examples/text/text_writing_anim.c index 4ee67700e..1e7cd569f 100644 --- a/examples/text/text_writing_anim.c +++ b/examples/text/text_writing_anim.c @@ -7,7 +7,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_background_scrolling.c b/examples/textures/textures_background_scrolling.c index 55fa2115e..0df159cae 100644 --- a/examples/textures/textures_background_scrolling.c +++ b/examples/textures/textures_background_scrolling.c @@ -7,7 +7,7 @@ * Example 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) 2019-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_blend_modes.c b/examples/textures/textures_blend_modes.c index 246a98e47..660aa57a7 100644 --- a/examples/textures/textures_blend_modes.c +++ b/examples/textures/textures_blend_modes.c @@ -11,7 +11,7 @@ * Example 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) 2020-2023 Karlo Licudine (@accidentalrebel) +* Copyright (c) 2020-2024 Karlo Licudine (@accidentalrebel) * ********************************************************************************************/ diff --git a/examples/textures/textures_bunnymark.c b/examples/textures/textures_bunnymark.c index ede3036fa..f3ef694a2 100644 --- a/examples/textures/textures_bunnymark.c +++ b/examples/textures/textures_bunnymark.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_draw_tiled.c b/examples/textures/textures_draw_tiled.c index 34fe82ce4..699836555 100644 --- a/examples/textures/textures_draw_tiled.c +++ b/examples/textures/textures_draw_tiled.c @@ -9,7 +9,7 @@ * Example 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) 2020-2023 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2024 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_fog_of_war.c b/examples/textures/textures_fog_of_war.c index 516055aeb..2f72c0d6d 100644 --- a/examples/textures/textures_fog_of_war.c +++ b/examples/textures/textures_fog_of_war.c @@ -7,7 +7,7 @@ * Example 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) 2018-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_gif_player.c b/examples/textures/textures_gif_player.c index 108522835..cf8492e0d 100644 --- a/examples/textures/textures_gif_player.c +++ b/examples/textures/textures_gif_player.c @@ -7,7 +7,7 @@ * Example 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) 2021-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_drawing.c b/examples/textures/textures_image_drawing.c index 967cb52a4..f49bc9e77 100644 --- a/examples/textures/textures_image_drawing.c +++ b/examples/textures/textures_image_drawing.c @@ -9,7 +9,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_generation.c b/examples/textures/textures_image_generation.c index 359dc236a..abde401f7 100644 --- a/examples/textures/textures_image_generation.c +++ b/examples/textures/textures_image_generation.c @@ -7,7 +7,7 @@ * Example 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) 2O17-2023 Wilhem Barbier (@nounoursheureux) and Ramon Santamaria (@raysan5) +* Copyright (c) 2O17-2024 Wilhem Barbier (@nounoursheureux) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_kernel.c b/examples/textures/textures_image_kernel.c index 9944ac791..b850b63ed 100644 --- a/examples/textures/textures_image_kernel.c +++ b/examples/textures/textures_image_kernel.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Karim Salem (@kimo-s) +* Copyright (c) 2015-2024 Karim Salem (@kimo-s) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_loading.c b/examples/textures/textures_image_loading.c index b1bfe09f7..95175e079 100644 --- a/examples/textures/textures_image_loading.c +++ b/examples/textures/textures_image_loading.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_processing.c b/examples/textures/textures_image_processing.c index 6e6c85482..269273546 100644 --- a/examples/textures/textures_image_processing.c +++ b/examples/textures/textures_image_processing.c @@ -9,7 +9,7 @@ * Example 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) 2016-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_rotate.c b/examples/textures/textures_image_rotate.c index e5c735732..51724e037 100644 --- a/examples/textures/textures_image_rotate.c +++ b/examples/textures/textures_image_rotate.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_image_text.c b/examples/textures/textures_image_text.c index 50db688de..856b64ed0 100644 --- a/examples/textures/textures_image_text.c +++ b/examples/textures/textures_image_text.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_logo_raylib.c b/examples/textures/textures_logo_raylib.c index 8bd865811..f170dab48 100644 --- a/examples/textures/textures_logo_raylib.c +++ b/examples/textures/textures_logo_raylib.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_mouse_painting.c b/examples/textures/textures_mouse_painting.c index e985cee0c..27bbc74e9 100644 --- a/examples/textures/textures_mouse_painting.c +++ b/examples/textures/textures_mouse_painting.c @@ -9,7 +9,7 @@ * Example 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) 2019-2023 Chris Dill (@MysteriousSpace) and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Chris Dill (@MysteriousSpace) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_npatch_drawing.c b/examples/textures/textures_npatch_drawing.c index f85aaa129..5fb39996b 100644 --- a/examples/textures/textures_npatch_drawing.c +++ b/examples/textures/textures_npatch_drawing.c @@ -11,7 +11,7 @@ * Example 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) 2018-2023 Jorge A. Gomes (@overdev) and Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Jorge A. Gomes (@overdev) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_particles_blending.c b/examples/textures/textures_particles_blending.c index ec144ff4b..113b2b068 100644 --- a/examples/textures/textures_particles_blending.c +++ b/examples/textures/textures_particles_blending.c @@ -7,7 +7,7 @@ * Example 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) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_polygon.c b/examples/textures/textures_polygon.c index cf59af979..2491e1bc2 100644 --- a/examples/textures/textures_polygon.c +++ b/examples/textures/textures_polygon.c @@ -9,7 +9,7 @@ * Example 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) 2021-2023 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) +* Copyright (c) 2021-2024 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_raw_data.c b/examples/textures/textures_raw_data.c index 22d7cc06f..38229f1ba 100644 --- a/examples/textures/textures_raw_data.c +++ b/examples/textures/textures_raw_data.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_sprite_anim.c b/examples/textures/textures_sprite_anim.c index 99efe2eab..deb68216a 100644 --- a/examples/textures/textures_sprite_anim.c +++ b/examples/textures/textures_sprite_anim.c @@ -7,7 +7,7 @@ * Example 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) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_sprite_button.c b/examples/textures/textures_sprite_button.c index bd9891826..5d0153b57 100644 --- a/examples/textures/textures_sprite_button.c +++ b/examples/textures/textures_sprite_button.c @@ -7,7 +7,7 @@ * Example 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) 2019-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_sprite_explosion.c b/examples/textures/textures_sprite_explosion.c index a6cbd3e5b..06b4f1dad 100644 --- a/examples/textures/textures_sprite_explosion.c +++ b/examples/textures/textures_sprite_explosion.c @@ -7,7 +7,7 @@ * Example 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) 2019-2023 Anata and Ramon Santamaria (@raysan5) +* Copyright (c) 2019-2024 Anata and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_srcrec_dstrec.c b/examples/textures/textures_srcrec_dstrec.c index caf8f64b3..035e30371 100644 --- a/examples/textures/textures_srcrec_dstrec.c +++ b/examples/textures/textures_srcrec_dstrec.c @@ -7,7 +7,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_textured_curve.c b/examples/textures/textures_textured_curve.c index cf426becc..6e4c53cff 100644 --- a/examples/textures/textures_textured_curve.c +++ b/examples/textures/textures_textured_curve.c @@ -9,7 +9,7 @@ * Example 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) 2022-2023 Jeffery Myers and Ramon Santamaria (@raysan5) +* Copyright (c) 2022-2024 Jeffery Myers and Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/examples/textures/textures_to_image.c b/examples/textures/textures_to_image.c index fd3c848e8..2d09623eb 100644 --- a/examples/textures/textures_to_image.c +++ b/examples/textures/textures_to_image.c @@ -9,7 +9,7 @@ * Example 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) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/parser/README.md b/parser/README.md index 0c55f20ea..45a2689a0 100644 --- a/parser/README.md +++ b/parser/README.md @@ -19,7 +19,7 @@ Check `raylib_parser.c` for details about those structs. // // // more info and bugs-report: github.com/raysan5/raylib/parser // // // -// Copyright (c) 2021-2023 Ramon Santamaria (@raysan5) // +// Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) // // // ////////////////////////////////////////////////////////////////////////////////// diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index bdec4915a..9b8fd8b13 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -54,7 +54,7 @@ raylib-parser 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) 2021-2023 Ramon Santamaria (@raysan5) + Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) **********************************************************************************************/ @@ -1075,7 +1075,7 @@ static void ShowCommandLineInfo(void) printf("// //\n"); printf("// more info and bugs-report: github.com/raysan5/raylib/parser //\n"); printf("// //\n"); - printf("// Copyright (c) 2021-2023 Ramon Santamaria (@raysan5) //\n"); + printf("// Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) //\n"); printf("// //\n"); printf("//////////////////////////////////////////////////////////////////////////////////\n\n"); diff --git a/projects/4coder/Makefile b/projects/4coder/Makefile index 0d254e340..f2091f0e3 100644 --- a/projects/4coder/Makefile +++ b/projects/4coder/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2024 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. diff --git a/projects/Geany/core_basic_window.c b/projects/Geany/core_basic_window.c index c4dd584a5..486f899cb 100644 --- a/projects/Geany/core_basic_window.c +++ b/projects/Geany/core_basic_window.c @@ -5,7 +5,7 @@ * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/projects/VSCode/main.c b/projects/VSCode/main.c index f37b3b28d..5a2e342bd 100644 --- a/projects/VSCode/main.c +++ b/projects/VSCode/main.c @@ -15,7 +15,7 @@ * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * ********************************************************************************************/ diff --git a/src/Makefile b/src/Makefile index ca978f777..395d69fe5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -24,7 +24,7 @@ # Many thanks to Milan Nikolic (@gen2brain) for implementing Android platform pipeline. # Many thanks to Emanuele Petriglia for his contribution on GNU/Linux pipeline. # -# Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2024 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. diff --git a/src/config.h b/src/config.h index 3fd1c81fd..410e9067e 100644 --- a/src/config.h +++ b/src/config.h @@ -6,7 +6,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2018-2023 Ahmad Fatoum & Ramon Santamaria (@raysan5) +* Copyright (c) 2018-2024 Ahmad Fatoum & 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. diff --git a/src/platforms/rcore_android.c b/src/platforms/rcore_android.c index 5d6f7d5ba..fc1728166 100644 --- a/src/platforms/rcore_android.c +++ b/src/platforms/rcore_android.c @@ -27,7 +27,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 2bbb3f2bc..7dc2048b9 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -30,7 +30,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 28dd9d1dc..325cee391 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -29,7 +29,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index 3449e6993..12e749a02 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -29,7 +29,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/platforms/rcore_template.c b/src/platforms/rcore_template.c index 01e52af58..7a48c465e 100644 --- a/src/platforms/rcore_template.c +++ b/src/platforms/rcore_template.c @@ -27,7 +27,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index fa60eaff1..a7f424383 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -26,7 +26,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/raudio.c b/src/raudio.c index c321aa501..7269760e6 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -50,7 +50,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. @@ -1088,7 +1088,7 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) byteCount += sprintf(txtData + byteCount, "// more info and bugs-report: github.com/raysan5/raylib //\n"); byteCount += sprintf(txtData + byteCount, "// feedback and support: ray[at]raylib.com //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); - byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); byteCount += sprintf(txtData + byteCount, "//////////////////////////////////////////////////////////////////////////////////\n\n"); diff --git a/src/raylib.h b/src/raylib.h index 8b126141a..42fd290aa 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -57,7 +57,7 @@ * 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-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. diff --git a/src/raymath.h b/src/raymath.h index 069c9464e..444ba2e34 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -30,7 +30,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 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. diff --git a/src/rcamera.h b/src/rcamera.h index 3fe151fa2..f2d902c2c 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -20,7 +20,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2022-2023 Christoph Wagner (@Crydsch) & Ramon Santamaria (@raysan5) +* Copyright (c) 2022-2024 Christoph Wagner (@Crydsch) & 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. diff --git a/src/rcore.c b/src/rcore.c index 3ddf3596d..bae7bbb49 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -63,7 +63,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) and contributors +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) and contributors * * 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. diff --git a/src/rgestures.h b/src/rgestures.h index 9161b7484..664a6e1cc 100644 --- a/src/rgestures.h +++ b/src/rgestures.h @@ -21,7 +21,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. diff --git a/src/rglfw.c b/src/rglfw.c index 59f5ad2f8..10ed0954b 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -7,7 +7,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2017-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2024 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. diff --git a/src/rlgl.h b/src/rlgl.h index eb7320a66..4d2c9702f 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -85,7 +85,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. diff --git a/src/rmodels.c b/src/rmodels.c index 262a8ebfc..417142242 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -21,7 +21,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. @@ -1794,7 +1794,7 @@ bool ExportMesh(Mesh mesh, const char *fileName) byteCount += sprintf(txtData + byteCount, "# // more info and bugs-report: github.com/raysan5/raylib //\n"); byteCount += sprintf(txtData + byteCount, "# // feedback and support: ray[at]raylib.com //\n"); byteCount += sprintf(txtData + byteCount, "# // //\n"); - byteCount += sprintf(txtData + byteCount, "# // Copyright (c) 2018-2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "# // Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) //\n"); byteCount += sprintf(txtData + byteCount, "# // //\n"); byteCount += sprintf(txtData + byteCount, "# //////////////////////////////////////////////////////////////////////////////////\n\n"); byteCount += sprintf(txtData + byteCount, "# Vertex Count: %i\n", mesh.vertexCount); diff --git a/src/rshapes.c b/src/rshapes.c index 53d12fe3a..8e6708bf9 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -25,7 +25,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. diff --git a/src/rtext.c b/src/rtext.c index 4ead02ca7..a7c8a7260 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -33,7 +33,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. @@ -949,7 +949,7 @@ bool ExportFontAsCode(Font font, const char *fileName) byteCount += sprintf(txtData + byteCount, "// more info and bugs-report: github.com/raysan5/raylib //\n"); byteCount += sprintf(txtData + byteCount, "// feedback and support: ray[at]raylib.com //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); - byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); byteCount += sprintf(txtData + byteCount, "// ---------------------------------------------------------------------------------- //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); diff --git a/src/rtextures.c b/src/rtextures.c index e9fb95cb3..9c257808a 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -42,7 +42,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 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. @@ -839,7 +839,7 @@ bool ExportImageAsCode(Image image, const char *fileName) byteCount += sprintf(txtData + byteCount, "// more info and bugs-report: github.com/raysan5/raylib //\n"); byteCount += sprintf(txtData + byteCount, "// feedback and support: ray[at]raylib.com //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); - byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2018-2024 Ramon Santamaria (@raysan5) //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); byteCount += sprintf(txtData + byteCount, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); diff --git a/src/utils.c b/src/utils.c index 51d84cfe4..987021c73 100644 --- a/src/utils.c +++ b/src/utils.c @@ -10,7 +10,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. @@ -309,7 +309,7 @@ bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileN byteCount += sprintf(txtData + byteCount, "// more info and bugs-report: github.com/raysan5/raylib //\n"); byteCount += sprintf(txtData + byteCount, "// feedback and support: ray[at]raylib.com //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); - byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2022-2023 Ramon Santamaria (@raysan5) //\n"); + byteCount += sprintf(txtData + byteCount, "// Copyright (c) 2022-2024 Ramon Santamaria (@raysan5) //\n"); byteCount += sprintf(txtData + byteCount, "// //\n"); byteCount += sprintf(txtData + byteCount, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); diff --git a/src/utils.h b/src/utils.h index ff8246a7b..23eca8ee9 100644 --- a/src/utils.h +++ b/src/utils.h @@ -5,7 +5,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. From e46b6147fc30e69dd300bbda90ff0a62bf8a4df0 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Jan 2024 14:16:39 +0100 Subject: [PATCH 115/790] Update copyright year to 2024 --- LICENSE | 2 +- parser/LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 91da62ed9..d1bfe3b1a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +Copyright (c) 2013-2024 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. diff --git a/parser/LICENSE b/parser/LICENSE index 125d7dbae..7fc2d13b0 100644 --- a/parser/LICENSE +++ b/parser/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021-2023 Ramon Santamaria (@raysan5) +Copyright (c) 2021-2024 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. From eb6dcab308162037272edbad93ea1f10797c7352 Mon Sep 17 00:00:00 2001 From: Michael Scherbakow Date: Thu, 4 Jan 2024 10:51:53 +0100 Subject: [PATCH 116/790] Update raylib.zig version to 5.1-dev (#3698) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 8c821903c..ab0d77896 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -77,7 +77,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-vapi | 4.2 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | | raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | | raylib-zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | -| raylib.zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | +| raylib.zig | 5.1-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | | hare-raylib | **auto** | [Hare](https://harelang.org/) | Zlib | https://git.sr.ht/~evantj/hare-raylib | | raylib-sunder | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | https://github.com/ashn-dot-dev/raylib-sunder | | rayed-bqn | **auto** | [BQN](https://mlochbaum.github.io/BQN/) | MIT | https://github.com/Brian-ED/rayed-bqn | From 19bdcedf1c0606987665b66b9d52a1cfb20c6887 Mon Sep 17 00:00:00 2001 From: ubkp <118854183+ubkp@users.noreply.github.com> Date: Fri, 5 Jan 2024 18:22:58 -0300 Subject: [PATCH 117/790] Hide unused warnings from stb_image_resize2.h (#3708) --- src/rtextures.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/rtextures.c b/src/rtextures.c index 9c257808a..a2bba1cf7 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -212,9 +212,19 @@ #define STBIR_MALLOC(size,c) ((void)(c), RL_MALLOC(size)) #define STBIR_FREE(ptr,c) ((void)(c), RL_FREE(ptr)) + +#if defined(__GNUC__) // GCC and Clang + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wunused-function" +#endif + #define STB_IMAGE_RESIZE_IMPLEMENTATION #include "external/stb_image_resize2.h" // Required for: stbir_resize_uint8_linear() [ImageResize()] +#if defined(__GNUC__) // GCC and Clang + #pragma GCC diagnostic pop +#endif + #if defined(SUPPORT_FILEFORMAT_SVG) #define NANOSVG_IMPLEMENTATION // Expands implementation #include "external/nanosvg.h" From 3afb4dda9773b136283c567ecef4a78d53bc4e85 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Jan 2024 22:32:59 +0100 Subject: [PATCH 118/790] Update raygui.h --- examples/shapes/raygui.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/shapes/raygui.h b/examples/shapes/raygui.h index 91277102f..623115fce 100644 --- a/examples/shapes/raygui.h +++ b/examples/shapes/raygui.h @@ -291,7 +291,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 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. From c95b71d40d34354fec3998a4e2dc54b3c291cedc Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Jan 2024 22:33:02 +0100 Subject: [PATCH 119/790] Update raudio.c --- src/raudio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 7269760e6..430242107 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -939,12 +939,14 @@ Sound LoadSoundAlias(Sound source) if (source.stream.buffer->data != NULL) { - AudioBuffer* audioBuffer = LoadAudioBuffer(AUDIO_DEVICE_FORMAT, AUDIO_DEVICE_CHANNELS, AUDIO.System.device.sampleRate, 0, AUDIO_BUFFER_USAGE_STATIC); + AudioBuffer *audioBuffer = LoadAudioBuffer(AUDIO_DEVICE_FORMAT, AUDIO_DEVICE_CHANNELS, AUDIO.System.device.sampleRate, 0, AUDIO_BUFFER_USAGE_STATIC); + if (audioBuffer == NULL) { TRACELOG(LOG_WARNING, "SOUND: Failed to create buffer"); - return sound; // early return to avoid dereferencing the audioBuffer null pointer + return sound; // Early return to avoid dereferencing the audioBuffer null pointer } + audioBuffer->sizeInFrames = source.stream.buffer->sizeInFrames; audioBuffer->volume = source.stream.buffer->volume; audioBuffer->data = source.stream.buffer->data; From b4cb0f3e7db194338df175b063e03277bb5f28d8 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Jan 2024 22:33:56 +0100 Subject: [PATCH 120/790] REVIEWED: `LoadImageAnimFromMemory()` #3704 --- src/rtextures.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index a2bba1cf7..267173c06 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -470,7 +470,6 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat image.mipmaps = 1; image.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; - RL_FREE(fileData); RL_FREE(delays); // NOTE: Frames delays are discarded } } @@ -479,7 +478,7 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat #endif else { - image = LoadImageFromMemory(fileType,fileData,dataSize); + image = LoadImageFromMemory(fileType, fileData, dataSize); frameCount = 1; } From a4dc325a0c27557a41d581d42f314f6aba41d577 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 5 Jan 2024 22:51:46 +0100 Subject: [PATCH 121/790] Reviewed Makefile SDL2 expected include/lib paths #3705 --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 395d69fe5..526acaadf 100644 --- a/src/Makefile +++ b/src/Makefile @@ -98,8 +98,8 @@ USE_EXTERNAL_GLFW ?= FALSE # PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally # WARNING: Library is not included in raylib, it MUST be configured by users -SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2-2.28.4/include -SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2-2.28.4/lib/x64 +SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include +SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib # Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system) # NOTE: This variable is only used for PLATFORM_OS: LINUX From 721e2735470c4f8ad79cf6821977fac34947d40e Mon Sep 17 00:00:00 2001 From: Hongyu Ouyang <96765450+casavaca@users.noreply.github.com> Date: Sat, 6 Jan 2024 02:32:10 -0800 Subject: [PATCH 122/790] Fix a bug in examples/shapes/shapes_following_eyes (#3710) --- examples/shapes/shapes_following_eyes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/shapes/shapes_following_eyes.c b/examples/shapes/shapes_following_eyes.c index f7a7b8705..7e428f2c3 100644 --- a/examples/shapes/shapes_following_eyes.c +++ b/examples/shapes/shapes_following_eyes.c @@ -50,7 +50,7 @@ int main(void) irisRightPosition = GetMousePosition(); // Check not inside the left eye sclera - if (!CheckCollisionPointCircle(irisLeftPosition, scleraLeftPosition, scleraRadius - 20)) + if (!CheckCollisionPointCircle(irisLeftPosition, scleraLeftPosition, scleraRadius - irisRadius)) { dx = irisLeftPosition.x - scleraLeftPosition.x; dy = irisLeftPosition.y - scleraLeftPosition.y; @@ -65,7 +65,7 @@ int main(void) } // Check not inside the right eye sclera - if (!CheckCollisionPointCircle(irisRightPosition, scleraRightPosition, scleraRadius - 20)) + if (!CheckCollisionPointCircle(irisRightPosition, scleraRightPosition, scleraRadius - irisRadius)) { dx = irisRightPosition.x - scleraRightPosition.x; dy = irisRightPosition.y - scleraRightPosition.y; From be0ea89f830cce2fcb62acfedc69da4faca11b43 Mon Sep 17 00:00:00 2001 From: Alice Nyaa <62451415+Minnowo@users.noreply.github.com> Date: Sat, 6 Jan 2024 13:41:43 -0500 Subject: [PATCH 123/790] Simplified for loop for some image manip functions (#3712) --- src/rtextures.c | 136 +++++++++++++++++++++--------------------------- 1 file changed, 60 insertions(+), 76 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 267173c06..ee7d76936 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2649,21 +2649,17 @@ void ImageColorTint(Image *image, Color color) float cB = (float)color.b/255; float cA = (float)color.a/255; - for (int y = 0; y < image->height; y++) + for (int i = 0; i < image->width * image->height; i++) { - for (int x = 0; x < image->width; x++) - { - int index = y*image->width + x; - unsigned char r = (unsigned char)(((float)pixels[index].r/255*cR)*255.0f); - unsigned char g = (unsigned char)(((float)pixels[index].g/255*cG)*255.0f); - unsigned char b = (unsigned char)(((float)pixels[index].b/255*cB)*255.0f); - unsigned char a = (unsigned char)(((float)pixels[index].a/255*cA)*255.0f); + unsigned char r = (unsigned char)(((float)pixels[i].r/255*cR)*255.0f); + unsigned char g = (unsigned char)(((float)pixels[i].g/255*cG)*255.0f); + unsigned char b = (unsigned char)(((float)pixels[i].b/255*cB)*255.0f); + unsigned char a = (unsigned char)(((float)pixels[i].a/255*cA)*255.0f); - pixels[index].r = r; - pixels[index].g = g; - pixels[index].b = b; - pixels[index].a = a; - } + pixels[i].r = r; + pixels[i].g = g; + pixels[i].b = b; + pixels[i].a = a; } int format = image->format; @@ -2683,14 +2679,11 @@ void ImageColorInvert(Image *image) Color *pixels = LoadImageColors(*image); - for (int y = 0; y < image->height; y++) + for (int i = 0; i < image->width * image->height; i++) { - for (int x = 0; x < image->width; x++) - { - pixels[y*image->width + x].r = 255 - pixels[y*image->width + x].r; - pixels[y*image->width + x].g = 255 - pixels[y*image->width + x].g; - pixels[y*image->width + x].b = 255 - pixels[y*image->width + x].b; - } + pixels[i].r = 255 - pixels[i].r; + pixels[i].g = 255 - pixels[i].g; + pixels[i].b = 255 - pixels[i].b; } int format = image->format; @@ -2723,38 +2716,35 @@ void ImageColorContrast(Image *image, float contrast) Color *pixels = LoadImageColors(*image); - for (int y = 0; y < image->height; y++) + for (int i = 0; i < image->width * image->height; i++) { - for (int x = 0; x < image->width; x++) - { - float pR = (float)pixels[y*image->width + x].r/255.0f; - pR -= 0.5f; - pR *= contrast; - pR += 0.5f; - pR *= 255; - if (pR < 0) pR = 0; - if (pR > 255) pR = 255; + float pR = (float)pixels[i].r/255.0f; + pR -= 0.5f; + pR *= contrast; + pR += 0.5f; + pR *= 255; + if (pR < 0) pR = 0; + if (pR > 255) pR = 255; - float pG = (float)pixels[y*image->width + x].g/255.0f; - pG -= 0.5f; - pG *= contrast; - pG += 0.5f; - pG *= 255; - if (pG < 0) pG = 0; - if (pG > 255) pG = 255; + float pG = (float)pixels[i].g/255.0f; + pG -= 0.5f; + pG *= contrast; + pG += 0.5f; + pG *= 255; + if (pG < 0) pG = 0; + if (pG > 255) pG = 255; - float pB = (float)pixels[y*image->width + x].b/255.0f; - pB -= 0.5f; - pB *= contrast; - pB += 0.5f; - pB *= 255; - if (pB < 0) pB = 0; - if (pB > 255) pB = 255; + float pB = (float)pixels[i].b/255.0f; + pB -= 0.5f; + pB *= contrast; + pB += 0.5f; + pB *= 255; + if (pB < 0) pB = 0; + if (pB > 255) pB = 255; - pixels[y*image->width + x].r = (unsigned char)pR; - pixels[y*image->width + x].g = (unsigned char)pG; - pixels[y*image->width + x].b = (unsigned char)pB; - } + pixels[i].r = (unsigned char)pR; + pixels[i].g = (unsigned char)pG; + pixels[i].b = (unsigned char)pB; } int format = image->format; @@ -2778,27 +2768,24 @@ void ImageColorBrightness(Image *image, int brightness) Color *pixels = LoadImageColors(*image); - for (int y = 0; y < image->height; y++) + for (int i = 0; i < image->width * image->height; i++) { - for (int x = 0; x < image->width; x++) - { - int cR = pixels[y*image->width + x].r + brightness; - int cG = pixels[y*image->width + x].g + brightness; - int cB = pixels[y*image->width + x].b + brightness; + int cR = pixels[i].r + brightness; + int cG = pixels[i].g + brightness; + int cB = pixels[i].b + brightness; - if (cR < 0) cR = 1; - if (cR > 255) cR = 255; + if (cR < 0) cR = 1; + if (cR > 255) cR = 255; - if (cG < 0) cG = 1; - if (cG > 255) cG = 255; + if (cG < 0) cG = 1; + if (cG > 255) cG = 255; - if (cB < 0) cB = 1; - if (cB > 255) cB = 255; + if (cB < 0) cB = 1; + if (cB > 255) cB = 255; - pixels[y*image->width + x].r = (unsigned char)cR; - pixels[y*image->width + x].g = (unsigned char)cG; - pixels[y*image->width + x].b = (unsigned char)cB; - } + pixels[i].r = (unsigned char)cR; + pixels[i].g = (unsigned char)cG; + pixels[i].b = (unsigned char)cB; } int format = image->format; @@ -2818,20 +2805,17 @@ void ImageColorReplace(Image *image, Color color, Color replace) Color *pixels = LoadImageColors(*image); - for (int y = 0; y < image->height; y++) + for (int i = 0; i < image->width * image->height; i++) { - for (int x = 0; x < image->width; x++) + if ((pixels[i].r == color.r) && + (pixels[i].g == color.g) && + (pixels[i].b == color.b) && + (pixels[i].a == color.a)) { - if ((pixels[y*image->width + x].r == color.r) && - (pixels[y*image->width + x].g == color.g) && - (pixels[y*image->width + x].b == color.b) && - (pixels[y*image->width + x].a == color.a)) - { - pixels[y*image->width + x].r = replace.r; - pixels[y*image->width + x].g = replace.g; - pixels[y*image->width + x].b = replace.b; - pixels[y*image->width + x].a = replace.a; - } + pixels[i].r = replace.r; + pixels[i].g = replace.g; + pixels[i].b = replace.b; + pixels[i].a = replace.a; } } From be78255beac318e2dac68550202bb4ef8620f30c Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Jan 2024 01:13:44 +0100 Subject: [PATCH 124/790] Update codeql.yml: Exclude src/external files --- .github/workflows/codeql.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d886db7c0..f9932079f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -116,6 +116,7 @@ jobs: -**:cpp/unsigned-comparison-zero -**/cmake*/Modules/** -**/src/external/glfw/** + -**/src/external/** input: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif From 2c124c96dfdb1b81aa3fef099739442ce2d9fa9d Mon Sep 17 00:00:00 2001 From: Tim Romero Date: Wed, 10 Jan 2024 12:34:04 -0800 Subject: [PATCH 125/790] [rtext] Adjust font atlas area calculation so padding area is not underestimated at small font sizes. (#3719) --- src/rtext.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index a7c8a7260..270d0121b 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -725,7 +725,7 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp for (int i = 0; i < glyphCount; i++) { if (glyphs[i].image.width > maxGlyphWidth) maxGlyphWidth = glyphs[i].image.width; - totalWidth += glyphs[i].image.width + 4*padding; + totalWidth += glyphs[i].image.width + 2*padding; } //#define SUPPORT_FONT_ATLAS_SIZE_CONSERVATIVE @@ -743,8 +743,9 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp atlas.width = imageSize; // Atlas bitmap width atlas.height = imageSize; // Atlas bitmap height #else + int paddedFontSize = fontSize + 2*padding; // No need for a so-conservative atlas generation - float totalArea = totalWidth*fontSize*1.2f; + float totalArea = totalWidth*paddedFontSize*1.2f; float imageMinSize = sqrtf(totalArea); int imageSize = (int)powf(2, ceilf(logf(imageMinSize)/logf(2))); From 64ba5cb570a29f540c29165ff4bbdab16d422910 Mon Sep 17 00:00:00 2001 From: Hongyu Ouyang <96765450+casavaca@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:33:24 -0800 Subject: [PATCH 126/790] Update a comment (#3724) --- src/rcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index bae7bbb49..0769fe937 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -3265,7 +3265,7 @@ static void ScanDirectoryFilesRecursively(const char *basePath, FilePathList *fi #if defined(SUPPORT_AUTOMATION_EVENTS) // Automation event recording -// NOTE: Recording is by default done at EndDrawing(), after PollInputEvents() +// NOTE: Recording is by default done at EndDrawing(), before PollInputEvents() static void RecordAutomationEvent(void) { // Checking events in current frame and save them into currentEventList From 746f129bfe161c12bed294bd9d8514d8e46517ec Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Thu, 11 Jan 2024 19:37:42 +0100 Subject: [PATCH 127/790] Fix `ImageDrawRectangleRec` (#3721) --- src/rtextures.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index ee7d76936..738f593c7 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3562,8 +3562,8 @@ void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color) if ((dst->data == NULL) || (dst->width == 0) || (dst->height == 0)) return; // Security check to avoid drawing out of bounds in case of bad user data - if (rec.x < 0) { rec.width -= rec.x; rec.x = 0; } - if (rec.y < 0) { rec.height -= rec.y; rec.y = 0; } + if (rec.x < 0) { rec.width += rec.x; rec.x = 0; } + if (rec.y < 0) { rec.height += rec.y; rec.y = 0; } if (rec.width < 0) rec.width = 0; if (rec.height < 0) rec.height = 0; From a820c37ab284279230c51a57306e64ad70e7d344 Mon Sep 17 00:00:00 2001 From: Lieven Petersen <50841810+LievenPetersen@users.noreply.github.com> Date: Thu, 11 Jan 2024 19:48:14 +0100 Subject: [PATCH 128/790] implemented fill color TODO in ImageResizeCanvas() (#3720) --- src/rtextures.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index 738f593c7..cdec7a3a4 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1741,8 +1741,22 @@ void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, i int bytesPerPixel = GetPixelDataSize(1, 1, image->format); unsigned char *resizedData = (unsigned char *)RL_CALLOC(newWidth*newHeight*bytesPerPixel, 1); - // TODO: Fill resized canvas with fill color (must be formatted to image->format) + // Fill resized canvas with fill color + // Set first pixel with image->format + SetPixelColor(resizedData, fill, image->format); + // Fill remaining bytes of first row + for (int x = 1; x < newWidth; x++) + { + memcpy(resizedData + x*bytesPerPixel, resizedData, bytesPerPixel); + } + // Copy the first row into the other rows + for (int y = 1; y < newHeight; y++) + { + memcpy(resizedData + y*newWidth*bytesPerPixel, resizedData, newWidth*bytesPerPixel); + } + + // Copy old image to resized canvas int dstOffsetSize = ((int)dstPos.y*newWidth + (int)dstPos.x)*bytesPerPixel; for (int y = 0; y < (int)srcRec.height; y++) From 482722d881e98d84773af97838b6604331ae5538 Mon Sep 17 00:00:00 2001 From: freakmangd <53349189+freakmangd@users.noreply.github.com> Date: Thu, 11 Jan 2024 13:48:37 -0500 Subject: [PATCH 129/790] Update to latest zig 0.12.0dev while keeping 0.11.0 compatibility (#3715) * update build.zig for latest zig 0.12.0dev while still allowing 0.11.0 * update examples/build.zig and add nicer message for type mismatch --- build.zig | 2 +- examples/build.zig | 42 +++++++++++++++++++++++++++++++++++------- src/build.zig | 24 +++++++++++++++++++++--- 3 files changed, 57 insertions(+), 11 deletions(-) diff --git a/build.zig b/build.zig index f4d7d1590..fdcd2b0fc 100644 --- a/build.zig +++ b/build.zig @@ -1,7 +1,7 @@ const std = @import("std"); const raylib = @import("src/build.zig"); -// This has been tested to work with zig 0.11.0 +// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.2075+f5978181e pub fn build(b: *std.Build) void { raylib.build(b); } diff --git a/examples/build.zig b/examples/build.zig index 94ecc6783..deb381d53 100644 --- a/examples/build.zig +++ b/examples/build.zig @@ -1,14 +1,26 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested to work with zig 0.11.0 (67709b6, Aug 4 2023) -fn add_module(comptime module: []const u8, b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin.OptimizeMode) !*std.Build.Step { - if (target.getOsTag() == .emscripten) { +// This has been tested to work with zig 0.11.0 (67709b6, Aug 4 2023) and zig 0.12.0-dev.2075+f5978181e (Jan 8 2024) +// +// anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type +// was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows +// us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. +fn add_module(comptime module: []const u8, b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode) !*std.Build.Step { + if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { + @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'add_module', found '" ++ @typeName(@TypeOf(target)) ++ "'"); + } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { + @compileError("Expected 'std.zig.CrossTarget' for argument 2 'target' in 'add_module', found '" ++ @typeName(@TypeOf(target)) ++ "'"); + } + + if (getOsTagVersioned(target) == .emscripten) { @panic("Emscripten building via Zig unsupported"); } const all = b.step(module, "All " ++ module ++ " examples"); - const dir = try std.fs.cwd().openIterableDir(module, .{}); + var dir = try openIterableDirVersioned(std.fs.cwd(), module); + defer if (comptime builtin.zig_version.minor >= 12) dir.close(); + var iter = dir.iterate(); while (try iter.next()) |entry| { if (entry.kind != .file) continue; @@ -17,7 +29,7 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: std.zig.CrossT const path = try std.fs.path.join(b.allocator, &.{ module, entry.name }); // zig's mingw headers do not include pthread.h - if (std.mem.eql(u8, "core_loading_thread", name) and target.getOsTag() == .windows) continue; + if (std.mem.eql(u8, "core_loading_thread", name) and getOsTagVersioned(target) == .windows) continue; const exe = b.addExecutable(.{ .name = name, @@ -26,7 +38,7 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: std.zig.CrossT }); exe.addCSourceFile(.{ .file = .{ .path = path }, .flags = &.{} }); exe.linkLibC(); - exe.addObjectFile(switch (target.getOsTag()) { + exe.addObjectFile(switch (getOsTagVersioned(target)) { .windows => .{ .path = "../zig-out/lib/raylib.lib" }, .linux => .{ .path = "../zig-out/lib/libraylib.a" }, .macos => .{ .path = "../zig-out/lib/libraylib.a" }, @@ -38,7 +50,7 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: std.zig.CrossT exe.addIncludePath(.{ .path = "../src/external" }); exe.addIncludePath(.{ .path = "../src/external/glfw/include" }); - switch (target.getOsTag()) { + switch (getOsTagVersioned(target)) { .windows => { exe.linkSystemLibrary("winmm"); exe.linkSystemLibrary("gdi32"); @@ -106,3 +118,19 @@ pub fn build(b: *std.Build) !void { all.dependOn(try add_module("text", b, target, optimize)); all.dependOn(try add_module("textures", b, target, optimize)); } + +fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { + if (comptime builtin.zig_version.minor >= 12) { + return target.result.os.tag; + } else { + return target.getOsTag(); + } +} + +fn openIterableDirVersioned(dir: std.fs.Dir, path: []const u8) !(if (builtin.zig_version.minor >= 12) std.fs.Dir else std.fs.IterableDir) { + if (comptime builtin.zig_version.minor >= 12) { + return dir.openDir(path, .{ .iterate = true }); + } else { + return dir.openIterableDir(path, .{}); + } +} diff --git a/src/build.zig b/src/build.zig index a574ad632..e0fc53fe6 100644 --- a/src/build.zig +++ b/src/build.zig @@ -1,8 +1,18 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.1390+94cee4fb2 -pub fn addRaylib(b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin.OptimizeMode, options: Options) *std.Build.CompileStep { +// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.2075+f5978181e +// +// anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type +// was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows +// us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. +pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) *std.Build.Step.Compile { + if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { + @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); + } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { + @compileError("Expected 'std.zig.CrossTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); + } + const raylib_flags = &[_][]const u8{ "-std=gnu99", "-D_GNU_SOURCE", @@ -68,7 +78,7 @@ pub fn addRaylib(b: *std.Build, target: std.zig.CrossTarget, optimize: std.built raylib.addIncludePath(.{ .path = srcdir ++ "/../../raygui/src" }); } - switch (target.getOsTag()) { + switch (getOsTagVersioned(target)) { .windows => { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rglfw.c", @@ -219,6 +229,14 @@ const srcdir = struct { } }.getSrcDir(); +fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { + if (comptime builtin.zig_version.minor >= 12) { + return target.result.os.tag; + } else { + return target.getOsTag(); + } +} + fn addCSourceFilesVersioned(exe: *std.Build.Step.Compile, files: []const []const u8, flags: []const []const u8) void { if (comptime builtin.zig_version.minor >= 12) { exe.addCSourceFiles(.{ From 9d628d1d499f8ad9c0e6fbed69914cecb611d6cd Mon Sep 17 00:00:00 2001 From: kolunmi <113054217+kolunmi@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:49:25 -0700 Subject: [PATCH 130/790] Enable animation names for the m3d model format. (#3714) --- src/rmodels.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 417142242..ede87a1b3 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -6050,7 +6050,8 @@ static ModelAnimation *LoadModelAnimationsM3D(const char *fileName, int *animCou animations[a].boneCount = m3d->numbone + 1; animations[a].bones = RL_MALLOC((m3d->numbone + 1)*sizeof(BoneInfo)); animations[a].framePoses = RL_MALLOC(animations[a].frameCount*sizeof(Transform *)); - // strncpy(animations[a].name, m3d->action[a].name, sizeof(animations[a].name)); + strncpy(animations[a].name, m3d->action[a].name, sizeof(animations[a].name)); + animations[a].name[sizeof(animations[a].name) - 1] = '\0'; TRACELOG(LOG_INFO, "MODEL: [%s] animation #%i: %i msec, %i frames", fileName, a, m3d->action[a].durationmsec, animations[a].frameCount); for (i = 0; i < (int)m3d->numbone; i++) From b7141d556ed2d99c19063ec9f4bd6bb389498810 Mon Sep 17 00:00:00 2001 From: Andrew Lee <32912555+candrewlee14@users.noreply.github.com> Date: Sat, 13 Jan 2024 02:46:53 -0700 Subject: [PATCH 131/790] Add shared library build option for build.zig and update to zig 0.12.0-dev.2139 (#3727) * update build.zig to 0.12.0-dev.2139 and add shared lib option * add no-sanitize workarounds --- build.zig | 4 +-- src/build.zig | 71 +++++++++++++++++++++++++++++---------------------- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/build.zig b/build.zig index fdcd2b0fc..1cf9e9503 100644 --- a/build.zig +++ b/build.zig @@ -2,6 +2,6 @@ const std = @import("std"); const raylib = @import("src/build.zig"); // This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.2075+f5978181e -pub fn build(b: *std.Build) void { - raylib.build(b); +pub fn build(b: *std.Build) !void { + try raylib.build(b); } diff --git a/src/build.zig b/src/build.zig index e0fc53fe6..827788efc 100644 --- a/src/build.zig +++ b/src/build.zig @@ -6,24 +6,41 @@ const builtin = @import("builtin"); // anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type // was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows // us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. -pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) *std.Build.Step.Compile { +pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { @compileError("Expected 'std.zig.CrossTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); } - const raylib_flags = &[_][]const u8{ + const shared_flags = &[_][]const u8{ + "-fPIC", + "-DBUILD_LIBTYPE_SHARED", + }; + var raylib_flags_arr = std.ArrayList([]const u8).init(std.heap.page_allocator); + defer raylib_flags_arr.deinit(); + try raylib_flags_arr.appendSlice(&[_][]const u8{ "-std=gnu99", "-D_GNU_SOURCE", "-DGL_SILENCE_DEPRECATION=199309L", - }; - - const raylib = b.addStaticLibrary(.{ - .name = "raylib", - .target = target, - .optimize = optimize, + "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 }); + if (options.shared) { + try raylib_flags_arr.appendSlice(shared_flags); + } + + const raylib = if (options.shared) + b.addSharedLibrary(.{ + .name = "raylib", + .target = target, + .optimize = optimize, + }) + else + b.addStaticLibrary(.{ + .name = "raylib", + .target = target, + .optimize = optimize, + }); raylib.linkLibC(); // No GLFW required on PLATFORM_DRM @@ -34,38 +51,32 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rcore.c", srcdir ++ "/utils.c", - }, raylib_flags); + }, raylib_flags_arr.items); if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/raudio.c", - }, &[_][]const u8{ - "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 - } ++ raylib_flags); + }, raylib_flags_arr.items); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rmodels.c", - }, &[_][]const u8{ - "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/1891 - } ++ raylib_flags); + }, raylib_flags_arr.items); } if (options.rshapes) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rshapes.c", - }, raylib_flags); + }, raylib_flags_arr.items); } if (options.rtext) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rtext.c", - }, raylib_flags); + }, raylib_flags_arr.items); } if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rtextures.c", - }, &[_][]const u8{ - "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 - } ++ raylib_flags); + }, raylib_flags_arr.items); } var gen_step = b.addWriteFiles(); @@ -73,7 +84,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM if (options.raygui) { const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); - raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags }); + raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); raylib.addIncludePath(.{ .path = srcdir }); raylib.addIncludePath(.{ .path = srcdir ++ "/../../raygui/src" }); } @@ -82,7 +93,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .windows => { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rglfw.c", - }, raylib_flags); + }, raylib_flags_arr.items); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); raylib.linkSystemLibrary("opengl32"); @@ -94,7 +105,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM if (!options.platform_drm) { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rglfw.c", - }, raylib_flags); + }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("dl"); @@ -124,7 +135,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .freebsd, .openbsd, .netbsd, .dragonfly => { addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rglfw.c", - }, raylib_flags); + }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("dl"); @@ -140,12 +151,10 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .macos => { // On macos rglfw.c include Objective-C files. - const raylib_flags_extra_macos = &[_][]const u8{ - "-ObjC", - }; + try raylib_flags_arr.append("-ObjC"); addCSourceFilesVersioned(raylib, &.{ srcdir ++ "/rglfw.c", - }, raylib_flags ++ raylib_flags_extra_macos); + }, raylib_flags_arr.items); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); raylib.linkFramework("CoreGraphics"); @@ -186,9 +195,10 @@ pub const Options = struct { rtextures: bool = true, raygui: bool = false, platform_drm: bool = false, + shared: bool = false, }; -pub fn build(b: *std.Build) void { +pub fn build(b: *std.Build) !void { // Standard target options allows the person running `zig build` to choose // what target to build for. Here we do not override the defaults, which // means any target is allowed, and the default is native. Other options @@ -208,9 +218,10 @@ pub fn build(b: *std.Build) void { .rtextures = b.option(bool, "rtextures", "Compile with textures support") orelse defaults.rtextures, .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, .raygui = b.option(bool, "raygui", "Compile with raygui support") orelse defaults.raygui, + .shared = b.option(bool, "shared", "Compile as shared library") orelse defaults.shared, }; - const lib = addRaylib(b, target, optimize, options); + const lib = try addRaylib(b, target, optimize, options); lib.installHeader("src/raylib.h", "raylib.h"); lib.installHeader("src/raymath.h", "raymath.h"); From 520c8cffb2f1b5e7d5574e6be6e502489e75ff55 Mon Sep 17 00:00:00 2001 From: Karl Zylinski Date: Sat, 13 Jan 2024 10:49:04 +0100 Subject: [PATCH 132/790] Simplified GetWindowScaleDPI() so it does not fetch the wrong DPI scale some times (Windows looks at center of window while the old raylib code looked on upper left corner of window, now it just uses the glfw function to fetch the window's current scaling). Also introduced a callback to update the CORE.Window.screenScaling when the content scaling updates, previously scaling did not work correctly on systems with multiple monitors that have different DPI scaling. (#3701) --- src/platforms/rcore_desktop.c | 38 ++++++++++++----------------------- src/platforms/rcore_web.c | 21 ++++++++++++++----- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 7dc2048b9..4c98fcdf6 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -123,6 +123,7 @@ static void WindowIconifyCallback(GLFWwindow *window, int iconified); static void WindowMaximizeCallback(GLFWwindow* window, int maximized); // GLFW3 Window Maximize Callback, runs when window is maximized static void WindowFocusCallback(GLFWwindow *window, int focused); // GLFW3 WindowFocus Callback, runs when window get/lose focus static void WindowDropCallback(GLFWwindow *window, int count, const char **paths); // GLFW3 Window Drop Callback, runs when drop files into window +static void WindowContentScaleCallback(GLFWwindow *window, float scalex, float scaley); // GLFW3 Window Content Scale Callback, runs when window changes scale // Input callbacks events static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods); // GLFW3 Keyboard Callback, runs on key pressed @@ -941,31 +942,8 @@ Vector2 GetWindowPosition(void) // Get window scale DPI factor for current monitor Vector2 GetWindowScaleDPI(void) { - float xdpi = 1.0; - float ydpi = 1.0; - Vector2 scale = { 1.0f, 1.0f }; - Vector2 windowPos = GetWindowPosition(); - - int monitorCount = 0; - GLFWmonitor **monitors = glfwGetMonitors(&monitorCount); - - // Check window monitor - for (int i = 0; i < monitorCount; i++) - { - glfwGetMonitorContentScale(monitors[i], &xdpi, &ydpi); - - int xpos, ypos, width, height; - glfwGetMonitorWorkarea(monitors[i], &xpos, &ypos, &width, &height); - - if ((windowPos.x >= xpos) && (windowPos.x < xpos + width) && - (windowPos.y >= ypos) && (windowPos.y < ypos + height)) - { - scale.x = xdpi; - scale.y = ydpi; - break; - } - } - + Vector2 scale = {0}; + glfwGetWindowContentScale(platform.handle, &scale.x, &scale.y); return scale; } @@ -1553,6 +1531,11 @@ int InitPlatform(void) glfwSetWindowFocusCallback(platform.handle, WindowFocusCallback); glfwSetDropCallback(platform.handle, WindowDropCallback); + if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) + { + glfwSetWindowContentScaleCallback(platform.handle, WindowContentScaleCallback); + } + // Set input callback events glfwSetKeyCallback(platform.handle, KeyCallback); glfwSetCharCallback(platform.handle, CharCallback); @@ -1638,6 +1621,11 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height) // NOTE: Postprocessing texture is not scaled to new size } +static void WindowContentScaleCallback(GLFWwindow *window, float scalex, float scaley) +{ + CORE.Window.screenScale = MatrixScale(scalex, scaley, 1.0f); +} + // GLFW3 WindowIconify Callback, runs when window is minimized/restored static void WindowIconifyCallback(GLFWwindow *window, int iconified) { diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index a7f424383..8c16ff320 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -110,11 +110,12 @@ void ClosePlatform(void); // Close platform static void ErrorCallback(int error, const char *description); // GLFW3 Error Callback, runs on GLFW3 error // Window callbacks events -static void WindowSizeCallback(GLFWwindow *window, int width, int height); // GLFW3 WindowSize Callback, runs when window is resized -static void WindowIconifyCallback(GLFWwindow *window, int iconified); // GLFW3 WindowIconify Callback, runs when window is minimized/restored -//static void WindowMaximizeCallback(GLFWwindow *window, int maximized); // GLFW3 Window Maximize Callback, runs when window is maximized -static void WindowFocusCallback(GLFWwindow *window, int focused); // GLFW3 WindowFocus Callback, runs when window get/lose focus -static void WindowDropCallback(GLFWwindow *window, int count, const char **paths); // GLFW3 Window Drop Callback, runs when drop files into window +static void WindowSizeCallback(GLFWwindow *window, int width, int height); // GLFW3 WindowSize Callback, runs when window is resized +static void WindowIconifyCallback(GLFWwindow *window, int iconified); // GLFW3 WindowIconify Callback, runs when window is minimized/restored +//static void WindowMaximizeCallback(GLFWwindow *window, int maximized); // GLFW3 Window Maximize Callback, runs when window is maximized +static void WindowFocusCallback(GLFWwindow *window, int focused); // GLFW3 WindowFocus Callback, runs when window get/lose focus +static void WindowDropCallback(GLFWwindow *window, int count, const char **paths); // GLFW3 Window Drop Callback, runs when drop files into window +static void WindowContentScaleCallback(GLFWwindow *window, float scalex, float scaley); // GLFW3 Window Content Scale Callback, runs when window changes scale // Input callbacks events static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods); // GLFW3 Keyboard Callback, runs on key pressed @@ -1190,6 +1191,11 @@ int InitPlatform(void) glfwSetWindowFocusCallback(platform.handle, WindowFocusCallback); glfwSetDropCallback(platform.handle, WindowDropCallback); + if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) + { + glfwSetWindowContentScaleCallback(platform.handle, WindowContentScaleCallback); + } + // Set input callback events glfwSetKeyCallback(platform.handle, KeyCallback); glfwSetCharCallback(platform.handle, CharCallback); @@ -1327,6 +1333,11 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height) // NOTE: Postprocessing texture is not scaled to new size } +static void WindowContentScaleCallback(GLFWwindow *window, float scalex, float scaley) +{ + CORE.Window.screenScale = MatrixScale(scalex, scaley, 1.0f); +} + // GLFW3 WindowIconify Callback, runs when window is minimized/restored static void WindowIconifyCallback(GLFWwindow *window, int iconified) { From cb2572fe07ea49b951198a0adc189a8e903244ca Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 13 Jan 2024 16:57:25 +0100 Subject: [PATCH 133/790] Avoid asserts because could crash some decompressions https://github.com/raysan5/raygui/issues/364 --- src/external/sinfl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/external/sinfl.h b/src/external/sinfl.h index 16589c173..1f6bf6f02 100644 --- a/src/external/sinfl.h +++ b/src/external/sinfl.h @@ -231,13 +231,13 @@ sinfl_refill(struct sinfl *s) { } static int sinfl_peek(struct sinfl *s, int cnt) { - assert(cnt >= 0 && cnt <= 56); - assert(cnt <= s->bitcnt); + //assert(cnt >= 0 && cnt <= 56); // @raysan5: commented to avoid crash on decompression + //assert(cnt <= s->bitcnt); return s->bitbuf & ((1ull << cnt) - 1); } static void sinfl_eat(struct sinfl *s, int cnt) { - assert(cnt <= s->bitcnt); + //assert(cnt <= s->bitcnt); // @raysan5: commented s->bitbuf >>= cnt; s->bitcnt -= cnt; } From 02133092f899bf17a0ad24fbde9a8775837ccac8 Mon Sep 17 00:00:00 2001 From: Tobias Mock Date: Sat, 13 Jan 2024 22:46:33 +0000 Subject: [PATCH 134/790] Update OCaml bindings version (#3730) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index ab0d77896..b5753a9ba 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -52,7 +52,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | node-raylib | 4.5 | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib | | raylib-odin | 4.5 | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | | raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings | -| raylib-ocaml | 4.5 | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | +| raylib-ocaml | **5.0** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | | TurboRaylib | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | | Ray4Laz | **5.0** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz | | Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal | From d2b1256e5c3567484486ad70cc2bb69495abfbf4 Mon Sep 17 00:00:00 2001 From: Blockguy24 <21016331+Blockguy24@users.noreply.github.com> Date: Sun, 14 Jan 2024 21:21:29 +1100 Subject: [PATCH 135/790] Fix bounds check for `ImageDrawRectangleRec` (#3732) --- src/rtextures.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index cdec7a3a4..fb7261378 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3586,8 +3586,8 @@ void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color) if ((rec.y + rec.height) >= dst->height) rec.height = dst->height - rec.y; // Check if the rect is even inside the image - if ((rec.x > dst->width) || (rec.y > dst->height)) return; - if (((rec.x + rec.width) < 0) || (rec.y + rec.height < 0)) return; + if ((rec.x >= dst->width) || (rec.y >= dst->height)) return; + if (((rec.x + rec.width) <= 0) || (rec.y + rec.height <= 0)) return; int sy = (int)rec.y; int sx = (int)rec.x; From c57b8d5a6abbf210fece6b44dcdadd112a7e072e Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 15 Jan 2024 20:32:46 +0100 Subject: [PATCH 136/790] REVIEWED: `ImageKernelConvolution()`, formating and warnings --- src/rtextures.c | 92 +++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 52 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index fb7261378..ed296f299 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2135,11 +2135,12 @@ void ImageBlurGaussian(Image *image, int blurSize) { } // The kernel matrix is assumed to be square. Only supply the width of the kernel. -void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ - +void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) +{ if ((image->data == NULL) || (image->width == 0) || (image->height == 0) || kernel == NULL) return; int kernelWidth = (int)sqrtf((float)kernelSize); + if (kernelWidth*kernelWidth != kernelSize) { TRACELOG(LOG_WARNING, "IMAGE: Convolution kernel must be square to be applied"); @@ -2152,7 +2153,8 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ Vector4 *temp = RL_MALLOC(kernelSize*sizeof(Vector4)); - for(int i = 0; i < kernelSize; i++){ + for (int i = 0; i < kernelSize; i++) + { temp[i].x = 0.0f; temp[i].y = 0.0f; temp[i].z = 0.0f; @@ -2164,44 +2166,49 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ float bRes = 0.0f; float aRes = 0.0f; - - int startRange, endRange; - if(kernelWidth % 2 == 0) + int startRange = 0, endRange = 0; + + if (kernelWidth%2 == 0) { startRange = -kernelWidth/2; endRange = kernelWidth/2; - } else + } + else { startRange = -kernelWidth/2; - endRange = kernelWidth/2+1; + endRange = kernelWidth/2 + 1; } + for(int x = 0; x < image->height; x++) { - for(int y = 0; y < image->width; y++) + for (int y = 0; y < image->width; y++) { - - for(int xk = startRange; xk < endRange; xk++) + for (int xk = startRange; xk < endRange; xk++) { - for(int yk = startRange; yk < endRange; yk++) + for (int yk = startRange; yk < endRange; yk++) { int xkabs = xk + kernelWidth/2; int ykabs = yk + kernelWidth/2; - size_t imgindex = image->width * (x+xk) + (y+yk); - if(imgindex < 0 || imgindex >= image->width * image->height){ + unsigned int imgindex = image->width*(x + xk) + (y + yk); + + if (imgindex >= image->width*image->height) + { temp[kernelWidth * xkabs + ykabs].x = 0.0f; temp[kernelWidth * xkabs + ykabs].y = 0.0f; temp[kernelWidth * xkabs + ykabs].z = 0.0f; temp[kernelWidth * xkabs + ykabs].w = 0.0f; - } else { - temp[kernelWidth * xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f * kernel[kernelWidth * xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].y = ((float)pixels[imgindex].g)/255.0f * kernel[kernelWidth * xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].z = ((float)pixels[imgindex].b)/255.0f * kernel[kernelWidth * xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].w = ((float)pixels[imgindex].a)/255.0f * kernel[kernelWidth * xkabs + ykabs]; + } + else + { + temp[kernelWidth * xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].y = ((float)pixels[imgindex].g)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].z = ((float)pixels[imgindex].b)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth * xkabs + ykabs].w = ((float)pixels[imgindex].a)/255.0f*kernel[kernelWidth*xkabs + ykabs]; } } } - for(int i = 0; i < kernelSize; i++) + for (int i = 0; i < kernelSize; i++) { rRes += temp[i].x; gRes += temp[i].y; @@ -2209,43 +2216,25 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ aRes += temp[i].w; } - if(rRes < 0.0f) - { - rRes = 0.0f; - } - if(gRes < 0.0f) - { - gRes = 0.0f; - } - if(bRes < 0.0f) - { - bRes = 0.0f; - } + if (rRes < 0.0f) rRes = 0.0f; + if (gRes < 0.0f) gRes = 0.0f; + if (bRes < 0.0f) bRes = 0.0f; - if(rRes > 1.0f) - { - rRes = 1.0f; - } - if(gRes > 1.0f) - { - gRes = 1.0f; - } - if(bRes > 1.0f) - { - bRes = 1.0f; - } + if (rRes > 1.0f) rRes = 1.0f; + if (gRes > 1.0f) gRes = 1.0f; + if (bRes > 1.0f) bRes = 1.0f; - imageCopy2[image->width * (x) + (y)].x = rRes; - imageCopy2[image->width * (x) + (y)].y = gRes; - imageCopy2[image->width * (x) + (y)].z = bRes; - imageCopy2[image->width * (x) + (y)].w = aRes; + imageCopy2[image->width*x + y].x = rRes; + imageCopy2[image->width*x + y].y = gRes; + imageCopy2[image->width*x + y].z = bRes; + imageCopy2[image->width*x + y].w = aRes; rRes = 0.0f; gRes = 0.0f; bRes = 0.0f; aRes = 0.0f; - for(int i = 0; i < kernelSize; i++) + for (int i = 0; i < kernelSize; i++) { temp[i].x = 0.0f; temp[i].y = 0.0f; @@ -2255,17 +2244,16 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){ } } - for (int i = 0; i < (image->width) * (image->height); i++) + for (int i = 0; i < (image->width*image->height); i++) { float alpha = (float)imageCopy2[i].w; + pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f); pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f); pixels[i].b = (unsigned char)((imageCopy2[i].z)*255.0f); pixels[i].a = (unsigned char)((alpha)*255.0f); - // printf("pixels[%d] = %d", i, pixels[i].r); } - int format = image->format; RL_FREE(image->data); RL_FREE(imageCopy2); From b600786c525caa667646c5d271c65a8eb007f168 Mon Sep 17 00:00:00 2001 From: Anand Swaroop <72886192+Anut-py@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:22:10 -0500 Subject: [PATCH 137/790] Update BINDINGS.md (#3739) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index b5753a9ba..234ad323a 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -31,7 +31,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | | raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile | | gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | **???** | https://github.com/ArnautDaniel/gforth-raylib | -| h-raylib | 4.6-dev | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | +| h-raylib | **5.1-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | | raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx | | hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib | | jaylib | 5.0 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib | From 0a8165c0acc85bab1624b94ee28ab67535aedbdd Mon Sep 17 00:00:00 2001 From: Hongyu Ouyang <96765450+casavaca@users.noreply.github.com> Date: Sat, 20 Jan 2024 12:05:30 -0800 Subject: [PATCH 138/790] Make raylib/raygui work better on touchscreen (#3728) * Fix that touch doesn't work for click/drag/raygui * Add comments * comments update --- src/platforms/rcore_web.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 8c16ff320..a13f69908 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -1646,6 +1646,13 @@ static EM_BOOL EmscriptenTouchCallback(int eventType, const EmscriptenTouchEvent else if (eventType == EMSCRIPTEN_EVENT_TOUCHEND) CORE.Input.Touch.currentTouchState[i] = 0; } + // Update mouse position if we detect a single touch. + if (CORE.Input.Touch.pointCount == 1) + { + CORE.Input.Mouse.currentPosition.x = CORE.Input.Touch.position[0].x; + CORE.Input.Mouse.currentPosition.y = CORE.Input.Touch.position[0].y; + } + #if defined(SUPPORT_GESTURES_SYSTEM) GestureEvent gestureEvent = {0}; From 192f7f1b291d21fbe4bdd2c373e6cf94e69272bb Mon Sep 17 00:00:00 2001 From: John Date: Sat, 20 Jan 2024 21:08:19 +0100 Subject: [PATCH 139/790] [rcore rglfw] Feature Test Macros before include (#3737) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move/Add Feature Test Macros before any includes. See: [GNU Feature Test Macros](https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html) > You should define these macros by using ‘#define’ preprocessor directives at the top of your source code files. These directives must come before any #include of a system header file. It is best to make them the very first thing in the file, preceded only by comments. Alternative changes to rcore would be to change _POSIX_C_SOURCE to 200809L, which removes the need to define _XOPEN_SOURCE >= 500. These changes allow for compilation with -std=c* (such as -std=c99) without adding -D macros to the build step. Co-authored-by: JayLCypher --- src/rcore.c | 18 +++++++++++++----- src/rglfw.c | 12 ++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 0769fe937..bb06e9bee 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -82,6 +82,19 @@ * **********************************************************************************************/ +//---------------------------------------------------------------------------------- +// Feature Test Macros required for this module +//---------------------------------------------------------------------------------- +#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_XOPEN_SOURCE < 500) + #undef _XOPEN_SOURCE + #define _XOPEN_SOURCE 500 // Required for: readlink if compiled with c99 without gnu ext. +#endif + +#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_POSIX_C_SOURCE < 199309L) + #undef _POSIX_C_SOURCE + #define _POSIX_C_SOURCE 199309L // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. +#endif + #include "raylib.h" // Declares module functions // Check if config flags have been externally provided on compilation line @@ -235,11 +248,6 @@ __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigne #define FLAG_TOGGLE(n, f) ((n) ^= (f)) #define FLAG_CHECK(n, f) ((n) & (f)) -#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_POSIX_C_SOURCE < 199309L) - #undef _POSIX_C_SOURCE - #define _POSIX_C_SOURCE 199309L // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. -#endif - //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- diff --git a/src/rglfw.c b/src/rglfw.c index 10ed0954b..0e378b5bd 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -37,6 +37,18 @@ // _GLFW_OSMESA to use the OSMesa API (headless and non-interactive) // _GLFW_MIR experimental, not supported at this moment +//---------------------------------------------------------------------------------- +// Feature Test Macros required for this module +//---------------------------------------------------------------------------------- +#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_POSIX_C_SOURCE < 199309L) + #undef _POSIX_C_SOURCE + #define _POSIX_C_SOURCE 199309L // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. +#endif +#if (defined(__linux__) || defined(PLATFORM_WEB)) && !defined(_GNU_SOURCE) + #undef _GNU_SOURCE + #define _GNU_SOURCE // Required for: ppoll if compiled with c99 without gnu ext. +#endif + #if defined(_WIN32) || defined(__CYGWIN__) #define _GLFW_WIN32 #endif From 5c25913e095fcf38ecf76abc37917544584c58d3 Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Sat, 20 Jan 2024 17:22:33 -0300 Subject: [PATCH 140/790] Fix Android keycode translation and duplicate key constants (#3733) * Fix Android keycode translation * Simplify code a bit * Rename KEYCODE_MAPPED_NUM to KEYCODE_MAP_SIZE * Fix KEY_R and KEY_MENU duplicate * Update raylib_api.* by CI --------- Co-authored-by: github-actions[bot] --- parser/output/raylib_api.json | 2 +- parser/output/raylib_api.lua | 2 +- parser/output/raylib_api.txt | 2 +- parser/output/raylib_api.xml | 2 +- src/platforms/rcore_android.c | 189 ++++++++++++++++++++++++++++++++-- src/raylib.h | 2 +- 6 files changed, 186 insertions(+), 13 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index c64a080f1..dd305c5c6 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -2069,7 +2069,7 @@ }, { "name": "KEY_MENU", - "value": 82, + "value": 5, "description": "Key: Android menu button" }, { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 091b2a0ad..d4a8aeed8 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -2069,7 +2069,7 @@ return { }, { name = "KEY_MENU", - value = 82, + value = 5, description = "Key: Android menu button" }, { diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index d3370dca6..45faa3eb1 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -717,7 +717,7 @@ Enum 03: KeyboardKey (110 values) Value[KEY_KP_ENTER]: 335 Value[KEY_KP_EQUAL]: 336 Value[KEY_BACK]: 4 - Value[KEY_MENU]: 82 + Value[KEY_MENU]: 5 Value[KEY_VOLUME_UP]: 24 Value[KEY_VOLUME_DOWN]: 25 Enum 04: MouseButton (7 values) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 4a483b36e..2feb6e18b 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -437,7 +437,7 @@ - + diff --git a/src/platforms/rcore_android.c b/src/platforms/rcore_android.c index fc1728166..cc124d952 100644 --- a/src/platforms/rcore_android.c +++ b/src/platforms/rcore_android.c @@ -77,6 +77,175 @@ extern CoreData CORE; // Global CORE state context static PlatformData platform = { 0 }; // Platform specific data +//---------------------------------------------------------------------------------- +// Local Variables Definition +//---------------------------------------------------------------------------------- +#define KEYCODE_MAP_SIZE 162 +static const KeyboardKey KeycodeMap[KEYCODE_MAP_SIZE] = { + KEY_NULL, // AKEYCODE_UNKNOWN + 0, // AKEYCODE_SOFT_LEFT + 0, // AKEYCODE_SOFT_RIGHT + 0, // AKEYCODE_HOME + KEY_BACK, // AKEYCODE_BACK + 0, // AKEYCODE_CALL + 0, // AKEYCODE_ENDCALL + KEY_ZERO, // AKEYCODE_0 + KEY_ONE, // AKEYCODE_1 + KEY_TWO, // AKEYCODE_2 + KEY_THREE, // AKEYCODE_3 + KEY_FOUR, // AKEYCODE_4 + KEY_FIVE, // AKEYCODE_5 + KEY_SIX, // AKEYCODE_6 + KEY_SEVEN, // AKEYCODE_7 + KEY_EIGHT, // AKEYCODE_8 + KEY_NINE, // AKEYCODE_9 + 0, // AKEYCODE_STAR + 0, // AKEYCODE_POUND + KEY_UP, // AKEYCODE_DPAD_UP + KEY_DOWN, // AKEYCODE_DPAD_DOWN + KEY_LEFT, // AKEYCODE_DPAD_LEFT + KEY_RIGHT, // AKEYCODE_DPAD_RIGHT + 0, // AKEYCODE_DPAD_CENTER + KEY_VOLUME_UP, // AKEYCODE_VOLUME_UP + KEY_VOLUME_DOWN, // AKEYCODE_VOLUME_DOWN + 0, // AKEYCODE_POWER + 0, // AKEYCODE_CAMERA + 0, // AKEYCODE_CLEAR + KEY_A, // AKEYCODE_A + KEY_B, // AKEYCODE_B + KEY_C, // AKEYCODE_C + KEY_D, // AKEYCODE_D + KEY_E, // AKEYCODE_E + KEY_F, // AKEYCODE_F + KEY_G, // AKEYCODE_G + KEY_H, // AKEYCODE_H + KEY_I, // AKEYCODE_I + KEY_J, // AKEYCODE_J + KEY_K, // AKEYCODE_K + KEY_L, // AKEYCODE_L + KEY_M, // AKEYCODE_M + KEY_N, // AKEYCODE_N + KEY_O, // AKEYCODE_O + KEY_P, // AKEYCODE_P + KEY_Q, // AKEYCODE_Q + KEY_R, // AKEYCODE_R + KEY_S, // AKEYCODE_S + KEY_T, // AKEYCODE_T + KEY_U, // AKEYCODE_U + KEY_V, // AKEYCODE_V + KEY_W, // AKEYCODE_W + KEY_X, // AKEYCODE_X + KEY_Y, // AKEYCODE_Y + KEY_Z, // AKEYCODE_Z + KEY_COMMA, // AKEYCODE_COMMA + KEY_PERIOD, // AKEYCODE_PERIOD + KEY_LEFT_ALT, // AKEYCODE_ALT_LEFT + KEY_RIGHT_ALT, // AKEYCODE_ALT_RIGHT + KEY_LEFT_SHIFT, // AKEYCODE_SHIFT_LEFT + KEY_RIGHT_SHIFT, // AKEYCODE_SHIFT_RIGHT + KEY_TAB, // AKEYCODE_TAB + KEY_SPACE, // AKEYCODE_SPACE + 0, // AKEYCODE_SYM + 0, // AKEYCODE_EXPLORER + 0, // AKEYCODE_ENVELOPE + KEY_ENTER, // AKEYCODE_ENTER + KEY_BACKSPACE, // AKEYCODE_DEL + KEY_GRAVE, // AKEYCODE_GRAVE + KEY_MINUS, // AKEYCODE_MINUS + KEY_EQUAL, // AKEYCODE_EQUALS + KEY_LEFT_BRACKET, // AKEYCODE_LEFT_BRACKET + KEY_RIGHT_BRACKET, // AKEYCODE_RIGHT_BRACKET + KEY_BACKSLASH, // AKEYCODE_BACKSLASH + KEY_SEMICOLON, // AKEYCODE_SEMICOLON + KEY_APOSTROPHE, // AKEYCODE_APOSTROPHE + KEY_SLASH, // AKEYCODE_SLASH + 0, // AKEYCODE_AT + 0, // AKEYCODE_NUM + 0, // AKEYCODE_HEADSETHOOK + 0, // AKEYCODE_FOCUS + 0, // AKEYCODE_PLUS + KEY_MENU, // AKEYCODE_MENU + 0, // AKEYCODE_NOTIFICATION + 0, // AKEYCODE_SEARCH + 0, // AKEYCODE_MEDIA_PLAY_PAUSE + 0, // AKEYCODE_MEDIA_STOP + 0, // AKEYCODE_MEDIA_NEXT + 0, // AKEYCODE_MEDIA_PREVIOUS + 0, // AKEYCODE_MEDIA_REWIND + 0, // AKEYCODE_MEDIA_FAST_FORWARD + 0, // AKEYCODE_MUTE + KEY_PAGE_UP, // AKEYCODE_PAGE_UP + KEY_PAGE_DOWN, // AKEYCODE_PAGE_DOWN + 0, // AKEYCODE_PICTSYMBOLS + 0, // AKEYCODE_SWITCH_CHARSET + 0, // AKEYCODE_BUTTON_A + 0, // AKEYCODE_BUTTON_B + 0, // AKEYCODE_BUTTON_C + 0, // AKEYCODE_BUTTON_X + 0, // AKEYCODE_BUTTON_Y + 0, // AKEYCODE_BUTTON_Z + 0, // AKEYCODE_BUTTON_L1 + 0, // AKEYCODE_BUTTON_R1 + 0, // AKEYCODE_BUTTON_L2 + 0, // AKEYCODE_BUTTON_R2 + 0, // AKEYCODE_BUTTON_THUMBL + 0, // AKEYCODE_BUTTON_THUMBR + 0, // AKEYCODE_BUTTON_START + 0, // AKEYCODE_BUTTON_SELECT + 0, // AKEYCODE_BUTTON_MODE + KEY_ESCAPE, // AKEYCODE_ESCAPE + KEY_DELETE, // AKEYCODE_FORWARD_DELL + KEY_LEFT_CONTROL, // AKEYCODE_CTRL_LEFT + KEY_RIGHT_CONTROL, // AKEYCODE_CTRL_RIGHT + KEY_CAPS_LOCK, // AKEYCODE_CAPS_LOCK + KEY_SCROLL_LOCK, // AKEYCODE_SCROLL_LOCK + KEY_LEFT_SUPER, // AKEYCODE_META_LEFT + KEY_RIGHT_SUPER, // AKEYCODE_META_RIGHT + 0, // AKEYCODE_FUNCTION + KEY_PRINT_SCREEN, // AKEYCODE_SYSRQ + KEY_PAUSE, // AKEYCODE_BREAK + KEY_HOME, // AKEYCODE_MOVE_HOME + KEY_END, // AKEYCODE_MOVE_END + KEY_INSERT, // AKEYCODE_INSERT + 0, // AKEYCODE_FORWARD + 0, // AKEYCODE_MEDIA_PLAY + 0, // AKEYCODE_MEDIA_PAUSE + 0, // AKEYCODE_MEDIA_CLOSE + 0, // AKEYCODE_MEDIA_EJECT + 0, // AKEYCODE_MEDIA_RECORD + KEY_F1, // AKEYCODE_F1 + KEY_F2, // AKEYCODE_F2 + KEY_F3, // AKEYCODE_F3 + KEY_F4, // AKEYCODE_F4 + KEY_F5, // AKEYCODE_F5 + KEY_F6, // AKEYCODE_F6 + KEY_F7, // AKEYCODE_F7 + KEY_F8, // AKEYCODE_F8 + KEY_F9, // AKEYCODE_F9 + KEY_F10, // AKEYCODE_F10 + KEY_F11, // AKEYCODE_F11 + KEY_F12, // AKEYCODE_F12 + KEY_NUM_LOCK, // AKEYCODE_NUM_LOCK + KEY_KP_0, // AKEYCODE_NUMPAD_0 + KEY_KP_1, // AKEYCODE_NUMPAD_1 + KEY_KP_2, // AKEYCODE_NUMPAD_2 + KEY_KP_3, // AKEYCODE_NUMPAD_3 + KEY_KP_4, // AKEYCODE_NUMPAD_4 + KEY_KP_5, // AKEYCODE_NUMPAD_5 + KEY_KP_6, // AKEYCODE_NUMPAD_6 + KEY_KP_7, // AKEYCODE_NUMPAD_7 + KEY_KP_8, // AKEYCODE_NUMPAD_8 + KEY_KP_9, // AKEYCODE_NUMPAD_9 + KEY_KP_DIVIDE, // AKEYCODE_NUMPAD_DIVIDE + KEY_KP_MULTIPLY, // AKEYCODE_NUMPAD_MULTIPLY + KEY_KP_SUBTRACT, // AKEYCODE_NUMPAD_SUBTRACT + KEY_KP_ADD, // AKEYCODE_NUMPAD_ADD + KEY_KP_DECIMAL, // AKEYCODE_NUMPAD_DOT + 0, // AKEYCODE_NUMPAD_COMMA + KEY_KP_ENTER, // AKEYCODE_NUMPAD_ENTER + KEY_KP_EQUAL // AKEYCODE_NUMPAD_EQUALS +}; + //---------------------------------------------------------------------------------- // Module Internal Functions Declaration //---------------------------------------------------------------------------------- @@ -1016,17 +1185,21 @@ static int32_t AndroidInputCallback(struct android_app *app, AInputEvent *event) return 1; // Handled gamepad button } - // Save current button and its state - // NOTE: Android key action is 0 for down and 1 for up - if (AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_DOWN) + KeyboardKey key = (keycode > 0 && keycode < KEYCODE_MAP_SIZE) ? KeycodeMap[keycode] : KEY_NULL; + if (key != KEY_NULL) { - CORE.Input.Keyboard.currentKeyState[keycode] = 1; // Key down + // Save current key and its state + // NOTE: Android key action is 0 for down and 1 for up + if (AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_DOWN) + { + CORE.Input.Keyboard.currentKeyState[key] = 1; // Key down - CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = keycode; - CORE.Input.Keyboard.keyPressedQueueCount++; + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = key; + CORE.Input.Keyboard.keyPressedQueueCount++; + } + else if (AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_MULTIPLE) CORE.Input.Keyboard.keyRepeatInFrame[key] = 1; + else CORE.Input.Keyboard.currentKeyState[key] = 0; // Key up } - else if (AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_MULTIPLE) CORE.Input.Keyboard.keyRepeatInFrame[keycode] = 1; - else CORE.Input.Keyboard.currentKeyState[keycode] = 0; // Key up if (keycode == AKEYCODE_POWER) { diff --git a/src/raylib.h b/src/raylib.h index 42fd290aa..4c4b191c0 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -677,7 +677,7 @@ typedef enum { KEY_KP_EQUAL = 336, // Key: Keypad = // Android key buttons KEY_BACK = 4, // Key: Android back button - KEY_MENU = 82, // Key: Android menu button + KEY_MENU = 5, // Key: Android menu button KEY_VOLUME_UP = 24, // Key: Android volume up button KEY_VOLUME_DOWN = 25 // Key: Android volume down button } KeyboardKey; From 68c32a41845b5216cba8b589ab312f0ca870c7d2 Mon Sep 17 00:00:00 2001 From: Idir Carlos Aliane Date: Mon, 22 Jan 2024 07:58:47 +0100 Subject: [PATCH 141/790] Fix typo in HISTORY.md (#3751) There is a typo where 'undoubtdly' appears instead of 'undoubtedly'. --- HISTORY.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index f1a67bb41..de14b651c 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -184,7 +184,7 @@ In **raylib 2.0** the full API has been carefully reviewed for better consistenc - **Complete removal of external dependencies.** Finally, raylib does not require external libraries to be installed and linked along with raylib, all required libraries are contained and compiled within raylib. Obviously some external libraries are required but only the strictly platform-dependant ones, the ones that come installed with the OS. So, raylib becomes a self-contained platform-independent games development library. - - **Full redesign of audio module to use the amazing miniaudio library**, along with external dependencies removal, OpenAL library has been replaced by [miniaudio](https://github.com/dr-soft/miniaudio), this brand new library offers automatic dynamic linking with default OS audio systems. Undoubtly, the perfect low-level companion for raylib audio module! + - **Full redesign of audio module to use the amazing miniaudio library**, along with external dependencies removal, OpenAL library has been replaced by [miniaudio](https://github.com/dr-soft/miniaudio), this brand new library offers automatic dynamic linking with default OS audio systems. Undoubtedly, the perfect low-level companion for raylib audio module! - **Support for continuous integration building*** through AppVeyor and Travis CI. Consequently, raylib GitHub develop branch has been removed, simplyfing the code-base to a single master branch, always stable. Every time a new commit is deployed, library is compiled for **up-to 12 different configurations**, including multiple platforms, 32bit/64bit and multiple compiler options! All those binaries are automatically attached to any new release! @@ -196,7 +196,7 @@ In **raylib 2.0** the full API has been carefully reviewed for better consistenc A part of that, lots of new features, like a brand **new font rendering and packaging system** for TTF fonts with **SDF support** (thanks to the amazing STB headers), new functions for **CPU image data manipulation**, new orthographic 3d camera mode, a complete review of `raymath.h` single-file header-only library for better consistency and performance, new examples and way, [way more](https://github.com/raysan5/raylib/blob/master/CHANGELOG). -Probably by now, **raylib 2.0 is the simplest and easiest-to-use library to enjoy (and learn) videogames programming**... but, undoubtly its development has exceeded any initial objective; raylib has become a simple and easy-to-use trully multiplatform portable standalone media library with thousands of possibilities... and that's just the beginning! +Probably by now, **raylib 2.0 is the simplest and easiest-to-use library to enjoy (and learn) videogames programming**... but, undoubtedly its development has exceeded any initial objective; raylib has become a simple and easy-to-use trully multiplatform portable standalone media library with thousands of possibilities... and that's just the beginning! notes on raylib 2.5 ------------------- From ef92ced370815a47d6d417ce6394b3156dd4f528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ra=C3=BAl?= Date: Mon, 22 Jan 2024 10:35:55 +0000 Subject: [PATCH 142/790] fix CheckCollisionPointPoly (#3750) --- src/rshapes.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index 8e6708bf9..e4eb107b1 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2196,21 +2196,21 @@ bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 // NOTE: Based on http://jeffreythompson.org/collision-detection/poly-point.php bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount) { - bool collision = false; + bool inside = false; if (pointCount > 2) { - for (int i = 0; i < pointCount - 1; i++) + for (int i = 0, j = pointCount - 1; i < pointCount; j = i++) { - Vector2 vc = points[i]; - Vector2 vn = points[i + 1]; - - if ((((vc.y >= point.y) && (vn.y < point.y)) || ((vc.y < point.y) && (vn.y >= point.y))) && - (point.x < ((vn.x - vc.x)*(point.y - vc.y)/(vn.y - vc.y) + vc.x))) collision = !collision; + if ((points[i].y > point.y) != (points[j].y > point.y) && + (point.x < (points[j].x - points[i].x) * (point.y - points[i].y) / (points[j].y - points[i].y) + points[i].x)) + { + inside = !inside; + } } } - return collision; + return inside; } // Check collision between two rectangles From 27645e16ab5051b8cf7bb5b6506b16b20f0b1c19 Mon Sep 17 00:00:00 2001 From: Brian E <72316548+Brian-ED@users.noreply.github.com> Date: Mon, 22 Jan 2024 10:36:38 +0000 Subject: [PATCH 143/790] fixed small typo, replaced `th` with `the` (#3752) --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index 4d2c9702f..747025b83 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -115,7 +115,7 @@ #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) #elif defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // We are building he library as a Unix shared library (.so/.dylib) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif From c133fee286cfb3dad2fbfa40ab61f968850fd031 Mon Sep 17 00:00:00 2001 From: Idir Carlos Aliane Date: Mon, 22 Jan 2024 19:48:18 +0100 Subject: [PATCH 144/790] [raymath.h] Small code refactor (#3753) * [raymath.h] Small refactor to avoid duplicated code * Fixing some blank spaces to match same syle convention --- src/raymath.h | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index 444ba2e34..b46243f4e 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -174,7 +174,7 @@ typedef struct float16 { // Clamp float value RMAPI float Clamp(float value, float min, float max) { - float result = (value < min)? min : value; + float result = (value < min) ? min : value; if (result > max) result = max; @@ -494,18 +494,18 @@ RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) { length = sqrtf(length); + float scale = 1; // By default, 1 as the neutral element. if (length < min) { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; + scale = min/length; } else if (length > max) { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; + scale = max/length; } + + result.x = v.x*scale; + result.y = v.y*scale; } return result; @@ -834,7 +834,7 @@ RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) // Vector3Normalize(axis); float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); if (length == 0.0f) length = 1.0f; - float ilength = 1.0f / length; + float ilength = 1.0f/length; axis.x *= ilength; axis.y *= ilength; axis.z *= ilength; @@ -1080,20 +1080,19 @@ RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) { length = sqrtf(length); + float scale = 1; // By default, 1 as the neutral element. if (length < min) { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; + scale = min/length; } else if (length > max) { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; + scale = max/length; } + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; } return result; @@ -1962,7 +1961,7 @@ RMAPI Quaternion QuaternionFromMatrix(Matrix mat) } float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; - float mult = 0.25f / biggestVal; + float mult = 0.25f/biggestVal; switch (biggestIndex) { From 6f1c31b25dc0642ca107507dbaed413021a85668 Mon Sep 17 00:00:00 2001 From: Idir Carlos Aliane Date: Mon, 22 Jan 2024 21:26:18 +0100 Subject: [PATCH 145/790] Change some minor comments to align with comments style (#3755) --- src/raudio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 430242107..d3648bc87 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -988,7 +988,7 @@ void UnloadSound(Sound sound) void UnloadSoundAlias(Sound alias) { - // untrack and unload just the sound buffer, not the sample data, it is shared with the source for the alias + // Untrack and unload just the sound buffer, not the sample data, it is shared with the source for the alias if (alias.stream.buffer != NULL) { ma_data_converter_uninit(&alias.stream.buffer->converter, NULL); @@ -1099,7 +1099,7 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) strcpy(varFileName, GetFileNameWithoutExt(fileName)); for (int i = 0; varFileName[i] != '\0'; i++) if (varFileName[i] >= 'a' && varFileName[i] <= 'z') { varFileName[i] = varFileName[i] - 32; } - //Add wave information + // Add wave information byteCount += sprintf(txtData + byteCount, "// Wave data information\n"); byteCount += sprintf(txtData + byteCount, "#define %s_FRAME_COUNT %u\n", varFileName, wave.frameCount); byteCount += sprintf(txtData + byteCount, "#define %s_SAMPLE_RATE %u\n", varFileName, wave.sampleRate); @@ -1405,7 +1405,7 @@ Music LoadMusicStream(const char *fileName) music.stream = LoadAudioStream(AUDIO.System.device.sampleRate, bits, AUDIO_DEVICE_CHANNELS); music.frameCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm); // NOTE: Always 2 channels (stereo) music.looping = true; // Looping enabled by default - jar_xm_reset(ctxXm); // make sure we start at the beginning of the song + jar_xm_reset(ctxXm); // Make sure we start at the beginning of the song musicLoaded = true; } } @@ -1596,7 +1596,7 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, music.stream = LoadAudioStream(AUDIO.System.device.sampleRate, bits, 2); music.frameCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm); // NOTE: Always 2 channels (stereo) music.looping = true; // Looping enabled by default - jar_xm_reset(ctxXm); // make sure we start at the beginning of the song + jar_xm_reset(ctxXm); // Make sure we start at the beginning of the song music.ctxData = ctxXm; musicLoaded = true; From cb97a8063d7b49380413df655134d6a283016429 Mon Sep 17 00:00:00 2001 From: Idir Carlos Aliane Date: Mon, 22 Jan 2024 23:15:25 +0100 Subject: [PATCH 146/790] [rtext.c] fixing some comments to align comments style (#3756) --- src/rtext.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 270d0121b..7835ff807 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -791,7 +791,7 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp for(int j = i + 1; j < glyphCount; j++) { TRACELOG(LOG_WARNING, "FONT: Failed to package character (%i)", j); - // make sure remaining recs contain valid data + // Make sure remaining recs contain valid data recs[j].x = 0; recs[j].y = 0; recs[j].width = 0; @@ -1986,21 +1986,21 @@ int GetCodepointNext(const char *text, int *codepointSize) if (0xf0 == (0xf8 & ptr[0])) { // 4 byte UTF-8 codepoint - if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); *codepointSize = 4; } else if (0xe0 == (0xf0 & ptr[0])) { // 3 byte UTF-8 codepoint */ - if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks + if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); *codepointSize = 3; } else if (0xc0 == (0xe0 & ptr[0])) { // 2 byte UTF-8 codepoint - if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks + if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } // 10xxxxxx checks codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); *codepointSize = 2; } From ff1eeafb950b5d7b8e5b25aa2ac1e8e87e353d1b Mon Sep 17 00:00:00 2001 From: Victor Gallet Date: Tue, 23 Jan 2024 12:37:54 +0100 Subject: [PATCH 147/790] Fix bug to retrieve material specular map in DrawMesh function, with incorrect index (#3758) --- src/rmodels.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index ede87a1b3..0cb949bc2 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1352,10 +1352,10 @@ void DrawMesh(Mesh mesh, Material material, Matrix transform) if (material.shader.locs[SHADER_LOC_COLOR_SPECULAR] != -1) { float values[4] = { - (float)material.maps[SHADER_LOC_COLOR_SPECULAR].color.r/255.0f, - (float)material.maps[SHADER_LOC_COLOR_SPECULAR].color.g/255.0f, - (float)material.maps[SHADER_LOC_COLOR_SPECULAR].color.b/255.0f, - (float)material.maps[SHADER_LOC_COLOR_SPECULAR].color.a/255.0f + (float)material.maps[MATERIAL_MAP_SPECULAR].color.r/255.0f, + (float)material.maps[MATERIAL_MAP_SPECULAR].color.g/255.0f, + (float)material.maps[MATERIAL_MAP_SPECULAR].color.b/255.0f, + (float)material.maps[MATERIAL_MAP_SPECULAR].color.a/255.0f }; rlSetUniform(material.shader.locs[SHADER_LOC_COLOR_SPECULAR], values, SHADER_UNIFORM_VEC4, 1); From 40f3df5b865eee0cd87a9e4e1347cb04c87841f8 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 24 Jan 2024 21:17:11 +0100 Subject: [PATCH 148/790] Update core_2d_camera_platformer.c --- examples/core/core_2d_camera_platformer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/core/core_2d_camera_platformer.c b/examples/core/core_2d_camera_platformer.c index 6c574387e..75fd6cf6a 100644 --- a/examples/core/core_2d_camera_platformer.c +++ b/examples/core/core_2d_camera_platformer.c @@ -135,6 +135,8 @@ int main(void) Rectangle playerRect = { player.position.x - 20, player.position.y - 40, 40, 40 }; DrawRectangleRec(playerRect, RED); + + DrawCircle(player.position.x, player.position.y, 5, GOLD); EndMode2D(); @@ -168,7 +170,7 @@ void UpdatePlayer(Player *player, EnvItem *envItems, int envItemsLength, float d player->canJump = false; } - int hitObstacle = 0; + bool hitObstacle = false; for (int i = 0; i < envItemsLength; i++) { EnvItem *ei = envItems + i; @@ -179,9 +181,10 @@ void UpdatePlayer(Player *player, EnvItem *envItems, int envItemsLength, float d ei->rect.y >= p->y && ei->rect.y <= p->y + player->speed*delta) { - hitObstacle = 1; + hitObstacle = true; player->speed = 0.0f; p->y = ei->rect.y; + break; } } From f4add5f10d38c4f3fb3aa748423773f3de18b420 Mon Sep 17 00:00:00 2001 From: veins1 <19636663+veins1@users.noreply.github.com> Date: Sun, 28 Jan 2024 17:45:19 +0500 Subject: [PATCH 149/790] Fix rlSetUniformSampler (#3759) Fix rlSetUniformSampler not setting sampler uniform if the same texture was already passed to a different sampler uniform --- src/rlgl.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index 747025b83..6ad6394d0 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -4135,7 +4135,14 @@ void rlSetUniformSampler(int locIndex, unsigned int textureId) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Check if texture is already active - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) if (RLGL.State.activeTextureId[i] == textureId) return; + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } // Register a new active texture for the internal batch system // NOTE: Default texture is always activated as GL_TEXTURE0 From cf10cdd6b33718c066ae58f7973b04dabde6efb1 Mon Sep 17 00:00:00 2001 From: Alessandro Nikolaev <54692152+sanyokdev@users.noreply.github.com> Date: Sun, 28 Jan 2024 12:46:27 +0000 Subject: [PATCH 150/790] Added missing "standalone" functions to raudio.c & fixed return bug (#3760) * Added GetFileNameWithoutExt, GetFileName & strprbrk to raudio.c * Gave return values to SaveFileData & SaveFileText in raudio.c --- src/raudio.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 4 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index d3648bc87..59d49c961 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -416,6 +416,8 @@ static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 fr #if defined(RAUDIO_STANDALONE) static bool IsFileExtension(const char *fileName, const char *ext); // Check file extension static const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes the dot: .png) +static const char *GetFileName(const char *filePath); // Get pointer to filename for a path string +static const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (uses static string) static unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) static bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write) @@ -2642,6 +2644,50 @@ static const char *GetFileExtension(const char *fileName) return dot; } +// String pointer reverse break: returns right-most occurrence of charset in s +static const char *strprbrk(const char *s, const char *charset) +{ + const char *latestMatch = NULL; + for (; s = strpbrk(s, charset), s != NULL; latestMatch = s++) { } + return latestMatch; +} + +// Get pointer to filename for a path string +static const char *GetFileName(const char *filePath) +{ + const char *fileName = NULL; + if (filePath != NULL) fileName = strprbrk(filePath, "\\/"); + + if (!fileName) return filePath; + + return fileName + 1; +} + +// Get filename string without extension (uses static string) +static const char *GetFileNameWithoutExt(const char *filePath) +{ + #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 + + static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 }; + memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); + + if (filePath != NULL) strcpy(fileName, GetFileName(filePath)); // Get filename with extension + + int size = (int)strlen(fileName); // Get size in bytes + + for (int i = 0; (i < size) && (i < MAX_FILENAMEWITHOUTEXT_LENGTH); i++) + { + if (fileName[i] == '.') + { + // NOTE: We break on first '.' found + fileName[i] = '\0'; + break; + } + } + + return fileName; +} + // Load data from file into a buffer static unsigned char *LoadFileData(const char *fileName, int *dataSize) { @@ -2699,9 +2745,19 @@ static bool SaveFileData(const char *fileName, void *data, int dataSize) fclose(file); } - else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open file", fileName); + else + { + TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open file", fileName); + return false; + } } - else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); + else + { + TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); + return false; + } + + return true; } // Save text data to file (write), string must be '\0' terminated @@ -2720,9 +2776,19 @@ static bool SaveFileText(const char *fileName, char *text) fclose(file); } - else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open text file", fileName); + else + { + TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open text file", fileName); + return false; + } } - else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); + else + { + TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); + return false; + } + + return true; } #endif From 812645b077dbd5579ee5e03d89a6a07f431bf3c6 Mon Sep 17 00:00:00 2001 From: Brian E <72316548+Brian-ED@users.noreply.github.com> Date: Sun, 28 Jan 2024 12:49:07 +0000 Subject: [PATCH 151/790] cleaned away unused macros in rcamera.h (#3762) --- src/rcamera.h | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/rcamera.h b/src/rcamera.h index f2d902c2c..b1805c372 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -202,18 +202,10 @@ RLAPI Matrix GetCameraProjectionMatrix(Camera* camera, float aspect); // Camera mouse movement sensitivity #define CAMERA_MOUSE_MOVE_SENSITIVITY 0.003f // TODO: it should be independant of framerate -#define CAMERA_MOUSE_SCROLL_SENSITIVITY 1.5f +// Camera orbital speed in CAMERA_ORBITAL mode #define CAMERA_ORBITAL_SPEED 0.5f // Radians per second - -#define CAMERA_FIRST_PERSON_STEP_TRIGONOMETRIC_DIVIDER 8.0f -#define CAMERA_FIRST_PERSON_STEP_DIVIDER 30.0f -#define CAMERA_FIRST_PERSON_WAVING_DIVIDER 200.0f - -// PLAYER (used by camera) -#define PLAYER_MOVEMENT_SENSITIVITY 20.0f - //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- From bebf9547bd244727fa06a2ce1db2faf474ba23ad Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Mon, 29 Jan 2024 12:10:23 -0800 Subject: [PATCH 152/790] [CORE,RLGL] Fix scale issues when ending a mode (#3746) * Only restore GL scale back to screen scale if we are returning to a screen, not a render texture. * blankspace * reset back to default screen scale when ending a render texture since we are back on the default fbo --- src/rcore.c | 15 ++++++++++----- src/rlgl.h | 12 ++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index bb06e9bee..b057fc05b 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -952,9 +952,6 @@ void BeginMode2D(Camera2D camera) // Apply 2d camera transformation to modelview rlMultMatrixf(MatrixToFloat(GetCameraMatrix2D(camera))); - - // Apply screen scaling if required - rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); } // Ends 2D mode with custom camera @@ -963,7 +960,9 @@ void EndMode2D(void) rlDrawRenderBatchActive(); // Update and draw internal render batch rlLoadIdentity(); // Reset current matrix (modelview) - rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required + + if (rlGetActiveFramebuffer() == 0) + rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required } // Initializes 3D mode with custom camera (3D) @@ -1016,7 +1015,8 @@ void EndMode3D(void) rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix rlLoadIdentity(); // Reset current matrix (modelview) - rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required + if (rlGetActiveFramebuffer() == 0) + rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required rlDisableDepthTest(); // Disable DEPTH_TEST for 2D } @@ -1062,6 +1062,11 @@ void EndTextureMode(void) // Set viewport to default framebuffer size SetupViewport(CORE.Window.render.width, CORE.Window.render.height); + // go back to the modelview state from BeginDrawing since we are back to the default FBO + rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix + rlLoadIdentity(); // Reset current matrix (modelview) + rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required + // Reset current fbo to screen size CORE.Window.currentFbo.width = CORE.Window.render.width; CORE.Window.currentFbo.height = CORE.Window.render.height; diff --git a/src/rlgl.h b/src/rlgl.h index 6ad6394d0..6dd3eb2c1 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -621,6 +621,7 @@ RLAPI void rlDisableShader(void); // Disable shader progra // Framebuffer state RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Returns the active render texture (fbo), 0 for default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) @@ -1725,6 +1726,17 @@ void rlEnableFramebuffer(unsigned int id) #endif } +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + GLint fboId = 0; + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); + return fboId; +#endif + return 0; +} + // Disable rendering to texture void rlDisableFramebuffer(void) { From deaffb06981b95976f7b055dc1085adb933a37cc Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 29 Jan 2024 21:16:17 +0100 Subject: [PATCH 153/790] Review PR #3746 formating --- src/rcore.c | 12 +++++------- src/rlgl.h | 7 +++---- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index b057fc05b..f0af87f9d 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -961,8 +961,7 @@ void EndMode2D(void) rlLoadIdentity(); // Reset current matrix (modelview) - if (rlGetActiveFramebuffer() == 0) - rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required + if (rlGetActiveFramebuffer() == 0) rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required } // Initializes 3D mode with custom camera (3D) @@ -1015,8 +1014,7 @@ void EndMode3D(void) rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix rlLoadIdentity(); // Reset current matrix (modelview) - if (rlGetActiveFramebuffer() == 0) - rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required + if (rlGetActiveFramebuffer() == 0) rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required rlDisableDepthTest(); // Disable DEPTH_TEST for 2D } @@ -1062,9 +1060,9 @@ void EndTextureMode(void) // Set viewport to default framebuffer size SetupViewport(CORE.Window.render.width, CORE.Window.render.height); - // go back to the modelview state from BeginDrawing since we are back to the default FBO - rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix - rlLoadIdentity(); // Reset current matrix (modelview) + // Go back to the modelview state from BeginDrawing since we are back to the default FBO + rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix + rlLoadIdentity(); // Reset current matrix (modelview) rlMultMatrixf(MatrixToFloat(CORE.Window.screenScale)); // Apply screen scaling if required // Reset current fbo to screen size diff --git a/src/rlgl.h b/src/rlgl.h index 6dd3eb2c1..cdc1bf211 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -621,7 +621,7 @@ RLAPI void rlDisableShader(void); // Disable shader progra // Framebuffer state RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer -RLAPI unsigned int rlGetActiveFramebuffer(void); // Returns the active render texture (fbo), 0 for default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) @@ -1729,12 +1729,11 @@ void rlEnableFramebuffer(unsigned int id) // return the active render texture (fbo) unsigned int rlGetActiveFramebuffer(void) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); - return fboId; #endif - return 0; + return fboId; } // Disable rendering to texture From d79828076f4c99e750cb2b9f729a753cfe87dc00 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 1 Feb 2024 00:03:06 +0100 Subject: [PATCH 154/790] REVIEWED: macOS issues #3767 --- src/platforms/rcore_desktop_sdl.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 325cee391..7b386b2c4 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1275,8 +1275,9 @@ void PollInputEvents(void) // Initialize platform: graphics, inputs and more int InitPlatform(void) { - // Initialize SDL internal global state - int result = SDL_Init(SDL_INIT_EVERYTHING); + // Initialize SDL internal global state, only required systems + // NOTE: Not all systems need to be initialized, SDL_INIT_AUDIO is not required, managed by miniaudio + int result = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS | SDL_INIT_GAMECONTROLLER); if (result < 0) { TRACELOG(LOG_WARNING, "SDL: Failed to initialize SDL"); return -1; } // Initialize graphic device: display/window and graphic context @@ -1328,11 +1329,7 @@ int InitPlatform(void) { SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); -#if defined(__APPLE__) - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // OSX Requires forward compatibility -#else SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); -#endif } else if (rlGetVersion() == RL_OPENGL_43) { From 25306eae4212f3e7b239aabad3316eb4eba8df56 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 1 Feb 2024 00:05:30 +0100 Subject: [PATCH 155/790] REVIEWED: Issue on parsing #3765 --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index cdc1bf211..28d58d4e9 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -72,7 +72,7 @@ * #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) * #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) From c0b081fac042ebc5d31d99887faaf27806a4e80b Mon Sep 17 00:00:00 2001 From: Marrony Neris Date: Thu, 1 Feb 2024 12:14:22 -0800 Subject: [PATCH 156/790] Fix MeasureTextEx() height calculation (#3770) --- src/rtext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 7835ff807..22c2e5e42 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1257,7 +1257,7 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing float textWidth = 0.0f; float tempTextWidth = 0.0f; // Used to count longer text line width - float textHeight = (float)font.baseSize; + float textHeight = fontSize; float scaleFactor = fontSize/(float)font.baseSize; int letter = 0; // Current character @@ -1294,7 +1294,7 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing if (tempTextWidth < textWidth) tempTextWidth = textWidth; textSize.x = tempTextWidth*scaleFactor + (float)((tempByteCounter - 1)*spacing); - textSize.y = textHeight*scaleFactor; + textSize.y = textHeight; return textSize; } From 7ec43022c177cbf00b27c9e9ab067bd6889957a4 Mon Sep 17 00:00:00 2001 From: IoIxD <30945097+IoIxD@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:16:57 -0700 Subject: [PATCH 157/790] Fix segfault in ExportWaveAsCode (#3769) `char *txtData = (char *)RL_CALLOC(waveDataSize * 6 + 2000, sizeof(char));` assumes every chunk being added to txtData is 6 bytes. This is not always true, sometimes a newline is involved and the data becomes 12 bytes instead, and this can cause a random segfault. This commit changes `6` to `12`, and explains why in the comment. --- src/raudio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 59d49c961..4d0de45a5 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1081,8 +1081,9 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) int waveDataSize = wave.frameCount*wave.channels*wave.sampleSize/8; // NOTE: Text data buffer size is estimated considering wave data size in bytes - // and requiring 6 char bytes for every byte: "0x00, " - char *txtData = (char *)RL_CALLOC(waveDataSize*6 + 2000, sizeof(char)); + // and requiring 12 char bytes for every byte; the actual size varies, but + // the longest possible char being appended is "%.4ff,\n ", which is 12 bytes. + char *txtData = (char *)RL_CALLOC(waveDataSize*12 + 2000, sizeof(char)); int byteCount = 0; byteCount += sprintf(txtData + byteCount, "\n//////////////////////////////////////////////////////////////////////////////////\n"); From 29ff658d9223068378269e4a705811f085fafdf4 Mon Sep 17 00:00:00 2001 From: Brandon Baker Date: Fri, 2 Feb 2024 12:06:30 -0500 Subject: [PATCH 158/790] Update BINDINGS.md (#3774) Bump supported raylib version of Raylib-cs to 5.0 --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 234ad323a..35eec2aa6 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -9,7 +9,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | | raylib-beef | **5.0** | [Beef](https://www.beeflang.org/) | MIT | https://github.com/Starpelly/raylib-beef | | raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo | -| Raylib-cs | 4.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | +| Raylib-cs | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | | Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo | | cl-raylib | 4.0 | [Common Lisp](https://common-lisp.net/) | MIT | https://github.com/longlene/cl-raylib | | claylib/wrap | 4.5 | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | From 0932cd3059a181f637cd80c09534d609f1ea3ed1 Mon Sep 17 00:00:00 2001 From: Stanley Fuller Date: Sun, 4 Feb 2024 05:28:12 +1100 Subject: [PATCH 159/790] [rtext] Add BDF font support (#3735) * Add BDF font support * Include font ascent in glyph y-offset when loading BDF font --- src/config.h | 1 + src/rtext.c | 370 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 341 insertions(+), 30 deletions(-) diff --git a/src/config.h b/src/config.h index 410e9067e..34d2e9648 100644 --- a/src/config.h +++ b/src/config.h @@ -181,6 +181,7 @@ // Selected desired font fileformats to be supported for loading #define SUPPORT_FILEFORMAT_FNT 1 #define SUPPORT_FILEFORMAT_TTF 1 +#define SUPPORT_FILEFORMAT_BDF 1 // Support text management functions // If not defined, still some functions are supported: TextLength(), TextFormat() diff --git a/src/rtext.c b/src/rtext.c index 22c2e5e42..0cd90a59c 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -12,6 +12,7 @@ * * #define SUPPORT_FILEFORMAT_FNT * #define SUPPORT_FILEFORMAT_TTF +* #define SUPPORT_FILEFORMAT_BDF * Selected desired fileformats to be supported for loading. Some of those formats are * supported by default, to remove support, just comment unrequired #define in this module * @@ -70,14 +71,27 @@ #include // Required for: va_list, va_start(), vsprintf(), va_end() [Used in TextFormat()] #include // Required for: toupper(), tolower() [Used in TextToUpper(), TextToLower()] -#if defined(SUPPORT_FILEFORMAT_TTF) +#if defined(SUPPORT_FILEFORMAT_TTF) || defined(SUPPORT_FILEFORMAT_BDF) #if defined(__GNUC__) // GCC and Clang #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" #endif #define STB_RECT_PACK_IMPLEMENTATION - #include "external/stb_rect_pack.h" // Required for: ttf font rectangles packaging + #include "external/stb_rect_pack.h" // Required for: ttf/bdf font rectangles packaging + + #include // Required for: ttf/bdf font rectangles packaging + + #if defined(__GNUC__) // GCC and Clang + #pragma GCC diagnostic pop + #endif +#endif + +#if defined(SUPPORT_FILEFORMAT_TTF) + #if defined(__GNUC__) // GCC and Clang + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wunused-function" + #endif #define STBTT_STATIC #define STB_TRUETYPE_IMPLEMENTATION @@ -127,6 +141,9 @@ static Font defaultFont = { 0 }; #if defined(SUPPORT_FILEFORMAT_FNT) static Font LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file) #endif +#if defined(SUPPORT_FILEFORMAT_BDF) +static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int* outFontSize); +#endif static int textLineSpacing = 15; // Text vertical line spacing in pixels #if defined(SUPPORT_DEFAULT_FONT) @@ -334,6 +351,10 @@ Font LoadFont(const char *fileName) #if defined(SUPPORT_FILEFORMAT_FNT) if (IsFileExtension(fileName, ".fnt")) font = LoadBMFont(fileName); else +#endif +#if defined(SUPPORT_FILEFORMAT_BDF) + if (IsFileExtension(fileName, ".bdf")) font = LoadFontEx(fileName, FONT_TTF_DEFAULT_SIZE, NULL, FONT_TTF_DEFAULT_NUMCHARS); + else #endif { Image image = LoadImage(fileName); @@ -355,7 +376,7 @@ Font LoadFont(const char *fileName) return font; } -// Load Font from TTF font file with generation parameters +// Load Font from TTF or BDF font file with generation parameters // NOTE: You can pass an array with desired characters, those characters should be available in the font // if array is NULL, default char set is selected 32..126 Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount) @@ -511,35 +532,49 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int char fileExtLower[16] = { 0 }; strcpy(fileExtLower, TextToLower(fileType)); -#if defined(SUPPORT_FILEFORMAT_TTF) + font.baseSize = fontSize; + font.glyphCount = (codepointCount > 0)? codepointCount : 95; + font.glyphPadding = 0; + +#if defined(SUPPORT_FILEFORMAT_TTF) if (TextIsEqual(fileExtLower, ".ttf") || TextIsEqual(fileExtLower, ".otf")) { - font.baseSize = fontSize; - font.glyphCount = (codepointCount > 0)? codepointCount : 95; - font.glyphPadding = 0; font.glyphs = LoadFontData(fileData, dataSize, font.baseSize, codepoints, font.glyphCount, FONT_DEFAULT); - - if (font.glyphs != NULL) - { - font.glyphPadding = FONT_TTF_DEFAULT_CHARS_PADDING; - - Image atlas = GenImageFontAtlas(font.glyphs, &font.recs, font.glyphCount, font.baseSize, font.glyphPadding, 0); - font.texture = LoadTextureFromImage(atlas); - - // Update glyphs[i].image to use alpha, required to be used on ImageDrawText() - for (int i = 0; i < font.glyphCount; i++) - { - UnloadImage(font.glyphs[i].image); - font.glyphs[i].image = ImageFromImage(atlas, font.recs[i]); - } - - UnloadImage(atlas); - - TRACELOG(LOG_INFO, "FONT: Data loaded successfully (%i pixel size | %i glyphs)", font.baseSize, font.glyphCount); - } - else font = GetFontDefault(); } + else +#endif +#if defined(SUPPORT_FILEFORMAT_BDF) + if (TextIsEqual(fileExtLower, ".bdf")) + { + font.glyphs = LoadBDFFontData(fileData, dataSize, codepoints, font.glyphCount, &font.baseSize); + } + else +#endif + { + font.glyphs = NULL; + } + +#if defined(SUPPORT_FILEFORMAT_TTF) || defined(SUPPORT_FILEFORMAT_BDF) + if (font.glyphs != NULL) + { + font.glyphPadding = FONT_TTF_DEFAULT_CHARS_PADDING; + + Image atlas = GenImageFontAtlas(font.glyphs, &font.recs, font.glyphCount, font.baseSize, font.glyphPadding, 0); + font.texture = LoadTextureFromImage(atlas); + + // Update glyphs[i].image to use alpha, required to be used on ImageDrawText() + for (int i = 0; i < font.glyphCount; i++) + { + UnloadImage(font.glyphs[i].image); + font.glyphs[i].image = ImageFromImage(atlas, font.recs[i]); + } + + UnloadImage(atlas); + + TRACELOG(LOG_INFO, "FONT: Data loaded successfully (%i pixel size | %i glyphs)", font.baseSize, font.glyphCount); + } + else font = GetFontDefault(); #else font = GetFontDefault(); #endif @@ -699,7 +734,7 @@ GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSiz // Generate image font atlas using chars info // NOTE: Packing method: 0-Default, 1-Skyline -#if defined(SUPPORT_FILEFORMAT_TTF) +#if defined(SUPPORT_FILEFORMAT_TTF) || defined(SUPPORT_FILEFORMAT_BDF) Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod) { Image atlas = { 0 }; @@ -2036,18 +2071,21 @@ int GetCodepointPrevious(const char *text, int *codepointSize) //---------------------------------------------------------------------------------- // Module specific Functions Definition //---------------------------------------------------------------------------------- -#if defined(SUPPORT_FILEFORMAT_FNT) +#if defined(SUPPORT_FILEFORMAT_FNT) || defined(SUPPORT_FILEFORMAT_BDF) // Read a line from memory // REQUIRES: memcpy() // NOTE: Returns the number of bytes read static int GetLine(const char *origin, char *buffer, int maxLength) { int count = 0; - for (; count < maxLength; count++) if (origin[count] == '\n') break; + for (; count < maxLength - 1; count++) if (origin[count] == '\n') break; memcpy(buffer, origin, count); + buffer[count] = '\0'; return count; } +#endif +#if defined(SUPPORT_FILEFORMAT_FNT) // Load a BMFont file (AngelCode font file) // REQUIRES: strstr(), sscanf(), strrchr(), memcpy() static Font LoadBMFont(const char *fileName) @@ -2213,4 +2251,276 @@ static Font LoadBMFont(const char *fileName) #endif +#if defined(SUPPORT_FILEFORMAT_BDF) + +// Convert hexadecimal to decimal (single digit) +static char HexToInt(char hex) { + if (hex >= '0' && hex <= '9') + { + return hex - '0'; + } + else if (hex >= 'a' && hex <= 'f') + { + return hex - 'a' + 10; + } + else if (hex >= 'A' && hex <= 'F') + { + return hex - 'A' + 10; + } + else + { + return 0; + } +} + +// Load font data for further use +// NOTE: Requires BDF font memory data +static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int* outFontSize) +{ + #define MAX_BUFFER_SIZE 256 + char buffer[MAX_BUFFER_SIZE] = { 0 }; + + GlyphInfo *glyphs = NULL; + + bool genFontChars = false; + + int totalReadBytes = 0; // Data bytes read (total) + int readBytes = 0; // Data bytes read (line) + int readVars = 0; // Variables filled by sscanf() + + const char *fileText = (const char*)fileData; + const char *fileTextPtr = fileText; + + bool fontMalformed = false; // Is the font malformed + bool fontStarted = false; // Has font started (STARTFONT) + int fontBBw = 0; // Font base character bounding box width + int fontBBh = 0; // Font base character bounding box height + int fontBBxoff0 = 0; // Font base character bounding box X0 offset + int fontBByoff0 = 0; // Font base character bounding box Y0 offset + int fontAscent = 0; // Font ascent + + bool charStarted = false; // Has character started (STARTCHAR) + bool charBitmapStarted = false; // Has bitmap data started (BITMAP) + int charBitmapNextRow = 0; // Y position for the next row of bitmap data + int charEncoding = -1; // The unicode value of the character (-1 if not set) + int charBBw = 0; // Character bounding box width + int charBBh = 0; // Character bounding box height + int charBBxoff0 = 0; // Character bounding box X0 offset + int charBByoff0 = 0; // Character bounding box Y0 offset + int charDWidthX = 0; // Character advance X + int charDWidthY = 0; // Character advance Y (unused) + GlyphInfo *charGlyphInfo = NULL; // Pointer to output glyph info (NULL if not set) + + if (fileData == NULL) return glyphs; + + // In case no chars count provided, default to 95 + codepointCount = (codepointCount > 0)? codepointCount : 95; + + // Fill fontChars in case not provided externally + // NOTE: By default we fill glyphCount consecutively, starting at 32 (Space) + if (codepoints == NULL) + { + codepoints = (int *)RL_MALLOC(codepointCount*sizeof(int)); + for (int i = 0; i < codepointCount; i++) codepoints[i] = i + 32; + genFontChars = true; + } + + glyphs = (GlyphInfo *)RL_CALLOC(codepointCount, sizeof(GlyphInfo)); + + while (totalReadBytes <= dataSize) + { + readBytes = GetLine(fileTextPtr, buffer, MAX_BUFFER_SIZE); + totalReadBytes += (readBytes + 1); + fileTextPtr += (readBytes + 1); + + // COMMENT + if (strstr(buffer, "COMMENT") != NULL) continue; // Ignore line + + if (charStarted) + { + // ENDCHAR + if (strstr(buffer, "ENDCHAR") != NULL) + { + charStarted = false; + continue; + } + + if (charBitmapStarted) + { + if (charGlyphInfo != NULL) { + int pixelY = charBitmapNextRow++; + if (pixelY >= charGlyphInfo->image.height) + { + break; + } + for (int x = 0; x < readBytes; x++) + { + char byte = HexToInt(buffer[x]); + for (int bitX = 0; bitX < 4; bitX++) + { + int pixelX = ((x * 4) + bitX); + if (pixelX >= charGlyphInfo->image.width) + { + break; + } + + if ((byte & (8 >> bitX)) > 0) + { + ((unsigned char*)charGlyphInfo->image.data)[(pixelY * charGlyphInfo->image.width) + pixelX] = 255; + } + } + } + } + continue; + } + + // ENCODING + if (strstr(buffer, "ENCODING") != NULL) + { + readVars = sscanf(buffer, "ENCODING %i", &charEncoding); + continue; + } + + // BBX + if (strstr(buffer, "BBX") != NULL) + { + readVars = sscanf(buffer, "BBX %i %i %i %i", &charBBw, &charBBh, &charBBxoff0, &charBByoff0); + continue; + } + + // DWIDTH + if (strstr(buffer, "DWIDTH") != NULL) + { + readVars = sscanf(buffer, "DWIDTH %i %i", &charDWidthX, &charDWidthY); + continue; + } + + // BITMAP + if (strstr(buffer, "BITMAP") != NULL) + { + // Search for glyph index in codepoints + charGlyphInfo = NULL; + for (int codepointIndex = 0; codepointIndex < codepointCount; codepointIndex++) + { + if (codepoints[codepointIndex] == charEncoding) + { + charGlyphInfo = &glyphs[codepointIndex]; + break; + } + } + + // Init glyph info + if (charGlyphInfo != NULL) + { + charGlyphInfo->value = charEncoding; + charGlyphInfo->offsetX = charBBxoff0 + fontBByoff0; + charGlyphInfo->offsetY = fontBBh - (charBBh + charBByoff0 + fontBByoff0 + fontAscent); + charGlyphInfo->advanceX = charDWidthX; + + charGlyphInfo->image.data = RL_CALLOC(charBBw * charBBh, 1); + charGlyphInfo->image.width = charBBw; + charGlyphInfo->image.height = charBBh; + charGlyphInfo->image.mipmaps = 1; + charGlyphInfo->image.format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE; + } + + charBitmapStarted = true; + charBitmapNextRow = 0; + + continue; + } + } + else if (fontStarted) + { + // ENDFONT + if (strstr(buffer, "ENDFONT") != NULL) + { + fontStarted = false; + break; + } + + // SIZE + if (strstr(buffer, "SIZE") != NULL) + { + if (outFontSize != NULL) + { + readVars = sscanf(buffer, "SIZE %i", outFontSize); + } + continue; + } + + // PIXEL_SIZE + if (strstr(buffer, "PIXEL_SIZE") != NULL) + { + if (outFontSize != NULL) + { + readVars = sscanf(buffer, "PIXEL_SIZE %i", outFontSize); + } + continue; + } + + // FONTBOUNDINGBOX + if (strstr(buffer, "FONTBOUNDINGBOX") != NULL) + { + readVars = sscanf(buffer, "FONTBOUNDINGBOX %i %i %i %i", &fontBBw, &fontBBh, &fontBBxoff0, &fontBByoff0); + continue; + } + + // FONT_ASCENT + if (strstr(buffer, "FONT_ASCENT") != NULL) + { + readVars = sscanf(buffer, "FONT_ASCENT %i", &fontAscent); + continue; + } + + // STARTCHAR + if (strstr(buffer, "STARTCHAR") != NULL) + { + charStarted = true; + charEncoding = -1; + charGlyphInfo = NULL; + charBBw = 0; + charBBh = 0; + charBBxoff0 = 0; + charBByoff0 = 0; + charDWidthX = 0; + charDWidthY = 0; + charGlyphInfo = NULL; + charBitmapStarted = false; + charBitmapNextRow = 0; + continue; + } + } + else + { + // STARTFONT + if (strstr(buffer, "STARTFONT") != NULL) + { + if (fontStarted) + { + fontMalformed = true; + break; + } + else + { + fontStarted = true; + continue; + } + } + } + } + + if (genFontChars) RL_FREE(codepoints); + + if (fontMalformed) + { + RL_FREE(glyphs); + glyphs = NULL; + } + + return glyphs; +} + +#endif + #endif // SUPPORT_MODULE_RTEXT From eed56a45d61f40edbe2cbdddc3bd3c333b5cd165 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 11:10:46 +0100 Subject: [PATCH 160/790] REVIEWED: `LoadFontDataBDF()` name and formating --- src/rtext.c | 124 ++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 63 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 0cd90a59c..6163a92a9 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -142,7 +142,7 @@ static Font defaultFont = { 0 }; static Font LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file) #endif #if defined(SUPPORT_FILEFORMAT_BDF) -static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int* outFontSize); +static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int *outFontSize); #endif static int textLineSpacing = 15; // Text vertical line spacing in pixels @@ -547,7 +547,7 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int #if defined(SUPPORT_FILEFORMAT_BDF) if (TextIsEqual(fileExtLower, ".bdf")) { - font.glyphs = LoadBDFFontData(fileData, dataSize, codepoints, font.glyphCount, &font.baseSize); + font.glyphs = LoadFontDataBDF(fileData, dataSize, codepoints, font.glyphCount, &font.baseSize); } else #endif @@ -1457,6 +1457,9 @@ int TextToInteger(const char *text) return value*sign; } +// Get float value from text +// NOTE: This function replaces atof() [stdlib.h] +// WARNING: Only '.' character is understood as decimal point float TextToFloat(const char *text) { float value = 0.0f; @@ -1464,18 +1467,23 @@ float TextToFloat(const char *text) if ((text[0] == '+') || (text[0] == '-')) { - if (text[0] == '-') sign = -1; + if (text[0] == '-') sign = -1.0f; text++; } - int i = 0; - for (; ((text[i] >= '0') && (text[i] <= '9')); ++i) value = value*10.0f + (float)(text[i] - '0'); - if (text[i++] != '.') return value*sign; - float divisor = 10.0f; - for (; ((text[i] >= '0') && (text[i] <= '9')); ++i) + + for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); + + if (text[i++] != '.') value *= sign; + else { - value += ((float)(text[i] - '0'))/divisor; - divisor = divisor*10.0f; + float divisor = 10.0f; + for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) + { + value += ((float)(text[i] - '0'))/divisor; + divisor = divisor*10.0f; + } } + return value; } @@ -2275,41 +2283,41 @@ static char HexToInt(char hex) { // Load font data for further use // NOTE: Requires BDF font memory data -static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int* outFontSize) +static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int *outFontSize) { #define MAX_BUFFER_SIZE 256 + char buffer[MAX_BUFFER_SIZE] = { 0 }; GlyphInfo *glyphs = NULL; - bool genFontChars = false; - int totalReadBytes = 0; // Data bytes read (total) - int readBytes = 0; // Data bytes read (line) - int readVars = 0; // Variables filled by sscanf() + int totalReadBytes = 0; // Data bytes read (total) + int readBytes = 0; // Data bytes read (line) + int readVars = 0; // Variables filled by sscanf() const char *fileText = (const char*)fileData; const char *fileTextPtr = fileText; - bool fontMalformed = false; // Is the font malformed - bool fontStarted = false; // Has font started (STARTFONT) - int fontBBw = 0; // Font base character bounding box width - int fontBBh = 0; // Font base character bounding box height - int fontBBxoff0 = 0; // Font base character bounding box X0 offset - int fontBByoff0 = 0; // Font base character bounding box Y0 offset - int fontAscent = 0; // Font ascent + bool fontMalformed = false; // Is the font malformed + bool fontStarted = false; // Has font started (STARTFONT) + int fontBBw = 0; // Font base character bounding box width + int fontBBh = 0; // Font base character bounding box height + int fontBBxoff0 = 0; // Font base character bounding box X0 offset + int fontBByoff0 = 0; // Font base character bounding box Y0 offset + int fontAscent = 0; // Font ascent - bool charStarted = false; // Has character started (STARTCHAR) - bool charBitmapStarted = false; // Has bitmap data started (BITMAP) - int charBitmapNextRow = 0; // Y position for the next row of bitmap data - int charEncoding = -1; // The unicode value of the character (-1 if not set) - int charBBw = 0; // Character bounding box width - int charBBh = 0; // Character bounding box height - int charBBxoff0 = 0; // Character bounding box X0 offset - int charBByoff0 = 0; // Character bounding box Y0 offset - int charDWidthX = 0; // Character advance X - int charDWidthY = 0; // Character advance Y (unused) - GlyphInfo *charGlyphInfo = NULL; // Pointer to output glyph info (NULL if not set) + bool charStarted = false; // Has character started (STARTCHAR) + bool charBitmapStarted = false; // Has bitmap data started (BITMAP) + int charBitmapNextRow = 0; // Y position for the next row of bitmap data + int charEncoding = -1; // The unicode value of the character (-1 if not set) + int charBBw = 0; // Character bounding box width + int charBBh = 0; // Character bounding box height + int charBBxoff0 = 0; // Character bounding box X0 offset + int charBByoff0 = 0; // Character bounding box Y0 offset + int charDWidthX = 0; // Character advance X + int charDWidthY = 0; // Character advance Y (unused) + GlyphInfo *charGlyphInfo = NULL; // Pointer to output glyph info (NULL if not set) if (fileData == NULL) return glyphs; @@ -2333,12 +2341,12 @@ static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, i totalReadBytes += (readBytes + 1); fileTextPtr += (readBytes + 1); - // COMMENT + // Line: COMMENT if (strstr(buffer, "COMMENT") != NULL) continue; // Ignore line if (charStarted) { - // ENDCHAR + // Line: ENDCHAR if (strstr(buffer, "ENDCHAR") != NULL) { charStarted = false; @@ -2347,59 +2355,56 @@ static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, i if (charBitmapStarted) { - if (charGlyphInfo != NULL) { + if (charGlyphInfo != NULL) + { int pixelY = charBitmapNextRow++; - if (pixelY >= charGlyphInfo->image.height) - { - break; - } + + if (pixelY >= charGlyphInfo->image.height) break; + for (int x = 0; x < readBytes; x++) { char byte = HexToInt(buffer[x]); + for (int bitX = 0; bitX < 4; bitX++) { int pixelX = ((x * 4) + bitX); - if (pixelX >= charGlyphInfo->image.width) - { - break; - } + + if (pixelX >= charGlyphInfo->image.width) break; - if ((byte & (8 >> bitX)) > 0) - { - ((unsigned char*)charGlyphInfo->image.data)[(pixelY * charGlyphInfo->image.width) + pixelX] = 255; - } + if ((byte & (8 >> bitX)) > 0) ((unsigned char*)charGlyphInfo->image.data)[(pixelY * charGlyphInfo->image.width) + pixelX] = 255; } } } continue; } - // ENCODING + // Line: ENCODING if (strstr(buffer, "ENCODING") != NULL) { readVars = sscanf(buffer, "ENCODING %i", &charEncoding); continue; } - // BBX + // Line: BBX if (strstr(buffer, "BBX") != NULL) { readVars = sscanf(buffer, "BBX %i %i %i %i", &charBBw, &charBBh, &charBBxoff0, &charBByoff0); continue; } - // DWIDTH + // Line: DWIDTH if (strstr(buffer, "DWIDTH") != NULL) { readVars = sscanf(buffer, "DWIDTH %i %i", &charDWidthX, &charDWidthY); continue; } - // BITMAP + // Line: BITMAP if (strstr(buffer, "BITMAP") != NULL) { // Search for glyph index in codepoints charGlyphInfo = NULL; + for (int codepointIndex = 0; codepointIndex < codepointCount; codepointIndex++) { if (codepoints[codepointIndex] == charEncoding) @@ -2432,30 +2437,24 @@ static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, i } else if (fontStarted) { - // ENDFONT + // Line: ENDFONT if (strstr(buffer, "ENDFONT") != NULL) { fontStarted = false; break; } - // SIZE + // Line: SIZE if (strstr(buffer, "SIZE") != NULL) { - if (outFontSize != NULL) - { - readVars = sscanf(buffer, "SIZE %i", outFontSize); - } + if (outFontSize != NULL) readVars = sscanf(buffer, "SIZE %i", outFontSize); continue; } // PIXEL_SIZE if (strstr(buffer, "PIXEL_SIZE") != NULL) { - if (outFontSize != NULL) - { - readVars = sscanf(buffer, "PIXEL_SIZE %i", outFontSize); - } + if (outFontSize != NULL) readVars = sscanf(buffer, "PIXEL_SIZE %i", outFontSize); continue; } @@ -2520,7 +2519,6 @@ static GlyphInfo *LoadBDFFontData(const unsigned char *fileData, int dataSize, i return glyphs; } - #endif #endif // SUPPORT_MODULE_RTEXT From 868d515fbc6805d506bf97cf134379d6c293d75c Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 11:18:46 +0100 Subject: [PATCH 161/790] Update rtext.c --- src/rtext.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 6163a92a9..c6187a0a7 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1471,13 +1471,14 @@ float TextToFloat(const char *text) text++; } - for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); + int i = 0; + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); if (text[i++] != '.') value *= sign; else { float divisor = 10.0f; - for (int i = 0; ((text[i] >= '0') && (text[i] <= '9')); i++) + for (; ((text[i] >= '0') && (text[i] <= '9')); i++) { value += ((float)(text[i] - '0'))/divisor; divisor = divisor*10.0f; From a96b224b384c7be1f97dcd0dbdcf858d97660ffd Mon Sep 17 00:00:00 2001 From: A Date: Sun, 4 Feb 2024 11:24:05 +0100 Subject: [PATCH 162/790] Add gamepad support to PLATFORM_DESKTOP_SDL (#3776) Co-authored-by: Arthur --- src/platforms/rcore_desktop_sdl.c | 166 +++++++++++++++++++++++++++--- 1 file changed, 150 insertions(+), 16 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 7b386b2c4..2e2d190cb 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -64,7 +64,7 @@ typedef struct { SDL_Window *window; SDL_GLContext glContext; - SDL_Joystick *gamepad; + SDL_Joystick *gamepad[MAX_GAMEPADS]; SDL_Cursor *cursor; bool cursorRelative; } PlatformData; @@ -978,8 +978,18 @@ void PollInputEvents(void) else CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; // Reset last gamepad button/axis registered state - CORE.Input.Gamepad.lastButtonPressed = GAMEPAD_BUTTON_UNKNOWN; - for (int i = 0; i < MAX_GAMEPADS; i++) CORE.Input.Gamepad.axisCount[i] = 0; + for (int i = 0; (i < SDL_NumJoysticks()) && (i < MAX_GAMEPADS); i++) + { + // Check if gamepad is available + if (CORE.Input.Gamepad.ready[i]) + { + // Register previous gamepad button states + for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) + { + CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; + } + } + } // Register previous touch states for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i]; @@ -1215,20 +1225,134 @@ void PollInputEvents(void) } break; // Check gamepad events + case SDL_JOYDEVICEADDED: + { + int jid = event.jdevice.which; + if (!CORE.Input.Gamepad.ready[jid] && (jid < MAX_GAMEPADS)) { + platform.gamepad[jid] = SDL_JoystickOpen(jid); + + if (platform.gamepad[jid]) + { + CORE.Input.Gamepad.ready[jid] = true; + CORE.Input.Gamepad.axisCount[jid] = SDL_JoystickNumAxes(platform.gamepad[jid]); + CORE.Input.Gamepad.axisState[jid][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; + CORE.Input.Gamepad.axisState[jid][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; + strncpy(CORE.Input.Gamepad.name[jid], SDL_JoystickName(platform.gamepad[jid]), 63); + CORE.Input.Gamepad.name[jid][63] = '\0'; + } + else + { + TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); + } + } + } break; + case SDL_JOYDEVICEREMOVED: + { + int jid = event.jdevice.which; + if (jid == SDL_JoystickInstanceID(platform.gamepad[jid])) { + SDL_JoystickClose(platform.gamepad[jid]); + platform.gamepad[jid] = SDL_JoystickOpen(0); + CORE.Input.Gamepad.ready[jid] = false; + memset(CORE.Input.Gamepad.name[jid], 0, 64); + } + } break; + case SDL_JOYBUTTONDOWN: + { + int button = -1; + + switch (event.jbutton.button) + { + case SDL_CONTROLLER_BUTTON_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; + case SDL_CONTROLLER_BUTTON_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; + case SDL_CONTROLLER_BUTTON_A: button = GAMEPAD_BUTTON_RIGHT_FACE_DOWN; break; + case SDL_CONTROLLER_BUTTON_X: button = GAMEPAD_BUTTON_RIGHT_FACE_LEFT; break; + + case SDL_CONTROLLER_BUTTON_LEFTSHOULDER: button = GAMEPAD_BUTTON_LEFT_TRIGGER_1; break; + case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_1; break; + + case SDL_CONTROLLER_BUTTON_BACK: button = GAMEPAD_BUTTON_MIDDLE_LEFT; break; + case SDL_CONTROLLER_BUTTON_GUIDE: button = GAMEPAD_BUTTON_MIDDLE; break; + case SDL_CONTROLLER_BUTTON_START: button = GAMEPAD_BUTTON_MIDDLE_RIGHT; break; + + case SDL_CONTROLLER_BUTTON_DPAD_UP: button = GAMEPAD_BUTTON_LEFT_FACE_UP; break; + case SDL_CONTROLLER_BUTTON_DPAD_RIGHT: button = GAMEPAD_BUTTON_LEFT_FACE_RIGHT; break; + case SDL_CONTROLLER_BUTTON_DPAD_DOWN: button = GAMEPAD_BUTTON_LEFT_FACE_DOWN; break; + case SDL_CONTROLLER_BUTTON_DPAD_LEFT: button = GAMEPAD_BUTTON_LEFT_FACE_LEFT; break; + + case SDL_CONTROLLER_BUTTON_LEFTSTICK: button = GAMEPAD_BUTTON_LEFT_THUMB; break; + case SDL_CONTROLLER_BUTTON_RIGHTSTICK: button = GAMEPAD_BUTTON_RIGHT_THUMB; break; + default: break; + } + + if (button >= 0) + { + CORE.Input.Gamepad.currentButtonState[event.jbutton.which][button] = 1; + CORE.Input.Gamepad.lastButtonPressed = button; + } + } break; + case SDL_JOYBUTTONUP: + { + int button = -1; + + switch (event.jbutton.button) + { + case SDL_CONTROLLER_BUTTON_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; + case SDL_CONTROLLER_BUTTON_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; + case SDL_CONTROLLER_BUTTON_A: button = GAMEPAD_BUTTON_RIGHT_FACE_DOWN; break; + case SDL_CONTROLLER_BUTTON_X: button = GAMEPAD_BUTTON_RIGHT_FACE_LEFT; break; + + case SDL_CONTROLLER_BUTTON_LEFTSHOULDER: button = GAMEPAD_BUTTON_LEFT_TRIGGER_1; break; + case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_1; break; + + case SDL_CONTROLLER_BUTTON_BACK: button = GAMEPAD_BUTTON_MIDDLE_LEFT; break; + case SDL_CONTROLLER_BUTTON_GUIDE: button = GAMEPAD_BUTTON_MIDDLE; break; + case SDL_CONTROLLER_BUTTON_START: button = GAMEPAD_BUTTON_MIDDLE_RIGHT; break; + + case SDL_CONTROLLER_BUTTON_DPAD_UP: button = GAMEPAD_BUTTON_LEFT_FACE_UP; break; + case SDL_CONTROLLER_BUTTON_DPAD_RIGHT: button = GAMEPAD_BUTTON_LEFT_FACE_RIGHT; break; + case SDL_CONTROLLER_BUTTON_DPAD_DOWN: button = GAMEPAD_BUTTON_LEFT_FACE_DOWN; break; + case SDL_CONTROLLER_BUTTON_DPAD_LEFT: button = GAMEPAD_BUTTON_LEFT_FACE_LEFT; break; + + case SDL_CONTROLLER_BUTTON_LEFTSTICK: button = GAMEPAD_BUTTON_LEFT_THUMB; break; + case SDL_CONTROLLER_BUTTON_RIGHTSTICK: button = GAMEPAD_BUTTON_RIGHT_THUMB; break; + default: break; + } + + if (button >= 0) + { + CORE.Input.Gamepad.currentButtonState[event.jbutton.which][button] = 0; + if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0; + } + } break; case SDL_JOYAXISMOTION: { - // Motion on gamepad 0 - if (event.jaxis.which == 0) + int axis = -1; + + switch (event.jaxis.axis) { - // X axis motion - if (event.jaxis.axis == 0) + case SDL_CONTROLLER_AXIS_LEFTX: axis = GAMEPAD_AXIS_LEFT_X; break; + case SDL_CONTROLLER_AXIS_LEFTY: axis = GAMEPAD_AXIS_LEFT_Y; break; + case SDL_CONTROLLER_AXIS_RIGHTX: axis = GAMEPAD_AXIS_RIGHT_X; break; + case SDL_CONTROLLER_AXIS_RIGHTY: axis = GAMEPAD_AXIS_RIGHT_Y; break; + case SDL_CONTROLLER_AXIS_TRIGGERLEFT: axis = GAMEPAD_AXIS_LEFT_TRIGGER; break; + case SDL_CONTROLLER_AXIS_TRIGGERRIGHT: axis = GAMEPAD_AXIS_RIGHT_TRIGGER; break; + default: break; + } + + if (axis >= 0) + { + // SDL axis value range is -32768 to 32767, we normalize it to RayLib's -1.0 to 1.0f range + float value = event.jaxis.value / (float) 32767; + CORE.Input.Gamepad.axisState[event.jaxis.which][axis] = value; + + // Register button state for triggers in addition to their axes + if ((axis == GAMEPAD_AXIS_LEFT_TRIGGER) || (axis == GAMEPAD_AXIS_RIGHT_TRIGGER)) { - //... - } - // Y axis motion - else if (event.jaxis.axis == 1) - { - //... + int button = (axis == GAMEPAD_AXIS_LEFT_TRIGGER) ? GAMEPAD_BUTTON_LEFT_TRIGGER_2 : GAMEPAD_BUTTON_RIGHT_TRIGGER_2; + int pressed = (value > 0.1f); + CORE.Input.Gamepad.currentButtonState[event.jaxis.which][button] = pressed; + if (pressed) CORE.Input.Gamepad.lastButtonPressed = button; + else if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0; } } } break; @@ -1405,10 +1529,20 @@ int InitPlatform(void) // Initialize input events system //---------------------------------------------------------------------------- - if (SDL_NumJoysticks() >= 1) + // Initialize gamepads + for (int i = 0; (i < SDL_NumJoysticks()) && (i < MAX_GAMEPADS); i++) { - platform.gamepad = SDL_JoystickOpen(0); - //if (platform.gamepadgamepad == NULL) TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); + platform.gamepad[i] = SDL_JoystickOpen(i); + if (platform.gamepad[i]) + { + CORE.Input.Gamepad.ready[i] = true; + CORE.Input.Gamepad.axisCount[i] = SDL_JoystickNumAxes(platform.gamepad[i]); + CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; + CORE.Input.Gamepad.axisState[i][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; + strncpy(CORE.Input.Gamepad.name[i], SDL_JoystickName(platform.gamepad[i]), 63); + CORE.Input.Gamepad.name[i][63] = '\0'; + } + else TRACELOG(LOG_WARNING, "PLATFORM: Unable to open game controller [ERROR: %s]", SDL_GetError()); } // Disable mouse events being interpreted as touch events From d91e9104aab9ef329ac946d37033578c6becec78 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Sun, 4 Feb 2024 11:28:58 +0100 Subject: [PATCH 163/790] [rcore] Fix `GetFileNameWithoutExt()` (#3771) * Update rcore.c fix [rcore] GetFileNameWithoutExt * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c * Update rcore.c --- src/rcore.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index f0af87f9d..8dc14c3b9 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1946,25 +1946,25 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 - + #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 + static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 }; memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); - if (filePath != NULL) strcpy(fileName, GetFileName(filePath)); // Get filename with extension - - int size = (int)strlen(fileName); // Get size in bytes - - for (int i = 0; (i < size) && (i < MAX_FILENAMEWITHOUTEXT_LENGTH); i++) + if (filePath != NULL) { - if (fileName[i] == '.') + strcpy(fileName, GetFileName(filePath)); // Get filename.ext without path + int size = (int)strlen(fileName); // Get size in bytes + for (int i = size; i>0; i--) // Reverse search '.' { - // NOTE: We break on first '.' found - fileName[i] = '\0'; - break; + if (fileName[i] == '.') + { + // NOTE: We break on first '.' found + fileName[i] = '\0'; + break; + } } } - return fileName; } From f033b307030f00e1ae3875fb22de3f86cc4282c3 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 11:33:38 +0100 Subject: [PATCH 164/790] Review formating and some defines naming consistency --- src/rcore.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 8dc14c3b9..784b9b621 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1840,7 +1840,7 @@ bool FileExists(const char *fileName) // NOTE: Extensions checking is not case-sensitive bool IsFileExtension(const char *fileName, const char *ext) { - #define MAX_FILE_EXTENSION_SIZE 16 + #define MAX_FILE_EXTENSION_LENGTH 16 bool result = false; const char *fileExt = GetFileExtension(fileName); @@ -1851,8 +1851,8 @@ bool IsFileExtension(const char *fileName, const char *ext) int extCount = 0; const char **checkExts = TextSplit(ext, ';', &extCount); // WARNING: Module required: rtext - char fileExtLower[MAX_FILE_EXTENSION_SIZE + 1] = { 0 }; - strncpy(fileExtLower, TextToLower(fileExt), MAX_FILE_EXTENSION_SIZE); // WARNING: Module required: rtext + char fileExtLower[MAX_FILE_EXTENSION_LENGTH + 1] = { 0 }; + strncpy(fileExtLower, TextToLower(fileExt), MAX_FILE_EXTENSION_LENGTH); // WARNING: Module required: rtext for (int i = 0; i < extCount; i++) { @@ -1946,16 +1946,17 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 + #define MAX_FILENAME_LENGTH 256 - static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 }; - memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); + static char fileName[MAX_FILENAME_LENGTH] = { 0 }; + memset(fileName, 0, MAX_FILENAME_LENGTH); if (filePath != NULL) { strcpy(fileName, GetFileName(filePath)); // Get filename.ext without path int size = (int)strlen(fileName); // Get size in bytes - for (int i = size; i>0; i--) // Reverse search '.' + + for (int i = size; i > 0; i--) // Reverse search '.' { if (fileName[i] == '.') { @@ -1965,6 +1966,7 @@ const char *GetFileNameWithoutExt(const char *filePath) } } } + return fileName; } From 9a5dddc311d890c30474d8ac28e6887ffd11688e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Almeida?= <60551627+luis605@users.noreply.github.com> Date: Sun, 4 Feb 2024 10:37:10 +0000 Subject: [PATCH 165/790] Added viewport independent raycast (#3709) * added viewport independent raycast * Renamed GetMouseRayEx to GetViewRay --- src/raylib.h | 1 + src/rcore.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 4c4b191c0..e2404a324 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1050,6 +1050,7 @@ RLAPI void UnloadShader(Shader shader); // Un // Screen-space-related functions RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position +RLAPI Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position diff --git a/src/rcore.c b/src/rcore.c index 784b9b621..48c863f56 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1404,14 +1404,20 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) //---------------------------------------------------------------------------------- // Get a ray trace from mouse position -Ray GetMouseRay(Vector2 mouse, Camera camera) +Ray GetMouseRay(Vector2 mousePosition, Camera camera) +{ + return GetViewRay(mousePosition, camera, GetScreenWidth(), GetScreenHeight()); +} + +// Get a ray trace from the mouse position within a specific section of the screen +Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height) { Ray ray = { 0 }; // Calculate normalized device coordinates // NOTE: y value is negative - float x = (2.0f*mouse.x)/(float)GetScreenWidth() - 1.0f; - float y = 1.0f - (2.0f*mouse.y)/(float)GetScreenHeight(); + float x = (2.0f*mousePosition.x)/width - 1.0f; + float y = 1.0f - (2.0f*mousePosition.y)/height; float z = 1.0f; // Store values in a vector @@ -1425,11 +1431,11 @@ Ray GetMouseRay(Vector2 mouse, Camera camera) if (camera.projection == CAMERA_PERSPECTIVE) { // Calculate projection matrix from perspective - matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)GetScreenWidth()/(double)GetScreenHeight()), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)width/(double)height), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); } else if (camera.projection == CAMERA_ORTHOGRAPHIC) { - double aspect = (double)CORE.Window.screen.width/(double)CORE.Window.screen.height; + double aspect = (double)width/(double)height; double top = camera.fovy/2.0; double right = top*aspect; From 250d89b6211d893a4f55732a08b67bad834d5576 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 4 Feb 2024 10:37:24 +0000 Subject: [PATCH 166/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 23 + parser/output/raylib_api.lua | 11 + parser/output/raylib_api.txt | 958 +++++++++++++++++----------------- parser/output/raylib_api.xml | 8 +- 4 files changed, 524 insertions(+), 476 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index dd305c5c6..c48c1dd59 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -3886,6 +3886,29 @@ } ] }, + { + "name": "GetViewRay", + "description": "Get a ray trace from mouse position in a viewport", + "returnType": "Ray", + "params": [ + { + "type": "Vector2", + "name": "mousePosition" + }, + { + "type": "Camera", + "name": "camera" + }, + { + "type": "float", + "name": "width" + }, + { + "type": "float", + "name": "height" + } + ] + }, { "name": "GetCameraMatrix", "description": "Get camera transform matrix (view matrix)", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index d4a8aeed8..882fb61f5 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -3643,6 +3643,17 @@ return { {type = "Camera", name = "camera"} } }, + { + name = "GetViewRay", + description = "Get a ray trace from mouse position in a viewport", + returnType = "Ray", + params = { + {type = "Vector2", name = "mousePosition"}, + {type = "Camera", name = "camera"}, + {type = "float", name = "width"}, + {type = "float", name = "height"} + } + }, { name = "GetCameraMatrix", description = "Get camera transform matrix (view matrix)", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 45faa3eb1..ee1e55af9 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -979,7 +979,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 558 +Functions found: 559 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -1427,29 +1427,37 @@ Function 084: GetMouseRay() (2 input parameters) Description: Get a ray trace from mouse position Param[1]: mousePosition (type: Vector2) Param[2]: camera (type: Camera) -Function 085: GetCameraMatrix() (1 input parameters) +Function 085: GetViewRay() (4 input parameters) + Name: GetViewRay + Return type: Ray + Description: Get a ray trace from mouse position in a viewport + Param[1]: mousePosition (type: Vector2) + Param[2]: camera (type: Camera) + Param[3]: width (type: float) + Param[4]: height (type: float) +Function 086: GetCameraMatrix() (1 input parameters) Name: GetCameraMatrix Return type: Matrix Description: Get camera transform matrix (view matrix) Param[1]: camera (type: Camera) -Function 086: GetCameraMatrix2D() (1 input parameters) +Function 087: GetCameraMatrix2D() (1 input parameters) Name: GetCameraMatrix2D Return type: Matrix Description: Get camera 2d transform matrix Param[1]: camera (type: Camera2D) -Function 087: GetWorldToScreen() (2 input parameters) +Function 088: GetWorldToScreen() (2 input parameters) Name: GetWorldToScreen Return type: Vector2 Description: Get the screen space position for a 3d world space position Param[1]: position (type: Vector3) Param[2]: camera (type: Camera) -Function 088: GetScreenToWorld2D() (2 input parameters) +Function 089: GetScreenToWorld2D() (2 input parameters) Name: GetScreenToWorld2D Return type: Vector2 Description: Get the world space position for a 2d camera screen space position Param[1]: position (type: Vector2) Param[2]: camera (type: Camera2D) -Function 089: GetWorldToScreenEx() (4 input parameters) +Function 090: GetWorldToScreenEx() (4 input parameters) Name: GetWorldToScreenEx Return type: Vector2 Description: Get size position for a 3d world space position @@ -1457,590 +1465,590 @@ Function 089: GetWorldToScreenEx() (4 input parameters) Param[2]: camera (type: Camera) Param[3]: width (type: int) Param[4]: height (type: int) -Function 090: GetWorldToScreen2D() (2 input parameters) +Function 091: GetWorldToScreen2D() (2 input parameters) Name: GetWorldToScreen2D Return type: Vector2 Description: Get the screen space position for a 2d camera world space position Param[1]: position (type: Vector2) Param[2]: camera (type: Camera2D) -Function 091: SetTargetFPS() (1 input parameters) +Function 092: SetTargetFPS() (1 input parameters) Name: SetTargetFPS Return type: void Description: Set target FPS (maximum) Param[1]: fps (type: int) -Function 092: GetFrameTime() (0 input parameters) +Function 093: GetFrameTime() (0 input parameters) Name: GetFrameTime Return type: float Description: Get time in seconds for last frame drawn (delta time) No input parameters -Function 093: GetTime() (0 input parameters) +Function 094: GetTime() (0 input parameters) Name: GetTime Return type: double Description: Get elapsed time in seconds since InitWindow() No input parameters -Function 094: GetFPS() (0 input parameters) +Function 095: GetFPS() (0 input parameters) Name: GetFPS Return type: int Description: Get current FPS No input parameters -Function 095: SwapScreenBuffer() (0 input parameters) +Function 096: SwapScreenBuffer() (0 input parameters) Name: SwapScreenBuffer Return type: void Description: Swap back buffer with front buffer (screen drawing) No input parameters -Function 096: PollInputEvents() (0 input parameters) +Function 097: PollInputEvents() (0 input parameters) Name: PollInputEvents Return type: void Description: Register all input events No input parameters -Function 097: WaitTime() (1 input parameters) +Function 098: WaitTime() (1 input parameters) Name: WaitTime Return type: void Description: Wait for some time (halt program execution) Param[1]: seconds (type: double) -Function 098: SetRandomSeed() (1 input parameters) +Function 099: SetRandomSeed() (1 input parameters) Name: SetRandomSeed Return type: void Description: Set the seed for the random number generator Param[1]: seed (type: unsigned int) -Function 099: GetRandomValue() (2 input parameters) +Function 100: GetRandomValue() (2 input parameters) Name: GetRandomValue Return type: int Description: Get a random value between min and max (both included) Param[1]: min (type: int) Param[2]: max (type: int) -Function 100: LoadRandomSequence() (3 input parameters) +Function 101: LoadRandomSequence() (3 input parameters) Name: LoadRandomSequence Return type: int * Description: Load random values sequence, no values repeated Param[1]: count (type: unsigned int) Param[2]: min (type: int) Param[3]: max (type: int) -Function 101: UnloadRandomSequence() (1 input parameters) +Function 102: UnloadRandomSequence() (1 input parameters) Name: UnloadRandomSequence Return type: void Description: Unload random values sequence Param[1]: sequence (type: int *) -Function 102: TakeScreenshot() (1 input parameters) +Function 103: TakeScreenshot() (1 input parameters) Name: TakeScreenshot Return type: void Description: Takes a screenshot of current screen (filename extension defines format) Param[1]: fileName (type: const char *) -Function 103: SetConfigFlags() (1 input parameters) +Function 104: SetConfigFlags() (1 input parameters) Name: SetConfigFlags Return type: void Description: Setup init configuration flags (view FLAGS) Param[1]: flags (type: unsigned int) -Function 104: OpenURL() (1 input parameters) +Function 105: OpenURL() (1 input parameters) Name: OpenURL Return type: void Description: Open URL with default system browser (if available) Param[1]: url (type: const char *) -Function 105: TraceLog() (3 input parameters) +Function 106: TraceLog() (3 input parameters) Name: TraceLog Return type: void Description: Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) Param[1]: logLevel (type: int) Param[2]: text (type: const char *) Param[3]: args (type: ...) -Function 106: SetTraceLogLevel() (1 input parameters) +Function 107: SetTraceLogLevel() (1 input parameters) Name: SetTraceLogLevel Return type: void Description: Set the current threshold (minimum) log level Param[1]: logLevel (type: int) -Function 107: MemAlloc() (1 input parameters) +Function 108: MemAlloc() (1 input parameters) Name: MemAlloc Return type: void * Description: Internal memory allocator Param[1]: size (type: unsigned int) -Function 108: MemRealloc() (2 input parameters) +Function 109: MemRealloc() (2 input parameters) Name: MemRealloc Return type: void * Description: Internal memory reallocator Param[1]: ptr (type: void *) Param[2]: size (type: unsigned int) -Function 109: MemFree() (1 input parameters) +Function 110: MemFree() (1 input parameters) Name: MemFree Return type: void Description: Internal memory free Param[1]: ptr (type: void *) -Function 110: SetTraceLogCallback() (1 input parameters) +Function 111: SetTraceLogCallback() (1 input parameters) Name: SetTraceLogCallback Return type: void Description: Set custom trace log Param[1]: callback (type: TraceLogCallback) -Function 111: SetLoadFileDataCallback() (1 input parameters) +Function 112: SetLoadFileDataCallback() (1 input parameters) Name: SetLoadFileDataCallback Return type: void Description: Set custom file binary data loader Param[1]: callback (type: LoadFileDataCallback) -Function 112: SetSaveFileDataCallback() (1 input parameters) +Function 113: SetSaveFileDataCallback() (1 input parameters) Name: SetSaveFileDataCallback Return type: void Description: Set custom file binary data saver Param[1]: callback (type: SaveFileDataCallback) -Function 113: SetLoadFileTextCallback() (1 input parameters) +Function 114: SetLoadFileTextCallback() (1 input parameters) Name: SetLoadFileTextCallback Return type: void Description: Set custom file text data loader Param[1]: callback (type: LoadFileTextCallback) -Function 114: SetSaveFileTextCallback() (1 input parameters) +Function 115: SetSaveFileTextCallback() (1 input parameters) Name: SetSaveFileTextCallback Return type: void Description: Set custom file text data saver Param[1]: callback (type: SaveFileTextCallback) -Function 115: LoadFileData() (2 input parameters) +Function 116: LoadFileData() (2 input parameters) Name: LoadFileData Return type: unsigned char * Description: Load file data as byte array (read) Param[1]: fileName (type: const char *) Param[2]: dataSize (type: int *) -Function 116: UnloadFileData() (1 input parameters) +Function 117: UnloadFileData() (1 input parameters) Name: UnloadFileData Return type: void Description: Unload file data allocated by LoadFileData() Param[1]: data (type: unsigned char *) -Function 117: SaveFileData() (3 input parameters) +Function 118: SaveFileData() (3 input parameters) Name: SaveFileData Return type: bool Description: Save data to file from byte array (write), returns true on success Param[1]: fileName (type: const char *) Param[2]: data (type: void *) Param[3]: dataSize (type: int) -Function 118: ExportDataAsCode() (3 input parameters) +Function 119: ExportDataAsCode() (3 input parameters) Name: ExportDataAsCode Return type: bool Description: Export data to code (.h), returns true on success Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: fileName (type: const char *) -Function 119: LoadFileText() (1 input parameters) +Function 120: LoadFileText() (1 input parameters) Name: LoadFileText Return type: char * Description: Load text data from file (read), returns a '\0' terminated string Param[1]: fileName (type: const char *) -Function 120: UnloadFileText() (1 input parameters) +Function 121: UnloadFileText() (1 input parameters) Name: UnloadFileText Return type: void Description: Unload file text data allocated by LoadFileText() Param[1]: text (type: char *) -Function 121: SaveFileText() (2 input parameters) +Function 122: SaveFileText() (2 input parameters) Name: SaveFileText Return type: bool Description: Save text data to file (write), string must be '\0' terminated, returns true on success Param[1]: fileName (type: const char *) Param[2]: text (type: char *) -Function 122: FileExists() (1 input parameters) +Function 123: FileExists() (1 input parameters) Name: FileExists Return type: bool Description: Check if file exists Param[1]: fileName (type: const char *) -Function 123: DirectoryExists() (1 input parameters) +Function 124: DirectoryExists() (1 input parameters) Name: DirectoryExists Return type: bool Description: Check if a directory path exists Param[1]: dirPath (type: const char *) -Function 124: IsFileExtension() (2 input parameters) +Function 125: IsFileExtension() (2 input parameters) Name: IsFileExtension Return type: bool Description: Check file extension (including point: .png, .wav) Param[1]: fileName (type: const char *) Param[2]: ext (type: const char *) -Function 125: GetFileLength() (1 input parameters) +Function 126: GetFileLength() (1 input parameters) Name: GetFileLength Return type: int Description: Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) Param[1]: fileName (type: const char *) -Function 126: GetFileExtension() (1 input parameters) +Function 127: GetFileExtension() (1 input parameters) Name: GetFileExtension Return type: const char * Description: Get pointer to extension for a filename string (includes dot: '.png') Param[1]: fileName (type: const char *) -Function 127: GetFileName() (1 input parameters) +Function 128: GetFileName() (1 input parameters) Name: GetFileName Return type: const char * Description: Get pointer to filename for a path string Param[1]: filePath (type: const char *) -Function 128: GetFileNameWithoutExt() (1 input parameters) +Function 129: GetFileNameWithoutExt() (1 input parameters) Name: GetFileNameWithoutExt Return type: const char * Description: Get filename string without extension (uses static string) Param[1]: filePath (type: const char *) -Function 129: GetDirectoryPath() (1 input parameters) +Function 130: GetDirectoryPath() (1 input parameters) Name: GetDirectoryPath Return type: const char * Description: Get full path for a given fileName with path (uses static string) Param[1]: filePath (type: const char *) -Function 130: GetPrevDirectoryPath() (1 input parameters) +Function 131: GetPrevDirectoryPath() (1 input parameters) Name: GetPrevDirectoryPath Return type: const char * Description: Get previous directory path for a given path (uses static string) Param[1]: dirPath (type: const char *) -Function 131: GetWorkingDirectory() (0 input parameters) +Function 132: GetWorkingDirectory() (0 input parameters) Name: GetWorkingDirectory Return type: const char * Description: Get current working directory (uses static string) No input parameters -Function 132: GetApplicationDirectory() (0 input parameters) +Function 133: GetApplicationDirectory() (0 input parameters) Name: GetApplicationDirectory Return type: const char * Description: Get the directory of the running application (uses static string) No input parameters -Function 133: ChangeDirectory() (1 input parameters) +Function 134: ChangeDirectory() (1 input parameters) Name: ChangeDirectory Return type: bool Description: Change working directory, return true on success Param[1]: dir (type: const char *) -Function 134: IsPathFile() (1 input parameters) +Function 135: IsPathFile() (1 input parameters) Name: IsPathFile Return type: bool Description: Check if a given path is a file or a directory Param[1]: path (type: const char *) -Function 135: LoadDirectoryFiles() (1 input parameters) +Function 136: LoadDirectoryFiles() (1 input parameters) Name: LoadDirectoryFiles Return type: FilePathList Description: Load directory filepaths Param[1]: dirPath (type: const char *) -Function 136: LoadDirectoryFilesEx() (3 input parameters) +Function 137: LoadDirectoryFilesEx() (3 input parameters) Name: LoadDirectoryFilesEx Return type: FilePathList Description: Load directory filepaths with extension filtering and recursive directory scan Param[1]: basePath (type: const char *) Param[2]: filter (type: const char *) Param[3]: scanSubdirs (type: bool) -Function 137: UnloadDirectoryFiles() (1 input parameters) +Function 138: UnloadDirectoryFiles() (1 input parameters) Name: UnloadDirectoryFiles Return type: void Description: Unload filepaths Param[1]: files (type: FilePathList) -Function 138: IsFileDropped() (0 input parameters) +Function 139: IsFileDropped() (0 input parameters) Name: IsFileDropped Return type: bool Description: Check if a file has been dropped into window No input parameters -Function 139: LoadDroppedFiles() (0 input parameters) +Function 140: LoadDroppedFiles() (0 input parameters) Name: LoadDroppedFiles Return type: FilePathList Description: Load dropped filepaths No input parameters -Function 140: UnloadDroppedFiles() (1 input parameters) +Function 141: UnloadDroppedFiles() (1 input parameters) Name: UnloadDroppedFiles Return type: void Description: Unload dropped filepaths Param[1]: files (type: FilePathList) -Function 141: GetFileModTime() (1 input parameters) +Function 142: GetFileModTime() (1 input parameters) Name: GetFileModTime Return type: long Description: Get file modification time (last write time) Param[1]: fileName (type: const char *) -Function 142: CompressData() (3 input parameters) +Function 143: CompressData() (3 input parameters) Name: CompressData Return type: unsigned char * Description: Compress data (DEFLATE algorithm), memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: compDataSize (type: int *) -Function 143: DecompressData() (3 input parameters) +Function 144: DecompressData() (3 input parameters) Name: DecompressData Return type: unsigned char * Description: Decompress data (DEFLATE algorithm), memory must be MemFree() Param[1]: compData (type: const unsigned char *) Param[2]: compDataSize (type: int) Param[3]: dataSize (type: int *) -Function 144: EncodeDataBase64() (3 input parameters) +Function 145: EncodeDataBase64() (3 input parameters) Name: EncodeDataBase64 Return type: char * Description: Encode data to Base64 string, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: outputSize (type: int *) -Function 145: DecodeDataBase64() (2 input parameters) +Function 146: DecodeDataBase64() (2 input parameters) Name: DecodeDataBase64 Return type: unsigned char * Description: Decode Base64 string data, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: outputSize (type: int *) -Function 146: LoadAutomationEventList() (1 input parameters) +Function 147: LoadAutomationEventList() (1 input parameters) Name: LoadAutomationEventList Return type: AutomationEventList Description: Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS Param[1]: fileName (type: const char *) -Function 147: UnloadAutomationEventList() (1 input parameters) +Function 148: UnloadAutomationEventList() (1 input parameters) Name: UnloadAutomationEventList Return type: void Description: Unload automation events list from file Param[1]: list (type: AutomationEventList) -Function 148: ExportAutomationEventList() (2 input parameters) +Function 149: ExportAutomationEventList() (2 input parameters) Name: ExportAutomationEventList Return type: bool Description: Export automation events list as text file Param[1]: list (type: AutomationEventList) Param[2]: fileName (type: const char *) -Function 149: SetAutomationEventList() (1 input parameters) +Function 150: SetAutomationEventList() (1 input parameters) Name: SetAutomationEventList Return type: void Description: Set automation event list to record to Param[1]: list (type: AutomationEventList *) -Function 150: SetAutomationEventBaseFrame() (1 input parameters) +Function 151: SetAutomationEventBaseFrame() (1 input parameters) Name: SetAutomationEventBaseFrame Return type: void Description: Set automation event internal base frame to start recording Param[1]: frame (type: int) -Function 151: StartAutomationEventRecording() (0 input parameters) +Function 152: StartAutomationEventRecording() (0 input parameters) Name: StartAutomationEventRecording Return type: void Description: Start recording automation events (AutomationEventList must be set) No input parameters -Function 152: StopAutomationEventRecording() (0 input parameters) +Function 153: StopAutomationEventRecording() (0 input parameters) Name: StopAutomationEventRecording Return type: void Description: Stop recording automation events No input parameters -Function 153: PlayAutomationEvent() (1 input parameters) +Function 154: PlayAutomationEvent() (1 input parameters) Name: PlayAutomationEvent Return type: void Description: Play a recorded automation event Param[1]: event (type: AutomationEvent) -Function 154: IsKeyPressed() (1 input parameters) +Function 155: IsKeyPressed() (1 input parameters) Name: IsKeyPressed Return type: bool Description: Check if a key has been pressed once Param[1]: key (type: int) -Function 155: IsKeyPressedRepeat() (1 input parameters) +Function 156: IsKeyPressedRepeat() (1 input parameters) Name: IsKeyPressedRepeat Return type: bool Description: Check if a key has been pressed again (Only PLATFORM_DESKTOP) Param[1]: key (type: int) -Function 156: IsKeyDown() (1 input parameters) +Function 157: IsKeyDown() (1 input parameters) Name: IsKeyDown Return type: bool Description: Check if a key is being pressed Param[1]: key (type: int) -Function 157: IsKeyReleased() (1 input parameters) +Function 158: IsKeyReleased() (1 input parameters) Name: IsKeyReleased Return type: bool Description: Check if a key has been released once Param[1]: key (type: int) -Function 158: IsKeyUp() (1 input parameters) +Function 159: IsKeyUp() (1 input parameters) Name: IsKeyUp Return type: bool Description: Check if a key is NOT being pressed Param[1]: key (type: int) -Function 159: GetKeyPressed() (0 input parameters) +Function 160: GetKeyPressed() (0 input parameters) Name: GetKeyPressed Return type: int Description: Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty No input parameters -Function 160: GetCharPressed() (0 input parameters) +Function 161: GetCharPressed() (0 input parameters) Name: GetCharPressed Return type: int Description: Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty No input parameters -Function 161: SetExitKey() (1 input parameters) +Function 162: SetExitKey() (1 input parameters) Name: SetExitKey Return type: void Description: Set a custom key to exit program (default is ESC) Param[1]: key (type: int) -Function 162: IsGamepadAvailable() (1 input parameters) +Function 163: IsGamepadAvailable() (1 input parameters) Name: IsGamepadAvailable Return type: bool Description: Check if a gamepad is available Param[1]: gamepad (type: int) -Function 163: GetGamepadName() (1 input parameters) +Function 164: GetGamepadName() (1 input parameters) Name: GetGamepadName Return type: const char * Description: Get gamepad internal name id Param[1]: gamepad (type: int) -Function 164: IsGamepadButtonPressed() (2 input parameters) +Function 165: IsGamepadButtonPressed() (2 input parameters) Name: IsGamepadButtonPressed Return type: bool Description: Check if a gamepad button has been pressed once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 165: IsGamepadButtonDown() (2 input parameters) +Function 166: IsGamepadButtonDown() (2 input parameters) Name: IsGamepadButtonDown Return type: bool Description: Check if a gamepad button is being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 166: IsGamepadButtonReleased() (2 input parameters) +Function 167: IsGamepadButtonReleased() (2 input parameters) Name: IsGamepadButtonReleased Return type: bool Description: Check if a gamepad button has been released once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 167: IsGamepadButtonUp() (2 input parameters) +Function 168: IsGamepadButtonUp() (2 input parameters) Name: IsGamepadButtonUp Return type: bool Description: Check if a gamepad button is NOT being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 168: GetGamepadButtonPressed() (0 input parameters) +Function 169: GetGamepadButtonPressed() (0 input parameters) Name: GetGamepadButtonPressed Return type: int Description: Get the last gamepad button pressed No input parameters -Function 169: GetGamepadAxisCount() (1 input parameters) +Function 170: GetGamepadAxisCount() (1 input parameters) Name: GetGamepadAxisCount Return type: int Description: Get gamepad axis count for a gamepad Param[1]: gamepad (type: int) -Function 170: GetGamepadAxisMovement() (2 input parameters) +Function 171: GetGamepadAxisMovement() (2 input parameters) Name: GetGamepadAxisMovement Return type: float Description: Get axis movement value for a gamepad axis Param[1]: gamepad (type: int) Param[2]: axis (type: int) -Function 171: SetGamepadMappings() (1 input parameters) +Function 172: SetGamepadMappings() (1 input parameters) Name: SetGamepadMappings Return type: int Description: Set internal gamepad mappings (SDL_GameControllerDB) Param[1]: mappings (type: const char *) -Function 172: IsMouseButtonPressed() (1 input parameters) +Function 173: IsMouseButtonPressed() (1 input parameters) Name: IsMouseButtonPressed Return type: bool Description: Check if a mouse button has been pressed once Param[1]: button (type: int) -Function 173: IsMouseButtonDown() (1 input parameters) +Function 174: IsMouseButtonDown() (1 input parameters) Name: IsMouseButtonDown Return type: bool Description: Check if a mouse button is being pressed Param[1]: button (type: int) -Function 174: IsMouseButtonReleased() (1 input parameters) +Function 175: IsMouseButtonReleased() (1 input parameters) Name: IsMouseButtonReleased Return type: bool Description: Check if a mouse button has been released once Param[1]: button (type: int) -Function 175: IsMouseButtonUp() (1 input parameters) +Function 176: IsMouseButtonUp() (1 input parameters) Name: IsMouseButtonUp Return type: bool Description: Check if a mouse button is NOT being pressed Param[1]: button (type: int) -Function 176: GetMouseX() (0 input parameters) +Function 177: GetMouseX() (0 input parameters) Name: GetMouseX Return type: int Description: Get mouse position X No input parameters -Function 177: GetMouseY() (0 input parameters) +Function 178: GetMouseY() (0 input parameters) Name: GetMouseY Return type: int Description: Get mouse position Y No input parameters -Function 178: GetMousePosition() (0 input parameters) +Function 179: GetMousePosition() (0 input parameters) Name: GetMousePosition Return type: Vector2 Description: Get mouse position XY No input parameters -Function 179: GetMouseDelta() (0 input parameters) +Function 180: GetMouseDelta() (0 input parameters) Name: GetMouseDelta Return type: Vector2 Description: Get mouse delta between frames No input parameters -Function 180: SetMousePosition() (2 input parameters) +Function 181: SetMousePosition() (2 input parameters) Name: SetMousePosition Return type: void Description: Set mouse position XY Param[1]: x (type: int) Param[2]: y (type: int) -Function 181: SetMouseOffset() (2 input parameters) +Function 182: SetMouseOffset() (2 input parameters) Name: SetMouseOffset Return type: void Description: Set mouse offset Param[1]: offsetX (type: int) Param[2]: offsetY (type: int) -Function 182: SetMouseScale() (2 input parameters) +Function 183: SetMouseScale() (2 input parameters) Name: SetMouseScale Return type: void Description: Set mouse scaling Param[1]: scaleX (type: float) Param[2]: scaleY (type: float) -Function 183: GetMouseWheelMove() (0 input parameters) +Function 184: GetMouseWheelMove() (0 input parameters) Name: GetMouseWheelMove Return type: float Description: Get mouse wheel movement for X or Y, whichever is larger No input parameters -Function 184: GetMouseWheelMoveV() (0 input parameters) +Function 185: GetMouseWheelMoveV() (0 input parameters) Name: GetMouseWheelMoveV Return type: Vector2 Description: Get mouse wheel movement for both X and Y No input parameters -Function 185: SetMouseCursor() (1 input parameters) +Function 186: SetMouseCursor() (1 input parameters) Name: SetMouseCursor Return type: void Description: Set mouse cursor Param[1]: cursor (type: int) -Function 186: GetTouchX() (0 input parameters) +Function 187: GetTouchX() (0 input parameters) Name: GetTouchX Return type: int Description: Get touch position X for touch point 0 (relative to screen size) No input parameters -Function 187: GetTouchY() (0 input parameters) +Function 188: GetTouchY() (0 input parameters) Name: GetTouchY Return type: int Description: Get touch position Y for touch point 0 (relative to screen size) No input parameters -Function 188: GetTouchPosition() (1 input parameters) +Function 189: GetTouchPosition() (1 input parameters) Name: GetTouchPosition Return type: Vector2 Description: Get touch position XY for a touch point index (relative to screen size) Param[1]: index (type: int) -Function 189: GetTouchPointId() (1 input parameters) +Function 190: GetTouchPointId() (1 input parameters) Name: GetTouchPointId Return type: int Description: Get touch point identifier for given index Param[1]: index (type: int) -Function 190: GetTouchPointCount() (0 input parameters) +Function 191: GetTouchPointCount() (0 input parameters) Name: GetTouchPointCount Return type: int Description: Get number of touch points No input parameters -Function 191: SetGesturesEnabled() (1 input parameters) +Function 192: SetGesturesEnabled() (1 input parameters) Name: SetGesturesEnabled Return type: void Description: Enable a set of gestures using flags Param[1]: flags (type: unsigned int) -Function 192: IsGestureDetected() (1 input parameters) +Function 193: IsGestureDetected() (1 input parameters) Name: IsGestureDetected Return type: bool Description: Check if a gesture have been detected Param[1]: gesture (type: unsigned int) -Function 193: GetGestureDetected() (0 input parameters) +Function 194: GetGestureDetected() (0 input parameters) Name: GetGestureDetected Return type: int Description: Get latest detected gesture No input parameters -Function 194: GetGestureHoldDuration() (0 input parameters) +Function 195: GetGestureHoldDuration() (0 input parameters) Name: GetGestureHoldDuration Return type: float Description: Get gesture hold time in milliseconds No input parameters -Function 195: GetGestureDragVector() (0 input parameters) +Function 196: GetGestureDragVector() (0 input parameters) Name: GetGestureDragVector Return type: Vector2 Description: Get gesture drag vector No input parameters -Function 196: GetGestureDragAngle() (0 input parameters) +Function 197: GetGestureDragAngle() (0 input parameters) Name: GetGestureDragAngle Return type: float Description: Get gesture drag angle No input parameters -Function 197: GetGesturePinchVector() (0 input parameters) +Function 198: GetGesturePinchVector() (0 input parameters) Name: GetGesturePinchVector Return type: Vector2 Description: Get gesture pinch delta No input parameters -Function 198: GetGesturePinchAngle() (0 input parameters) +Function 199: GetGesturePinchAngle() (0 input parameters) Name: GetGesturePinchAngle Return type: float Description: Get gesture pinch angle No input parameters -Function 199: UpdateCamera() (2 input parameters) +Function 200: UpdateCamera() (2 input parameters) Name: UpdateCamera Return type: void Description: Update camera position for selected mode Param[1]: camera (type: Camera *) Param[2]: mode (type: int) -Function 200: UpdateCameraPro() (4 input parameters) +Function 201: UpdateCameraPro() (4 input parameters) Name: UpdateCameraPro Return type: void Description: Update camera movement/rotation @@ -2048,36 +2056,36 @@ Function 200: UpdateCameraPro() (4 input parameters) Param[2]: movement (type: Vector3) Param[3]: rotation (type: Vector3) Param[4]: zoom (type: float) -Function 201: SetShapesTexture() (2 input parameters) +Function 202: SetShapesTexture() (2 input parameters) Name: SetShapesTexture Return type: void Description: Set texture and rectangle to be used on shapes drawing Param[1]: texture (type: Texture2D) Param[2]: source (type: Rectangle) -Function 202: GetShapesTexture() (0 input parameters) +Function 203: GetShapesTexture() (0 input parameters) Name: GetShapesTexture Return type: Texture2D Description: Get texture that is used for shapes drawing No input parameters -Function 203: GetShapesTextureRectangle() (0 input parameters) +Function 204: GetShapesTextureRectangle() (0 input parameters) Name: GetShapesTextureRectangle Return type: Rectangle Description: Get texture source rectangle that is used for shapes drawing No input parameters -Function 204: DrawPixel() (3 input parameters) +Function 205: DrawPixel() (3 input parameters) Name: DrawPixel Return type: void Description: Draw a pixel Param[1]: posX (type: int) Param[2]: posY (type: int) Param[3]: color (type: Color) -Function 205: DrawPixelV() (2 input parameters) +Function 206: DrawPixelV() (2 input parameters) Name: DrawPixelV Return type: void Description: Draw a pixel (Vector version) Param[1]: position (type: Vector2) Param[2]: color (type: Color) -Function 206: DrawLine() (5 input parameters) +Function 207: DrawLine() (5 input parameters) Name: DrawLine Return type: void Description: Draw a line @@ -2086,14 +2094,14 @@ Function 206: DrawLine() (5 input parameters) Param[3]: endPosX (type: int) Param[4]: endPosY (type: int) Param[5]: color (type: Color) -Function 207: DrawLineV() (3 input parameters) +Function 208: DrawLineV() (3 input parameters) Name: DrawLineV Return type: void Description: Draw a line (using gl lines) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: color (type: Color) -Function 208: DrawLineEx() (4 input parameters) +Function 209: DrawLineEx() (4 input parameters) Name: DrawLineEx Return type: void Description: Draw a line (using triangles/quads) @@ -2101,14 +2109,14 @@ Function 208: DrawLineEx() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 209: DrawLineStrip() (3 input parameters) +Function 210: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void Description: Draw lines sequence (using gl lines) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 210: DrawLineBezier() (4 input parameters) +Function 211: DrawLineBezier() (4 input parameters) Name: DrawLineBezier Return type: void Description: Draw line segment cubic-bezier in-out interpolation @@ -2116,7 +2124,7 @@ Function 210: DrawLineBezier() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 211: DrawCircle() (4 input parameters) +Function 212: DrawCircle() (4 input parameters) Name: DrawCircle Return type: void Description: Draw a color-filled circle @@ -2124,7 +2132,7 @@ Function 211: DrawCircle() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 212: DrawCircleSector() (6 input parameters) +Function 213: DrawCircleSector() (6 input parameters) Name: DrawCircleSector Return type: void Description: Draw a piece of a circle @@ -2134,7 +2142,7 @@ Function 212: DrawCircleSector() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 213: DrawCircleSectorLines() (6 input parameters) +Function 214: DrawCircleSectorLines() (6 input parameters) Name: DrawCircleSectorLines Return type: void Description: Draw circle sector outline @@ -2144,7 +2152,7 @@ Function 213: DrawCircleSectorLines() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 214: DrawCircleGradient() (5 input parameters) +Function 215: DrawCircleGradient() (5 input parameters) Name: DrawCircleGradient Return type: void Description: Draw a gradient-filled circle @@ -2153,14 +2161,14 @@ Function 214: DrawCircleGradient() (5 input parameters) Param[3]: radius (type: float) Param[4]: color1 (type: Color) Param[5]: color2 (type: Color) -Function 215: DrawCircleV() (3 input parameters) +Function 216: DrawCircleV() (3 input parameters) Name: DrawCircleV Return type: void Description: Draw a color-filled circle (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 216: DrawCircleLines() (4 input parameters) +Function 217: DrawCircleLines() (4 input parameters) Name: DrawCircleLines Return type: void Description: Draw circle outline @@ -2168,14 +2176,14 @@ Function 216: DrawCircleLines() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 217: DrawCircleLinesV() (3 input parameters) +Function 218: DrawCircleLinesV() (3 input parameters) Name: DrawCircleLinesV Return type: void Description: Draw circle outline (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 218: DrawEllipse() (5 input parameters) +Function 219: DrawEllipse() (5 input parameters) Name: DrawEllipse Return type: void Description: Draw ellipse @@ -2184,7 +2192,7 @@ Function 218: DrawEllipse() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 219: DrawEllipseLines() (5 input parameters) +Function 220: DrawEllipseLines() (5 input parameters) Name: DrawEllipseLines Return type: void Description: Draw ellipse outline @@ -2193,7 +2201,7 @@ Function 219: DrawEllipseLines() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 220: DrawRing() (7 input parameters) +Function 221: DrawRing() (7 input parameters) Name: DrawRing Return type: void Description: Draw ring @@ -2204,7 +2212,7 @@ Function 220: DrawRing() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 221: DrawRingLines() (7 input parameters) +Function 222: DrawRingLines() (7 input parameters) Name: DrawRingLines Return type: void Description: Draw ring outline @@ -2215,7 +2223,7 @@ Function 221: DrawRingLines() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 222: DrawRectangle() (5 input parameters) +Function 223: DrawRectangle() (5 input parameters) Name: DrawRectangle Return type: void Description: Draw a color-filled rectangle @@ -2224,20 +2232,20 @@ Function 222: DrawRectangle() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 223: DrawRectangleV() (3 input parameters) +Function 224: DrawRectangleV() (3 input parameters) Name: DrawRectangleV Return type: void Description: Draw a color-filled rectangle (Vector version) Param[1]: position (type: Vector2) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 224: DrawRectangleRec() (2 input parameters) +Function 225: DrawRectangleRec() (2 input parameters) Name: DrawRectangleRec Return type: void Description: Draw a color-filled rectangle Param[1]: rec (type: Rectangle) Param[2]: color (type: Color) -Function 225: DrawRectanglePro() (4 input parameters) +Function 226: DrawRectanglePro() (4 input parameters) Name: DrawRectanglePro Return type: void Description: Draw a color-filled rectangle with pro parameters @@ -2245,7 +2253,7 @@ Function 225: DrawRectanglePro() (4 input parameters) Param[2]: origin (type: Vector2) Param[3]: rotation (type: float) Param[4]: color (type: Color) -Function 226: DrawRectangleGradientV() (6 input parameters) +Function 227: DrawRectangleGradientV() (6 input parameters) Name: DrawRectangleGradientV Return type: void Description: Draw a vertical-gradient-filled rectangle @@ -2255,7 +2263,7 @@ Function 226: DrawRectangleGradientV() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 227: DrawRectangleGradientH() (6 input parameters) +Function 228: DrawRectangleGradientH() (6 input parameters) Name: DrawRectangleGradientH Return type: void Description: Draw a horizontal-gradient-filled rectangle @@ -2265,7 +2273,7 @@ Function 227: DrawRectangleGradientH() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 228: DrawRectangleGradientEx() (5 input parameters) +Function 229: DrawRectangleGradientEx() (5 input parameters) Name: DrawRectangleGradientEx Return type: void Description: Draw a gradient-filled rectangle with custom vertex colors @@ -2274,7 +2282,7 @@ Function 228: DrawRectangleGradientEx() (5 input parameters) Param[3]: col2 (type: Color) Param[4]: col3 (type: Color) Param[5]: col4 (type: Color) -Function 229: DrawRectangleLines() (5 input parameters) +Function 230: DrawRectangleLines() (5 input parameters) Name: DrawRectangleLines Return type: void Description: Draw rectangle outline @@ -2283,14 +2291,14 @@ Function 229: DrawRectangleLines() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 230: DrawRectangleLinesEx() (3 input parameters) +Function 231: DrawRectangleLinesEx() (3 input parameters) Name: DrawRectangleLinesEx Return type: void Description: Draw rectangle outline with extended parameters Param[1]: rec (type: Rectangle) Param[2]: lineThick (type: float) Param[3]: color (type: Color) -Function 231: DrawRectangleRounded() (4 input parameters) +Function 232: DrawRectangleRounded() (4 input parameters) Name: DrawRectangleRounded Return type: void Description: Draw rectangle with rounded edges @@ -2298,7 +2306,7 @@ Function 231: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 232: DrawRectangleRoundedLines() (5 input parameters) +Function 233: DrawRectangleRoundedLines() (5 input parameters) Name: DrawRectangleRoundedLines Return type: void Description: Draw rectangle with rounded edges outline @@ -2307,7 +2315,7 @@ Function 232: DrawRectangleRoundedLines() (5 input parameters) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 233: DrawTriangle() (4 input parameters) +Function 234: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2315,7 +2323,7 @@ Function 233: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 234: DrawTriangleLines() (4 input parameters) +Function 235: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2323,21 +2331,21 @@ Function 234: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 235: DrawTriangleFan() (3 input parameters) +Function 236: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 236: DrawTriangleStrip() (3 input parameters) +Function 237: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 237: DrawPoly() (5 input parameters) +Function 238: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2346,7 +2354,7 @@ Function 237: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 238: DrawPolyLines() (5 input parameters) +Function 239: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2355,7 +2363,7 @@ Function 238: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 239: DrawPolyLinesEx() (6 input parameters) +Function 240: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2365,7 +2373,7 @@ Function 239: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 240: DrawSplineLinear() (4 input parameters) +Function 241: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points @@ -2373,7 +2381,7 @@ Function 240: DrawSplineLinear() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 241: DrawSplineBasis() (4 input parameters) +Function 242: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points @@ -2381,7 +2389,7 @@ Function 241: DrawSplineBasis() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 242: DrawSplineCatmullRom() (4 input parameters) +Function 243: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points @@ -2389,7 +2397,7 @@ Function 242: DrawSplineCatmullRom() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 243: DrawSplineBezierQuadratic() (4 input parameters) +Function 244: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] @@ -2397,7 +2405,7 @@ Function 243: DrawSplineBezierQuadratic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 244: DrawSplineBezierCubic() (4 input parameters) +Function 245: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] @@ -2405,7 +2413,7 @@ Function 244: DrawSplineBezierCubic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 245: DrawSplineSegmentLinear() (4 input parameters) +Function 246: DrawSplineSegmentLinear() (4 input parameters) Name: DrawSplineSegmentLinear Return type: void Description: Draw spline segment: Linear, 2 points @@ -2413,7 +2421,7 @@ Function 245: DrawSplineSegmentLinear() (4 input parameters) Param[2]: p2 (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 246: DrawSplineSegmentBasis() (6 input parameters) +Function 247: DrawSplineSegmentBasis() (6 input parameters) Name: DrawSplineSegmentBasis Return type: void Description: Draw spline segment: B-Spline, 4 points @@ -2423,7 +2431,7 @@ Function 246: DrawSplineSegmentBasis() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 247: DrawSplineSegmentCatmullRom() (6 input parameters) +Function 248: DrawSplineSegmentCatmullRom() (6 input parameters) Name: DrawSplineSegmentCatmullRom Return type: void Description: Draw spline segment: Catmull-Rom, 4 points @@ -2433,7 +2441,7 @@ Function 247: DrawSplineSegmentCatmullRom() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 248: DrawSplineSegmentBezierQuadratic() (5 input parameters) +Function 249: DrawSplineSegmentBezierQuadratic() (5 input parameters) Name: DrawSplineSegmentBezierQuadratic Return type: void Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point @@ -2442,7 +2450,7 @@ Function 248: DrawSplineSegmentBezierQuadratic() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: thick (type: float) Param[5]: color (type: Color) -Function 249: DrawSplineSegmentBezierCubic() (6 input parameters) +Function 250: DrawSplineSegmentBezierCubic() (6 input parameters) Name: DrawSplineSegmentBezierCubic Return type: void Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points @@ -2452,14 +2460,14 @@ Function 249: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 250: GetSplinePointLinear() (3 input parameters) +Function 251: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 251: GetSplinePointBasis() (5 input parameters) +Function 252: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2468,7 +2476,7 @@ Function 251: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 252: GetSplinePointCatmullRom() (5 input parameters) +Function 253: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2477,7 +2485,7 @@ Function 252: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 253: GetSplinePointBezierQuad() (4 input parameters) +Function 254: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2485,7 +2493,7 @@ Function 253: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 254: GetSplinePointBezierCubic() (5 input parameters) +Function 255: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2494,13 +2502,13 @@ Function 254: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 255: CheckCollisionRecs() (2 input parameters) +Function 256: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 256: CheckCollisionCircles() (4 input parameters) +Function 257: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2508,27 +2516,27 @@ Function 256: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 257: CheckCollisionCircleRec() (3 input parameters) +Function 258: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 258: CheckCollisionPointRec() (2 input parameters) +Function 259: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 259: CheckCollisionPointCircle() (3 input parameters) +Function 260: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 260: CheckCollisionPointTriangle() (4 input parameters) +Function 261: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2536,14 +2544,14 @@ Function 260: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 261: CheckCollisionPointPoly() (3 input parameters) +Function 262: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 262: CheckCollisionLines() (5 input parameters) +Function 263: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2552,7 +2560,7 @@ Function 262: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 263: CheckCollisionPointLine() (4 input parameters) +Function 264: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2560,18 +2568,18 @@ Function 263: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 264: GetCollisionRec() (2 input parameters) +Function 265: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 265: LoadImage() (1 input parameters) +Function 266: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 266: LoadImageRaw() (5 input parameters) +Function 267: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2580,20 +2588,20 @@ Function 266: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 267: LoadImageSvg() (3 input parameters) +Function 268: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 268: LoadImageAnim() (2 input parameters) +Function 269: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 269: LoadImageAnimFromMemory() (4 input parameters) +Function 270: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2601,60 +2609,60 @@ Function 269: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 270: LoadImageFromMemory() (3 input parameters) +Function 271: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 271: LoadImageFromTexture() (1 input parameters) +Function 272: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 272: LoadImageFromScreen() (0 input parameters) +Function 273: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 273: IsImageReady() (1 input parameters) +Function 274: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 274: UnloadImage() (1 input parameters) +Function 275: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 275: ExportImage() (2 input parameters) +Function 276: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 276: ExportImageToMemory() (3 input parameters) +Function 277: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 277: ExportImageAsCode() (2 input parameters) +Function 278: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 278: GenImageColor() (3 input parameters) +Function 279: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 279: GenImageGradientLinear() (5 input parameters) +Function 280: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2663,7 +2671,7 @@ Function 279: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 280: GenImageGradientRadial() (5 input parameters) +Function 281: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2672,7 +2680,7 @@ Function 280: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 281: GenImageGradientSquare() (5 input parameters) +Function 282: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2681,7 +2689,7 @@ Function 281: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 282: GenImageChecked() (6 input parameters) +Function 283: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2691,14 +2699,14 @@ Function 282: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 283: GenImageWhiteNoise() (3 input parameters) +Function 284: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 284: GenImagePerlinNoise() (5 input parameters) +Function 285: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2707,39 +2715,39 @@ Function 284: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 285: GenImageCellular() (3 input parameters) +Function 286: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 286: GenImageText() (3 input parameters) +Function 287: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 287: ImageCopy() (1 input parameters) +Function 288: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 288: ImageFromImage() (2 input parameters) +Function 289: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 289: ImageText() (3 input parameters) +Function 290: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 290: ImageTextEx() (5 input parameters) +Function 291: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2748,76 +2756,76 @@ Function 290: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 291: ImageFormat() (2 input parameters) +Function 292: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 292: ImageToPOT() (2 input parameters) +Function 293: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 293: ImageCrop() (2 input parameters) +Function 294: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 294: ImageAlphaCrop() (2 input parameters) +Function 295: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 295: ImageAlphaClear() (3 input parameters) +Function 296: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 296: ImageAlphaMask() (2 input parameters) +Function 297: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 297: ImageAlphaPremultiply() (1 input parameters) +Function 298: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 298: ImageBlurGaussian() (2 input parameters) +Function 299: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 299: ImageKernelConvolution() (3 input parameters) +Function 300: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 300: ImageResize() (3 input parameters) +Function 301: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 301: ImageResizeNN() (3 input parameters) +Function 302: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 302: ImageResizeCanvas() (6 input parameters) +Function 303: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2827,12 +2835,12 @@ Function 302: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 303: ImageMipmaps() (1 input parameters) +Function 304: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 304: ImageDither() (5 input parameters) +Function 305: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2841,109 +2849,109 @@ Function 304: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 305: ImageFlipVertical() (1 input parameters) +Function 306: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 306: ImageFlipHorizontal() (1 input parameters) +Function 307: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 307: ImageRotate() (2 input parameters) +Function 308: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 308: ImageRotateCW() (1 input parameters) +Function 309: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 309: ImageRotateCCW() (1 input parameters) +Function 310: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 310: ImageColorTint() (2 input parameters) +Function 311: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 311: ImageColorInvert() (1 input parameters) +Function 312: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 312: ImageColorGrayscale() (1 input parameters) +Function 313: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 313: ImageColorContrast() (2 input parameters) +Function 314: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 314: ImageColorBrightness() (2 input parameters) +Function 315: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 315: ImageColorReplace() (3 input parameters) +Function 316: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 316: LoadImageColors() (1 input parameters) +Function 317: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 317: LoadImagePalette() (3 input parameters) +Function 318: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 318: UnloadImageColors() (1 input parameters) +Function 319: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 319: UnloadImagePalette() (1 input parameters) +Function 320: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 320: GetImageAlphaBorder() (2 input parameters) +Function 321: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 321: GetImageColor() (3 input parameters) +Function 322: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 322: ImageClearBackground() (2 input parameters) +Function 323: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 323: ImageDrawPixel() (4 input parameters) +Function 324: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2951,14 +2959,14 @@ Function 323: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 324: ImageDrawPixelV() (3 input parameters) +Function 325: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 325: ImageDrawLine() (6 input parameters) +Function 326: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2968,7 +2976,7 @@ Function 325: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 326: ImageDrawLineV() (4 input parameters) +Function 327: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -2976,7 +2984,7 @@ Function 326: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 327: ImageDrawCircle() (5 input parameters) +Function 328: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -2985,7 +2993,7 @@ Function 327: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 328: ImageDrawCircleV() (4 input parameters) +Function 329: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -2993,7 +3001,7 @@ Function 328: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 329: ImageDrawCircleLines() (5 input parameters) +Function 330: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3002,7 +3010,7 @@ Function 329: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 330: ImageDrawCircleLinesV() (4 input parameters) +Function 331: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3010,7 +3018,7 @@ Function 330: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 331: ImageDrawRectangle() (6 input parameters) +Function 332: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3020,7 +3028,7 @@ Function 331: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 332: ImageDrawRectangleV() (4 input parameters) +Function 333: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3028,14 +3036,14 @@ Function 332: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 333: ImageDrawRectangleRec() (3 input parameters) +Function 334: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 334: ImageDrawRectangleLines() (4 input parameters) +Function 335: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3043,7 +3051,7 @@ Function 334: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 335: ImageDraw() (5 input parameters) +Function 336: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3052,7 +3060,7 @@ Function 335: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 336: ImageDrawText() (6 input parameters) +Function 337: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3062,7 +3070,7 @@ Function 336: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 337: ImageDrawTextEx() (7 input parameters) +Function 338: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3073,79 +3081,79 @@ Function 337: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 338: LoadTexture() (1 input parameters) +Function 339: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 339: LoadTextureFromImage() (1 input parameters) +Function 340: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 340: LoadTextureCubemap() (2 input parameters) +Function 341: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 341: LoadRenderTexture() (2 input parameters) +Function 342: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 342: IsTextureReady() (1 input parameters) +Function 343: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 343: UnloadTexture() (1 input parameters) +Function 344: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 344: IsRenderTextureReady() (1 input parameters) +Function 345: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 345: UnloadRenderTexture() (1 input parameters) +Function 346: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 346: UpdateTexture() (2 input parameters) +Function 347: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 347: UpdateTextureRec() (3 input parameters) +Function 348: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 348: GenTextureMipmaps() (1 input parameters) +Function 349: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 349: SetTextureFilter() (2 input parameters) +Function 350: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 350: SetTextureWrap() (2 input parameters) +Function 351: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 351: DrawTexture() (4 input parameters) +Function 352: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3153,14 +3161,14 @@ Function 351: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 352: DrawTextureV() (3 input parameters) +Function 353: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 353: DrawTextureEx() (5 input parameters) +Function 354: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3169,7 +3177,7 @@ Function 353: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 354: DrawTextureRec() (4 input parameters) +Function 355: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3177,7 +3185,7 @@ Function 354: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 355: DrawTexturePro() (6 input parameters) +Function 356: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3187,7 +3195,7 @@ Function 355: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 356: DrawTextureNPatch() (6 input parameters) +Function 357: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3197,106 +3205,106 @@ Function 356: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 357: Fade() (2 input parameters) +Function 358: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 358: ColorToInt() (1 input parameters) +Function 359: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color Param[1]: color (type: Color) -Function 359: ColorNormalize() (1 input parameters) +Function 360: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 360: ColorFromNormalized() (1 input parameters) +Function 361: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 361: ColorToHSV() (1 input parameters) +Function 362: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 362: ColorFromHSV() (3 input parameters) +Function 363: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 363: ColorTint() (2 input parameters) +Function 364: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 364: ColorBrightness() (2 input parameters) +Function 365: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 365: ColorContrast() (2 input parameters) +Function 366: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 366: ColorAlpha() (2 input parameters) +Function 367: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 367: ColorAlphaBlend() (3 input parameters) +Function 368: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 368: GetColor() (1 input parameters) +Function 369: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 369: GetPixelColor() (2 input parameters) +Function 370: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 370: SetPixelColor() (3 input parameters) +Function 371: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 371: GetPixelDataSize() (3 input parameters) +Function 372: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 372: GetFontDefault() (0 input parameters) +Function 373: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 373: LoadFont() (1 input parameters) +Function 374: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 374: LoadFontEx() (4 input parameters) +Function 375: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3304,14 +3312,14 @@ Function 374: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 375: LoadFontFromImage() (3 input parameters) +Function 376: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 376: LoadFontFromMemory() (6 input parameters) +Function 377: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3321,12 +3329,12 @@ Function 376: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 377: IsFontReady() (1 input parameters) +Function 378: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 378: LoadFontData() (6 input parameters) +Function 379: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3336,7 +3344,7 @@ Function 378: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 379: GenImageFontAtlas() (6 input parameters) +Function 380: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3346,30 +3354,30 @@ Function 379: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 380: UnloadFontData() (2 input parameters) +Function 381: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 381: UnloadFont() (1 input parameters) +Function 382: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 382: ExportFontAsCode() (2 input parameters) +Function 383: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 383: DrawFPS() (2 input parameters) +Function 384: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 384: DrawText() (5 input parameters) +Function 385: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3378,7 +3386,7 @@ Function 384: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 385: DrawTextEx() (6 input parameters) +Function 386: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3388,7 +3396,7 @@ Function 385: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 386: DrawTextPro() (8 input parameters) +Function 387: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3400,7 +3408,7 @@ Function 386: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 387: DrawTextCodepoint() (5 input parameters) +Function 388: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3409,7 +3417,7 @@ Function 387: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 388: DrawTextCodepoints() (7 input parameters) +Function 389: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3420,18 +3428,18 @@ Function 388: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 389: SetTextLineSpacing() (1 input parameters) +Function 390: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 390: MeasureText() (2 input parameters) +Function 391: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 391: MeasureTextEx() (4 input parameters) +Function 392: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3439,185 +3447,185 @@ Function 391: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 392: GetGlyphIndex() (2 input parameters) +Function 393: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 393: GetGlyphInfo() (2 input parameters) +Function 394: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 394: GetGlyphAtlasRec() (2 input parameters) +Function 395: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 395: LoadUTF8() (2 input parameters) +Function 396: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 396: UnloadUTF8() (1 input parameters) +Function 397: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 397: LoadCodepoints() (2 input parameters) +Function 398: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 398: UnloadCodepoints() (1 input parameters) +Function 399: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 399: GetCodepointCount() (1 input parameters) +Function 400: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 400: GetCodepoint() (2 input parameters) +Function 401: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 401: GetCodepointNext() (2 input parameters) +Function 402: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 402: GetCodepointPrevious() (2 input parameters) +Function 403: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 403: CodepointToUTF8() (2 input parameters) +Function 404: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 404: TextCopy() (2 input parameters) +Function 405: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 405: TextIsEqual() (2 input parameters) +Function 406: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 406: TextLength() (1 input parameters) +Function 407: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 407: TextFormat() (2 input parameters) +Function 408: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 408: TextSubtext() (3 input parameters) +Function 409: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 409: TextReplace() (3 input parameters) +Function 410: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 410: TextInsert() (3 input parameters) +Function 411: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 411: TextJoin() (3 input parameters) +Function 412: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 412: TextSplit() (3 input parameters) +Function 413: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 413: TextAppend() (3 input parameters) +Function 414: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 414: TextFindIndex() (2 input parameters) +Function 415: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 415: TextToUpper() (1 input parameters) +Function 416: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 416: TextToLower() (1 input parameters) +Function 417: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 417: TextToPascal() (1 input parameters) +Function 418: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 418: TextToInteger() (1 input parameters) +Function 419: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 419: TextToFloat() (1 input parameters) +Function 420: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 420: DrawLine3D() (3 input parameters) +Function 421: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 421: DrawPoint3D() (2 input parameters) +Function 422: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 422: DrawCircle3D() (5 input parameters) +Function 423: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3626,7 +3634,7 @@ Function 422: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 423: DrawTriangle3D() (4 input parameters) +Function 424: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3634,14 +3642,14 @@ Function 423: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 424: DrawTriangleStrip3D() (3 input parameters) +Function 425: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 425: DrawCube() (5 input parameters) +Function 426: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3650,14 +3658,14 @@ Function 425: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 426: DrawCubeV() (3 input parameters) +Function 427: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 427: DrawCubeWires() (5 input parameters) +Function 428: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3666,21 +3674,21 @@ Function 427: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 428: DrawCubeWiresV() (3 input parameters) +Function 429: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 429: DrawSphere() (3 input parameters) +Function 430: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 430: DrawSphereEx() (5 input parameters) +Function 431: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3689,7 +3697,7 @@ Function 430: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 431: DrawSphereWires() (5 input parameters) +Function 432: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3698,7 +3706,7 @@ Function 431: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 432: DrawCylinder() (6 input parameters) +Function 433: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3708,7 +3716,7 @@ Function 432: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 433: DrawCylinderEx() (6 input parameters) +Function 434: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3718,7 +3726,7 @@ Function 433: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 434: DrawCylinderWires() (6 input parameters) +Function 435: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3728,7 +3736,7 @@ Function 434: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 435: DrawCylinderWiresEx() (6 input parameters) +Function 436: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3738,7 +3746,7 @@ Function 435: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 436: DrawCapsule() (6 input parameters) +Function 437: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3748,7 +3756,7 @@ Function 436: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 437: DrawCapsuleWires() (6 input parameters) +Function 438: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3758,51 +3766,51 @@ Function 437: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 438: DrawPlane() (3 input parameters) +Function 439: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 439: DrawRay() (2 input parameters) +Function 440: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 440: DrawGrid() (2 input parameters) +Function 441: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 441: LoadModel() (1 input parameters) +Function 442: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 442: LoadModelFromMesh() (1 input parameters) +Function 443: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 443: IsModelReady() (1 input parameters) +Function 444: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 444: UnloadModel() (1 input parameters) +Function 445: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 445: GetModelBoundingBox() (1 input parameters) +Function 446: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 446: DrawModel() (4 input parameters) +Function 447: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3810,7 +3818,7 @@ Function 446: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 447: DrawModelEx() (6 input parameters) +Function 448: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3820,7 +3828,7 @@ Function 447: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 448: DrawModelWires() (4 input parameters) +Function 449: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3828,7 +3836,7 @@ Function 448: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 449: DrawModelWiresEx() (6 input parameters) +Function 450: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3838,13 +3846,13 @@ Function 449: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 450: DrawBoundingBox() (2 input parameters) +Function 451: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 451: DrawBillboard() (5 input parameters) +Function 452: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3853,7 +3861,7 @@ Function 451: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 452: DrawBillboardRec() (6 input parameters) +Function 453: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3863,7 +3871,7 @@ Function 452: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 453: DrawBillboardPro() (9 input parameters) +Function 454: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3876,13 +3884,13 @@ Function 453: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 454: UploadMesh() (2 input parameters) +Function 455: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 455: UpdateMeshBuffer() (5 input parameters) +Function 456: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3891,19 +3899,19 @@ Function 455: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 456: UnloadMesh() (1 input parameters) +Function 457: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 457: DrawMesh() (3 input parameters) +Function 458: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 458: DrawMeshInstanced() (4 input parameters) +Function 459: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3911,35 +3919,35 @@ Function 458: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 459: GetMeshBoundingBox() (1 input parameters) +Function 460: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 460: GenMeshTangents() (1 input parameters) +Function 461: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 461: ExportMesh() (2 input parameters) +Function 462: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 462: ExportMeshAsCode() (2 input parameters) +Function 463: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 463: GenMeshPoly() (2 input parameters) +Function 464: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 464: GenMeshPlane() (4 input parameters) +Function 465: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3947,42 +3955,42 @@ Function 464: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 465: GenMeshCube() (3 input parameters) +Function 466: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 466: GenMeshSphere() (3 input parameters) +Function 467: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 467: GenMeshHemiSphere() (3 input parameters) +Function 468: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 468: GenMeshCylinder() (3 input parameters) +Function 469: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 469: GenMeshCone() (3 input parameters) +Function 470: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 470: GenMeshTorus() (4 input parameters) +Function 471: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -3990,7 +3998,7 @@ Function 470: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 471: GenMeshKnot() (4 input parameters) +Function 472: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -3998,84 +4006,84 @@ Function 471: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 472: GenMeshHeightmap() (2 input parameters) +Function 473: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 473: GenMeshCubicmap() (2 input parameters) +Function 474: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 474: LoadMaterials() (2 input parameters) +Function 475: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 475: LoadMaterialDefault() (0 input parameters) +Function 476: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 476: IsMaterialReady() (1 input parameters) +Function 477: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 477: UnloadMaterial() (1 input parameters) +Function 478: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 478: SetMaterialTexture() (3 input parameters) +Function 479: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 479: SetModelMeshMaterial() (3 input parameters) +Function 480: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 480: LoadModelAnimations() (2 input parameters) +Function 481: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 481: UpdateModelAnimation() (3 input parameters) +Function 482: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 482: UnloadModelAnimation() (1 input parameters) +Function 483: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 483: UnloadModelAnimations() (2 input parameters) +Function 484: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 484: IsModelAnimationValid() (2 input parameters) +Function 485: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 485: CheckCollisionSpheres() (4 input parameters) +Function 486: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4083,40 +4091,40 @@ Function 485: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 486: CheckCollisionBoxes() (2 input parameters) +Function 487: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 487: CheckCollisionBoxSphere() (3 input parameters) +Function 488: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 488: GetRayCollisionSphere() (3 input parameters) +Function 489: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 489: GetRayCollisionBox() (2 input parameters) +Function 490: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 490: GetRayCollisionMesh() (3 input parameters) +Function 491: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 491: GetRayCollisionTriangle() (4 input parameters) +Function 492: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4124,7 +4132,7 @@ Function 491: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 492: GetRayCollisionQuad() (5 input parameters) +Function 493: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4133,158 +4141,158 @@ Function 492: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 493: InitAudioDevice() (0 input parameters) +Function 494: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 494: CloseAudioDevice() (0 input parameters) +Function 495: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 495: IsAudioDeviceReady() (0 input parameters) +Function 496: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 496: SetMasterVolume() (1 input parameters) +Function 497: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 497: GetMasterVolume() (0 input parameters) +Function 498: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 498: LoadWave() (1 input parameters) +Function 499: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 499: LoadWaveFromMemory() (3 input parameters) +Function 500: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 500: IsWaveReady() (1 input parameters) +Function 501: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 501: LoadSound() (1 input parameters) +Function 502: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 502: LoadSoundFromWave() (1 input parameters) +Function 503: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 503: LoadSoundAlias() (1 input parameters) +Function 504: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 504: IsSoundReady() (1 input parameters) +Function 505: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 505: UpdateSound() (3 input parameters) +Function 506: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 506: UnloadWave() (1 input parameters) +Function 507: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 507: UnloadSound() (1 input parameters) +Function 508: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 508: UnloadSoundAlias() (1 input parameters) +Function 509: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 509: ExportWave() (2 input parameters) +Function 510: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 510: ExportWaveAsCode() (2 input parameters) +Function 511: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 511: PlaySound() (1 input parameters) +Function 512: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 512: StopSound() (1 input parameters) +Function 513: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 513: PauseSound() (1 input parameters) +Function 514: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 514: ResumeSound() (1 input parameters) +Function 515: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 515: IsSoundPlaying() (1 input parameters) +Function 516: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 516: SetSoundVolume() (2 input parameters) +Function 517: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 517: SetSoundPitch() (2 input parameters) +Function 518: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 518: SetSoundPan() (2 input parameters) +Function 519: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 519: WaveCopy() (1 input parameters) +Function 520: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 520: WaveCrop() (3 input parameters) +Function 521: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 521: WaveFormat() (4 input parameters) +Function 522: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4292,203 +4300,203 @@ Function 521: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 522: LoadWaveSamples() (1 input parameters) +Function 523: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 523: UnloadWaveSamples() (1 input parameters) +Function 524: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 524: LoadMusicStream() (1 input parameters) +Function 525: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 525: LoadMusicStreamFromMemory() (3 input parameters) +Function 526: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 526: IsMusicReady() (1 input parameters) +Function 527: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 527: UnloadMusicStream() (1 input parameters) +Function 528: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 528: PlayMusicStream() (1 input parameters) +Function 529: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 529: IsMusicStreamPlaying() (1 input parameters) +Function 530: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 530: UpdateMusicStream() (1 input parameters) +Function 531: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 531: StopMusicStream() (1 input parameters) +Function 532: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 532: PauseMusicStream() (1 input parameters) +Function 533: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 533: ResumeMusicStream() (1 input parameters) +Function 534: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 534: SeekMusicStream() (2 input parameters) +Function 535: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 535: SetMusicVolume() (2 input parameters) +Function 536: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 536: SetMusicPitch() (2 input parameters) +Function 537: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 537: SetMusicPan() (2 input parameters) +Function 538: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 538: GetMusicTimeLength() (1 input parameters) +Function 539: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 539: GetMusicTimePlayed() (1 input parameters) +Function 540: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 540: LoadAudioStream() (3 input parameters) +Function 541: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 541: IsAudioStreamReady() (1 input parameters) +Function 542: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 542: UnloadAudioStream() (1 input parameters) +Function 543: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 543: UpdateAudioStream() (3 input parameters) +Function 544: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 544: IsAudioStreamProcessed() (1 input parameters) +Function 545: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 545: PlayAudioStream() (1 input parameters) +Function 546: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 546: PauseAudioStream() (1 input parameters) +Function 547: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 547: ResumeAudioStream() (1 input parameters) +Function 548: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 548: IsAudioStreamPlaying() (1 input parameters) +Function 549: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 549: StopAudioStream() (1 input parameters) +Function 550: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 550: SetAudioStreamVolume() (2 input parameters) +Function 551: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 551: SetAudioStreamPitch() (2 input parameters) +Function 552: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 552: SetAudioStreamPan() (2 input parameters) +Function 553: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 553: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 554: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 554: SetAudioStreamCallback() (2 input parameters) +Function 555: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 555: AttachAudioStreamProcessor() (2 input parameters) +Function 556: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as s Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 556: DetachAudioStreamProcessor() (2 input parameters) +Function 557: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 557: AttachAudioMixedProcessor() (1 input parameters) +Function 558: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s Param[1]: processor (type: AudioCallback) -Function 558: DetachAudioMixedProcessor() (1 input parameters) +Function 559: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 2feb6e18b..4b82c275d 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -669,7 +669,7 @@ - + @@ -906,6 +906,12 @@ + + + + + + From c31559101a9fa565545a3ab5046e3a0554a891dc Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 11:52:49 +0100 Subject: [PATCH 167/790] REVIEWED: `rlLoadFramebuffer()`, parameters not required --- src/rlgl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 28d58d4e9..237799e56 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -718,7 +718,7 @@ RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int form RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) // Framebuffer management (fbo) -RLAPI unsigned int rlLoadFramebuffer(int width, int height); // Load an empty framebuffer +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU @@ -3456,7 +3456,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() // We are using Option 1, just need to care for texture format on retrieval // NOTE: This behaviour could be conditioned by graphic driver... - unsigned int fboId = rlLoadFramebuffer(width, height); + unsigned int fboId = rlLoadFramebuffer(); glBindFramebuffer(GL_FRAMEBUFFER, fboId); glBindTexture(GL_TEXTURE_2D, 0); @@ -3510,7 +3510,7 @@ unsigned char *rlReadScreenPixels(int width, int height) //----------------------------------------------------------------------------------------- // Load a framebuffer to be used for rendering // NOTE: No textures attached -unsigned int rlLoadFramebuffer(int width, int height) +unsigned int rlLoadFramebuffer(void) { unsigned int fboId = 0; From 80580746e52e9231f076c18b92a90e17895898c2 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 12:02:58 +0100 Subject: [PATCH 168/790] Reorder functions --- src/raylib.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index e2404a324..7cf4e6536 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1049,14 +1049,14 @@ RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) // Screen-space-related functions -RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position -RLAPI Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport -RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) -RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix -RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position -RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position +RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position +RLAPI Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport +RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position -RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position +RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position +RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix // Timing-related functions RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) From 31ce1374e49fd5f7932675b93d7a3f372954aaf2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 4 Feb 2024 11:03:25 +0000 Subject: [PATCH 169/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 74 +++++++++++++++++------------------ parser/output/raylib_api.lua | 50 +++++++++++------------ parser/output/raylib_api.txt | 38 +++++++++--------- parser/output/raylib_api.xml | 20 +++++----- 4 files changed, 91 insertions(+), 91 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index c48c1dd59..b0f82d3c4 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -3909,28 +3909,6 @@ } ] }, - { - "name": "GetCameraMatrix", - "description": "Get camera transform matrix (view matrix)", - "returnType": "Matrix", - "params": [ - { - "type": "Camera", - "name": "camera" - } - ] - }, - { - "name": "GetCameraMatrix2D", - "description": "Get camera 2d transform matrix", - "returnType": "Matrix", - "params": [ - { - "type": "Camera2D", - "name": "camera" - } - ] - }, { "name": "GetWorldToScreen", "description": "Get the screen space position for a 3d world space position", @@ -3946,21 +3924,6 @@ } ] }, - { - "name": "GetScreenToWorld2D", - "description": "Get the world space position for a 2d camera screen space position", - "returnType": "Vector2", - "params": [ - { - "type": "Vector2", - "name": "position" - }, - { - "type": "Camera2D", - "name": "camera" - } - ] - }, { "name": "GetWorldToScreenEx", "description": "Get size position for a 3d world space position", @@ -3999,6 +3962,43 @@ } ] }, + { + "name": "GetScreenToWorld2D", + "description": "Get the world space position for a 2d camera screen space position", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "position" + }, + { + "type": "Camera2D", + "name": "camera" + } + ] + }, + { + "name": "GetCameraMatrix", + "description": "Get camera transform matrix (view matrix)", + "returnType": "Matrix", + "params": [ + { + "type": "Camera", + "name": "camera" + } + ] + }, + { + "name": "GetCameraMatrix2D", + "description": "Get camera 2d transform matrix", + "returnType": "Matrix", + "params": [ + { + "type": "Camera2D", + "name": "camera" + } + ] + }, { "name": "SetTargetFPS", "description": "Set target FPS (maximum)", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 882fb61f5..c547fea22 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -3654,22 +3654,6 @@ return { {type = "float", name = "height"} } }, - { - name = "GetCameraMatrix", - description = "Get camera transform matrix (view matrix)", - returnType = "Matrix", - params = { - {type = "Camera", name = "camera"} - } - }, - { - name = "GetCameraMatrix2D", - description = "Get camera 2d transform matrix", - returnType = "Matrix", - params = { - {type = "Camera2D", name = "camera"} - } - }, { name = "GetWorldToScreen", description = "Get the screen space position for a 3d world space position", @@ -3679,15 +3663,6 @@ return { {type = "Camera", name = "camera"} } }, - { - name = "GetScreenToWorld2D", - description = "Get the world space position for a 2d camera screen space position", - returnType = "Vector2", - params = { - {type = "Vector2", name = "position"}, - {type = "Camera2D", name = "camera"} - } - }, { name = "GetWorldToScreenEx", description = "Get size position for a 3d world space position", @@ -3708,6 +3683,31 @@ return { {type = "Camera2D", name = "camera"} } }, + { + name = "GetScreenToWorld2D", + description = "Get the world space position for a 2d camera screen space position", + returnType = "Vector2", + params = { + {type = "Vector2", name = "position"}, + {type = "Camera2D", name = "camera"} + } + }, + { + name = "GetCameraMatrix", + description = "Get camera transform matrix (view matrix)", + returnType = "Matrix", + params = { + {type = "Camera", name = "camera"} + } + }, + { + name = "GetCameraMatrix2D", + description = "Get camera 2d transform matrix", + returnType = "Matrix", + params = { + {type = "Camera2D", name = "camera"} + } + }, { name = "SetTargetFPS", description = "Set target FPS (maximum)", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index ee1e55af9..4e1c03af1 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -1435,29 +1435,13 @@ Function 085: GetViewRay() (4 input parameters) Param[2]: camera (type: Camera) Param[3]: width (type: float) Param[4]: height (type: float) -Function 086: GetCameraMatrix() (1 input parameters) - Name: GetCameraMatrix - Return type: Matrix - Description: Get camera transform matrix (view matrix) - Param[1]: camera (type: Camera) -Function 087: GetCameraMatrix2D() (1 input parameters) - Name: GetCameraMatrix2D - Return type: Matrix - Description: Get camera 2d transform matrix - Param[1]: camera (type: Camera2D) -Function 088: GetWorldToScreen() (2 input parameters) +Function 086: GetWorldToScreen() (2 input parameters) Name: GetWorldToScreen Return type: Vector2 Description: Get the screen space position for a 3d world space position Param[1]: position (type: Vector3) Param[2]: camera (type: Camera) -Function 089: GetScreenToWorld2D() (2 input parameters) - Name: GetScreenToWorld2D - Return type: Vector2 - Description: Get the world space position for a 2d camera screen space position - Param[1]: position (type: Vector2) - Param[2]: camera (type: Camera2D) -Function 090: GetWorldToScreenEx() (4 input parameters) +Function 087: GetWorldToScreenEx() (4 input parameters) Name: GetWorldToScreenEx Return type: Vector2 Description: Get size position for a 3d world space position @@ -1465,12 +1449,28 @@ Function 090: GetWorldToScreenEx() (4 input parameters) Param[2]: camera (type: Camera) Param[3]: width (type: int) Param[4]: height (type: int) -Function 091: GetWorldToScreen2D() (2 input parameters) +Function 088: GetWorldToScreen2D() (2 input parameters) Name: GetWorldToScreen2D Return type: Vector2 Description: Get the screen space position for a 2d camera world space position Param[1]: position (type: Vector2) Param[2]: camera (type: Camera2D) +Function 089: GetScreenToWorld2D() (2 input parameters) + Name: GetScreenToWorld2D + Return type: Vector2 + Description: Get the world space position for a 2d camera screen space position + Param[1]: position (type: Vector2) + Param[2]: camera (type: Camera2D) +Function 090: GetCameraMatrix() (1 input parameters) + Name: GetCameraMatrix + Return type: Matrix + Description: Get camera transform matrix (view matrix) + Param[1]: camera (type: Camera) +Function 091: GetCameraMatrix2D() (1 input parameters) + Name: GetCameraMatrix2D + Return type: Matrix + Description: Get camera 2d transform matrix + Param[1]: camera (type: Camera2D) Function 092: SetTargetFPS() (1 input parameters) Name: SetTargetFPS Return type: void diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 4b82c275d..e439dff74 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -912,20 +912,10 @@ - - - - - - - - - - @@ -936,6 +926,16 @@ + + + + + + + + + + From cd8da72feaca4df374ba4980b3d2fd4d164349c9 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 12:08:49 +0100 Subject: [PATCH 170/790] Update rtext.c (#3777) (#3779) From 615ee9d177e53415996be026bcbd2977f88a1cc0 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 12:13:56 +0100 Subject: [PATCH 171/790] REVIEWED: `rlLoadFramebuffer()` --- examples/models/models_skybox.c | 2 +- examples/shaders/shaders_deferred_render.c | 2 +- examples/shaders/shaders_hybrid_render.c | 2 +- examples/shaders/shaders_shadowmap.c | 2 +- examples/shaders/shaders_write_depth.c | 2 +- src/rtextures.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index 67d8de8c1..1b8aad9a9 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -194,7 +194,7 @@ static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int s unsigned int rbo = rlLoadTextureDepth(size, size, true); cubemap.id = rlLoadTextureCubemap(0, size, format); - unsigned int fbo = rlLoadFramebuffer(size, size); + unsigned int fbo = rlLoadFramebuffer(); rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0); diff --git a/examples/shaders/shaders_deferred_render.c b/examples/shaders/shaders_deferred_render.c index b5e2e46d7..1c2db7b50 100644 --- a/examples/shaders/shaders_deferred_render.c +++ b/examples/shaders/shaders_deferred_render.c @@ -85,7 +85,7 @@ int main(void) // Initialize the G-buffer GBuffer gBuffer = { 0 }; - gBuffer.framebuffer = rlLoadFramebuffer(screenWidth, screenHeight); + gBuffer.framebuffer = rlLoadFramebuffer(); if (!gBuffer.framebuffer) { diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c index 9579adf99..97c773f1d 100644 --- a/examples/shaders/shaders_hybrid_render.c +++ b/examples/shaders/shaders_hybrid_render.c @@ -158,7 +158,7 @@ RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { RenderTexture2D target = { 0 }; - target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + target.id = rlLoadFramebuffer(); // Load an empty framebuffer if (target.id > 0) { diff --git a/examples/shaders/shaders_shadowmap.c b/examples/shaders/shaders_shadowmap.c index 15ffe008d..96c42d12f 100644 --- a/examples/shaders/shaders_shadowmap.c +++ b/examples/shaders/shaders_shadowmap.c @@ -203,7 +203,7 @@ RenderTexture2D LoadShadowmapRenderTexture(int width, int height) { RenderTexture2D target = { 0 }; - target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + target.id = rlLoadFramebuffer(); // Load an empty framebuffer target.texture.width = width; target.texture.height = height; diff --git a/examples/shaders/shaders_write_depth.c b/examples/shaders/shaders_write_depth.c index d2eeb68a8..531a7bfa6 100644 --- a/examples/shaders/shaders_write_depth.c +++ b/examples/shaders/shaders_write_depth.c @@ -117,7 +117,7 @@ RenderTexture2D LoadRenderTextureDepthTex(int width, int height) { RenderTexture2D target = { 0 }; - target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + target.id = rlLoadFramebuffer(); // Load an empty framebuffer if (target.id > 0) { diff --git a/src/rtextures.c b/src/rtextures.c index ed296f299..9fc94c1f3 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3893,7 +3893,7 @@ RenderTexture2D LoadRenderTexture(int width, int height) { RenderTexture2D target = { 0 }; - target.id = rlLoadFramebuffer(width, height); // Load an empty framebuffer + target.id = rlLoadFramebuffer(); // Load an empty framebuffer if (target.id > 0) { From e9291fa4c77c85e1fe6808289632e5ce4a93eed6 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Feb 2024 22:50:54 +0100 Subject: [PATCH 172/790] Update rtext.c --- src/rtext.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index c6187a0a7..7a1256221 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2368,11 +2368,11 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i for (int bitX = 0; bitX < 4; bitX++) { - int pixelX = ((x * 4) + bitX); + int pixelX = ((x*4) + bitX); if (pixelX >= charGlyphInfo->image.width) break; - if ((byte & (8 >> bitX)) > 0) ((unsigned char*)charGlyphInfo->image.data)[(pixelY * charGlyphInfo->image.width) + pixelX] = 255; + if ((byte & (8 >> bitX)) > 0) ((unsigned char *)charGlyphInfo->image.data)[(pixelY*charGlyphInfo->image.width) + pixelX] = 255; } } } @@ -2423,7 +2423,7 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i charGlyphInfo->offsetY = fontBBh - (charBBh + charBByoff0 + fontBByoff0 + fontAscent); charGlyphInfo->advanceX = charDWidthX; - charGlyphInfo->image.data = RL_CALLOC(charBBw * charBBh, 1); + charGlyphInfo->image.data = RL_CALLOC(charBBw*charBBh, 1); charGlyphInfo->image.width = charBBw; charGlyphInfo->image.height = charBBh; charGlyphInfo->image.mipmaps = 1; From 6a8cc62b677c37ce56ab10ab1538c94be93cb0bd Mon Sep 17 00:00:00 2001 From: Danil <61111955+danilwhale@users.noreply.github.com> Date: Mon, 5 Feb 2024 21:53:14 +0200 Subject: [PATCH 173/790] Fix GetCameraRight (#3784) --- src/rcamera.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcamera.h b/src/rcamera.h index b1805c372..8e513ef1c 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -243,7 +243,7 @@ Vector3 GetCameraRight(Camera *camera) Vector3 forward = GetCameraForward(camera); Vector3 up = GetCameraUp(camera); - return Vector3CrossProduct(forward, up); + return Vector3Normalize(Vector3CrossProduct(forward, up)); } // Moves the camera in its forward direction From ea31bd47e5135680d5cc0f29800372cf8cfeb49a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 5 Feb 2024 21:12:57 +0100 Subject: [PATCH 174/790] REVIEWED: PLATFORM_WEB build flags, added GL_ENABLE_GET_PROC_ADDRESS Reviewed flags formating --- examples/Makefile | 25 ++++++++------- examples/Makefile.Web | 73 ++++++++++++++++++++++--------------------- src/Makefile | 16 +++++----- 3 files changed, 59 insertions(+), 55 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index bc81a58f4..b48557baa 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -202,7 +202,7 @@ CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g -D_DEBUG ifeq ($(PLATFORM),PLATFORM_WEB) - CFLAGS += -s ASSERTIONS=1 --profiling + CFLAGS += -sASSERTIONS=1 --profiling endif else ifeq ($(PLATFORM),PLATFORM_WEB) @@ -298,23 +298,24 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # -Os # size optimization # -O2 # optimization level 2, if used, also set --memory-init-file 0 - # -s USE_GLFW=3 # Use glfw3 library (context/input management) - # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! - # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) - # -s USE_PTHREADS=1 # multithreading support - # -s WASM=0 # disable Web Assembly, emitted by default - # -s ASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS - # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data - # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sWASM=0 # disable Web Assembly, emitted by default + # -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sGL_ENABLE_GET_PROC_ADDRESS # enable using the *glGetProcAddress() family of functions, required for extensions loading # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation # --source-map-base # allow debugging in browser with source map - LDFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -s FORCE_FILESYSTEM=1 + LDFLAGS += -sUSE_GLFW=3 -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sGL_ENABLE_GET_PROC_ADDRESS # Build using asyncify ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) - LDFLAGS += -s ASYNCIFY + LDFLAGS += -sASYNCIFY endif # Add resources building if required @@ -324,7 +325,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # Add debug mode flags if required ifeq ($(BUILD_MODE),DEBUG) - LDFLAGS += -s ASSERTIONS=1 --profiling + LDFLAGS += -sASSERTIONS=1 --profiling endif # Define a custom shell .html and output extension diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 39f64c071..971e81830 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -168,7 +168,7 @@ CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g -D_DEBUG ifeq ($(PLATFORM),PLATFORM_WEB) - CFLAGS += -s ASSERTIONS=1 --profiling + CFLAGS += -sASSERTIONS=1 --profiling endif else ifeq ($(PLATFORM),PLATFORM_WEB) @@ -244,20 +244,21 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # -Os # size optimization # -O2 # optimization level 2, if used, also set --memory-init-file 0 - # -s USE_GLFW=3 # Use glfw3 library (context/input management) - # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! - # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) - # -s USE_PTHREADS=1 # multithreading support - # -s WASM=0 # disable Web Assembly, emitted by default - # -s ASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS - # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data - # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) - # -s EXPORTED_RUNTIME_METHODS=ccall # require exporting some LEGACY_RUNTIME functions, ccall() is required by miniaudio + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sWASM=0 # disable Web Assembly, emitted by default + # -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sEXPORTED_RUNTIME_METHODS=ccall # require exporting some LEGACY_RUNTIME functions, ccall() is required by miniaudio + # -sGL_ENABLE_GET_PROC_ADDRESS # enable using the *glGetProcAddress() family of functions, required for extensions loading # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation # --source-map-base # allow debugging in browser with source map - LDFLAGS += -s USE_GLFW=3 -s ASYNCIFY -s EXPORTED_RUNTIME_METHODS=ccall + LDFLAGS += -sUSE_GLFW=3 -sASYNCIFY -sEXPORTED_RUNTIME_METHODS=ccall -sGL_ENABLE_GET_PROC_ADDRESS # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way, # we can compile same code for ALL platforms with no change required, but, working on bigger @@ -552,7 +553,7 @@ core/core_custom_logging: core/core_custom_logging.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) core/core_drop_files: core/core_drop_files.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 -sFORCE_FILESYSTEM=1 core/core_input_gamepad: core/core_input_gamepad.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -585,7 +586,7 @@ core/core_input_multitouch: core/core_input_multitouch.c # WARNING: It requires raylib to be compiled using -pthread, so atomic operations and thread-local data (if any) # in its source were transformed to non-atomic operations and non-thread-local data core/core_loading_thread: core/core_loading_thread.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s USE_PTHREADS=1 + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sUSE_PTHREADS=1 core/core_random_values: core/core_random_values.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) @@ -597,7 +598,7 @@ core/core_smooth_pixelperfect: core/core_smooth_pixelperfect.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) core/core_storage_values: core/core_storage_values.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sFORCE_FILESYSTEM=1 core/core_vr_simulator: core/core_vr_simulator.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -703,7 +704,7 @@ textures/textures_image_drawing: textures/textures_image_drawing.c --preload-file textures/resources/cat.png@resources/cat.png textures/textures_image_generation: textures/textures_image_generation.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 textures/textures_image_kernel: textures/textures_image_kernel.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -722,7 +723,7 @@ textures/textures_image_rotate: textures/textures_image_rotate.c --preload-file textures/resources/raylib_logo.png textures/textures_image_text: textures/textures_image_text.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file textures/resources/parrots.png@resources/parrots.png \ --preload-file textures/resources/KAISG.ttf@resources/KAISG.ttf @@ -790,17 +791,17 @@ text/text_draw_3d: text/text_draw_3d.c --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs text/text_font_filters: text/text_font_filters.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file text/resources/KAISG.ttf@resources/KAISG.ttf text/text_font_loading: text/text_font_loading.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file text/resources/pixantiqua.fnt@resources/pixantiqua.fnt \ --preload-file text/resources/pixantiqua.png@resources/pixantiqua.png \ --preload-file text/resources/pixantiqua.ttf@resources/pixantiqua.ttf text/text_font_sdf: text/text_font_sdf.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file text/resources/anonymous_pro_bold.ttf@resources/anonymous_pro_bold.ttf \ --preload-file text/resources/shaders/glsl100/sdf.fs@resources/shaders/glsl100/sdf.fs @@ -831,7 +832,7 @@ text/text_rectangle_bounds: text/text_rectangle_bounds.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) text/text_unicode: text/text_unicode.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \ --preload-file text/resources/dejavu.png@resources/dejavu.png \ --preload-file text/resources/noto_cjk.fnt@resources/noto_cjk.fnt \ @@ -845,7 +846,7 @@ text/text_writing_anim: text/text_writing_anim.c # Compile MODELS examples models/models_animation: models/models_animation.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/iqm/guy.iqm@resources/models/iqm/guy.iqm \ --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \ --preload-file models/resources/models/iqm/guyanim.iqm@resources/models/iqm/guyanim.iqm @@ -879,20 +880,20 @@ models/models_heightmap: models/models_heightmap.c --preload-file models/resources/heightmap.png@resources/heightmap.png models/models_loading: models/models_loading.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/obj/castle.obj@resources/models/obj/castle.obj \ --preload-file models/resources/models/obj/castle_diffuse.png@resources/models/obj/castle_diffuse.png models/models_loading_gltf: models/models_loading_gltf.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/gltf/robot.glb@resources/models/gltf/robot.glb models/models_loading_m3d: models/models_loading_m3d.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/m3d/cesium_man.m3d@resources/models/m3d/cesium_man.m3d models/models_loading_vox: models/models_loading_vox.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/vox/chr_knight.vox@resources/models/vox/chr_knight.vox \ --preload-file models/resources/models/vox/chr_sword.vox@resources/models/vox/chr_sword.vox \ --preload-file models/resources/models/vox/monu9.vox@resources/models/vox/monu9.vox @@ -912,7 +913,7 @@ models/models_rlgl_solar_system: models/models_rlgl_solar_system.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) models/models_skybox: models/models_skybox.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 -sFORCE_FILESYSTEM=1 \ --preload-file models/resources/dresden_square_2k.hdr@resources/dresden_square_2k.hdr \ --preload-file models/resources/shaders/glsl100/skybox.vs@resources/shaders/glsl100/skybox.vs \ --preload-file models/resources/shaders/glsl100/skybox.fs@resources/shaders/glsl100/skybox.fs \ @@ -923,7 +924,7 @@ models/models_waving_cubes: models/models_waving_cubes.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) models/models_yaw_pitch_roll: models/models_yaw_pitch_roll.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file models/resources/models/obj/plane.obj@resources/models/obj/plane.obj \ --preload-file models/resources/models/obj/plane_diffuse.png@resources/models/obj/plane_diffuse.png @@ -936,7 +937,7 @@ shaders/shaders_basic_lighting: shaders/shaders_basic_lighting.c --preload-file shaders/resources/shaders/glsl100/lighting.vs@resources/shaders/glsl100/lighting.vs shaders/shaders_custom_uniform: shaders/shaders_custom_uniform.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file shaders/resources/models/barracks.obj@resources/models/barracks.obj \ --preload-file shaders/resources/models/barracks_diffuse.png@resources/models/barracks_diffuse.png \ --preload-file shaders/resources/shaders/glsl100/swirl.fs@resources/shaders/glsl100/swirl.fs @@ -960,7 +961,7 @@ shaders/shaders_fog: shaders/shaders_fog.c --preload-file shaders/resources/shaders/glsl100/lighting.vs@resources/shaders/glsl100/lighting.vs shaders/shaders_hot_reloading: shaders/shaders_hot_reloading.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sFORCE_FILESYSTEM=1 \ --preload-file shaders/resources/shaders/glsl100/reload.fs@resources/shaders/glsl100/reload.fs shaders/shaders_hybrid_render: shaders/shaders_hybrid_render.c @@ -973,7 +974,7 @@ shaders/shaders_julia_set: shaders/shaders_julia_set.c --preload-file shaders/resources/shaders/glsl100/julia_set.fs@resources/shaders/glsl100/julia_set.fs shaders/shaders_lightmap: shaders/shaders_lightmap.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sFORCE_FILESYSTEM=1 \ --preload-file shaders/resources/shaders/glsl100/lightmap.vs@resources/shaders/glsl100/lightmap.vs \ --preload-file shaders/resources/shaders/glsl100/lightmap.fs@resources/shaders/glsl100/lightmap.fs \ --preload-file shaders/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png \ @@ -985,7 +986,7 @@ shaders/shaders_mesh_instancing: shaders/shaders_mesh_instancing.c --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs shaders/shaders_model_shader: shaders/shaders_model_shader.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file shaders/resources/models/watermill.obj@resources/models/watermill.obj \ --preload-file shaders/resources/models/watermill_diffuse.png@resources/models/watermill_diffuse.png \ --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs @@ -999,7 +1000,7 @@ shaders/shaders_palette_switch: shaders/shaders_palette_switch.c --preload-file shaders/resources/shaders/glsl100/palette_switch.fs@resources/shaders/glsl100/palette_switch.fs shaders/shaders_postprocessing: shaders/shaders_postprocessing.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file shaders/resources/models/church.obj@resources/models/church.obj \ --preload-file shaders/resources/models/church_diffuse.png@resources/models/church_diffuse.png \ --preload-file shaders/resources/shaders/glsl100@resources/shaders/glsl100 @@ -1051,7 +1052,7 @@ shaders/shaders_write_depth: shaders/shaders_write_depth.c # Compile AUDIO examples audio/audio_mixed_processor: audio/audio_mixed_processor.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file audio/resources/country.mp3@resources/country.mp3 \ --preload-file audio/resources/coin.wav@resources/coin.wav @@ -1060,11 +1061,11 @@ audio/audio_module_playing: audio/audio_module_playing.c --preload-file audio/resources/mini1111.xm@resources/mini1111.xm audio/audio_music_stream: audio/audio_music_stream.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file audio/resources/country.mp3@resources/country.mp3 audio/audio_raw_stream: audio/audio_raw_stream.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 audio/audio_sound_loading: audio/audio_sound_loading.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ @@ -1076,7 +1077,7 @@ audio/audio_sound_multi: audio/audio_sound_multi.c --preload-file audio/resources/sound.wav@resources/sound.wav audio/audio_stream_effects: audio/audio_stream_effects.c - $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sTOTAL_MEMORY=67108864 \ --preload-file audio/resources/country.mp3@resources/country.mp3 diff --git a/src/Makefile b/src/Makefile index 526acaadf..34e2b574b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -347,18 +347,20 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # -Os # size optimization # -O2 # optimization level 2, if used, also set --memory-init-file 0 - # -s USE_GLFW=3 # Use glfw3 library (context/input management) -> Only for linker! - # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! - # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) - # -s USE_PTHREADS=1 # multithreading support - # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data - # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sUSE_GLFW=3 # Use glfw3 library (context/input management) -> Only for linker! + # -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) + # -sUSE_PTHREADS=1 # multithreading support + # -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # -sGL_ENABLE_GET_PROC_ADDRESS # enable using the *glGetProcAddress() family of functions, required for extensions loading # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation ifeq ($(RAYLIB_BUILD_MODE),DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling + CFLAGS += -sASSERTIONS=1 --profiling endif + CFLAGS += -sGL_ENABLE_GET_PROC_ADDRESS endif ifeq ($(PLATFORM),PLATFORM_ANDROID) # Compiler flags for arquitecture From e52ae870f297961b9ac23d2e6eca4937a24ac6c0 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 5 Feb 2024 21:38:13 +0100 Subject: [PATCH 175/790] Reverted Makefile `GL_ENABLE_GET_PROC_ADDRESS` #3713 --- examples/Makefile | 2 +- examples/Makefile.Web | 2 +- src/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index b48557baa..c5bc8b74b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -311,7 +311,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation # --source-map-base # allow debugging in browser with source map - LDFLAGS += -sUSE_GLFW=3 -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sGL_ENABLE_GET_PROC_ADDRESS + LDFLAGS += -sUSE_GLFW=3 -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 # Build using asyncify ifeq ($(BUILD_WEB_ASYNCIFY),TRUE) diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 971e81830..204db50cc 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -258,7 +258,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation # --source-map-base # allow debugging in browser with source map - LDFLAGS += -sUSE_GLFW=3 -sASYNCIFY -sEXPORTED_RUNTIME_METHODS=ccall -sGL_ENABLE_GET_PROC_ADDRESS + LDFLAGS += -sUSE_GLFW=3 -sASYNCIFY -sEXPORTED_RUNTIME_METHODS=ccall # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way, # we can compile same code for ALL platforms with no change required, but, working on bigger diff --git a/src/Makefile b/src/Makefile index 34e2b574b..f38257b0d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -360,7 +360,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) ifeq ($(RAYLIB_BUILD_MODE),DEBUG) CFLAGS += -sASSERTIONS=1 --profiling endif - CFLAGS += -sGL_ENABLE_GET_PROC_ADDRESS + #CFLAGS += -sGL_ENABLE_GET_PROC_ADDRESS endif ifeq ($(PLATFORM),PLATFORM_ANDROID) # Compiler flags for arquitecture From 8ba7c61625c1a4eb688fcd95bb95a9e9aea53b1c Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Feb 2024 15:56:11 +0100 Subject: [PATCH 176/790] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d2b78e47..79e883034 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Ready to learn? Jump to [code examples!](https://www.raylib.com/examples.html) [![GitHub Releases Downloads](https://img.shields.io/github/downloads/raysan5/raylib/total)](https://github.com/raysan5/raylib/releases) [![GitHub Stars](https://img.shields.io/github/stars/raysan5/raylib?style=flat&label=stars)](https://github.com/raysan5/raylib/stargazers) -[![GitHub commits since tagged version](https://img.shields.io/github/commits-since/raysan5/raylib/4.5.0)](https://github.com/raysan5/raylib/commits/master) +[![GitHub commits since tagged version](https://img.shields.io/github/commits-since/raysan5/raylib/5.0)](https://github.com/raysan5/raylib/commits/master) [![GitHub Sponsors](https://img.shields.io/github/sponsors/raysan5?label=sponsors)](https://github.com/sponsors/raysan5) [![Packaging Status](https://repology.org/badge/tiny-repos/raylib.svg)](https://repology.org/project/raylib/versions) [![License](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg)](LICENSE) From dd8b5613cab0d62a2464be5e3b45e835adedea0c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 8 Feb 2024 08:45:59 +0100 Subject: [PATCH 177/790] REVIEWED: `DrawPixel()` not drawing --- src/rshapes.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index e4eb107b1..4b597c4ac 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -135,7 +135,6 @@ void DrawPixelV(Vector2 position, Color color) { #if defined(SUPPORT_QUADS_DRAW_MODE) rlSetTexture(GetShapesTexture().id); - Rectangle shapeRect = GetShapesTextureRectangle(); rlBegin(RL_QUADS); @@ -143,16 +142,16 @@ void DrawPixelV(Vector2 position, Color color) rlNormal3f(0.0f, 0.0f, 1.0f); rlColor4ub(color.r, color.g, color.b, color.a); - rlTexCoord2f(shapeRect.x/ shapeRect.width, shapeRect.y/ shapeRect.height); + rlTexCoord2f(shapeRect.x/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(position.x, position.y); - rlTexCoord2f(shapeRect.x/ shapeRect.width, (shapeRect.y + shapeRect.height)/ shapeRect.height); + rlTexCoord2f(shapeRect.x/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(position.x, position.y + 1); - rlTexCoord2f((shapeRect.x + shapeRect.width)/ shapeRect.width, (shapeRect.y + shapeRect.height)/ shapeRect.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, (shapeRect.y + shapeRect.height)/texShapes.height); rlVertex2f(position.x + 1, position.y + 1); - rlTexCoord2f((shapeRect.x + shapeRect.width)/ shapeRect.width, shapeRect.y/ shapeRect.height); + rlTexCoord2f((shapeRect.x + shapeRect.width)/texShapes.width, shapeRect.y/texShapes.height); rlVertex2f(position.x + 1, position.y); rlEnd(); From 4cd71a975086fa3be3b28d765e45c4bb7dc4e101 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Sat, 10 Feb 2024 11:02:05 -0800 Subject: [PATCH 178/790] Fix warnings in raylib (#3793) --- src/rcore.c | 2 +- src/rmodels.c | 6 ++++-- src/rtextures.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 48c863f56..84e05e23d 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1406,7 +1406,7 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) // Get a ray trace from mouse position Ray GetMouseRay(Vector2 mousePosition, Camera camera) { - return GetViewRay(mousePosition, camera, GetScreenWidth(), GetScreenHeight()); + return GetViewRay(mousePosition, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); } // Get a ray trace from the mouse position within a specific section of the screen diff --git a/src/rmodels.c b/src/rmodels.c index 0cb949bc2..aef0e7c5f 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5284,7 +5284,8 @@ static Model LoadGLTF(const char *fileName) { // Handle 16-bit unsigned short, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(unsigned short)); - LOAD_ATTRIBUTE(attribute, 2, unsigned short, model.meshes[meshIndex].boneIds) + unsigned short* ptr = (unsigned short*)model.meshes[meshIndex].boneIds; + LOAD_ATTRIBUTE(attribute, 2, unsigned short, ptr) } else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) { @@ -5296,7 +5297,8 @@ static Model LoadGLTF(const char *fileName) { // Handle 32-bit float, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(float)); - LOAD_ATTRIBUTE(attribute, 2, float, model.meshes[meshIndex].boneIds) + float* ptr = (float*)model.meshes[meshIndex].boneIds; + LOAD_ATTRIBUTE(attribute, 2, float, ptr) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } diff --git a/src/rtextures.c b/src/rtextures.c index 9fc94c1f3..bf87eabc4 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2191,7 +2191,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) int ykabs = yk + kernelWidth/2; unsigned int imgindex = image->width*(x + xk) + (y + yk); - if (imgindex >= image->width*image->height) + if (imgindex >= (unsigned int)(image->width*image->height)) { temp[kernelWidth * xkabs + ykabs].x = 0.0f; temp[kernelWidth * xkabs + ykabs].y = 0.0f; From 6280771dad01c03fa63eac0328dc4ff4710deda9 Mon Sep 17 00:00:00 2001 From: Mingjie Shen Date: Tue, 13 Feb 2024 04:38:13 -0500 Subject: [PATCH 179/790] [rtext] Change strcpy to strncpy to fix buffer overflow (#3795) --- src/rtext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rtext.c b/src/rtext.c index 7a1256221..ba09c7098 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -530,7 +530,7 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int Font font = { 0 }; char fileExtLower[16] = { 0 }; - strcpy(fileExtLower, TextToLower(fileType)); + strncpy(fileExtLower, TextToLower(fileType), sizeof(fileExtLower) - 1); font.baseSize = fontSize; font.glyphCount = (codepointCount > 0)? codepointCount : 95; From bb741f53a8678914b4194b998b6c1d8a923bcae5 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 13 Feb 2024 10:43:24 +0100 Subject: [PATCH 180/790] Update rtext.c --- src/rtext.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index ba09c7098..12be73e7c 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -530,7 +530,7 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int Font font = { 0 }; char fileExtLower[16] = { 0 }; - strncpy(fileExtLower, TextToLower(fileType), sizeof(fileExtLower) - 1); + strncpy(fileExtLower, TextToLower(fileType), 16 - 1); font.baseSize = fontSize; font.glyphCount = (codepointCount > 0)? codepointCount : 95; @@ -971,7 +971,7 @@ bool ExportFontAsCode(Font font, const char *fileName) // Get file name from path char fileNamePascal[256] = { 0 }; - strcpy(fileNamePascal, TextToPascal(GetFileNameWithoutExt(fileName))); + strncpy(fileNamePascal, TextToPascal(GetFileNameWithoutExt(fileName)), 256 - 1); // NOTE: Text data buffer size is estimated considering image data size in bytes // and requiring 6 char bytes for every byte: "0x00, " @@ -1699,7 +1699,8 @@ const char **TextSplit(const char *text, char delimiter, int *count) return result; } -// Append text at specific position and move cursor! +// Append text at specific position and move cursor +// WARNING: It's up to the user to make sure appended text does not overflow the buffer! // REQUIRES: strcpy() void TextAppend(char *text, const char *append, int *position) { From 401c5a86380f0e06cf30f1b75cff102f460fc98d Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 13 Feb 2024 15:58:02 +0100 Subject: [PATCH 181/790] Minor tweaks to avoid some CodeQL warnings --- src/rcore.c | 2 +- src/rtext.c | 25 +++++++------------------ 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 84e05e23d..0cbe3c815 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -362,7 +362,7 @@ static int screenshotCounter = 0; // Screenshots counter #endif #if defined(SUPPORT_GIF_RECORDING) -int gifFrameCounter = 0; // GIF frames counter +unsigned int gifFrameCounter = 0; // GIF frames counter bool gifRecording = false; // GIF recording state MsfGifState gifState = { 0 }; // MSGIF context state #endif diff --git a/src/rtext.c b/src/rtext.c index 12be73e7c..91f5570ac 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2264,23 +2264,12 @@ static Font LoadBMFont(const char *fileName) #if defined(SUPPORT_FILEFORMAT_BDF) // Convert hexadecimal to decimal (single digit) -static char HexToInt(char hex) { - if (hex >= '0' && hex <= '9') - { - return hex - '0'; - } - else if (hex >= 'a' && hex <= 'f') - { - return hex - 'a' + 10; - } - else if (hex >= 'A' && hex <= 'F') - { - return hex - 'A' + 10; - } - else - { - return 0; - } +static unsigned char HexToInt(char hex) +{ + if (hex >= '0' && hex <= '9') return hex - '0'; + else if (hex >= 'a' && hex <= 'f') return hex - 'a' + 10; + else if (hex >= 'A' && hex <= 'F') return hex - 'A' + 10; + else return 0; } // Load font data for further use @@ -2365,7 +2354,7 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i for (int x = 0; x < readBytes; x++) { - char byte = HexToInt(buffer[x]); + unsigned char byte = HexToInt(buffer[x]); for (int bitX = 0; bitX < 4; bitX++) { From abe243d46972ab8a2956bac9020dac9cc9e3f345 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 13 Feb 2024 16:13:46 +0100 Subject: [PATCH 182/790] Update linux.yml --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d740250e0..db989e24f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -94,7 +94,7 @@ jobs: tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }} - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE_NAME }}.tar.gz path: ./build/${{ env.RELEASE_NAME }}.tar.gz From dc7f81a7b0cbc666812c870841313e0c15a87a0c Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 13 Feb 2024 16:15:18 +0100 Subject: [PATCH 183/790] Update workflows to use latest actions/upload-artifact --- .github/workflows/android.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/macos.yml | 2 +- .github/workflows/webassembly.yml | 2 +- .github/workflows/windows.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 838d7a341..16984e157 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -82,7 +82,7 @@ jobs: tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }} - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE_NAME }}.tar.gz path: ./build/${{ env.RELEASE_NAME }}.tar.gz diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f9932079f..8077aaedf 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -128,7 +128,7 @@ jobs: - name: Upload CodeQL results as an artifact if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: codeql-results path: ${{ steps.step1.outputs.sarif-output }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a9a036bd4..abe27493a 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -99,7 +99,7 @@ jobs: tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }} - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE_NAME }}.tar.gz path: ./build/${{ env.RELEASE_NAME }}.tar.gz diff --git a/.github/workflows/webassembly.yml b/.github/workflows/webassembly.yml index 9374cb9eb..bdcfd608e 100644 --- a/.github/workflows/webassembly.yml +++ b/.github/workflows/webassembly.yml @@ -69,7 +69,7 @@ jobs: shell: cmd - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE_NAME }}.zip path: ./build/${{ env.RELEASE_NAME }}.zip diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index cf9a9f33e..2138982e5 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -133,7 +133,7 @@ jobs: shell: cmd - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.RELEASE_NAME }}.zip path: ./build/${{ env.RELEASE_NAME }}.zip From c251e9309e066b9d2aa5ecbd15bcee45b9bef528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Foscarini?= Date: Sat, 17 Feb 2024 10:41:03 +0100 Subject: [PATCH 184/790] Fix implicit conversion from float to double then back to float again (#3799) --- src/raymath.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index b46243f4e..15e403cbb 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -165,7 +165,7 @@ typedef struct float16 { float v[16]; } float16; -#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabs() +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() //---------------------------------------------------------------------------------- // Module Functions Definition - Utils math @@ -605,12 +605,12 @@ RMAPI Vector3 Vector3Perpendicular(Vector3 v) { Vector3 result = { 0 }; - float min = (float) fabs(v.x); + float min = fabsf(v.x); Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; if (fabsf(v.y) < min) { - min = (float) fabs(v.y); + min = fabsf(v.y); Vector3 tmp = {0.0f, 1.0f, 0.0f}; cardinalAxis = tmp; } From e42e3188f57d8db51e0a14410242dcb5566dd9fb Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 18 Feb 2024 11:59:40 +0100 Subject: [PATCH 185/790] Remove some unneeded line breaks --- src/rcore.c | 1 - src/rlgl.h | 2 -- src/rshapes.c | 1 - src/rtext.c | 2 -- src/rtextures.c | 3 --- 5 files changed, 9 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 0cbe3c815..f4abe117a 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1694,7 +1694,6 @@ void WaitTime(double seconds) // NOTE: Functions with a platform-specific implementation on rcore_.c //void OpenURL(const char *url) - // Set the seed for the random number generator void SetRandomSeed(unsigned int seed) { diff --git a/src/rlgl.h b/src/rlgl.h index 237799e56..75b830107 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -120,7 +120,6 @@ #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif - // Function specifiers definition #ifndef RLAPI #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) @@ -3412,7 +3411,6 @@ void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int #endif } - // Read texture pixel data void *rlReadTexturePixels(unsigned int id, int width, int height, int format) { diff --git a/src/rshapes.c b/src/rshapes.c index 4b597c4ac..f0c6f1127 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -71,7 +71,6 @@ #define SPLINE_SEGMENT_DIVISIONS 24 // Spline segment divisions #endif - //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- diff --git a/src/rtext.c b/src/rtext.c index 91f5570ac..eb56b3ecd 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1112,7 +1112,6 @@ bool ExportFontAsCode(Font font, const char *fileName) return success; } - // Draw current FPS // NOTE: Uses default font void DrawFPS(int posX, int posY) @@ -1438,7 +1437,6 @@ const char *TextFormat(const char *text, ...) return currentBuffer; } - // Get integer value from text // NOTE: This function replaces atoi() [stdlib.h] int TextToInteger(const char *text) diff --git a/src/rtextures.c b/src/rtextures.c index bf87eabc4..97d9e3858 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1648,7 +1648,6 @@ void ImageResizeNN(Image *image,int newWidth,int newHeight) UnloadImageColors(pixels); } - // Resize and image to new size // NOTE: Uses stb default scaling filters (both bicubic): // STBIR_DEFAULT_FILTER_UPSAMPLE STBIR_FILTER_CATMULLROM @@ -2102,7 +2101,6 @@ void ImageBlurGaussian(Image *image, int blurSize) { } } - // Reverse premultiply for (int i = 0; i < (image->width)*(image->height); i++) { @@ -2152,7 +2150,6 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) Vector4 *imageCopy2 = RL_MALLOC((image->height)*(image->width)*sizeof(Vector4)); Vector4 *temp = RL_MALLOC(kernelSize*sizeof(Vector4)); - for (int i = 0; i < kernelSize; i++) { temp[i].x = 0.0f; From 77eeb0010e957a2468deea3ac9f7c74fd3674202 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 18 Feb 2024 12:06:16 +0100 Subject: [PATCH 186/790] Updated workflows --- .github/workflows/android.yml | 12 ++++-------- .github/workflows/cmake.yml | 4 ++-- .github/workflows/codeql.yml | 2 +- .github/workflows/linux.yml | 11 ++++------- .github/workflows/linux_examples.yml | 2 +- .github/workflows/macos.yml | 9 +++------ .github/workflows/parse.yml | 2 +- .github/workflows/webassembly.yml | 13 +++++-------- .github/workflows/windows.yml | 11 ++++------- .github/workflows/windows_examples.yml | 2 +- 10 files changed, 26 insertions(+), 42 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 16984e157..a3d2f9a5a 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -88,13 +88,9 @@ jobs: path: ./build/${{ env.RELEASE_NAME }}.tar.gz - name: Upload Artifact to Release - uses: actions/upload-release-asset@v1.0.1 + uses: softprops/action-gh-release@v1 + with: + files: ./build/${{ env.RELEASE_NAME }}.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz - asset_name: ${{ env.RELEASE_NAME }}.tar.gz - asset_content_type: application/gzip - if: github.event_name == 'release' && github.event.action == 'published' - + if: github.event_name == 'release' && github.event.action == 'published' diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 0e13b8e8f..82e3459b2 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -36,7 +36,7 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory @@ -75,7 +75,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8077aaedf..956812245 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -44,7 +44,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index db989e24f..976b67bfb 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -100,12 +100,9 @@ jobs: path: ./build/${{ env.RELEASE_NAME }}.tar.gz - name: Upload Artifact to Release - uses: actions/upload-release-asset@v1.0.1 + uses: softprops/action-gh-release@v1 + with: + files: ./build/${{ env.RELEASE_NAME }}.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz - asset_name: ${{ env.RELEASE_NAME }}.tar.gz - asset_content_type: application/gzip - if: github.event_name == 'release' && github.event.action == 'published' + if: github.event_name == 'release' && github.event.action == 'published' diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml index 3ed2dc796..2d26b5fa5 100644 --- a/.github/workflows/linux_examples.yml +++ b/.github/workflows/linux_examples.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Environment run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index abe27493a..8b9f59d2c 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -105,12 +105,9 @@ jobs: path: ./build/${{ env.RELEASE_NAME }}.tar.gz - name: Upload Artifact to Release - uses: actions/upload-release-asset@v1.0.1 + uses: softprops/action-gh-release@v1 + with: + files: ./build/${{ env.RELEASE_NAME }}.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz - asset_name: ${{ env.RELEASE_NAME }}.tar.gz - asset_content_type: application/gzip if: github.event_name == 'release' && github.event.action == 'published' diff --git a/.github/workflows/parse.yml b/.github/workflows/parse.yml index dcbd3e43d..ee413d643 100644 --- a/.github/workflows/parse.yml +++ b/.github/workflows/parse.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Update parse files working-directory: parser diff --git a/.github/workflows/webassembly.yml b/.github/workflows/webassembly.yml index bdcfd608e..f9e51680d 100644 --- a/.github/workflows/webassembly.yml +++ b/.github/workflows/webassembly.yml @@ -27,9 +27,9 @@ jobs: uses: actions/checkout@master - name: Setup emsdk - uses: mymindstorm/setup-emsdk@v12 + uses: mymindstorm/setup-emsdk@v14 with: - version: 3.1.30 + version: 3.1.54 actions-cache-folder: 'emsdk-cache' - name: Setup Release Version @@ -75,12 +75,9 @@ jobs: path: ./build/${{ env.RELEASE_NAME }}.zip - name: Upload Artifact to Release - uses: actions/upload-release-asset@v1.0.1 + uses: softprops/action-gh-release@v1 + with: + files: ./build/${{ env.RELEASE_NAME }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./build/${{ env.RELEASE_NAME }}.zip - asset_name: ${{ env.RELEASE_NAME }}.zip - asset_content_type: application/zip if: github.event_name == 'release' && github.event.action == 'published' diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2138982e5..f8e19f0fc 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -74,7 +74,7 @@ jobs: # Setup MSBuild.exe path if required - name: Setup MSBuild - uses: microsoft/setup-msbuild@v1.1 + uses: microsoft/setup-msbuild@v2 if: matrix.compiler == 'msvc16' - name: Build Library (MinGW-w64 32bit) @@ -139,12 +139,9 @@ jobs: path: ./build/${{ env.RELEASE_NAME }}.zip - name: Upload Artifact to Release - uses: actions/upload-release-asset@v1.0.1 + uses: softprops/action-gh-release@v1 + with: + files: ./build/${{ env.RELEASE_NAME }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./build/${{ env.RELEASE_NAME }}.zip - asset_name: ${{ env.RELEASE_NAME }}.zip - asset_content_type: application/zip if: github.event_name == 'release' && github.event.action == 'published' diff --git a/.github/workflows/windows_examples.yml b/.github/workflows/windows_examples.yml index 19e23cf1b..6171d6dd9 100644 --- a/.github/workflows/windows_examples.yml +++ b/.github/workflows/windows_examples.yml @@ -22,7 +22,7 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1 From 54e0af40c1c534b3f3958264c67270434183639e Mon Sep 17 00:00:00 2001 From: Nikita Blizniuk <46704931+BliznyukNM@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:51:04 +0100 Subject: [PATCH 187/790] fixed loading GLTF animations with 1 frame (#3804) --- src/rmodels.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index aef0e7c5f..166f51a6a 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5368,7 +5368,7 @@ static bool GetPoseAtTimeGLTF(cgltf_accessor *input, cgltf_accessor *output, flo } } - float t = (time - tstart)/(tend - tstart); + float t = (time - tstart)/fmax((tend - tstart), EPSILON); t = (t < 0.0f)? 0.0f : t; t = (t > 1.0f)? 1.0f : t; @@ -5506,7 +5506,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo strncpy(animations[i].name, animData.name, sizeof(animations[i].name)); animations[i].name[sizeof(animations[i].name) - 1] = '\0'; - animations[i].frameCount = (int)(animDuration*1000.0f/GLTF_ANIMDELAY); + animations[i].frameCount = (int)(animDuration*1000.0f/GLTF_ANIMDELAY) + 1; animations[i].framePoses = RL_MALLOC(animations[i].frameCount*sizeof(Transform *)); for (int j = 0; j < animations[i].frameCount; j++) From 4f283a0789b896f4b71ec1cffca959dd0902a5e1 Mon Sep 17 00:00:00 2001 From: mooff Date: Thu, 22 Feb 2024 22:05:41 +0000 Subject: [PATCH 188/790] Add CMake PLATFORM option for Desktop SDL (#3809) --- CMakeOptions.txt | 2 +- cmake/LibraryConfigurations.cmake | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index db0a1a102..68468c07a 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -2,7 +2,7 @@ include(CMakeDependentOption) include(EnumOption) -enum_option(PLATFORM "Desktop;Web;Android;Raspberry Pi;DRM" "Platform to build for.") +enum_option(PLATFORM "Desktop;Web;Android;Raspberry Pi;DRM;SDL" "Platform to build for.") enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific OpenGL Version?") diff --git a/cmake/LibraryConfigurations.cmake b/cmake/LibraryConfigurations.cmake index d4bf45a08..18b4f196a 100644 --- a/cmake/LibraryConfigurations.cmake +++ b/cmake/LibraryConfigurations.cmake @@ -91,6 +91,11 @@ elseif ("${PLATFORM}" MATCHES "DRM") endif () set(LIBS_PRIVATE ${GLESV2} ${EGL} ${DRM} ${GBM} atomic pthread m dl) +elseif ("${PLATFORM}" MATCHES "SDL") + find_package(SDL2 REQUIRED) + set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL") + set(LIBS_PRIVATE SDL2::SDL2) + endif () if (NOT ${OPENGL_VERSION} MATCHES "OFF") From 31c6a340abd1a3530591341ca4d05481004612e4 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Thu, 22 Feb 2024 22:06:22 +0000 Subject: [PATCH 189/790] Remove all uses of deps/mingw (#3805) The purpose of this directory in GLFW is to provide some headers that "mingw.org" doesn't. Raylib has long been unable to build with mingw.org due to using certain symbols that aren't exposed in their headers. (_ftelli64 and _access, among others.). Mingw-w64 already has the necessary headers included, and doesn't need any of these external implementations. For some reason, this also causes the following error when building with Visual Studio's clang: clang -c rglfw.c -Wall -D_GNU_SOURCE -DPLATFORM_DESKTOP -DGRAPHICS_API_OPENGL_33 -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing -std=c99 -O1 -Werror=implicit-function-declaration -I. -Iexternal/glfw/include -Iexternal/glfw/deps/mingw In file included from rglfw.c:61: In file included from ./external/glfw/src/init.c:30: In file included from ./external/glfw/src/internal.h:331: In file included from ./external/glfw/src/platform.h:31: In file included from ./external/glfw/src/win32_platform.h:70: external/glfw/deps/mingw\xinput.h:227:26: error: a parameter list without types is only allowed in a function definition 227 | void WINAPI XInputEnable(WINBOOL); | If the last -Iexternal/glfw/deps/mingw is removed, the build works fine. So, this workaround causes other problems, while not actually helping raylib. https://github.com/glfw/glfw/blob/0bb605cd797e4d63709495f4074ec59362064ab4/src/CMakeLists.txt#L272-L279 GLFW's CMakeLists.txt first checks if either dinput.h or xinput.h are provided by the toolchain, before telling the compiler to search for headers in that directory. For EVERY compiler that can build raylib, this is true. In summary: This directory causes issues when building with some compilers, and every toolchain that needs this workaround can't build raylib anyway. --- examples/build.zig | 1 - src/Makefile | 4 ++-- src/build.zig | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/build.zig b/examples/build.zig index deb381d53..e56ac0d54 100644 --- a/examples/build.zig +++ b/examples/build.zig @@ -55,7 +55,6 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: anytype, optim exe.linkSystemLibrary("winmm"); exe.linkSystemLibrary("gdi32"); exe.linkSystemLibrary("opengl32"); - exe.addIncludePath(.{ .path = "external/glfw/deps/mingw" }); exe.defineCMacro("PLATFORM_DESKTOP", null); }, diff --git a/src/Makefile b/src/Makefile index f38257b0d..2d426b163 100644 --- a/src/Makefile +++ b/src/Makefile @@ -438,7 +438,7 @@ INCLUDE_PATHS = -I. # Define additional directories containing required header files ifeq ($(PLATFORM),PLATFORM_DESKTOP) - INCLUDE_PATHS += -Iexternal/glfw/include -Iexternal/glfw/deps/mingw + INCLUDE_PATHS += -Iexternal/glfw/include ifeq ($(PLATFORM_OS),BSD) INCLUDE_PATHS += -I/usr/local/include endif @@ -447,7 +447,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_SDL) INCLUDE_PATHS += -I$(SDL_INCLUDE_PATH) endif ifeq ($(PLATFORM),PLATFORM_WEB) - INCLUDE_PATHS += -Iexternal/glfw/include -Iexternal/glfw/deps/mingw + INCLUDE_PATHS += -Iexternal/glfw/include endif ifeq ($(PLATFORM),PLATFORM_DRM) INCLUDE_PATHS += -I/usr/include/libdrm diff --git a/src/build.zig b/src/build.zig index 827788efc..32b31f1aa 100644 --- a/src/build.zig +++ b/src/build.zig @@ -97,7 +97,6 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); raylib.linkSystemLibrary("opengl32"); - raylib.addIncludePath(.{ .path = "external/glfw/deps/mingw" }); raylib.defineCMacro("PLATFORM_DESKTOP", null); }, From 23616153d4ed5d76f0965d016e56735edb5b23ed Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 22 Feb 2024 23:25:05 +0100 Subject: [PATCH 190/790] Update Makefile --- examples/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index c5bc8b74b..8362b8c8e 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -71,8 +71,8 @@ USE_EXTERNAL_GLFW ?= FALSE # PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally # WARNING: Library is not included in raylib, it MUST be configured by users -SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2-2.28.4/include -SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2-2.28.4/lib/x64 +SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include +SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib # Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system) # NOTE: This variable is only used for PLATFORM_OS: LINUX From bda919033dfdd2d0d75b606f3fa29d21f0408ffb Mon Sep 17 00:00:00 2001 From: Abhishek Rathore <59042344+Logicless-Coder@users.noreply.github.com> Date: Fri, 23 Feb 2024 23:47:33 +0530 Subject: [PATCH 191/790] Fixed typo in a comment (#3816) (#3817) Fixed a grammatical error by removing "are" to change `... but some are have multiple purposes ...` to `... but some have multiple purposes ...` in `textures/textures_image_generation` --- examples/textures/textures_image_generation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/textures/textures_image_generation.c b/examples/textures/textures_image_generation.c index abde401f7..97e43f007 100644 --- a/examples/textures/textures_image_generation.c +++ b/examples/textures/textures_image_generation.c @@ -13,7 +13,7 @@ #include "raylib.h" -#define NUM_TEXTURES 9 // Currently we have 8 generation algorithms but some are have multiple purposes (Linear and Square Gradients) +#define NUM_TEXTURES 9 // Currently we have 8 generation algorithms but some have multiple purposes (Linear and Square Gradients) //------------------------------------------------------------------------------------ // Program main entry point From 371d25c8c99f6db487c938f8b7f391d45e26d3a4 Mon Sep 17 00:00:00 2001 From: GideonSerf Date: Sat, 24 Feb 2024 17:47:27 +0200 Subject: [PATCH 192/790] Gamepad rumble support with SDL2 (#3819) * Added gamepad rumble to rcore_desktop.c and rcore_desktop_sdl.c Still need to add to the rest of the platforms. * Add SetGamepadVibration warnings to unimplemented platforms. * Added MAX_GAMEPAD_VIBRATION_TIME The rumble in SDL2 will continue for MAX_GAMEPAD_VIBRATION_TIME unless the user cancels it with a call to SetGamepadVibration(0.0f,0.0f,0.0f) * Cast float duration value to Uint 32 * Changed defines from int to float and fixed typo --------- Co-authored-by: Gideon Serfontein --- src/config.h | 1 + src/platforms/rcore_android.c | 6 ++++++ src/platforms/rcore_desktop.c | 6 ++++++ src/platforms/rcore_desktop_sdl.c | 15 +++++++++++++++ src/platforms/rcore_drm.c | 6 ++++++ src/platforms/rcore_web.c | 6 ++++++ src/raylib.h | 21 +++++++++++---------- src/rcore.c | 3 +++ 8 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/config.h b/src/config.h index 34d2e9648..10aca978a 100644 --- a/src/config.h +++ b/src/config.h @@ -81,6 +81,7 @@ #define MAX_GAMEPADS 4 // Maximum number of gamepads supported #define MAX_GAMEPAD_AXIS 8 // Maximum number of axis supported (per gamepad) #define MAX_GAMEPAD_BUTTONS 32 // Maximum number of buttons supported (per gamepad) +#define MAX_GAMEPAD_VIBRATION_TIME 2.0f // Maximum vibration time in seconds #define MAX_TOUCH_POINTS 8 // Maximum number of touch points supported #define MAX_KEY_PRESSED_QUEUE 16 // Maximum number of keys in the key input queue #define MAX_CHAR_PRESSED_QUEUE 16 // Maximum number of characters in the char input queue diff --git a/src/platforms/rcore_android.c b/src/platforms/rcore_android.c index cc124d952..23b8f4369 100644 --- a/src/platforms/rcore_android.c +++ b/src/platforms/rcore_android.c @@ -613,6 +613,12 @@ int SetGamepadMappings(const char *mappings) return 0; } +// Set gamepad vibration +void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor) +{ + TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform"); +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 4c98fcdf6..dbfc29e01 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1050,6 +1050,12 @@ int SetGamepadMappings(const char *mappings) return glfwUpdateGamepadMappings(mappings); } +// Set gamepad vibration +void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor) +{ + TRACELOG(LOG_WARNING, "GamepadSetVibration() not available on target platform"); +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 2e2d190cb..f567119ed 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -938,6 +938,21 @@ int SetGamepadMappings(const char *mappings) return SDL_GameControllerAddMapping(mappings); } +// Set gamepad vibration +void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor) +{ + //Limit input values to between 0.0f and 1.0f + leftMotor = (0.0f > leftMotor) ? 0.0f : leftMotor; + rightMotor = (0.0f > rightMotor) ? 0.0f : rightMotor; + leftMotor = (1.0f < leftMotor) ? 1.0f : leftMotor; + rightMotor = (1.0f < rightMotor) ? 1.0f : rightMotor; + + if (IsGamepadAvailable(gamepad)) + { + SDL_JoystickRumble(platform.gamepad[gamepad], (Uint16)(leftMotor*65535.0f), (Uint16)(rightMotor*65535.0f), (Uint32)(MAX_GAMEPAD_VIBRATION_TIME*1000.0f)); + } +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index 12e749a02..d303ab1da 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -519,6 +519,12 @@ int SetGamepadMappings(const char *mappings) return 0; } +// Set gamepad vibration +void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor) +{ + TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform"); +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index a13f69908..9328b8c9b 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -850,6 +850,12 @@ int SetGamepadMappings(const char *mappings) return 0; } +// Set gamepad vibration +void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor) +{ + TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform"); +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/raylib.h b/src/raylib.h index 7cf4e6536..d857f1c74 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1162,16 +1162,17 @@ RLAPI int GetCharPressed(void); // Get char presse RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) // Input-related functions: gamepads -RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available -RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id -RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once -RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed -RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once -RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed -RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed -RLAPI int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad -RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis -RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available +RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id +RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once +RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed +RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once +RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed +RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed +RLAPI int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad +RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis +RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor); // Set gamepad vibration for both motors // Input-related functions: mouse RLAPI bool IsMouseButtonPressed(int button); // Check if a mouse button has been pressed once diff --git a/src/rcore.c b/src/rcore.c index f4abe117a..024f0d121 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -224,6 +224,9 @@ __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigne #ifndef MAX_GAMEPAD_BUTTONS #define MAX_GAMEPAD_BUTTONS 32 // Maximum number of buttons supported (per gamepad) #endif +#ifndef MAX_GAMEPAD_VIBRATION_TIME + #define MAX_GAMEPAD_VIBRATION_TIME 2.0f // Maximum vibration time in seconds +#endif #ifndef MAX_TOUCH_POINTS #define MAX_TOUCH_POINTS 8 // Maximum number of touch points supported #endif From 2a774a88f5532908e09b15602d1482be96470f7f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 24 Feb 2024 15:47:42 +0000 Subject: [PATCH 193/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 19 + parser/output/raylib_api.lua | 10 + parser/output/raylib_api.txt | 783 +++++++++++++++++----------------- parser/output/raylib_api.xml | 7 +- 4 files changed, 430 insertions(+), 389 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index b0f82d3c4..f8e0982cc 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -4918,6 +4918,25 @@ } ] }, + { + "name": "SetGamepadVibration", + "description": "Set gamepad vibration for both motors", + "returnType": "void", + "params": [ + { + "type": "int", + "name": "gamepad" + }, + { + "type": "float", + "name": "leftMotor" + }, + { + "type": "float", + "name": "rightMotor" + } + ] + }, { "name": "IsMouseButtonPressed", "description": "Check if a mouse button has been pressed once", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index c547fea22..350065e7e 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -4342,6 +4342,16 @@ return { {type = "const char *", name = "mappings"} } }, + { + name = "SetGamepadVibration", + description = "Set gamepad vibration for both motors", + returnType = "void", + params = { + {type = "int", name = "gamepad"}, + {type = "float", name = "leftMotor"}, + {type = "float", name = "rightMotor"} + } + }, { name = "IsMouseButtonPressed", description = "Check if a mouse button has been pressed once", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 4e1c03af1..134b36ced 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -979,7 +979,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 559 +Functions found: 560 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -1904,151 +1904,158 @@ Function 172: SetGamepadMappings() (1 input parameters) Return type: int Description: Set internal gamepad mappings (SDL_GameControllerDB) Param[1]: mappings (type: const char *) -Function 173: IsMouseButtonPressed() (1 input parameters) +Function 173: SetGamepadVibration() (3 input parameters) + Name: SetGamepadVibration + Return type: void + Description: Set gamepad vibration for both motors + Param[1]: gamepad (type: int) + Param[2]: leftMotor (type: float) + Param[3]: rightMotor (type: float) +Function 174: IsMouseButtonPressed() (1 input parameters) Name: IsMouseButtonPressed Return type: bool Description: Check if a mouse button has been pressed once Param[1]: button (type: int) -Function 174: IsMouseButtonDown() (1 input parameters) +Function 175: IsMouseButtonDown() (1 input parameters) Name: IsMouseButtonDown Return type: bool Description: Check if a mouse button is being pressed Param[1]: button (type: int) -Function 175: IsMouseButtonReleased() (1 input parameters) +Function 176: IsMouseButtonReleased() (1 input parameters) Name: IsMouseButtonReleased Return type: bool Description: Check if a mouse button has been released once Param[1]: button (type: int) -Function 176: IsMouseButtonUp() (1 input parameters) +Function 177: IsMouseButtonUp() (1 input parameters) Name: IsMouseButtonUp Return type: bool Description: Check if a mouse button is NOT being pressed Param[1]: button (type: int) -Function 177: GetMouseX() (0 input parameters) +Function 178: GetMouseX() (0 input parameters) Name: GetMouseX Return type: int Description: Get mouse position X No input parameters -Function 178: GetMouseY() (0 input parameters) +Function 179: GetMouseY() (0 input parameters) Name: GetMouseY Return type: int Description: Get mouse position Y No input parameters -Function 179: GetMousePosition() (0 input parameters) +Function 180: GetMousePosition() (0 input parameters) Name: GetMousePosition Return type: Vector2 Description: Get mouse position XY No input parameters -Function 180: GetMouseDelta() (0 input parameters) +Function 181: GetMouseDelta() (0 input parameters) Name: GetMouseDelta Return type: Vector2 Description: Get mouse delta between frames No input parameters -Function 181: SetMousePosition() (2 input parameters) +Function 182: SetMousePosition() (2 input parameters) Name: SetMousePosition Return type: void Description: Set mouse position XY Param[1]: x (type: int) Param[2]: y (type: int) -Function 182: SetMouseOffset() (2 input parameters) +Function 183: SetMouseOffset() (2 input parameters) Name: SetMouseOffset Return type: void Description: Set mouse offset Param[1]: offsetX (type: int) Param[2]: offsetY (type: int) -Function 183: SetMouseScale() (2 input parameters) +Function 184: SetMouseScale() (2 input parameters) Name: SetMouseScale Return type: void Description: Set mouse scaling Param[1]: scaleX (type: float) Param[2]: scaleY (type: float) -Function 184: GetMouseWheelMove() (0 input parameters) +Function 185: GetMouseWheelMove() (0 input parameters) Name: GetMouseWheelMove Return type: float Description: Get mouse wheel movement for X or Y, whichever is larger No input parameters -Function 185: GetMouseWheelMoveV() (0 input parameters) +Function 186: GetMouseWheelMoveV() (0 input parameters) Name: GetMouseWheelMoveV Return type: Vector2 Description: Get mouse wheel movement for both X and Y No input parameters -Function 186: SetMouseCursor() (1 input parameters) +Function 187: SetMouseCursor() (1 input parameters) Name: SetMouseCursor Return type: void Description: Set mouse cursor Param[1]: cursor (type: int) -Function 187: GetTouchX() (0 input parameters) +Function 188: GetTouchX() (0 input parameters) Name: GetTouchX Return type: int Description: Get touch position X for touch point 0 (relative to screen size) No input parameters -Function 188: GetTouchY() (0 input parameters) +Function 189: GetTouchY() (0 input parameters) Name: GetTouchY Return type: int Description: Get touch position Y for touch point 0 (relative to screen size) No input parameters -Function 189: GetTouchPosition() (1 input parameters) +Function 190: GetTouchPosition() (1 input parameters) Name: GetTouchPosition Return type: Vector2 Description: Get touch position XY for a touch point index (relative to screen size) Param[1]: index (type: int) -Function 190: GetTouchPointId() (1 input parameters) +Function 191: GetTouchPointId() (1 input parameters) Name: GetTouchPointId Return type: int Description: Get touch point identifier for given index Param[1]: index (type: int) -Function 191: GetTouchPointCount() (0 input parameters) +Function 192: GetTouchPointCount() (0 input parameters) Name: GetTouchPointCount Return type: int Description: Get number of touch points No input parameters -Function 192: SetGesturesEnabled() (1 input parameters) +Function 193: SetGesturesEnabled() (1 input parameters) Name: SetGesturesEnabled Return type: void Description: Enable a set of gestures using flags Param[1]: flags (type: unsigned int) -Function 193: IsGestureDetected() (1 input parameters) +Function 194: IsGestureDetected() (1 input parameters) Name: IsGestureDetected Return type: bool Description: Check if a gesture have been detected Param[1]: gesture (type: unsigned int) -Function 194: GetGestureDetected() (0 input parameters) +Function 195: GetGestureDetected() (0 input parameters) Name: GetGestureDetected Return type: int Description: Get latest detected gesture No input parameters -Function 195: GetGestureHoldDuration() (0 input parameters) +Function 196: GetGestureHoldDuration() (0 input parameters) Name: GetGestureHoldDuration Return type: float Description: Get gesture hold time in milliseconds No input parameters -Function 196: GetGestureDragVector() (0 input parameters) +Function 197: GetGestureDragVector() (0 input parameters) Name: GetGestureDragVector Return type: Vector2 Description: Get gesture drag vector No input parameters -Function 197: GetGestureDragAngle() (0 input parameters) +Function 198: GetGestureDragAngle() (0 input parameters) Name: GetGestureDragAngle Return type: float Description: Get gesture drag angle No input parameters -Function 198: GetGesturePinchVector() (0 input parameters) +Function 199: GetGesturePinchVector() (0 input parameters) Name: GetGesturePinchVector Return type: Vector2 Description: Get gesture pinch delta No input parameters -Function 199: GetGesturePinchAngle() (0 input parameters) +Function 200: GetGesturePinchAngle() (0 input parameters) Name: GetGesturePinchAngle Return type: float Description: Get gesture pinch angle No input parameters -Function 200: UpdateCamera() (2 input parameters) +Function 201: UpdateCamera() (2 input parameters) Name: UpdateCamera Return type: void Description: Update camera position for selected mode Param[1]: camera (type: Camera *) Param[2]: mode (type: int) -Function 201: UpdateCameraPro() (4 input parameters) +Function 202: UpdateCameraPro() (4 input parameters) Name: UpdateCameraPro Return type: void Description: Update camera movement/rotation @@ -2056,36 +2063,36 @@ Function 201: UpdateCameraPro() (4 input parameters) Param[2]: movement (type: Vector3) Param[3]: rotation (type: Vector3) Param[4]: zoom (type: float) -Function 202: SetShapesTexture() (2 input parameters) +Function 203: SetShapesTexture() (2 input parameters) Name: SetShapesTexture Return type: void Description: Set texture and rectangle to be used on shapes drawing Param[1]: texture (type: Texture2D) Param[2]: source (type: Rectangle) -Function 203: GetShapesTexture() (0 input parameters) +Function 204: GetShapesTexture() (0 input parameters) Name: GetShapesTexture Return type: Texture2D Description: Get texture that is used for shapes drawing No input parameters -Function 204: GetShapesTextureRectangle() (0 input parameters) +Function 205: GetShapesTextureRectangle() (0 input parameters) Name: GetShapesTextureRectangle Return type: Rectangle Description: Get texture source rectangle that is used for shapes drawing No input parameters -Function 205: DrawPixel() (3 input parameters) +Function 206: DrawPixel() (3 input parameters) Name: DrawPixel Return type: void Description: Draw a pixel Param[1]: posX (type: int) Param[2]: posY (type: int) Param[3]: color (type: Color) -Function 206: DrawPixelV() (2 input parameters) +Function 207: DrawPixelV() (2 input parameters) Name: DrawPixelV Return type: void Description: Draw a pixel (Vector version) Param[1]: position (type: Vector2) Param[2]: color (type: Color) -Function 207: DrawLine() (5 input parameters) +Function 208: DrawLine() (5 input parameters) Name: DrawLine Return type: void Description: Draw a line @@ -2094,14 +2101,14 @@ Function 207: DrawLine() (5 input parameters) Param[3]: endPosX (type: int) Param[4]: endPosY (type: int) Param[5]: color (type: Color) -Function 208: DrawLineV() (3 input parameters) +Function 209: DrawLineV() (3 input parameters) Name: DrawLineV Return type: void Description: Draw a line (using gl lines) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: color (type: Color) -Function 209: DrawLineEx() (4 input parameters) +Function 210: DrawLineEx() (4 input parameters) Name: DrawLineEx Return type: void Description: Draw a line (using triangles/quads) @@ -2109,14 +2116,14 @@ Function 209: DrawLineEx() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 210: DrawLineStrip() (3 input parameters) +Function 211: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void Description: Draw lines sequence (using gl lines) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 211: DrawLineBezier() (4 input parameters) +Function 212: DrawLineBezier() (4 input parameters) Name: DrawLineBezier Return type: void Description: Draw line segment cubic-bezier in-out interpolation @@ -2124,7 +2131,7 @@ Function 211: DrawLineBezier() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 212: DrawCircle() (4 input parameters) +Function 213: DrawCircle() (4 input parameters) Name: DrawCircle Return type: void Description: Draw a color-filled circle @@ -2132,7 +2139,7 @@ Function 212: DrawCircle() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 213: DrawCircleSector() (6 input parameters) +Function 214: DrawCircleSector() (6 input parameters) Name: DrawCircleSector Return type: void Description: Draw a piece of a circle @@ -2142,7 +2149,7 @@ Function 213: DrawCircleSector() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 214: DrawCircleSectorLines() (6 input parameters) +Function 215: DrawCircleSectorLines() (6 input parameters) Name: DrawCircleSectorLines Return type: void Description: Draw circle sector outline @@ -2152,7 +2159,7 @@ Function 214: DrawCircleSectorLines() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 215: DrawCircleGradient() (5 input parameters) +Function 216: DrawCircleGradient() (5 input parameters) Name: DrawCircleGradient Return type: void Description: Draw a gradient-filled circle @@ -2161,14 +2168,14 @@ Function 215: DrawCircleGradient() (5 input parameters) Param[3]: radius (type: float) Param[4]: color1 (type: Color) Param[5]: color2 (type: Color) -Function 216: DrawCircleV() (3 input parameters) +Function 217: DrawCircleV() (3 input parameters) Name: DrawCircleV Return type: void Description: Draw a color-filled circle (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 217: DrawCircleLines() (4 input parameters) +Function 218: DrawCircleLines() (4 input parameters) Name: DrawCircleLines Return type: void Description: Draw circle outline @@ -2176,14 +2183,14 @@ Function 217: DrawCircleLines() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 218: DrawCircleLinesV() (3 input parameters) +Function 219: DrawCircleLinesV() (3 input parameters) Name: DrawCircleLinesV Return type: void Description: Draw circle outline (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 219: DrawEllipse() (5 input parameters) +Function 220: DrawEllipse() (5 input parameters) Name: DrawEllipse Return type: void Description: Draw ellipse @@ -2192,7 +2199,7 @@ Function 219: DrawEllipse() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 220: DrawEllipseLines() (5 input parameters) +Function 221: DrawEllipseLines() (5 input parameters) Name: DrawEllipseLines Return type: void Description: Draw ellipse outline @@ -2201,7 +2208,7 @@ Function 220: DrawEllipseLines() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 221: DrawRing() (7 input parameters) +Function 222: DrawRing() (7 input parameters) Name: DrawRing Return type: void Description: Draw ring @@ -2212,7 +2219,7 @@ Function 221: DrawRing() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 222: DrawRingLines() (7 input parameters) +Function 223: DrawRingLines() (7 input parameters) Name: DrawRingLines Return type: void Description: Draw ring outline @@ -2223,7 +2230,7 @@ Function 222: DrawRingLines() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 223: DrawRectangle() (5 input parameters) +Function 224: DrawRectangle() (5 input parameters) Name: DrawRectangle Return type: void Description: Draw a color-filled rectangle @@ -2232,20 +2239,20 @@ Function 223: DrawRectangle() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 224: DrawRectangleV() (3 input parameters) +Function 225: DrawRectangleV() (3 input parameters) Name: DrawRectangleV Return type: void Description: Draw a color-filled rectangle (Vector version) Param[1]: position (type: Vector2) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 225: DrawRectangleRec() (2 input parameters) +Function 226: DrawRectangleRec() (2 input parameters) Name: DrawRectangleRec Return type: void Description: Draw a color-filled rectangle Param[1]: rec (type: Rectangle) Param[2]: color (type: Color) -Function 226: DrawRectanglePro() (4 input parameters) +Function 227: DrawRectanglePro() (4 input parameters) Name: DrawRectanglePro Return type: void Description: Draw a color-filled rectangle with pro parameters @@ -2253,7 +2260,7 @@ Function 226: DrawRectanglePro() (4 input parameters) Param[2]: origin (type: Vector2) Param[3]: rotation (type: float) Param[4]: color (type: Color) -Function 227: DrawRectangleGradientV() (6 input parameters) +Function 228: DrawRectangleGradientV() (6 input parameters) Name: DrawRectangleGradientV Return type: void Description: Draw a vertical-gradient-filled rectangle @@ -2263,7 +2270,7 @@ Function 227: DrawRectangleGradientV() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 228: DrawRectangleGradientH() (6 input parameters) +Function 229: DrawRectangleGradientH() (6 input parameters) Name: DrawRectangleGradientH Return type: void Description: Draw a horizontal-gradient-filled rectangle @@ -2273,7 +2280,7 @@ Function 228: DrawRectangleGradientH() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 229: DrawRectangleGradientEx() (5 input parameters) +Function 230: DrawRectangleGradientEx() (5 input parameters) Name: DrawRectangleGradientEx Return type: void Description: Draw a gradient-filled rectangle with custom vertex colors @@ -2282,7 +2289,7 @@ Function 229: DrawRectangleGradientEx() (5 input parameters) Param[3]: col2 (type: Color) Param[4]: col3 (type: Color) Param[5]: col4 (type: Color) -Function 230: DrawRectangleLines() (5 input parameters) +Function 231: DrawRectangleLines() (5 input parameters) Name: DrawRectangleLines Return type: void Description: Draw rectangle outline @@ -2291,14 +2298,14 @@ Function 230: DrawRectangleLines() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 231: DrawRectangleLinesEx() (3 input parameters) +Function 232: DrawRectangleLinesEx() (3 input parameters) Name: DrawRectangleLinesEx Return type: void Description: Draw rectangle outline with extended parameters Param[1]: rec (type: Rectangle) Param[2]: lineThick (type: float) Param[3]: color (type: Color) -Function 232: DrawRectangleRounded() (4 input parameters) +Function 233: DrawRectangleRounded() (4 input parameters) Name: DrawRectangleRounded Return type: void Description: Draw rectangle with rounded edges @@ -2306,7 +2313,7 @@ Function 232: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 233: DrawRectangleRoundedLines() (5 input parameters) +Function 234: DrawRectangleRoundedLines() (5 input parameters) Name: DrawRectangleRoundedLines Return type: void Description: Draw rectangle with rounded edges outline @@ -2315,7 +2322,7 @@ Function 233: DrawRectangleRoundedLines() (5 input parameters) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 234: DrawTriangle() (4 input parameters) +Function 235: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2323,7 +2330,7 @@ Function 234: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 235: DrawTriangleLines() (4 input parameters) +Function 236: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2331,21 +2338,21 @@ Function 235: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 236: DrawTriangleFan() (3 input parameters) +Function 237: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 237: DrawTriangleStrip() (3 input parameters) +Function 238: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 238: DrawPoly() (5 input parameters) +Function 239: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2354,7 +2361,7 @@ Function 238: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 239: DrawPolyLines() (5 input parameters) +Function 240: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2363,7 +2370,7 @@ Function 239: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 240: DrawPolyLinesEx() (6 input parameters) +Function 241: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2373,7 +2380,7 @@ Function 240: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 241: DrawSplineLinear() (4 input parameters) +Function 242: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points @@ -2381,7 +2388,7 @@ Function 241: DrawSplineLinear() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 242: DrawSplineBasis() (4 input parameters) +Function 243: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points @@ -2389,7 +2396,7 @@ Function 242: DrawSplineBasis() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 243: DrawSplineCatmullRom() (4 input parameters) +Function 244: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points @@ -2397,7 +2404,7 @@ Function 243: DrawSplineCatmullRom() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 244: DrawSplineBezierQuadratic() (4 input parameters) +Function 245: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] @@ -2405,7 +2412,7 @@ Function 244: DrawSplineBezierQuadratic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 245: DrawSplineBezierCubic() (4 input parameters) +Function 246: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] @@ -2413,7 +2420,7 @@ Function 245: DrawSplineBezierCubic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 246: DrawSplineSegmentLinear() (4 input parameters) +Function 247: DrawSplineSegmentLinear() (4 input parameters) Name: DrawSplineSegmentLinear Return type: void Description: Draw spline segment: Linear, 2 points @@ -2421,7 +2428,7 @@ Function 246: DrawSplineSegmentLinear() (4 input parameters) Param[2]: p2 (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 247: DrawSplineSegmentBasis() (6 input parameters) +Function 248: DrawSplineSegmentBasis() (6 input parameters) Name: DrawSplineSegmentBasis Return type: void Description: Draw spline segment: B-Spline, 4 points @@ -2431,7 +2438,7 @@ Function 247: DrawSplineSegmentBasis() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 248: DrawSplineSegmentCatmullRom() (6 input parameters) +Function 249: DrawSplineSegmentCatmullRom() (6 input parameters) Name: DrawSplineSegmentCatmullRom Return type: void Description: Draw spline segment: Catmull-Rom, 4 points @@ -2441,7 +2448,7 @@ Function 248: DrawSplineSegmentCatmullRom() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 249: DrawSplineSegmentBezierQuadratic() (5 input parameters) +Function 250: DrawSplineSegmentBezierQuadratic() (5 input parameters) Name: DrawSplineSegmentBezierQuadratic Return type: void Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point @@ -2450,7 +2457,7 @@ Function 249: DrawSplineSegmentBezierQuadratic() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: thick (type: float) Param[5]: color (type: Color) -Function 250: DrawSplineSegmentBezierCubic() (6 input parameters) +Function 251: DrawSplineSegmentBezierCubic() (6 input parameters) Name: DrawSplineSegmentBezierCubic Return type: void Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points @@ -2460,14 +2467,14 @@ Function 250: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 251: GetSplinePointLinear() (3 input parameters) +Function 252: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 252: GetSplinePointBasis() (5 input parameters) +Function 253: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2476,7 +2483,7 @@ Function 252: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 253: GetSplinePointCatmullRom() (5 input parameters) +Function 254: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2485,7 +2492,7 @@ Function 253: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 254: GetSplinePointBezierQuad() (4 input parameters) +Function 255: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2493,7 +2500,7 @@ Function 254: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 255: GetSplinePointBezierCubic() (5 input parameters) +Function 256: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2502,13 +2509,13 @@ Function 255: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 256: CheckCollisionRecs() (2 input parameters) +Function 257: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 257: CheckCollisionCircles() (4 input parameters) +Function 258: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2516,27 +2523,27 @@ Function 257: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 258: CheckCollisionCircleRec() (3 input parameters) +Function 259: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 259: CheckCollisionPointRec() (2 input parameters) +Function 260: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 260: CheckCollisionPointCircle() (3 input parameters) +Function 261: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 261: CheckCollisionPointTriangle() (4 input parameters) +Function 262: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2544,14 +2551,14 @@ Function 261: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 262: CheckCollisionPointPoly() (3 input parameters) +Function 263: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 263: CheckCollisionLines() (5 input parameters) +Function 264: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2560,7 +2567,7 @@ Function 263: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 264: CheckCollisionPointLine() (4 input parameters) +Function 265: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2568,18 +2575,18 @@ Function 264: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 265: GetCollisionRec() (2 input parameters) +Function 266: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 266: LoadImage() (1 input parameters) +Function 267: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 267: LoadImageRaw() (5 input parameters) +Function 268: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2588,20 +2595,20 @@ Function 267: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 268: LoadImageSvg() (3 input parameters) +Function 269: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 269: LoadImageAnim() (2 input parameters) +Function 270: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 270: LoadImageAnimFromMemory() (4 input parameters) +Function 271: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2609,60 +2616,60 @@ Function 270: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 271: LoadImageFromMemory() (3 input parameters) +Function 272: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 272: LoadImageFromTexture() (1 input parameters) +Function 273: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 273: LoadImageFromScreen() (0 input parameters) +Function 274: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 274: IsImageReady() (1 input parameters) +Function 275: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 275: UnloadImage() (1 input parameters) +Function 276: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 276: ExportImage() (2 input parameters) +Function 277: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 277: ExportImageToMemory() (3 input parameters) +Function 278: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 278: ExportImageAsCode() (2 input parameters) +Function 279: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 279: GenImageColor() (3 input parameters) +Function 280: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 280: GenImageGradientLinear() (5 input parameters) +Function 281: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2671,7 +2678,7 @@ Function 280: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 281: GenImageGradientRadial() (5 input parameters) +Function 282: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2680,7 +2687,7 @@ Function 281: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 282: GenImageGradientSquare() (5 input parameters) +Function 283: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2689,7 +2696,7 @@ Function 282: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 283: GenImageChecked() (6 input parameters) +Function 284: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2699,14 +2706,14 @@ Function 283: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 284: GenImageWhiteNoise() (3 input parameters) +Function 285: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 285: GenImagePerlinNoise() (5 input parameters) +Function 286: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2715,39 +2722,39 @@ Function 285: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 286: GenImageCellular() (3 input parameters) +Function 287: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 287: GenImageText() (3 input parameters) +Function 288: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 288: ImageCopy() (1 input parameters) +Function 289: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 289: ImageFromImage() (2 input parameters) +Function 290: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 290: ImageText() (3 input parameters) +Function 291: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 291: ImageTextEx() (5 input parameters) +Function 292: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2756,76 +2763,76 @@ Function 291: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 292: ImageFormat() (2 input parameters) +Function 293: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 293: ImageToPOT() (2 input parameters) +Function 294: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 294: ImageCrop() (2 input parameters) +Function 295: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 295: ImageAlphaCrop() (2 input parameters) +Function 296: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 296: ImageAlphaClear() (3 input parameters) +Function 297: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 297: ImageAlphaMask() (2 input parameters) +Function 298: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 298: ImageAlphaPremultiply() (1 input parameters) +Function 299: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 299: ImageBlurGaussian() (2 input parameters) +Function 300: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 300: ImageKernelConvolution() (3 input parameters) +Function 301: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 301: ImageResize() (3 input parameters) +Function 302: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 302: ImageResizeNN() (3 input parameters) +Function 303: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 303: ImageResizeCanvas() (6 input parameters) +Function 304: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2835,12 +2842,12 @@ Function 303: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 304: ImageMipmaps() (1 input parameters) +Function 305: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 305: ImageDither() (5 input parameters) +Function 306: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2849,109 +2856,109 @@ Function 305: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 306: ImageFlipVertical() (1 input parameters) +Function 307: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 307: ImageFlipHorizontal() (1 input parameters) +Function 308: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 308: ImageRotate() (2 input parameters) +Function 309: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 309: ImageRotateCW() (1 input parameters) +Function 310: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 310: ImageRotateCCW() (1 input parameters) +Function 311: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 311: ImageColorTint() (2 input parameters) +Function 312: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 312: ImageColorInvert() (1 input parameters) +Function 313: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 313: ImageColorGrayscale() (1 input parameters) +Function 314: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 314: ImageColorContrast() (2 input parameters) +Function 315: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 315: ImageColorBrightness() (2 input parameters) +Function 316: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 316: ImageColorReplace() (3 input parameters) +Function 317: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 317: LoadImageColors() (1 input parameters) +Function 318: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 318: LoadImagePalette() (3 input parameters) +Function 319: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 319: UnloadImageColors() (1 input parameters) +Function 320: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 320: UnloadImagePalette() (1 input parameters) +Function 321: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 321: GetImageAlphaBorder() (2 input parameters) +Function 322: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 322: GetImageColor() (3 input parameters) +Function 323: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 323: ImageClearBackground() (2 input parameters) +Function 324: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 324: ImageDrawPixel() (4 input parameters) +Function 325: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2959,14 +2966,14 @@ Function 324: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 325: ImageDrawPixelV() (3 input parameters) +Function 326: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 326: ImageDrawLine() (6 input parameters) +Function 327: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2976,7 +2983,7 @@ Function 326: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 327: ImageDrawLineV() (4 input parameters) +Function 328: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -2984,7 +2991,7 @@ Function 327: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 328: ImageDrawCircle() (5 input parameters) +Function 329: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -2993,7 +3000,7 @@ Function 328: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 329: ImageDrawCircleV() (4 input parameters) +Function 330: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3001,7 +3008,7 @@ Function 329: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 330: ImageDrawCircleLines() (5 input parameters) +Function 331: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3010,7 +3017,7 @@ Function 330: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 331: ImageDrawCircleLinesV() (4 input parameters) +Function 332: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3018,7 +3025,7 @@ Function 331: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 332: ImageDrawRectangle() (6 input parameters) +Function 333: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3028,7 +3035,7 @@ Function 332: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 333: ImageDrawRectangleV() (4 input parameters) +Function 334: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3036,14 +3043,14 @@ Function 333: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 334: ImageDrawRectangleRec() (3 input parameters) +Function 335: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 335: ImageDrawRectangleLines() (4 input parameters) +Function 336: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3051,7 +3058,7 @@ Function 335: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 336: ImageDraw() (5 input parameters) +Function 337: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3060,7 +3067,7 @@ Function 336: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 337: ImageDrawText() (6 input parameters) +Function 338: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3070,7 +3077,7 @@ Function 337: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 338: ImageDrawTextEx() (7 input parameters) +Function 339: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3081,79 +3088,79 @@ Function 338: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 339: LoadTexture() (1 input parameters) +Function 340: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 340: LoadTextureFromImage() (1 input parameters) +Function 341: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 341: LoadTextureCubemap() (2 input parameters) +Function 342: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 342: LoadRenderTexture() (2 input parameters) +Function 343: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 343: IsTextureReady() (1 input parameters) +Function 344: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 344: UnloadTexture() (1 input parameters) +Function 345: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 345: IsRenderTextureReady() (1 input parameters) +Function 346: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 346: UnloadRenderTexture() (1 input parameters) +Function 347: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 347: UpdateTexture() (2 input parameters) +Function 348: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 348: UpdateTextureRec() (3 input parameters) +Function 349: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 349: GenTextureMipmaps() (1 input parameters) +Function 350: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 350: SetTextureFilter() (2 input parameters) +Function 351: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 351: SetTextureWrap() (2 input parameters) +Function 352: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 352: DrawTexture() (4 input parameters) +Function 353: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3161,14 +3168,14 @@ Function 352: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 353: DrawTextureV() (3 input parameters) +Function 354: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 354: DrawTextureEx() (5 input parameters) +Function 355: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3177,7 +3184,7 @@ Function 354: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 355: DrawTextureRec() (4 input parameters) +Function 356: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3185,7 +3192,7 @@ Function 355: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 356: DrawTexturePro() (6 input parameters) +Function 357: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3195,7 +3202,7 @@ Function 356: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 357: DrawTextureNPatch() (6 input parameters) +Function 358: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3205,106 +3212,106 @@ Function 357: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 358: Fade() (2 input parameters) +Function 359: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 359: ColorToInt() (1 input parameters) +Function 360: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color Param[1]: color (type: Color) -Function 360: ColorNormalize() (1 input parameters) +Function 361: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 361: ColorFromNormalized() (1 input parameters) +Function 362: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 362: ColorToHSV() (1 input parameters) +Function 363: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 363: ColorFromHSV() (3 input parameters) +Function 364: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 364: ColorTint() (2 input parameters) +Function 365: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 365: ColorBrightness() (2 input parameters) +Function 366: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 366: ColorContrast() (2 input parameters) +Function 367: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 367: ColorAlpha() (2 input parameters) +Function 368: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 368: ColorAlphaBlend() (3 input parameters) +Function 369: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 369: GetColor() (1 input parameters) +Function 370: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 370: GetPixelColor() (2 input parameters) +Function 371: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 371: SetPixelColor() (3 input parameters) +Function 372: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 372: GetPixelDataSize() (3 input parameters) +Function 373: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 373: GetFontDefault() (0 input parameters) +Function 374: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 374: LoadFont() (1 input parameters) +Function 375: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 375: LoadFontEx() (4 input parameters) +Function 376: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3312,14 +3319,14 @@ Function 375: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 376: LoadFontFromImage() (3 input parameters) +Function 377: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 377: LoadFontFromMemory() (6 input parameters) +Function 378: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3329,12 +3336,12 @@ Function 377: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 378: IsFontReady() (1 input parameters) +Function 379: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 379: LoadFontData() (6 input parameters) +Function 380: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3344,7 +3351,7 @@ Function 379: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 380: GenImageFontAtlas() (6 input parameters) +Function 381: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3354,30 +3361,30 @@ Function 380: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 381: UnloadFontData() (2 input parameters) +Function 382: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 382: UnloadFont() (1 input parameters) +Function 383: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 383: ExportFontAsCode() (2 input parameters) +Function 384: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 384: DrawFPS() (2 input parameters) +Function 385: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 385: DrawText() (5 input parameters) +Function 386: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3386,7 +3393,7 @@ Function 385: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 386: DrawTextEx() (6 input parameters) +Function 387: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3396,7 +3403,7 @@ Function 386: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 387: DrawTextPro() (8 input parameters) +Function 388: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3408,7 +3415,7 @@ Function 387: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 388: DrawTextCodepoint() (5 input parameters) +Function 389: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3417,7 +3424,7 @@ Function 388: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 389: DrawTextCodepoints() (7 input parameters) +Function 390: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3428,18 +3435,18 @@ Function 389: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 390: SetTextLineSpacing() (1 input parameters) +Function 391: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 391: MeasureText() (2 input parameters) +Function 392: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 392: MeasureTextEx() (4 input parameters) +Function 393: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3447,185 +3454,185 @@ Function 392: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 393: GetGlyphIndex() (2 input parameters) +Function 394: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 394: GetGlyphInfo() (2 input parameters) +Function 395: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 395: GetGlyphAtlasRec() (2 input parameters) +Function 396: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 396: LoadUTF8() (2 input parameters) +Function 397: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 397: UnloadUTF8() (1 input parameters) +Function 398: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 398: LoadCodepoints() (2 input parameters) +Function 399: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 399: UnloadCodepoints() (1 input parameters) +Function 400: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 400: GetCodepointCount() (1 input parameters) +Function 401: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 401: GetCodepoint() (2 input parameters) +Function 402: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 402: GetCodepointNext() (2 input parameters) +Function 403: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 403: GetCodepointPrevious() (2 input parameters) +Function 404: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 404: CodepointToUTF8() (2 input parameters) +Function 405: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 405: TextCopy() (2 input parameters) +Function 406: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 406: TextIsEqual() (2 input parameters) +Function 407: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 407: TextLength() (1 input parameters) +Function 408: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 408: TextFormat() (2 input parameters) +Function 409: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 409: TextSubtext() (3 input parameters) +Function 410: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 410: TextReplace() (3 input parameters) +Function 411: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 411: TextInsert() (3 input parameters) +Function 412: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 412: TextJoin() (3 input parameters) +Function 413: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 413: TextSplit() (3 input parameters) +Function 414: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 414: TextAppend() (3 input parameters) +Function 415: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 415: TextFindIndex() (2 input parameters) +Function 416: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 416: TextToUpper() (1 input parameters) +Function 417: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 417: TextToLower() (1 input parameters) +Function 418: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 418: TextToPascal() (1 input parameters) +Function 419: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 419: TextToInteger() (1 input parameters) +Function 420: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 420: TextToFloat() (1 input parameters) +Function 421: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 421: DrawLine3D() (3 input parameters) +Function 422: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 422: DrawPoint3D() (2 input parameters) +Function 423: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 423: DrawCircle3D() (5 input parameters) +Function 424: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3634,7 +3641,7 @@ Function 423: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 424: DrawTriangle3D() (4 input parameters) +Function 425: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3642,14 +3649,14 @@ Function 424: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 425: DrawTriangleStrip3D() (3 input parameters) +Function 426: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 426: DrawCube() (5 input parameters) +Function 427: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3658,14 +3665,14 @@ Function 426: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 427: DrawCubeV() (3 input parameters) +Function 428: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 428: DrawCubeWires() (5 input parameters) +Function 429: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3674,21 +3681,21 @@ Function 428: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 429: DrawCubeWiresV() (3 input parameters) +Function 430: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 430: DrawSphere() (3 input parameters) +Function 431: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 431: DrawSphereEx() (5 input parameters) +Function 432: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3697,7 +3704,7 @@ Function 431: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 432: DrawSphereWires() (5 input parameters) +Function 433: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3706,7 +3713,7 @@ Function 432: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 433: DrawCylinder() (6 input parameters) +Function 434: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3716,7 +3723,7 @@ Function 433: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 434: DrawCylinderEx() (6 input parameters) +Function 435: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3726,7 +3733,7 @@ Function 434: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 435: DrawCylinderWires() (6 input parameters) +Function 436: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3736,7 +3743,7 @@ Function 435: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 436: DrawCylinderWiresEx() (6 input parameters) +Function 437: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3746,7 +3753,7 @@ Function 436: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 437: DrawCapsule() (6 input parameters) +Function 438: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3756,7 +3763,7 @@ Function 437: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 438: DrawCapsuleWires() (6 input parameters) +Function 439: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3766,51 +3773,51 @@ Function 438: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 439: DrawPlane() (3 input parameters) +Function 440: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 440: DrawRay() (2 input parameters) +Function 441: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 441: DrawGrid() (2 input parameters) +Function 442: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 442: LoadModel() (1 input parameters) +Function 443: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 443: LoadModelFromMesh() (1 input parameters) +Function 444: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 444: IsModelReady() (1 input parameters) +Function 445: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 445: UnloadModel() (1 input parameters) +Function 446: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 446: GetModelBoundingBox() (1 input parameters) +Function 447: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 447: DrawModel() (4 input parameters) +Function 448: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3818,7 +3825,7 @@ Function 447: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 448: DrawModelEx() (6 input parameters) +Function 449: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3828,7 +3835,7 @@ Function 448: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 449: DrawModelWires() (4 input parameters) +Function 450: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3836,7 +3843,7 @@ Function 449: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 450: DrawModelWiresEx() (6 input parameters) +Function 451: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3846,13 +3853,13 @@ Function 450: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 451: DrawBoundingBox() (2 input parameters) +Function 452: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 452: DrawBillboard() (5 input parameters) +Function 453: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3861,7 +3868,7 @@ Function 452: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 453: DrawBillboardRec() (6 input parameters) +Function 454: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3871,7 +3878,7 @@ Function 453: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 454: DrawBillboardPro() (9 input parameters) +Function 455: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3884,13 +3891,13 @@ Function 454: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 455: UploadMesh() (2 input parameters) +Function 456: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 456: UpdateMeshBuffer() (5 input parameters) +Function 457: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3899,19 +3906,19 @@ Function 456: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 457: UnloadMesh() (1 input parameters) +Function 458: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 458: DrawMesh() (3 input parameters) +Function 459: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 459: DrawMeshInstanced() (4 input parameters) +Function 460: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3919,35 +3926,35 @@ Function 459: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 460: GetMeshBoundingBox() (1 input parameters) +Function 461: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 461: GenMeshTangents() (1 input parameters) +Function 462: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 462: ExportMesh() (2 input parameters) +Function 463: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 463: ExportMeshAsCode() (2 input parameters) +Function 464: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 464: GenMeshPoly() (2 input parameters) +Function 465: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 465: GenMeshPlane() (4 input parameters) +Function 466: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3955,42 +3962,42 @@ Function 465: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 466: GenMeshCube() (3 input parameters) +Function 467: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 467: GenMeshSphere() (3 input parameters) +Function 468: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 468: GenMeshHemiSphere() (3 input parameters) +Function 469: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 469: GenMeshCylinder() (3 input parameters) +Function 470: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 470: GenMeshCone() (3 input parameters) +Function 471: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 471: GenMeshTorus() (4 input parameters) +Function 472: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -3998,7 +4005,7 @@ Function 471: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 472: GenMeshKnot() (4 input parameters) +Function 473: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4006,84 +4013,84 @@ Function 472: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 473: GenMeshHeightmap() (2 input parameters) +Function 474: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 474: GenMeshCubicmap() (2 input parameters) +Function 475: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 475: LoadMaterials() (2 input parameters) +Function 476: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 476: LoadMaterialDefault() (0 input parameters) +Function 477: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 477: IsMaterialReady() (1 input parameters) +Function 478: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 478: UnloadMaterial() (1 input parameters) +Function 479: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 479: SetMaterialTexture() (3 input parameters) +Function 480: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 480: SetModelMeshMaterial() (3 input parameters) +Function 481: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 481: LoadModelAnimations() (2 input parameters) +Function 482: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 482: UpdateModelAnimation() (3 input parameters) +Function 483: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 483: UnloadModelAnimation() (1 input parameters) +Function 484: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 484: UnloadModelAnimations() (2 input parameters) +Function 485: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 485: IsModelAnimationValid() (2 input parameters) +Function 486: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 486: CheckCollisionSpheres() (4 input parameters) +Function 487: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4091,40 +4098,40 @@ Function 486: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 487: CheckCollisionBoxes() (2 input parameters) +Function 488: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 488: CheckCollisionBoxSphere() (3 input parameters) +Function 489: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 489: GetRayCollisionSphere() (3 input parameters) +Function 490: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 490: GetRayCollisionBox() (2 input parameters) +Function 491: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 491: GetRayCollisionMesh() (3 input parameters) +Function 492: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 492: GetRayCollisionTriangle() (4 input parameters) +Function 493: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4132,7 +4139,7 @@ Function 492: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 493: GetRayCollisionQuad() (5 input parameters) +Function 494: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4141,158 +4148,158 @@ Function 493: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 494: InitAudioDevice() (0 input parameters) +Function 495: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 495: CloseAudioDevice() (0 input parameters) +Function 496: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 496: IsAudioDeviceReady() (0 input parameters) +Function 497: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 497: SetMasterVolume() (1 input parameters) +Function 498: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 498: GetMasterVolume() (0 input parameters) +Function 499: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 499: LoadWave() (1 input parameters) +Function 500: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 500: LoadWaveFromMemory() (3 input parameters) +Function 501: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 501: IsWaveReady() (1 input parameters) +Function 502: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 502: LoadSound() (1 input parameters) +Function 503: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 503: LoadSoundFromWave() (1 input parameters) +Function 504: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 504: LoadSoundAlias() (1 input parameters) +Function 505: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 505: IsSoundReady() (1 input parameters) +Function 506: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 506: UpdateSound() (3 input parameters) +Function 507: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 507: UnloadWave() (1 input parameters) +Function 508: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 508: UnloadSound() (1 input parameters) +Function 509: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 509: UnloadSoundAlias() (1 input parameters) +Function 510: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 510: ExportWave() (2 input parameters) +Function 511: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 511: ExportWaveAsCode() (2 input parameters) +Function 512: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 512: PlaySound() (1 input parameters) +Function 513: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 513: StopSound() (1 input parameters) +Function 514: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 514: PauseSound() (1 input parameters) +Function 515: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 515: ResumeSound() (1 input parameters) +Function 516: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 516: IsSoundPlaying() (1 input parameters) +Function 517: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 517: SetSoundVolume() (2 input parameters) +Function 518: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 518: SetSoundPitch() (2 input parameters) +Function 519: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 519: SetSoundPan() (2 input parameters) +Function 520: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 520: WaveCopy() (1 input parameters) +Function 521: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 521: WaveCrop() (3 input parameters) +Function 522: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 522: WaveFormat() (4 input parameters) +Function 523: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4300,203 +4307,203 @@ Function 522: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 523: LoadWaveSamples() (1 input parameters) +Function 524: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 524: UnloadWaveSamples() (1 input parameters) +Function 525: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 525: LoadMusicStream() (1 input parameters) +Function 526: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 526: LoadMusicStreamFromMemory() (3 input parameters) +Function 527: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 527: IsMusicReady() (1 input parameters) +Function 528: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 528: UnloadMusicStream() (1 input parameters) +Function 529: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 529: PlayMusicStream() (1 input parameters) +Function 530: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 530: IsMusicStreamPlaying() (1 input parameters) +Function 531: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 531: UpdateMusicStream() (1 input parameters) +Function 532: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 532: StopMusicStream() (1 input parameters) +Function 533: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 533: PauseMusicStream() (1 input parameters) +Function 534: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 534: ResumeMusicStream() (1 input parameters) +Function 535: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 535: SeekMusicStream() (2 input parameters) +Function 536: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 536: SetMusicVolume() (2 input parameters) +Function 537: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 537: SetMusicPitch() (2 input parameters) +Function 538: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 538: SetMusicPan() (2 input parameters) +Function 539: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 539: GetMusicTimeLength() (1 input parameters) +Function 540: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 540: GetMusicTimePlayed() (1 input parameters) +Function 541: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 541: LoadAudioStream() (3 input parameters) +Function 542: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 542: IsAudioStreamReady() (1 input parameters) +Function 543: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 543: UnloadAudioStream() (1 input parameters) +Function 544: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 544: UpdateAudioStream() (3 input parameters) +Function 545: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 545: IsAudioStreamProcessed() (1 input parameters) +Function 546: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 546: PlayAudioStream() (1 input parameters) +Function 547: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 547: PauseAudioStream() (1 input parameters) +Function 548: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 548: ResumeAudioStream() (1 input parameters) +Function 549: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 549: IsAudioStreamPlaying() (1 input parameters) +Function 550: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 550: StopAudioStream() (1 input parameters) +Function 551: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 551: SetAudioStreamVolume() (2 input parameters) +Function 552: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 552: SetAudioStreamPitch() (2 input parameters) +Function 553: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 553: SetAudioStreamPan() (2 input parameters) +Function 554: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 554: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 555: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 555: SetAudioStreamCallback() (2 input parameters) +Function 556: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 556: AttachAudioStreamProcessor() (2 input parameters) +Function 557: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as s Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 557: DetachAudioStreamProcessor() (2 input parameters) +Function 558: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 558: AttachAudioMixedProcessor() (1 input parameters) +Function 559: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s Param[1]: processor (type: AudioCallback) -Function 559: DetachAudioMixedProcessor() (1 input parameters) +Function 560: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index e439dff74..16f3717d2 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -669,7 +669,7 @@ - + @@ -1193,6 +1193,11 @@ + + + + + From c588a291e61586c5b74e230919b490aab18d8290 Mon Sep 17 00:00:00 2001 From: 4rk <88458312+Dev-Tade@users.noreply.github.com> Date: Mon, 26 Feb 2024 06:22:06 -0300 Subject: [PATCH 194/790] Add very little sanitization to indentifier names in ExportDataAsCode() (#3832) --- src/utils.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils.c b/src/utils.c index 987021c73..78b3b7bdc 100644 --- a/src/utils.c +++ b/src/utils.c @@ -313,10 +313,16 @@ bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileN byteCount += sprintf(txtData + byteCount, "// //\n"); byteCount += sprintf(txtData + byteCount, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); - // Get file name from path and convert variable name to uppercase + // Get file name from path char varFileName[256] = { 0 }; strcpy(varFileName, GetFileNameWithoutExt(fileName)); - for (int i = 0; varFileName[i] != '\0'; i++) if ((varFileName[i] >= 'a') && (varFileName[i] <= 'z')) { varFileName[i] = varFileName[i] - 32; } + for (int i = 0; varFileName[i] != '\0'; i++) + { + // Convert variable name to uppercase + if ((varFileName[i] >= 'a') && (varFileName[i] <= 'z')) { varFileName[i] = varFileName[i] - 32; } + // Replace '-' (non valid character for C identifier with '_') + if (varFileName[i] == '-') { varFileName[i] = '_'; } + } byteCount += sprintf(txtData + byteCount, "#define %s_DATA_SIZE %i\n\n", varFileName, dataSize); From b86f78f6b179dc374458680f8b192558a1e4a3c6 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 26 Feb 2024 09:25:47 +0000 Subject: [PATCH 195/790] Fix examples linking with CMake and -DPLATFORM=SDL (#3825) Currently, every example fails linking likeso: [ 3%] Linking C executable audio_mixed_processor /usr/bin/ld: ../raylib/libraylib.a(raudio.c.o): undefined reference to symbol 'exp@@GLIBC_2.29' /usr/bin/ld: /usr/lib/libm.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status Apparently, linking libm explicitly is the solution. --- examples/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 3bcdc19f0..c5fa659ee 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -131,6 +131,9 @@ foreach (example_source ${example_sources}) add_executable(${example_name} ${example_source}) target_link_libraries(${example_name} raylib) + if (NOT WIN32) + target_link_libraries(${example_name} m) + endif() string(REGEX MATCH ".*/.*/" resources_dir ${example_source}) string(APPEND resources_dir "resources") From 6db5bb5ccd9e609b786b41c668031f5dfbd332d1 Mon Sep 17 00:00:00 2001 From: Alex Macafee Date: Mon, 26 Feb 2024 20:26:17 +1100 Subject: [PATCH 196/790] Update BINDINGS.md (#3829) Raylib VAPI has been updated to support all features added by Raylib 5.0 --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 35eec2aa6..2a0d21ba1 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -74,7 +74,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-SmallBASIC | 5.0 | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib | | raylib-umka | **4.5** | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka | | raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | -| raylib-vapi | 4.2 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | +| raylib-vapi | 5.0 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | | raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | | raylib-zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | | raylib.zig | 5.1-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | From 53cfc7c96564fad3319d642c58e74ce37e49efbc Mon Sep 17 00:00:00 2001 From: Gary M Date: Mon, 26 Feb 2024 01:26:39 -0800 Subject: [PATCH 197/790] assign format to cubemap (#3823) --- src/rtextures.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 97d9e3858..efa91df91 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3874,8 +3874,15 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) // NOTE: Cubemap data is expected to be provided as 6 images in a single data array, // one after the other (that's a vertical image), following convention: +X, -X, +Y, -Y, +Z, -Z cubemap.id = rlLoadTextureCubemap(faces.data, size, faces.format); - if (cubemap.id == 0) TRACELOG(LOG_WARNING, "IMAGE: Failed to load cubemap image"); - else cubemap.mipmaps = 1; + if (cubemap.id == 0) + { + TRACELOG(LOG_WARNING, "IMAGE: Failed to load cubemap image"); + } + else + { + cubemap.format = faces.format; + cubemap.mipmaps = 1; + } UnloadImage(faces); } From 1df91e74b97e4a7c3e0bb6a81f748debe551aaf0 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 26 Feb 2024 09:29:21 +0000 Subject: [PATCH 198/790] Fix building of raylib_opengl_interop on PLATFORM_DESKTOP_SDL (#3826) I tested this with CMake. I don't know if the examples makefile currently handles this case. --- examples/others/raylib_opengl_interop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index 33a58a227..c1b58d67c 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -26,7 +26,7 @@ #include "raylib.h" -#if defined(PLATFORM_DESKTOP) +#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) #if defined(GRAPHICS_API_OPENGL_ES2) #include "glad_gles2.h" // Required for: OpenGL functionality #define glGenVertexArrays glGenVertexArraysOES @@ -163,4 +163,4 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; -} \ No newline at end of file +} From 2a263a09cc431b92b449cbcc8330127a3735acdb Mon Sep 17 00:00:00 2001 From: iP Date: Mon, 26 Feb 2024 13:30:22 +0400 Subject: [PATCH 199/790] bone socket tutorial (#3833) Tutorial on how to use bones as sockets to calculate the position of something. --- examples/models/models_bone_socket.c | 183 ++++++++++++++++++ examples/models/models_bone_socket.png | Bin 0 -> 40817 bytes examples/models/resources/models/gltf/LICENSE | 3 + .../models/resources/models/gltf/greenman.glb | Bin 0 -> 163836 bytes .../resources/models/gltf/greenman_hat.glb | Bin 0 -> 17300 bytes .../resources/models/gltf/greenman_shield.glb | Bin 0 -> 41276 bytes .../resources/models/gltf/greenman_sword.glb | Bin 0 -> 23668 bytes 7 files changed, 186 insertions(+) create mode 100644 examples/models/models_bone_socket.c create mode 100644 examples/models/models_bone_socket.png create mode 100644 examples/models/resources/models/gltf/greenman.glb create mode 100644 examples/models/resources/models/gltf/greenman_hat.glb create mode 100644 examples/models/resources/models/gltf/greenman_shield.glb create mode 100644 examples/models/resources/models/gltf/greenman_sword.glb diff --git a/examples/models/models_bone_socket.c b/examples/models/models_bone_socket.c new file mode 100644 index 000000000..c454cf31e --- /dev/null +++ b/examples/models/models_bone_socket.c @@ -0,0 +1,183 @@ +/******************************************************************************************* +* +* raylib [core] example - Using bones as socket for calculating the positioning of something +* +* Example originally created with raylib 4.5, last time updated with raylib 4.5 +* +* Example contributed by iP (@ipzaur) and reviewed by Ramon Santamaria (@raysan5) +* +* Example 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) 2024 iP (@ipzaur) +* +********************************************************************************************/ + +#include "raylib.h" + +#include +#include + +#define BONE_SOCKETS 3 + +#define BONE_SOCKET_HAT 0 +#define BONE_SOCKET_HAND_R 1 +#define BONE_SOCKET_HAND_L 2 + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - bone socket"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = { 5.0f, 5.0f, 5.0f }; // Camera position + camera.target = { 0.0f, 2.0f, 0.0f }; // Camera looking at point + camera.up = { 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera projection type + + // Load gltf model + Model characterModel = LoadModel("greenman.glb"); + Model equipModel[BONE_SOCKETS] = { + LoadModel("greenman_hat.glb"), // index for the hat model is the same as BONE_SOCKET_HAT + LoadModel("greenman_sword.glb"), // index for the sword model is the same as BONE_SOCKET_HAND_R + LoadModel("greenman_shield.glb") // index for the shield model is the same as BONE_SOCKET_HAND_L + }; + bool showEquip[3] = {true, true, true}; // for toggle on/off equip + + // Load gltf model animations + unsigned int animsCount = 0; + unsigned int animIndex = 0; + unsigned int animCurrentFrame = 0; + ModelAnimation* modelAnimations = LoadModelAnimations("greenman.glb", &animsCount); + + // indices of bones for sockets + int boneSocketIndex[BONE_SOCKETS] = {-1, -1, -1}; + + // search bones for sockets + for (int i = 0; i < characterModel.boneCount; i++) { + if (strcmp(characterModel.bones[i].name, "socket_hat") == 0) { + boneSocketIndex[BONE_SOCKET_HAT] = i; + continue; + } + if (strcmp(characterModel.bones[i].name, "socket_hand_R") == 0) { + boneSocketIndex[BONE_SOCKET_HAND_R] = i; + continue; + } + if (strcmp(characterModel.bones[i].name, "socket_hand_L") == 0) { + boneSocketIndex[BONE_SOCKET_HAND_L] = i; + continue; + } + } + + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + unsigned short angle = 0; // angle for rotate character + + DisableCursor(); // Limit cursor to relative movement inside the window + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera, CAMERA_THIRD_PERSON); + // rotate character + if (IsKeyDown(KEY_F)) { + angle = (angle + 1) % 360; + } else if (IsKeyDown(KEY_H)) { + angle = (360 + angle - 1) % 360; + } + // Select current animation + if (IsKeyPressed(KEY_T)) { + animIndex = (animIndex + 1) % animsCount; + } else if (IsKeyPressed(KEY_G)) { + animIndex = (animIndex + animsCount - 1) % animsCount; + } + // toggle shown of equip + if (IsKeyPressed(KEY_ONE)) { + showEquip[BONE_SOCKET_HAT] = !showEquip[BONE_SOCKET_HAT]; + } + if (IsKeyPressed(KEY_TWO)) { + showEquip[BONE_SOCKET_HAND_R] = !showEquip[BONE_SOCKET_HAND_R]; + } + if (IsKeyPressed(KEY_THREE)) { + showEquip[BONE_SOCKET_HAND_L] = !showEquip[BONE_SOCKET_HAND_L]; + } + + // Update model animation + ModelAnimation anim = modelAnimations[animIndex]; + animCurrentFrame = (animCurrentFrame + 1) % anim.frameCount; + UpdateModelAnimation(characterModel, anim, animCurrentFrame); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + // draw character + Quaternion characterRotate = QuaternionFromAxisAngle({ 0.0f,1.0f,0.0f }, angle*DEG2RAD); + characterModel.transform = MatrixMultiply(QuaternionToMatrix(characterRotate), MatrixTranslate(position.x, position.y, position.z)); + UpdateModelAnimation(characterModel, anim, animCurrentFrame); + DrawMesh(characterModel.meshes[0], characterModel.materials[1], characterModel.transform); + + // draw equipments (hat, sword, shield) + for (unsigned short i=0; irotation; + // calculate socket rotation (angle between bone in initial pose and same bone in current animation frame) + Quaternion rotate = QuaternionMultiply(outRotation, QuaternionInvert(inRotation)); + Matrix matrixTransform = QuaternionToMatrix(rotate); + // translate socket to its position in the current animation + matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(transform->translation.x, transform->translation.y, transform->translation.z)); + // rotate socket by character angle + matrixTransform = MatrixMultiply(matrixTransform, QuaternionToMatrix(characterRotate)); + // translate socket to character position + matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(position.x, position.y+0.0f, position.z)); + // draw mesh at socket position with socket angle rotation + DrawMesh(equipModel[i].meshes[0], equipModel[i].materials[1], matrixTransform); + } + + DrawGrid(10, 1.0f); + + EndMode3D(); + + DrawText("Use the T/G to switch animation", 10, 10, 20, GRAY); + DrawText("Use the F/H to rotate character left/right", 10, 35, 20, GRAY); + DrawText("Use the 1,2,3 to toggle shown of hat, sword and shield", 10, 60, 20, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModelAnimations(modelAnimations, animsCount); + UnloadModel(characterModel); // Unload character model and meshes/material + for (unsigned short i = 0; i < BONE_SOCKETS; i++) { + UnloadModel(equipModel[i]); // Unload equipment model and meshes/material + } + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/models/models_bone_socket.png b/examples/models/models_bone_socket.png new file mode 100644 index 0000000000000000000000000000000000000000..fdef19fc954c607a506a5135d05acbac94c61aa9 GIT binary patch literal 40817 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/models/resources/models/gltf/LICENSE b/examples/models/resources/models/gltf/LICENSE index 3c9a38dee..e1d1d2ee5 100644 --- a/examples/models/resources/models/gltf/LICENSE +++ b/examples/models/resources/models/gltf/LICENSE @@ -1,2 +1,5 @@ robot.glb model by @Quaternius (https://www.patreon.com/quaternius) +Licensed under CC0 1.0 Universal (CC0 1.0) - Public Domain Dedication (https://creativecommons.org/publicdomain/zero/1.0/) + +greenman.glb, greenman_hat.glb, greenman_sword.glb, greenman_shield.glb models by @iP (https://github.com/ipzaur) Licensed under CC0 1.0 Universal (CC0 1.0) - Public Domain Dedication (https://creativecommons.org/publicdomain/zero/1.0/) \ No newline at end of file diff --git a/examples/models/resources/models/gltf/greenman.glb b/examples/models/resources/models/gltf/greenman.glb new file mode 100644 index 0000000000000000000000000000000000000000..18edcaf9b3c5467e4b3a9bad8f3d4313ea797d7d GIT binary patch literal 163836 zcmeEv2{=|w`1c_tvW8SzEbU3pzTlZ5WGgLt+q4Nu*|MY%l?s(g`=V&orhS*^v}#X# zNu@odol3HN_j!baC!Dwc|GU2Ly52PNoH=LinS1X0cYZT-w(<5I(pQlnh>~bULTxcY zIJpjRi7<8#4)zK$Hjgm&_VV`%at{dzGB!7Mo){G19}sNl4I+kpe7*cVy@CuKdk-+2 z$~6<1afHUE##6n5f_(z~Av4E}Wjw>wIM@RUFg9oX-U>E0cZ)FgclU#R#;&qsrpEpO zo?g@eHh1)l(bdVSe8B-8lf6R5PIM1}8iE2s+(TqlxbctY7_Trccgd%~M%@K%%Vi8-w=D>cjDa%YO7K=n|76%TA zSsW1;R0s)j_Yd~1s)ubR=COoO3rj2%@;O{K*Q*zsWy&^VakzZGm@i~;*&IF;#e&-S zEHR(Q5d*h0#h zVp*epw_>8ZzvtL~bsGW3W{ZR(o>NEhP#9$2`G(pS-Gx69U#Ro;He`29X49?=pYGknl96lE+ zV6(wl?Rjnh6FqzM<}9v%LcXiA~B22;Zf?!4E9Ie!E+q0Pyk-3qdV1P zCd%^#d>-fy1wx^<;lwuOm{N$PL&`TGtY(X-8d+j6Bo|u5V~GHrrd%@~fR)8&^EiAs z7kDyE$#$~=>ujNbE#Pwj^8)ZU{+3_-1ShJ1jnUT@0`TpnwZl zW+D;TUj*J3aCs~)mjkDbhzGC(?|~u3LNF?YX1Z5=y}WB93eIZ208U*o8?*vs3dNL= zsn`rqE`SqLz~;gUOeqVeI%vyhu|Qc4k0lU5!$A#!fNB@`OUMC5L~`81F@pvQ1v~+p z#Rs(n6*T~?cwBHjhtGjCkI&+Oz0H6OxO{+}04m@Mq0)*of_9qot9>%jC$LUyD6qmw z%ZJmN%Y)Oj;`HEg0H;FG7wY24+QH+pczlXtzg5W6riCmP50v7wWezv(B{YMUg7<)K01dxA z+DPA3wV2{u_{Ro%0*H&m0#mjryG{c^1rD6RVllWCpvV%lDW_4!tnFNm8C%R_Q~&rZ zwgBuXBh}icov@~RYd5&Uy%b$=#c+~|D8Eq71s!>CHiHfV7LVG;WkGi#5CO>mZ0 z(&?#cJW{vg14#fQmn)$94Ze^q;6QmSfvhLu0D(ir)aZjto%pg79Dob`l>piVyd!{q z?6?0YwqbGDUpGXhd!3V@j>n-N2S@_~#lVylkyB6;fbH2lU?M;xwDETr z4c&r(!Yb91vIQ*8pPF75^m3aH7OC5EsyqF^({O48^H(kR^9r6Q8^HcXH+w8KZi5as zc(M-+=vcMJcWjQS*pwO^QY7?S#5%~&JtQ>9%a|J8y8HV;3P!LMV_^>%Klyw4RwRPm z{Q`ZxV5|+}Rfx`%)&HAbg1sOqc4*!783jht)BaO#t(fL%=i zZe0OhBXom2wVPBe_6Obg^~uQ7O;A?=Y|^0Jg!PI2K{ru-GV*i-2i7(KxVb^y0891A z{Xsdl93)g%CQm!SZJlahSHtSbfkU<2pVX5BhH4?X>dAou)ZDOoau881_b2t_;GtSb zu6lCN05vzPo*YnA%l$z;jvPc(3&~TDBL@y(&<53m!EPN;RLlKIJvoS|7Lu!;95{eM z8&*#aD5~ZDq@El^R13*fPYxVlSHtSb0Y$akpVX6sh-x8u>T%`3fg+6t_2bGx1x@e| z3c?Jo4kl<)ay68L2#TQ^)=&;GXo7#zP!23;Qk5E3_s^`cfdRo@RF_`S|5kLyKK_BB za19KM@8cih6%-gyc|pjypQDSNH8uPR2n~_t5mCJ`gZyHK`Ps5j27?ONY^F7EmS+#BPji@hn#0u79HyS;F!eNtsi!$iJ_9^)#2Mr@2f$&1LFoE>ll)nR=SX)YCksp5`(2G>E=+kdGBg@8&a$tl}dtz8E_6ObM3@xi=T(QQ4iu^Iq>z>d65`wcH=n`)~I7 z`x+hGR;uHt>WSo^tS1K%)k5-|%aH>I*wx_Ni6aLT)pCDQPYxogh2*LC-|W-4<~h%m z1B-fRpX{+do^bb0{_GQOkvBa3~kSwp9>lLT*%nxLdHH9GWNNUvCoB!eJ*6| za}n#mIcoKM^A7_yIfIRA8F}M1IpfdjiQ}KA3UUUa)nb3pP0j$cT1K93at5FO%~7eR za4Vhw`0ozsZ$tbyN2MMJsh&3e`Lz9Sj!Ip=`EQQ;w{uj^SigX&f10Dh+mWKa}maVXR{bP9-fzH zt{7w2vssLN&t@@pKD>&=xGgoFB59l}YdlBNND=1VXEXOco4NPd%)QTM?tQlKzgcVb z4D=5(!~bTja8FUrV|&%J-9H$Px{*-(UU9XMygBuM&-GS5)dwb*a}}fdcC1|M$+?D6 zJ^TFgyo)X8Qbx7hADsK&oz?&DtkPcQ_;1$wx3gC6Soe?+caO<`xVH*#AT?s*3U5u( zMp})Osqq+RV`b)d^Wb8e}RJji*!^tJ}Z80qpvLnmjkE#(U*LfM zFZh7}FL1!;!E6^^q=7eDy@Gt)f4|1+84x<&*UQz%)63J?JR~U8tLjbI->=RFjt}bZ z72@ve>*FyvAk=%JzgIB4a}!}a-aXjMCcrl!Xo%M|*$cC<&j&s;GfnoMt+C&4nZE8G zvMK$W*IBLw-34-KJ`5yk@t zxH=AT9N;2*2iIl5;QrSAVB%nEJj8Ce&42-eZO5{V&EZCz(*Q@8A+A&cCJ@8y9PJ${ zQgB{S8vA%qrNK0}(lAs5WR?o4Xj#Q8MpZBFLQ8@JLW4ZuwhrWjBK+LFf2%h>bixF$ zprJlqVaDb#h4Az7^BOWe5HeO|>K*9s4dWZy_djHB8B;GOSJdI-Pkoffs}E?^-yK>i z(+mol6acR^QCY;MJn98{>O&&%9zWkyWGbxx1!fN@A~+zZqIkM`&VShXP(N%rhrDhbL~dG)Ll!Sdh;GWlL9Ze!#8b&@C6w7ijC|`An*Yh zQPsysSX?M0q{4hd?QFR4i6TH9&BEa62AfcyJV1kiJf}|mfTp_gGNr0bSY1D_jyzm? zsViU01@*}TWb4Yyl&YwoC7@=+6$W&*vF-=2!PPb)OtR}1K~sTxf3Tu}{?Z|HR9tO1IlyTE{GfNWc->Z07k2)p_6BfQ zqjovU%Y|LF&uWOvQ67%}jq-9q_lMf$C@;(TXWD5<`3CS>LtIYn4db=i?{dVMpsudv zsY^zGVR`Dk@V^mff;u_MGeKQl({cU|b=0E~jc&Uf<(Z&Pj`DwpI_ly6zfqnE>gp;_ zU72ch?Q+DKpsudvsTa`yruM%>9hV8}+2mGvOi3`|4yC}{^aP-2!D0$4=1{e|7a2{w4l|jPO@ifA|74gZ9hO|1a?e-|%Em zza0G;;ZKhKe~CXKBmBwHpAr7#=>M1a6EVVHUHz$t+!}xW)YV_q0RE`CQ{^>K&R>qT zL=9k7_5?va7du4_V6~>a99uPj)td5hY}Ei(8Mw2pt2O28>Mw2tR_hyUi5cNfj{c1BCrAIk#2ZZZ2&wS{OtAR)8KEB$Yz8@c}-x1M0rO1TO?9X*f!pX@|wU1 ziSnAz01~M?CY3i3Mcf+ys9S^;_m}_G{X_Uzd;N`Of;aE#s1?U7xV7O)h@|w^H4A(a< zV^af{#^XRv6R1xEH@*NlO=##QO@lVzGD4!fCNM&xye9lD61j|!D6a{OkSMPSe~Uye zBP7acLPIxg8pJ_Ew{03OfDtFkYXT!A%JBmAJ*U4qnHsu%Q_}|Wn!pH&@|y6sNQC8# z7}!8w6Br>;P7@lsF;mls@(N(YiE^6I(5;zN+4KVC&c<@o6#Uj4lMy{TnQU~x7$Q>i@zCQOj6J_wyy<-2ZNp19(ZTor{iLb#&1#>%r{ z8LFC1~H)gJ4f%^eM3y?kD z`v?2Mx^}QwTMZ4^u-u>Qspvn5z*1^81z@?RipRqLAV7T#wMG+RMK0N6%74gDQAVx& z^(sW&`Kgt^;!{|SE+1BitA3cV4#w*0!xq(Npt|~SD!yjjXnnX9@9Q@{f5l_$f5=}~ zA6VLvQG0n6pWgdJ`E~8XuXwNh5Bclr1B<~i(g&6aW0t?-Q+18j2iEUmRK5^CSyuHt zaU<{}Vu)uELp;L@aE$bUCBN#)U&miuSb4Ob{B`gEYriqlhs$P$XD&Qo&PX2)Gdy#- z%u1}z@O0Y0$eFAlBfJLa835XcNTLjB=GO7WV7-yyu ztnAIqN@7^Ul$lDfh&VF=E<cCqJ zi;LGMPzT8K! ziTYVej#luRD8o8nJ$j}R^`C-rv}$0uBB$l>HY-D|#Ej7{uAi*rXa!51Gt-J%zPmn& zy0&6BFpjFL6|CIMR4Z7wouO9nc5rX0MBXNq=q10zp)budP|fHB(P1!RUT7uJvVI-MF@SU=e7OhMTo zQSYFHTYC-)67^rEl2eDM{$|LNsDD5yM=MyPzCPp1tD}CG%aIV*KY){?m6*p=D{=j& zhdiws7%bKCAO}Wd%xuMB)lVgLwc@bqAAi@i70h^cU3hi*OxyAzC@C}{5KECi_B4cy0kOR*Tz{7o2JH#URP%q38W#4}J zePfz-HyQ?P)afvK#+}a!L?1^N;=yTCEJ)uZiTHLw+Co8$(XI26>67lD5WYP&Z0m@5 zO_C4+|DrXWP~x5vDYc#2$r;65E|cwFxoH%3dn?9~0}u{t(+bC4yC=OrR)h;woYBh_ zInu>O7MM7<8~Gf~MXPNSky}uE)FJpM;#;fWMa#EJo^Squ%6nqGFT=%B+h7s$-Xp{_ zo08@qJH<%3PcRPbJ_~o7c2wHGg(e5i8FJo-@OGHxp+bM2AaiPYt?FjJ$ ztfH(c+unKVFxFgXDBB)E&ckDj%w*du6N)6xm*>rm?zMGUmZTncb{Fwydoxrpn}O zJ&aTI+RL`@-I{^d2XJNE3$~WwX*siGvVJGaaJ$oS2%nQ6f3Ld|9p%x|bK5tf8)3xB zjppm50j2~#H=svGt8+=x1N$YY1Lvva+t_hP$6_-YH@L{6dFv!JC$$;wHu%9whpk)C zv9&|6_t#l?%UwgMgeSn$j1S=(4i3_Rs1x3}`ZkWR;!3UC@v!xxBX}-phH|Yt;hc51 z@yIVfn2BPH?&Hg*3gp=R z+IY6lY+RV7Li)rt!xF1Q*!^X()TwI`vbuU3KfjnQ9kXREdb)cldb6%I`95bgvY2Ry zHIAE-^VGHQD$M|NXl^sIFhC!FcW;NwI%|qCe>NtipyteB7=7G(4Kp4c&6?abUo7#bs9Yc4|HvhNew$RaDyIh{U9Cf z7i(dYyUUT%C_E}JsgJYoJQd# zUBTXu?x8O6LD)9M2#?!+7nQ3X#&=t5;QbShqvWIa@Z@{H5V3O*a!bF5)sZre^*Mp^ zZcM}G_N{Ad@7gg0J)A!s_f0p%^z9$M>8Ow9A-rfrGfdweo-q`CC_aeyxvOLPw%^!o z==(q3_}Lr-Oy7Uue%Z;QX| zz$t}h`0X1FX{OE|y!4?NV0`A@C+&9NF=`x~I=(aNCftcpx-FipcRiy#We0AR-xq&< z^GedzZwJoPYm29TJ(lt1-gbP-t{r}*`b#3Yz80e)t?`uO#>k*Y5?(&Z6(5S$1s|`) z2|a|^YW#52W@QpK@6N?|bziB~%XN6Iwmv>^SWybRN78tYr12hE$$P+QB#qNZ8mEyo zPLt9&jihlJN#it<#%Uyt(?}Ypku**tX`DvVIE|!n8cE|cDUH*lG)^NcISqJ2O5+VF zjW||XFm0)5xHo+Dek^_rgZov zHtD?53NKz3n-O-sD~=6+kg;s9fJ}E_;|MdsFwmX;gmXQz10jaQ+R?F9d3pFripQIYzPv@cE%yYM0jqDI-09v zhBxS#;P>ucC!4w0k&_c1qgD9=eEx(Q86)k6;taZwb9y2&H)^!hmCquT`>@HDJ6)xg zclwc^yK0eF3{7xGL}!UoGdo$k?3Zkju9*}h+crvHnPKA+Eo*zu#;?+RKX=(SdPU%; zW}{`>b4N@>n+8vpZSzaNOLiJX$+pj}h$LMPc9D&F+I@&5zwNNbhvGYFep*_x z+LL_LC0yE^)kZ>24kvVMZ;DM zC5^wUV2Ac4l2JqcArF-4;~fe!(e$e}e(+0=f$%!rp}&?4iB-yPZph#J~dXwD|S3V zj(cpR&HK9JLWdqGYSaQLnG%GP_dG>Y<0FwRcQg(Ty^SWXu|R?Do;WN|6;JHofUP{& zOP`K%MgQb_;Wte$NH4Wh#_dNrW8K0vD0!R>DomSzi^p6*_lappFFz8s;=wg>sC}g=O zjmbd=b=#iZl4!Qe`AKc)`#M5gdOf3mWcNFw8WXV%H-Pt z`I4T)hhgn`cIe@c0VwTMD84e-4t3tpAH8@UijR4j37+vZ{={BcWrd}&Z?JoM-oX_V)hjCkYecu)%`G|n#)4S5q(WBb{K zV$?d}ct%O_XgniRj5j`!X8f3KMvhz)jdebZ<I;+`?-uAE(aGN&oE2!?*P?*7~S{ zpH4U~J+jdfpFgLEPft%n$gDl?I9Wu#@3B>?`=C9Z6<|uX+Q9k(fHiKC@Dsfswg$aEa#Ng!LvZo+70B0lTgI}t!Q?`&5?ZS{nry!ArxbXPr12g} z<2|yH_khz#8mEyoP9tfYCZTbfl*VZ!jnhaPr;#*HBWavQ(m0KzaT-bEG%1bKq%=-L zG)_Y_P9rNh4R{05cmvURBZI~ph{hX;#v3PTyg|}q#Ukw8S}Qjv%uwy4Yt-Z~SnbFaGDs5ae1o8DH9P(sJRlHu%$| z7FaFB2!FcW40m}f#4E?|Ly1i|_y%5zh);vD&x1XvXu2)#-r_QvnU1he)1PQUHpT;D zo8$TXCO8_db0kgJje>=%(6shh=%nv5^juvTA01VSj>PC;^?6Ux>kBP$DAdz)r7dPl z^>FtT7i@LU5Vz?x66X(Eg7Vt8!b^iTOWtYp!$;bT!XlsEc=(vUctNNeR$au#S}%+c z@46%2raK=|$A>JxSJ&E$)dg6rV$IuqZ zP<%Y-G}3S5hy|>#=(3;*?%Clxvg&jVi5)(n-NUvc?O&%*oZ5AChLED6k-O2yb(v_N zOH;fpRfLt6d`CM*_ri(>JJI-C?Q!1qVD!Yg9p3Yez}cVlaHqYekgHG~7qwrDMtA6f z^&IW6Xp;ahz1{`4zo(7+x?14AOWWeOZ$`MygCbJhkLbM^b18zI! zGV*OF!fC#j(beg_@!@qB(Jj9Y_^$P8RA$7-xx*dMtwIYdICELjItTin1?7^HM#s@C z@)KHpJ^)4Z{D~Y?x}yCp_oJ&VqtT9w8&AzdBaY-ND%43eTmH&e8AqXrI2o`R1ZxrZzRy>Ppk z_mS&z4K&k66W>wrKo1seK^;Ue)>S-cxr+3{#PIu;k|TZ5si7Otd*@s<$wC+JIrA9l zb9HgqnH*&1tc&~oc!GZJ*TKKKJVNc(>0sWWCrB$r7iZ6Zg!W|W;vCx?^l+&j?u;HH zg_M>!)*&1H-OP!a4?r1r~x z6;zZUpNcFE`IQuv2}PI(D#CFH${$0LFw}QSAnWmL8U2Vf{fI5?Ev*DP~lJel_^Ca)I1Kw%WT%z zUloO>gi2EdqA8_mQ?M#*%YGG`onPuDv+OO3Tc_VEU&U6Am6D)8wFJ!gD`K=)nSuSk>m($-o;?!Mk{&<=|X3d^L0cqC(6lfkbmi z8|>KfD%x>%lQ|U@&r!oGx*bI3{d^?7yYMBpGe+UFv(qHvE~91TC-t?&Nsom{*msL$ z$hstp>3cNs*O95{OxhZW+pAWRxgVYJ(s}CWjAEE1>Ta@yFn$~!&?Q=8*LRvsKKfn& zZklZ%=@@m*lG0zdK#U)*aYTo?>t)B`n!oH?4RwtAw?SfyXEz^&Oqzd|`8 zMft^gDDm@CiK3Awc9?QQk~AsLqC%pk{JH`+Z1v-<cP8q_HCmu_oIg^(K1wmwhYr?yjmV^bA+Uv+oZ_ zH*l$h3cZSz@xX^phzjG*FNZeNtbfJ$Y52q9&z4hs?8Q{@KV^s8#p$9E@4HE;kbJv0 zJ~P}9QGwFG`!Qp@XR$e=g1q)fV*GIH*UNs}iXdLK5nsA z5Un}AK~~1ed=A_*ibs*E%CdC(DdTbLu=iEvJ6N>9yC0G79$1l-XC&#|wWvdZ$XBGhc+)rJ(6r1F$rYu!5{t(!*sCueb#@Ms=`dn$G}d$ZW=_dc|2}%P!R`4AkS=?P zM0;g`WNY&eXv2tQ=v1jKdi{N(WR>MWY?AU=G9Y$|WVvOzMH8nM`0L8is7<6Ax)py@ z()7?IoV;y^gl%zLrcZ{GEpBnwzp8zy-N)fe2g<72(<@~ZzJVS|x|A2o^f_c@gM~wV z(W@tSWNkn%9kEKl@G5!!8zUTbygS;|(Ey3Nxk%=HRluulQ&4L1N6FRWGbM4?Sy*bn z9_6oAm&u=I`{BYVE34`gK8ePC zwWmF*(!CSg;*`gitIDsP-f+1m=B?U>HeU3RwXb%%c%Ls8POIQTO8?sFo5y|eG1lmD@O!fvk`+5D`loLPhT)zYQzh&R6*gbHU?_f%_DiB4$4P_&HOoM6 zH5}69AYA*NB-s-zkSK(X!hIssB+*AJ`WvZN;ckJZ!tAl6Mv6NMF-cf zk*vJiN@AJqjQ2cON5y$lC0XZ^E!NH%hqaBOC1X}p^f$Ba1mKH54J4BzEBc$khXpw4 z(=cQ)wGsn0@tt$T7AtEHK!HgW{muOc_fYDqt*A?&K04R=i6ng?T(^IlCCQ%M{K&Zt4%0Z!thJSyK`Fs-&R9cRot&=FgPe1%6g^SdX-ORPeKYNC56Pc1{&PBH-r^ z&Hl{K8-bt46|MavKhLhk&+T*-a6)MjavQE=IpArjxRa+2COX_h5q_C6{aqZUV55l1 zRrP<)h{iESbE@pkx)hCLt=y{9wfLD;E1hzsCpKHX4XHX!l$BpQ-O?ZsKX8evs;_o> z_QU{Om|ks<+UYH=Rq>R`?~r&iTULJUbbG9YZ=KIZ+gq|NErPCzYp2!6N8mBiWmWuJ zI~}eNfzRAXt~y>jT^s-Zzok17or!KlCkS0(s|(Q`;_i@YLg>NXCJ@@gmM-kogU|`K zbRd^5gwC)<5NZ&sL8=SHEg)_I(%m6efLMW0g_63iheoZ0n3vpk_Wd^YZ#;T7bQ+2y2L~!NyiZE5ZR{2S`~%>)WLrUS0AJdHge`==;3p2G_z-Mit1V#+u`#6VAU1*61agfe27?YG zA@qaN96%RG2qU1T(Xh8agnoo8;YN&tcoZ>&7)A^r20}cL7!HyyQ0HI>&Y;ylAYlWc zKWOF%CG>$X2)s8QkmC-&V*mqV0Y{z?k0U062izfchy6bAOT|Mz(B2hV zF#y6q&~OlF-3NjV#5Q2nJ`jw+nwroeEeKA4asxnhI|wZJV*`>{5GaiIgwoX^XhT{Z z_A~=6ETGmNaHKbcUQlCiC`A!MEAWOrSf($8ez3O})X*D(77<0vB4$H8n}~+L*+dM) zF~m$bFWST2CJ-XwFADZXLWqFBXgC@HAsqf@62TA$6O&*oh6sW<2vRY`6k;;OlOZ*m z2!zyZ2r*DoAZ&F2`~^ZB2o#{D^79B1p}HcpkAB{^k)I zAjAzgV z2(;S|_D&b^vtP3}F-0unqR6 zLO4R~CiW6XAwEhRBK8pniCqxyBDRCXR;V)#!Vb_X6>_eJum?2S2_+>#*bM$V0hUe& z-ya7INFkQOp5w$B*pm)%I(XtN961K@F-VheJOknkNS^}96A+&O{KdmB6`z**iiD$U zAgqMHvmmt+!Zi3h1Eo^CHg{G16uEb)@+Bc8#G)m({>N&n*^3L zgxC=Fg+Yt9LcA3`)DEz_0OAFJ@A-h{MG!B7R0xzk7vgE~y9oAEXV(hQBOcD1xe(8V z{l4InFo?q-odWhug*X*#9}jz`LOd1n#t(F{S66MT3Z0s|ql4|>-&aqG=8CWiuaO-hY2?2UK+FB2prtm()dG|KAr5i#ySw6+%cXZC{5PJ0d%msJG zb#XYdaKHD}Q;H@E+?U!-JWbkM(rImQT4{oV+Lt9N4jYV?EY#9DwcYQg;gThfSG}8> z-us`>ohQsjhjOMT|44`n_z?Z+(ebbiSA$)Koxl7jf3ePdego)#3Nl3+)rxdhrY~vG-;m6X2FFUV?IwE(Du{RCl=@TNnYU1;`kn2R=Een zejI&mxZ7=`;Unk$;Gf;UY_bVEG{vC2(|(tTRi_ipIH7o#{TkoWPIf!Y@?0k5O-j1{ z>|XRO&eo&fZ2Gtyi^%#`&~i&U_t2VkBbOcM*nP=^!hbGbQ&F;w9r6A6$_K%Z?B_2N z2@_{{%wD^fcQbzb_wYgbD@5^K4rQKO;w8!+|03+2WXk-a?2^>aug7@jcb%I!XZy`V zL(cn__t11YyXAb~vM$9p&m^xx0~Z~(T6ue~_P)Fq_D>4en~Hk3bbmQ!{x^P@J{iCNo^?OHS?=G@jNjX$=R%U#Vzok`Z9}Ue@b6R#Rdn0^K8gC_%?9o( z)_Rn_z>;4q=t}fbR(wBGv{Z4*puV3?J9o3vJkca~-p?1tY<4!O(4nXLsoblh+C25T zaFM;ctNJUhVCney*kk7sw!ii*dFj~QX_;@?GWD;C$!Q(e&h_2ybtHP1rD7i!=gTh_ zOUgd0rA!ffKTK_xy!;+qQZg`KfdFJ|qrTLb+PnWbTkF7e9S?>ogGjmyImNRu)kE74s&60!LXid4L$hY7A*4#~} zpR@CwoX$(<8$HSNe6d&O@Xu7;!K2-94(Vw)^Lyu~Sz)O3Sr{&TZ;@N_EKK?{8@8X7 z7m$&~24rz;-`n@2zb2RKlwT%)w7}&9%I-{Y?iK$t7mVvFt|-tEFnr%fLszAU)CDfapOrYX@nBCjde z{^`1EZ2Zej8Q=Uore+K}vQ}}eaf{6&fzPNuL9hJ#eH??goK0N0(dWJIYT{$o2fLMw@<`MulMNq-oWGal_T>#(zE>)^X!blkx456rRp)!(&V=^f z+b(yj%cE7DoUef%rLLbkmnRQ=J?-6^4+iU|4{kTk%iDpl>37iE#qf(^_ti`L_>5G$ z>UU+xo`I$hyZGwsC_OpO8xj7&{@0~jW>+5-t)KPMuOQhnWUF6k$mXqKN1|6KBrnKfkv$xBRwnmSC|KH~E};+Sb1N%1*k(ZT5QoLywHoX|3h;(qC&@mRsDwJL^@-=p>x?PxLcfC)KjxT>w0FaPQM zgg*W(yCOCjHDRo8;gZqeW5@b2sP4D>sYX zG$rq;u*|%L)8*IE`4`r&oZw!z|6^`I$ywaC-GCm4+F5nH`Qn_(yxgMo9Z%|)SduN` zKB!F%Ha;!sYvj=?;rPgnt+&NB3ps6EES&Vc`>UBj#$|{Fz%kW${qgo1Jn(BOi zmPKaIwcD+_Gb`zxera6Z{is)(F=vx?aKUJ+GuMe-)`#}<_Z!VtKhQQPq09J*gZ3Hk zpV+_M!WI0S6|F2EvIb`iow@W|uVB@awytN69r#D|WzIz7{pHQVi?YvXv~RY~w`BeP zYtc@V^Dj)_{$$AJ(1@Y8kMnQ)=a4aitP9C|b2Et63(ST`n}55w;>Ei1fuGn~*>BDb zh*rHA6`AR(Ffx_%GFNF}c;KOPw)<`k(C}RNwwr#(y+~j zb_e(oXHB!F+)6g=an0o6{AW*}DrF>)Ujw&}FGzN>*y)uY8+AJ`3HskQi=Ste{~%}N zTQ9%xQIZf)c3o4&SoB?7EKF8>{ywO)%8^N(@1HWWzr=gGU{kcBbSu6**gm~<`O^OF zCb#Z(F+TS0#z3$2t}ip3M;tkP_|Q73$bcMt{O5ofOI0R$=i9eQIsa(L<3%sG=kapB ze~QRV#zhGhy%iphL!r|b+WQyS2gmLIRn}2jydf&>eejFaWQCJKIoq8Ex3c<>zj)jv zm-u6=`k0hnjJ%(4hvy{jGRtVnhk=);IM_VwWq0X$(3vR@hAv)pQS~rs(`UisvBQRp zK4wr3SoQuDcEYgr*H_Q7K9#@z5p(BM+a*)IEoT>n6)qBLx-6S=@z<$w-PMk4Bp#@l zH{bEoujpsXyO)PG@n3lM&hA5(_n(}sRy0X}%5#aq=2sc~1tz0E^eE}6e{GkdHg2}Cy4WD;x z#F+5@j_x66(nmzOCM%_#(a9UqL@bJEB0L&CTNi5c26#cRJDh4D!Dn6!>RMjp+~ z9^cZpysa&2S61>Q0F@ML9{=QCGJd*^r}*m6Ig8^4byz>PJR-N$ySyYT%BAFvvsK&p zv!6HWsq1R2THb7gNkGa_Zjc9W@nF@|-Qxn;+RO5ZC!0D>FIt`B=ym$?mkANRY(In5 z%3Y6K?Kb^M(X!ZZ99i(`)`MclfT_ttZ+92=(E6cS03JS@OqP?;=~K#{*%SE%3DZ9R zI@Mm_ePipMgKKUV^GXUMh~VPm?FV%C)Hw8-qotLadX;~W=o)7dmHjSn)R@;PSx!SW zcK7ZvA>wlAqKpxjhrC`gW}a9})2*c7#Pf_erPrBzmHf(%M(y;tr5|$Z`zQT5xVZh} zu$Zun8~ALmk_VxEybE1X^DSSFf4-eX4C&a+OL`cz13BYcTu_~8F>3BJ``20qq)vbHfxt$Zx6nO;uK z{@!ZaeczG#P4Xw?uU=<1H@&1Nw@6s-hHr;$*%XnM$6KXOG2)vG$)9HA-*uHL85ix5 z7(58*XtMNS^N&3j6zq7S{QA+WPR}(?-5IAEByEbvwjG``;eG7BqK6(uG4JOdxv-LB z-9O2yaH1?iMQN~TbQc#Gh>WC^oygE zHheJm_juR-fmg_u?!DeG+9xb?`udu@5|kg?%5m6K@2w6;qA^ic5s@)cRZriXPCe}=R!z8zg?bM`6KU#Smyq9(Q7ZjqlkBF)M@c(Bcr=5r@z z&R@enqaAM@)#P@p4NpCLh{wb=$E`+u)0u9uFem@O7WFNglds;=ws-Tqde1m$y;k&# zVSBF6@r9FMo9i9JO>5qE+pZnIztli?ZH`mtZWovRG%EQSlTIq7ENpgR08i6(H8RnP z-c%lEdrmO)jcM7@vYXybrzo1+eTyt9C^1w zGF>gJwe$9;p84W=d9|OVx514gDXn^a$=5KRyCU05-|+PkFRx#>cquP@40BZVnjGqX z_1wLjbB-&0!$mt11Z9pUKF0Q2LIANZI`kjpTfX6jb&Mx3GI49zh2)2+dTbtm>FyW#;>)g%{?A4>$a4VP* z`;0b0&Klpk*#{{1G-w|zKCo+=OX_tEO;*M`8eny|)T*UfB z?$S3dgeR|Q?^B~v1zlI~9jWHTIk%UW?( z-=JTKN&oK8ayxv;UcP*PZ~UZx3wGkX#b1})%Pn%$6z7x#l)mh6W%~9#&t^r3B&8o7 zdC^Yi+@s70zP|f`TzTdPt4U!&r*SJ&&#YdsB4#jHuRZumR* z{8%)o74Z5T&BeGl==CYy#L$4a9Y+1`N2(UA&041x%#Ks}?iXPbS)87n!Hs&CJ~Q$z zYf(&UrvC)>(B=C&>o?haa><%-)osq!&Z6(%@3T$0vt>C-vK%$6_tFxF}F+NRCjMdF$NSUUxOx|g-L{BoG}CXWZJ9Zz0`UgaEK z=;Ug?bRO>DANS?^;jyKgH4Yn$+PP@h;>8y}?VbJf!In28HhkS4tMy}R+Jh<6Y|i z3!m`u!a$dI^YaoqSx*|V^~sgNM~ocLDQtc|Yv-%d=Di*iUFtEN!pWA!k3#xybMChI z-JTC)H}`v*x2CAz+uko~hA*1kINxrcwD0ikMm&J$PWxU-^Ac#hD)Bzf;`3&{RFow^hH_c0UAa#kS8113$m9 z+j6Bx@e}K-XMPj~?7n}`cU9*1so7{%n@y9u_-CB770fyQCExbjf@$lb_vp-vPwNDY&2Obj=c7>Z%T5B zPLwz{JgQk#vHoeL^ghGYX0*9ztlZ>mKi!vZt=lX5-QJzX<*M~PJhZ?^JbY@<$Th1* zA5(Jh+#NeH=fUabT-#&!*by(nGFP`=7v0(DpF`hlV!E}+A+Mi}@6|QrWY4m^ZygnQ zdnC4?#CVOgh!RteP2%2VYPf^q4-b9^7q^??9b5ZGM!`p8x`k}geE(d`>ZvMSeC41P z4turzW$J78Dq_$c^*J$$w+@XT%ROhcDR$+i=N(t0u8HH8}&I9gJJ(zM;grWLfvpK^ilh?4pY! zz6oaj%sMpyHT7J*^4jV)ld=|g+AjUY+P#-G`=ZqA%}n#-qH{fMxKXAjPEXVwmFShn zYJU2%k?rD+-69s*+!@5V?dGsX&+WU^c=L-9w=+K#F5$IIhw1iP!KT)uTE696j^SjN zrCBanAbg%>l10q9*v#wA?c1ik95&7dY%C|0mH`I^@-j8}OSetk~ zalwu9$@!yN`kM8>vt;PD1MBA+;J1(ARM>9)XhdPsy18dkQit34mUroOz2)&ulZUf5 zjK#Snei@1;>0bl;9F%145*~EX9nTpW+`Ypxt<74`lk5xJN__T(#g7e8OgHuH*DT1n z^}dzCr1$DO1I_nz=wcH&|I$f^NnN&^@iT62%QakZwpc`>H8qiH&Zp{ zJHDl55WRlQ^~JYW96b1Q80Sb-p1;@W(ldujceU%LZ9nqjWeXVFL>GiB56^2ib0tm~ zF>m_yLCy2*`xls++>JaNe|^TafYLF@=xuJ!42`IFol~Tw|HaQwoDw>4yN(!RoS)xM z`?MFgXX>%t8<&SGyRC2;yFFyt_zd6W86stNmf4gcyBBqh>asL}blne5*|FzQ8DDXR zk&F!#2Cm(=@x#2S-ByL%v3;448#w#h8V^oXre~3f>YK%7pASnHUcA5W&9l_pCe0sc zTz!7a>Z+;#*k-fy3x|u;OINqpQLy{=Jj2A;=FX8B3DTk`y^XhIi@LOWMkeJf^LZJ6 zp@aABhxf<4h*{sh@7sWq%dvxHS7AE)me1Bo=#gv?9aZ{C@>yfwRIN$M$FlB!Ie&cC zvh6vp(wFiN#;k@1kYHQI%r1DaSG;9qTsly*wW-7MetJZ02!TW-sgaK*g|MI76; zHV#VN&W7y1p_YF^yy^AwjpERk{zG)%Jq|88_mA$R2?LDJrXCWOz1$e=ywsv#sc+c| znAfhDvotWI<6LWHzw)WmyR|1Y#3~QbBK)(}#I{#$&WT-4ngz7dOgoulmKMIYk8{Wv z?0-IE#~tan^r&VtGr4fBbEe|c_o+fwW)s|XHqkli!;=I3B&i$XRy;g&&y1I?z9(hM zusN?@$1Psp->`S`P`lLG&lKj~I=pLyf61j6uXDZnwD&Jv(&R^r8TMDEzf$^V<-{&Q zEA}j%mY>S8`M7lb(dSvICI5`+EGpJ_FR*a+c)wNW`sdhV9#c(KduFW4Gc_qsD|gOq zUg%qL=jg1v~{brb5oP0N7?D|3lL?_|^6Q|J<^d zjhk)Vtc9huY#ZCM&1G(PS*w<9+iuw{>sGh=-9Ep^_b)i-o^#$WJaw@q?V^YLZ&HiW zF@Ikn>mFS#ux6Er%IWaP#Ph7Kx)hKCGvB(TRzlNxLqI1HWSSHPsSxj1PZJO2g|=@P zq1872Jspi$ML2~N17KVL&M(_%I~b0(Lj8*C?WrS)1e)Vl17xN*|GbW%p0u=lF0zmD zPeeet*JyzlML8Z2D$`ZZW$WuQZ!6^f{+v#&IgvnN>O8T8SKx7}jI{3JqkMBik3$Kj%2t=1M_UDkaqZJEL;h;H=9g7oqU)#lsGlGeH9530C+ z?UWyV3`zI8ggI02Di~!P8ZSjy#6z+Jl<4ZWyiNcrQX6Epm)w5s&mWL}Mgunljb2>~ zn^!^yu?*2w!=9+vk3z-*pZp?viKQqW(}O@Hop(2&(3}0N3&b>G#9Ynyxzi<}ncP_P z?hJ{A$OtcOqyYMBNj=?_hG0B*!3yHkE$jS$+EI4phfA*moexz?tB>l&CH4&g^SB|* zyV8n^u5HMWhkD}&C+T$$qa3uE=q7c+bku>%E65rRprO&8P!b$|Tc?sGNn-l2@rF*+rY}OP_?OA-e6DV^y-!~>dY^7 zdI9{Tpcu?=TH-?7UMKrdZL*{0U0KVYsWszfl#y&V?&qeCrm4Zx?zSTEI-y8^`l}I& za@a83Ps>vtHFiB(X|0KvgYTmb3EbAXxGxG>&aXfnBb1Q=!v1&PV2|2nUb~lDLcY=k zA(=~?R`Zg^hmpb0MrG?VT)zLE=$59iL_->7LF|J=BkMyubkUwJV>;O($Xi~2f!FB5 z|6*Z&z44{yR`a>P_s$s>^)n6v4(uWClqgET&F$#MYj4{TiG9$*);PPhw@lw(%=0aZ z|7ighE*~f3iey~fdMPIb`UGCL9{OdRs{&qS|A>gkl8a+Ew7E1KNp5N3HmH&@#0dtQ zq+yC(%10}@Il-;6K9vPtQJ1y*$}){B9H16h@^>Xi5G+ktyY6g2G}D;gMfYeo-zIA* zyV6mwc4|`7AebblAs-)PzhDZUh}n`bQl7d5|0}+U`V90}-A=s-z`mRYJKkl$sQ*$pm;qWwk+^qM-KNyGzjQ1C;s$T}o#uKvxvyYuS{fH9m>0)bm}8;=uM z*UCx49xNiNz&j&y_Oror4~S_@@iP$g$SoMKn(%!oVGd!>)L{H?68{3TUEZ&_=?iL- zRu$U(KYtDqfL9A&U4Q#}-c^;2dN%Y<0i{z=BF+LcR^V@s|DGBf0G%MIr{lo>6zH_P z{KD2`a|0t6+j1Tcy#4?Kmq+@$c$0!$;4uUY2*|kdm~nPPpXu|Y zkJR0VeHnAWoJgu(ZXwvbc2~$RS~fKZcg_2-7nZVq!l z9`Dn;byp)RSR!LfiPi|pwkM*JW+hx?{`IMdCv@x`{M^v*l@Ov?%TBx66V<7=&re}0 z`*dfj5FM4VT-Z}i-tL^U!5G>6|F}NrtfQ{r$?}Piin|EoqbO;BxX;r!38JxhCPsz< zzwN1+sH4LM%$(<{qiK!iTw+B1M?CVle;Z4B&x&d;gBAZl*&4u))@OTs z4H9wmmzx;2!1)8>FZLRd-@Hg1+CHoO^2FE|0uO(KZPq}ANP5ND59k_F7bv*v8rG(p zs8*tODC}nOP^VO=x2&xgm+QI;&IAq^u7#^wxNHKJ5Ohc5I$bx?hb^Mk1Z#y;hXINh zf(x1~TngZQ5PrdkmJd@!rbvY1!osUo4A0Gu0nm3noPm}WWZl=h<4=+Pv(;T!sS{7< zS98mYO z&GZQXPT`#+Xb*(4)v#5iq=$)dVqf9m>?)DwE~{3|S}hr|M_HqERd>Xt1< zn^wd=`xm7O&d@4Wa1mRi;*IkGbh%e+cX%$zEbE@cmT zltR{VTOEr&qbj&KIFY~8tcYBN94z71Me$@hu5V0Kqdyc5XMNcvhWU6Cih~`1*Aer2 zOaLlIr}j?U(a*_^`2I3Q?THfkc1m~xGmt)WsU0n;^JDA&$tEW?USia3sPT}nPz2o4 z&#r=9!`hJOo_&f-v8Z1%&MGrMWnSA$MMSi zHw|sn>0~?j78AsAQob^zZ?NQTEJ~|AC`LZ5|55c*8jzI)huoE1vD>0TT-nL@&X8nw zoX5@wP^iN*bQ)Gg{q-{t2x}L+CNCg?{%?&Su17J);}`JLHmG-ET`-QJ!K-)^v!&_>@efWC`{hL+WB4P7fWE(4J>Ot*U71P={-apc<^z4qo)){PN~p-EI3$|y=;z!xeCoWtvv}JC__s&pl@1E8@0r!25zmCm2NMu4 zqVubB!$I?CPB1e!?1;m-Bi2eVE1#{XAg_1Y7dLnH(p-mRJ#&iu?$`F}#ViPp8&d?= zoJ(iao1hfM+)@hB;`vH75`i8s?(=xN5HfA0Up#)h?rOYAl{d?0eSX%u^b!VShcr;?Bka1Uj+6iON9Y4W7LoqzyzXje!q%kqi!3MnmzJn_VfE}=X<7yW z_p|%nw%kGaoJoy7crw_1_X{2nTo1uwVF%e3t&vpdxrp5c@wD#S0rOj+=jIU^p{JEsC>v;dckOD(}84G5z%bGeAZsa z7J#r?r>&se=>4S4Q*Syq9uaskU++YgKmi}HfrTbvmhxa)B>Hlg$)8#@2Zo6 zW1>-*I1vc=9%#>xYVHo`o@yNjpMs|f}6L{xhDEcOY#gN0S$pQTs)N|z-MGr z4ZP1j3Ea|%3Srhh3*^W>D2$aAto-ZfH$(ZeO$l>jQLHjIw4{k?j3H!ew|HhDO)4)};Gs!@W z?E}wZp=o7oQb3&V@>?%wr7O4ja1A%9Nk{-k-6u{1 z1b65dYTKx3$djpmMuOUqO=KGM&r+GfT(UMO{|x&{pE?%_wOFSovLl)!4*txj03lCa zuKVhTsU2!8^yiV)uv(!mtmj$E85-7bJPkF*)<{p1nLN-BQ9#iEs@{pr+Bq+%5RgS5 zc$4}enBSwmAVKvd!SxwNg(3()kyneJ^+?KBNsUA|!D|^nkrn62PEfq1f2cFrJDDz? zoijiJtIgIECD?`9g=A5R&f)ulC9FDPefHPhG(bl)wS2jb%zJiLsPXA?YJDwpiAjY% zX?{RWj`_#%=np*nt$kxA8kE=yO6zVh-tpA2jK7YmM8FE_^WZSHzz6`CXT1gBfOY+Tg!(NUt6$mTbVJ5)GT!a-giA7A={=Gg7a=Z7 zx}MC>+7C?Ef%6r5dB>-o(4+e>P_@QL3SCHFM|v039t%mK(iW0ku}!sKD?Eo^ezm3X z^neN@HD?#%>9s_L-Gk+S%guc~f+UDP)Jd=BqRQiM_V)U1%v3N4b`J#pJych{lt--AmB0uoL{x^K^#McWzM1? z*I+~zQ6r&G0 zWh3%4bM8dxVW2z3i-nob3Okr~>RxK*w&;%slN7oU@Gw{EzX5$P?91UDA^p zWA33G6WGN!1!`fls~56kk$YtUjv^XI9>z$eHX?QouAiiD_i~U zcZ`6{DHMRA$f8A2x=HT7aSi6}l(NL*aGpF(wlM)$58atVmCHe%9)TU`99}=zqOsX1 zg-dDmwJdv3TJJu=GCo1bjYa3ZZ(zGDrl7#jJA(=GJhHy;Dx4=Vak!`v=F?5v)%J5l z|5ew)zgzsS#?VeKfJC#-^0JH7gOCWPghZp-9Wu%(&nxr$>`CZhN64-=C7BqRhw6b2 zy6sDBM(b}yps>Hcvz+21=jET(&>_Obku)85?GfFday1ET$SeXcI>?ZVDD`Q?E7sn(Pv}K<@6F zl6tJ>5e~VbAI#41fpYgr$UZ~o?#rlvuOzk&m27>JN6JHbP7qZ>#W!ft;k68hSDfQz zE{4W!H%PvBnzenDUW|YS^+4_wUrZr_xZIth!!&t^r(60^2KkucjiEP6E;SaM5(&AZ zrGMA!YE;d&nzoi5bg&za(z{B7p zAZnF>xuwZkm(DxkLFv#$qD;F0uW4)6F#1N0mIT^u`N5=~{vY?m1jQkh5`m zT?)PLGs1ZLk57v=wxUbLk#WYlDnFA;#$UBLz2pS<>TZ*PLGnD0Rp2js4$q><0s9F( z$Tiy9&TxlMs2UW{Q_fjC?kSUd*@xC!)aHC>9xj%@COn3dQZp^v)58bbUTd0q4j zuQ%b)io&lns)N|MKJ_IIb5!Ti3(5b^2L{39P;1cTdTAK9GkDZ71wM}Z>7dxyg0hdv zA72zL9XVfCA-5;gWyp=7h*LDtLv$NZ5KZS>H=ce|`2t1I0Py<2iLSe<=q>n7HKP%J zZ*@nK5OY&2FX;q5a0AQgw5Y6fOj9)mU@Y1Hz5g+si4793%479kV$z4_d3CnwxFJBnOpk)8ferHTUv^q@yvw-1V;f0AiY+6)UsLd!3kgWrPQRtKFOwldP2zC=H`9w^NFqDv09g!AIPr4CB1YZ2-_3P&OQ6TBx`HI_+59Jb}RCwD7o^#|{`iSU z^d<)4%d;zkg!!Z3YOCcEhE=!X5e%*C7jpx-zoLuM<)V}}3l+q5PV~RYga1keG?N+p=1F)d`9U_VJK#Pow4>Im_NubE>9#M4 zH~)QByTnha*O{znrDl&j8R_YhlTjAcxLyjb-n|5%*f%WVQ*B>|x1uw!1-yJ;6GcW;9;ngPFAH zt8RtH3-YTAr;;>x#8w>rYy=Iz4VR<}zFcKiaNoa&7EoZlvtH+g}zyYr`R z%7a^^l#u?Ap--huS@~3FaVwE|#I?E7IUlBLV;i%CPSq-2)w-N=krYnVkfAHz5}QtU z3Tuq*pNYW>bDs&WOUf{OMY`!5IP1QBa-LoR5WG~O?V0+2gRx1gERQ^JjvAJ9K_6aneO5$KMJ%+i8uZ|a@Nyi~^{JgJG z?Ayl<*ncWAgy?YIKG`jPRaFrrLm;jG(q@@fzWBJx*V23cRk`Z2SHO68IehXXqKgBY z8?>vx)z@JBbG(31$*%8%fvul%X@89NvKG3`s7Hb>CcRSRyIWHuG_SRWOvQ14VMjBB zg4fc~a6dO2OU-DvrA#?x>Bb*}dP34n^>`M-9h&7N4mrMDnV`8p^a>w z9r8P_cTlZOaJC^nErI!EyV#}dK1o|-7O57oX#)7v&y(kXx`lg=&F@cdajh2R@H~aT z+8KlzxYxd;mg`70bUjR*mDUCzpTNe%Qi)rNk8porutK-@SABlcl#o0;Ch1hAWwe|_ zj<5x^$Fmac*JpMc*xQjqZl4e%Lk_RHSi~NdupH*1%@5i*Zu1y5nTBKoGOmZV^^HV-*#q(B92#pB1 zqvwY&0(Odlh;&~b=`zr4NF6bztkOg-nzbCM*w}D_d-6h#qVs&P?5E>yXP8u#>#%=E z(Bn!Ee*A+uI%rF-Ub?eVE|BVlSbzCuKxzF4MQ06ekQUf9#Z;(f^8oyF@n`oilgTyg%w9g#NlKwevBeOXfIjLWPAj!m9P-qR3 zT(0$ZL9KCe0ShDFd+LS`g0rG@-~C{*{YM_=F(usT;ne)5zn!bu`HTFu?d51WW~$m( zDVJR)#OtWO=65cUp`2vJ?${KC?u9*{63wpTo@`0Qi3REA2Znex0zAL znwfdK-;;K7?}zd{)U-dSAwenF%u{39$)_I52cZFz8*E&pbZg9m7g1CJnY9?Ntg$OC zaXujhREm7j15X6tHP=-1oRLK=G7_J;1P)r>IxeF+euld_d+NzZl&dni@0cWg#m0-9PkL(}W5RIBU+m)PjJ3~y4^twbuUj0EE}5`R^qufNJz<&yJjrM$ zmNH)3Cj~RG!N*eSBusJT@0b7%Vep^E$NCC~AOVCXHbh#!nf)Egu(5r+OrX!lg)}D! zl$-%^uRk6QD95OiLUqt^l-A7`7B2e_;N)014^LJLn&Cxk9$MCE09T$y%RSYeK&A}u zOq1iY_2vPf+n)7VZSkcq(wnwSsOE7olPYAD}L0-{+@PGfN z{faJU*N53?RSYjIjHCE`!;lE+CsQ#Nnz~^Zym@bq>)%`xU-a<)7uOp2qz;_p1jScp zxIJQ9t#E6e%Y7M1>Gqq!v}l#EChX!a+&Qo}TQb&Z_ZWpP@l6C!K;&({8m>l1@4x^) zl~a`o4#~)FYHbe9nV{-hCo{<)uka7piJ`ZDFMy&cy9Y?Utefu(OEHALGM$&|RsFd&TZ1#JR_ zbOg_+LO$e|mCSU)sV(>VnNJf=eS|l2PYryiXUU5ntOS$5*eR^zEY7X#HVwp$+(mMg zIngc+H?7dua#u`?0n#F%F1Rn)Z1xC4|Uh3OK+uC0a=&5pc4uh@SQ5{J=T>mOy zIGYGeqPW?ns>V})%Jpl+T;9(umsR}Pm?mYGL0(U>x-;X*KSB~s?7VKX1He)Z92VG%Hle%kYs%j=kG*#lfM6fq5`~!s2014H zsV=!U+VL*LUJP{nE>(rfJ}8;=fA1E!v%qqWws?#> z&+YVP+@R)am^nOvWfb^ss<8HEAf>`@;LjUA`dK7p_;5P`LM?OY1-N;lFb3#p##cz z%Wqj~(wn`LoBzX7#Pyz+DR#d$cfD6wp#l%@&S@1K3(DQIq@qYf5OiYs^e4l8xLSZ{ z(2=$Jvx?825_Z^By1*b=0BHc=``F%pYPejHhJX!%fRr{0fD3ZgIsDCVXKuak>=Y(W zSd*@}%`Gcrj?Mee{FJeW3nk+oOlHWEulhF#N49OX1H{XQ3S}Gp57E8*u(BEh;^_RAdECB(hOq^&=^&D&@{f*I z)uS;4XR}*t7xit#t{nTceQ{CgB~P3iMz3CYpFaU&kpx|4N`vfJ)2w_tJ*||GNiBKS z;S@C{aHDt)qFp03pXYw@j}JP6cNUmyIWPyMeJx@T8ZH5(*{_w!Df0_hj=MP?t6xAW zc`2o*8-N`(Y8_Y)Y`hyj;jkgH{$%%=q@Sa?5x`KHT)qgw)ZS@`2js>Wp_d?^bDpp3 z5p!a}xwYC@Ta7SI9G+RTg7HVwFn9GzMd4Ojk$`#4FxjGI6yUB#-+4G?GP~!xq@?E0 z2Xv*D%jBN%PMo-vEkJ6+t+a3sn%g#mdp?uwF{m7^(VwCp1T)EpR$U{AGEGb;aJzWT z`eA3i_vp0as=iuGUefv;b=wg<%mV{*A!m4|)+dcA5|6zt!x}t&!O?#$*v+%W;a_O1 zF1)ip{hWTj=B5y`0kV>wY&NrmcV2O@{XD4mZ}dQgJORvZ0QtmO;sn`^$pII$4=eHo zL-EbYyDCy@m8}QE3;EBy(tqW8$th~l2c-&lRF8&Z_s3{aamp3?huu8bS+;EYZ14WX zf?*-QfhbJQ5&-ca^j=1tN$ID!|7ig_(7}FQ5=8;;k75QsVykF&qYI1t09V76xwr&7 z@-z84L@zs?lJFZpWWsRg!~9aV^zxyW+BxhA1h)M6%L1M$0)a&A0v(f-%7`g=$w9() zgvGLuGlE`E_M%lROJp0Aca?=1FK)KRxpo}J>c3;7p7_UE)I&#Vx(jX(?wfdZxL@vb}io z`Q68AV^1Sxa@OSl3~zTL24l`5a8-3pTHqOx3IFbEHj*h0C$eKcGsVCC(Nvq-j4zWE zI!OU(ETKDnsNb%1_PZ~yHae-v@Q!##HXc;!AS2}stN*#boFYy)IFJHTtc~^s<+gNr zY7w>`t%Unn&An?yAp}DHQfp(ybv9GrQt**AOwgCWr6SDbY|`1w{T*I|eDi+|HOknz z-|s}ez*u5-7$%}P6q4~JHgOk^;f4IQA~bkPr5``ckBd;oi>+skv*C}s@BOO0Z3kVW zG*K!qu~QZn5}cbG0w}vFITgOUWALy~G?NK42#k*QOKU095wGT|nc3u^EflaP%Wvz% zb^4#)!~7%W!Enw;4sr0c3knAiH*51QMslUjkge~N*VhoxM%ygwi<%U^A_y}?Sk>+L zis}OOhsMh9N(TiOW2wsHjEBW)S{~G7OQah78IfkHpR>)Ta#Bi!yS^(<_(5!a6O*dt zTr?xyT~yWat;A&;JWZmnY@i0qiK0Tt9Jn+ffIx=Q?luJLN%%sqNIM0w7ukJd0`O1D z=wVw^IwRl25}#z-l#0P?>hWkSZBi3YwtPv=j#s=^R{7Vd=C!PvHYLr`plCQAdaEbe zKLP&(o`)p}sIdN)hwa*YqqCdi7MV@sP@T7#%Q|uzs*;1sj}sr}fE7zKu#v@M24vYSB}%wJFS>CAmf>3_e`5y+fo z{=j%94cJT9a+A7IP<`_~IzfFI0%0vXVq0pP!+uB(>GvT`rdC4Nim_HXIkhsx2XfnE zR~;#{Bt zj0a%XkG!$!lNn1UdX#(6YR%0j?&Uh)wsXCzhH#)sG|=th5C}Eay#Pgz&Y#pNND@P8kfH>Tr4t;Ul3WT znAech2fi!`F1zCB>k11Dkf zLUZe5x<-x{V`Ey!bfY6Z1dA(V*i<-YqF3#g$z&>g9mQs5Pi>-!lS81c6N{Pp2auM- z^O^)u5?LW+t$66ov?)m;wT0s~}Zix?`9zK0M4l8V;xr5A9B|zop=G+s~7BLRd zJy3X{*vO#LP)HwWz3A|Iy!fp<8Xx8PY66VcC1&mQW6zI98$RT=pCr!bukl?C)|N2;fWST=R6!y(D*-lE6{WOZ>R?GO zlU6PtQU|No%)Eq(D9ZI4Gbrkds(Rnn5OHX$aMm6GN|QIgnHi>3XOp1TyKJl=ARL?Y zO!k2~G(?fUgP5euUDZkU;x>zS*zr}?idmJ! zwY?vqhlG%@0H!NVM3&`Yn3ME&ftB>b-UgJ2|1x*+39TbUxb97kaPAEajG=sFP@cOx zPsAR&j{(w&n0FbDk_!K#c){@FmdB64ik6dy%D3vbB0pj)!~Cwk9tS_5bliy2cR5mZ zXPg9AX8Hnc@V9Z;+Gm36?o8mFkzDf~biXisq>S*CpuysldSZ4&ggpJGUI3L>i|H#Q z7PH8d!;t-Ply!p8c|h-AkoMe{FXg|c zGgkHa55hT&i!~huMzNrxF_e*wH)u@)kX78x3W|mRf zJ4*X{y59fjPpn3}Iu1+e4Jd=!;#tOaM-A?+P|owus{G})O+DS9ikjNF-b@&0nGMs5 z)A^QW7EWnq^)=wCsY)~ln@50(6oXk*m`1P^qm{@L@4oPp3$_olf~D*8&T=iEg((Tn z;belX(ufwsf{<%PjUs=W(95N7RFUM4$xu=EiGVC3w-Cf=8FOXDB9fL7KnjFvB%uVJ z&)UbV8M4eH*3fx-)|pn@At*O~k_q1N<^JLn)6|JBe;v|yF}S5DBP^VN$2B&Lr~nEC zwE>cJev#x^T48mx%gdAo4$>)(6zP(B7n+bP7ygTe+k|!TAp*iWv?eJE<$iOu+2icJ zig)k|4+<80@)Yo&Kt%b^F~rdT-JrrFv7&&x&4W|ayc>W#AKK_F5y7O@hq`Dt-f&<8 zAr32|#zs7-4Q0(=w#EBqNhYSt58j>SLOcnnJEKJQvvycK)y!S5ox!kZU7?%cdQ%CR za@&==BSGnp`qV=5^#L{EO5eB4frbEhs&kxxxle2Ep6JgEG-B_pj#3i_YLeqY0^{a1 zVaP`z59kol4TQ4_j0RmsUFBac4hHa(rQt6m@te8|G|&_OaY$e`!OEK^*Dcqb}h{ zfL=T0VXiaRnM@oFXzV81L1rjpI4gL9*tbo@I~8O&+Gk21HC>-voxEJ=H6uqhD8%kC zN7}O4g4NEGq_A8hYqrdG60-zmk8{x2O0@O$+PCBdzXBnQCHlU3l$(d@Rq?vp0%gn71=c8C^GO$e9EO=M65Q`1YuXpmmTC5L z=_7-B*Zv!JJqGSLs#XKZl|z7>+=0;)$k>D<2@@r<2QO}5fNR!9MowNXh94~NWWqKy zDP*_g7+Y}pORTs-)n4)^1t!m8!m8tphRfB%SlJ-vg_ zMYx?t5F{UpDSi`+gw+4j)n(2L7N+@1_Qv5@){dwAwmP>A@jf0 zN)L5^^4i?)x_bNft)g|r!w#zTLC35nbPJ|`4r>U!Dx?~;qZM^c3VoAKS*I3mQRoxD zzU2xjKgCLrP&l6bWo;B2ebBNoR$Q9%$1%EpI(30Mp`iu?JE)b1&==VwSc}2%{Rlct z>Sa8bN5a4;cK@`t>$!Um<6pu=NMFc^Y5YsG?|c78l})XvD@m)^Dn%8xpikV4#4ZVX zxJW710w@uTe`{QhPx)0dh|eZ-;3v5nPq?X(qR66cjV-%gP`WM^MyrMX#DR7hhKH33 z>!$w5WCv)+Bz=eSW$L8`uvH_91WX@nXDTSqexubZM0MbfW2E8co!DuqlaD6T3g_>M zLb;MbWWETmom2YAGfk^8Ul#vIxJ}yH!5jx2>1DjX4ht94cDvLXt}>y{n3^2g`t`d( z=T~zkO4_;a{9IA@^kMr5f8d5?2Bo2W-2u!ieE_T-wWYnqY1GB87NYfPLm^GxCefd9 zK*iFF61OFLcc%;iPL<>H_)#$X7oGClNnz(J6sfX3_m5)|1V-Eit#}$^V+7*}{|I?Q zBSUZ;XtwU*JgYfcsXjMr`B8DFX?{*@08N1KZ$1Nl`>izl#0b}^kK+f_s_37{I)st@ zv}B8G7tuu17_Q|9?RoCe;n!E@s<~QMUG%{tDJkIV|5DG^ySLhAep&{ zfpQ%KnHznag(ycG6zbpn6b{zXn%fDz$BI5Nlqj_^X$tZ}`ja(LhX!_d&E~B;xnj=H z^>bb-=?~N=zx<*?p+TfIi19)tC}*1U{p8H^JLNv(0t<0%$A>k>4Fc5zqknQcjeV4m zf5r&Xx&e%pe-?h(#)G~4DT8E*f| zY`ZTIR1YT3_rhiK1z*mQd22=BNu4W;q5*FOf}S*-B?i#26A9PiD7EA*0GoRFA1O*5 zKV-&8Dve|h z@wK1!_T(flJ!Eyx*s+_l;B6?Xo>If-f7z9<9r!O7sPTJuW7-kgcnEbOszk78W&|^M4C7!N-9zY1vX2TKrCaYq+qq!CN~2Igd(utT}Dp~JK#c-5GMEe zSthm{dq(KzdqxiMK?K=eqJ=B~6Dy1*VPQ~-pKEsQvH7c|uDJUA)KC%liyZYr&GNRsl zfPUR7zpunfGy;74B@3GB{l2l60#wj7MFBJH7@hj6?_RUp|(uiS3x4Ey#-Y{`=^c z1dTILd&l9475K??Ebfn{L}Yx;g#ZYLU*4C(a-Kn3V1KhrtdC2BbirpdN&h1R%$p)D zhsO~=+Ay3xM3gtHA1c=x(o7p2_2ZBA-3oX(EV(q44)EsAYm8zESi z(AYwzv!Wz5Ub{qpQ{g3K>e(`-$`Ba_q*gqGydi(GQFlvkl*=>N{)jRv9CE8$X^P_1#k? zDrtX+)5|hB`s3mp%@Tc|`p5#L{tF&PMk%|Au5>^6=lG&2s}J-5oj^k}+cy&ukIDt- z$6YsX*uW1p(`zth$u%&}hy!C(XbF`+v0bL#5$?o{?U|fbuYG$cPg2lfK*xq z$}n&$zb7gcWVym;f~TuMP;D>F$7|SuK~R$yXsy#1wdCVWCl*Zfe#B-||Ng*?aXr7o zdd;SCzAgP^u51g#R8W2=X-G6fCNF@sHIB*W7lYr4&B%Lpo~30DrM(uoCGg)b6WOy( z55-ge?^=b@{ldV&7^lgJQ3hN+q&6>shKP7XA54kB0d=!$94kLxN+VQUs7n;XIR-qV>dDeVVg`v8# z{nCdNFt$UN9qpWaJYr-tlAii4Wpa5B)oN$bYZ>xQMRgfna&K*XW+6e}`H9fr12e?{ zW#GSZesFL!RW5A+um1>CYQ6b*pm2yf(HhX!6=RCuv-timZYZszmV*P{d1T0_TFN*} z$2`}F(cSltTPbL#pC_KB0@5Ns!17H`3na2_C$o8n*rXlAZA1ypB=a;qs67~bX}#5y z-7YHs*JN#5S>EoSb8=7)eL|^B4+OkjLj>nOnZsIaM+G6$v@9^+EPMM)G&`@)& z*6KpS(?rE~IF#xu6@T|4`eNy_a{GZ8q7F8>n!UK*LlfuO<>tzm&=BHTc}lMJ2GH*n z@W*rrY&n|e3oBXyamND)sj_Hxku2NEe-FP>X=L2pq0)=TYCSgfL~V3XQ)~~V_S!9@ zu|U+i+!R?+CP~czY_4zoX4#NzA@{U(5jh*AUs7sy|!@B7#yrKQx%g}{cD`ZL#n)|T|cv!+KY={N*#Gd(r?Vm>6jz zuR241_MavRdr=26#80lNu*x)G%5=oTeSHLdpr^R6RX$j9k>$mj%!C+Ypu4(Z_(^@YeRyWOQwh4G_!=dUedJyibxf`HJO;i*2Dek4md zSWvrF(UW^Pl=}d+$S1C)(qcG2-ETcUl!?PniM5ZuzI~4+NC)Nn9r+y9Ral2jaWn^ml7!MA+gN^`MYN`^2s6E~1_4ag-L1k;z($ z&FKu9>PVW&7fkI+n98Ro$Y@yw0XWhGfH9b?9Xp86>-J#M*IlRz%Fyw7&eH8T&rO3Z zQ}tgA^G#hOmAnYV!R>BekdC!N=j`$P0ldi;e5Q5Y(%&+U8CfC;qP0RGp~>Rm}) zQx89x~R51MfJJ?2$!Z&Sb z1#z6!P}nogEo~0>gN&-h-8?h=t0E@{O{RcTdzPQ8AjLMnK2#$dqpDkzh_(eyoU=QL z;CDMOXs;^~KMBvPXz>3T3N2Io?0%_5(DBU!GPi-iK6aYV`L&7l!fnf8c2>5OZmfWO z*Rij(P;5{P^Ok2q#o~jEpSHvU_PkN$kRYRNL(CO)EZuli=de(YA?}A-_lRD6`Jnlm zkiLL@vHA-HXgVBBogauOSjgn>pZGT03t^(a47da?5naTzVkFLre(MC1V-4pU;vouJFEKp-5m-oPKsM` zch^$1KqwO2-HU5+_u}qa+}+)ZCHeBa-+9lu&Y%3b=bq%6%*-5j~ z)vErkbob!%Ibq{aj*X`~@Xt&rYa&Z+b$nH>rN8l==Q|btUMSD$R@{U6xQ^5PdkvLA z6|fqRBG@JAE{*ky$m|wNjYUpTvwIBtdr-hhX#~pbSm}KQXJg{xg@||l`4P&_Qae}d z=I>CatA+M_sus^I&wcGX_`&bHE?@uSAP(wa90VEhGx^iq!kcuh2_y|fIWi9B=_%6( zVF0{_^TfvFmDYP0V$2&KEVk*g9H`y(7$WRAY+n=l&U6^&f*#H~?IgyGGZ^MRyu}dz z6}eBH9py=mxTvQ)wRL>UMyZFt==csvLSdk5%9xY)%gV2!vbTEuXLNJK_9VLlx+DU< z9Dz`e&!n~a9xhGDDfKhojCq&Eakb}#$-=m@f}au)mgulvzR#0NPv@VU+8jb&>| z1Q7s$xIquOJg(tqa#9GOy&PK;VJy=5%_MRL_};Vce%Lzerv+QbexLuziG6EbIlM|a z#;tura@5Z1@BF`7fD5JxL z81~5STd_P!7@F$g_v@9rP<3rIdkD4_dXki~!c3n!9sk(l*FH_|pl#hn|KJ2xB|7gy17+w51@ z3wED+wf56g*Wxr+<0}6C<~B2k5Hu7$2D0DL&k1R_{wk`yVH20vWU~3s6tQ~rwR6E7 zR>O>A)sLxet1&8nrAZ}<3-UX(f!0C)fxtmmerI7DK$H8uZm0<)>M9z>gXD>Se0fOc zQ?h0#_=#FIM~o{{;xv&xXwF#o2zPXE!RAF47GmUi6NTBIuoh92%RsOk(>HWQpJb0& z5;E!))bL#Mr>ecEimF_Kjxg~NMmH(j`w2nb2D@KWw(8yxi2NW4-T+T<-Gj#N6%4e^ zA91e5_LZ$*J5sQQrsUu>%21XSNo^ZMD{|mU(=X5r1qmGV#p%g#Bnq%|ydP?&P{zP1 z?i<=+nvco-L0?D97`98VnemNu7xI+^jA8PvO>!2g zYHM#y9Go>Z&QQoY*L8yG@Jont$J1RDAc@s%?`SDb%$$qPaj51#H1IFKQkl$Ise{_0 zH8;nII#IBz8h@rA>>3ND5g$C5YwR7yHs1EH=Gs_mvDg!eJ|fAr6t}HTLxI+5^vmeMDEM_v24xLUAoXu^*lT@ zj#Eo497VhP2G241EgD9!PZDvc6=j&^hpU{}7}}8B@gR&(y9z1j_&UHv)ZwYlF+#IF zPhlsB7XE*gq%1*PlpqM2<52g^*89I6&?l}pKGbKy>$^R`cxKOnAZ^a4IVXNb%$dP1 zy-ntB_vh^obwZ+mg2#~$*!tOyR^AOh18YGAC@tZKC(pP|C>yb1uXBH^iulK0U*g;- z(a!JR!dK}aRE25~Ck)9U4TtZ6Yc8i^V^N zy~Kj(DJnMZ4vo$$9@|CsRPnw#7&JUwI^d2Ur*A&VOEOjA9UmM52J0Ur1%HGT+5NGG zC5RIo!EftaJ}%uvzt^C-)9qNk9-AD{7YIf7NFVIp0FIvrvegI!A@%AkSLVii!?t4I3-WVh=MwFCh?l_c+Hx!X{b@>DgDnJh;fx+Trqx{-J z4XG@JNC^bzPj0KXBJlE``{wQcC;F4fY5gZH{)5+r@%D_6gY?!89nD3@Iir5BNwbLz zc$ThxQXfs`+T*}smv41s{yrmQ>p!qrk3+&WtN69+nw1?mu`GkdlXf6tF=zm{kvWk7 zcb7HW+-))pB=H$EgT0!VNyr$?i=n`=Orjvs|JWiDXIP4T+aAT4w`h=O^HLQ!4 zQc7emsynls(+Vx(+ko>7o2s{)>}KIf3X^+7x%g63aucu-lod_~I&r>5U7r3If}(ioWH9&o)QU0TKVyyR)(S(YfY% zC3*|AN}5~g?4D*F4`eZxOqXV>2Le?==489eZZP2({AULU6HN=OY?`;s3$gCOjdqUg z><9#L^1BP$f}V!~fUupk`(+2)7`*MB3%-ssK7nHMfwmgb1s@+lDAD5;ZHpxs-j({WBuu}%+ zTuiDz(vNAY=?X^_S_G(nCP(+dhUsbSLUiI%5@A-O#eiVK@+8CLyBnu2!;{%|e5pXX990|` zzJyh2O&%{+EFO2cToncVR0e&ALU;yp(*&zRC6qA0@+63LUp~j%BYk#^1i+9r>7KaT zb@I+|GSZU+Q`3OFSxXFNOR;~=pVB-If>7K$TGbJ3;uz-q6WkzD*i{*-Ldg}A0Ixh- zLyrIUxhQ~r*n1d?N`uUC5ym5yDM{~z7_Sq0rIc1~Q&2p@f^tnpTRH0|*OWwNG?=roU0kTUK1`0roK7b2GFwh1 zis;OLt*#K?obxut#SuHBjy^x7_MsE_nhzcA!JekclnCYkses zFZsr572F8xIVr#O7ygEfB{u<2RngV!FV2YkMw$IqGk=U#bPQ%MtYAsrwPtcSwGIXf z3b7A2f8JG;igG%L$)*1ed9YD|QN|+WFg@Q;j4<)-UKHRb{_>}Mk{(!&Oa)9OvOo$v zn3amqefg~sJkN*F<-(wJ6G{0BDYu>Xrpq+P%J^qUWl>{PMc#Rw_swcgtQtmM{f~GR z7qL|Ljps9I(^e!5k*t8gL@@_F*Zp){%S#74)sg8kz}7;zJM!U=1#01=g2M&^2fW8| zAhk!ru!%vEu%l*4r#D$vY9=F_L$)J%=js{3l1$K1#Vv0cUjY3=x*_JB<~QV0rYlW z(zuwThieupb}DEnEBbE|Mp~X7Ir6KKF2M56f0?{0zNadyX@eY2!>$lq*Nt8Rd!wzX zLw@P#OWE30vQMU(6KWIa5*1ROdI{A=7f@06{qq|nQqdHNYtdWv5U~wm%UmPDh_PdCxAz1NYY_TtZU} zVSkC7Be}@fF%XXpy)dHgxy{(#%TNH<-p)!c+#mERzUioBSI*J5)N#YcMEW0Cs1EpH zz7*14`4Sac5Ck-JfI^7(;<(@*(0s-G_Tqr$AJHqL5Qj+9jJUTsqzPg_Jg^FXi!28W z;ag6vvovESp*2dU$L1St4Y(oW4?cOqeeA0iI7sdM?1u=K^zm!ty{$g4-49lN=)TQa z*y;7RhP7_auy&wpz-Sybs-$JM6yp+7ay3u`7b?AuG>pT&#}<8SW}O?&#t z&3=z(KHarF59qcN?eHZ9O7%&}xBle*LP)Hv2Z|tS?s^hIMzd%#{=J*JlFk^tA0hCJ z7G_ch@X~cya9i_Ex9YnAytJp=X~d#qIIc zfyaS%^U%B5>|48C-0&2h=|3mbN404xFs<(9pn&cy$xZFG;D$e70bPKik!^cU)nEi&I7rl3DOuLJcm%Ey+hkClrqATt}olyo6iV$D7wp(BBkjfb?=#LtwK z3!qmNvPf@c56stq*ihSaTij9tuiveMyYFP^J)xlj`R~J2Pv>=#IS^7aa8G66DcJeV z;i`aMr)Dh`(3+=Qn!cH_LiCYq>`2hY|n$ybB?$MWmWAKT8toE3^1c46mC1 zgGOvAf!Hd`we@!t`qqze*w()%w^QM4*r_@~S@+!{+0e#i zAGh0@#LeB0C;bSk`%FcvnpF@1QHSXBx7C=2&+!C7UZm>|6`*ogtx;U!)<3m+e;u=$ z0*Z(y{%%_vfMLEK3b8#s3n7yk9($FT^n<23@A%iI7rK3ssf8xP>Qv5?8)EOJmpz`Z zD9|MaQRIVqiUbgt9i6eUqT{D;Sa}Rk{<#i^tUnmkEl{EBV*VR#^1|V9eI1S*tu^eY zaCv_W)LCfyEL2IS1Csx-&``98{{>8LRa$Dp)b*+)r!pIRj_bhLb??3|w@ug~Bb36^ zza3~VTGyIR_rdzGPHs=BxG%T~nRj#D2td$a`;lF(oD>{i_R~^BS7NVxcw93jT-i1d z_IQCRQjd=$)%GEbV7};6^q~Cgu7hbUO+ZUgnVIx|-BRm3@Lt3%Ljkv9lF3il|8M{r zXqj8GGom%^lV6JP@Tpd_u>0YN0Whp2!p~Cjw6I=n} z8+x3+G@-;<$MS}BJiZMWd=ZgzuT~ecMM2&hz^0&k7i=jyBw_8Pd1H8pHWfwh5|xl} zO;R=;c-Tv!`awF?_-pc$v!1?O4J#rKi-Kn95#d*A4d0y3W$HE1-|q zpON`x&#|1kt}VKqh4K8!97V7iTR;++$6t85e%+y{zzLyvy&CyU(?h}wm3^XbW~@an zX`o0jdlMazTXHQ*aZ~sC)9K*eB=}FZZ}gD#GIi4tQ~UTRmkRYSx3 zYC!T0BD}md^n&WLXro(z4JdK`e0Tij^E?ba@^mQ}l2@pEQU;ZNP%*cYfDl^@AAZz_CzHRuGG>N1o}q*I4+y}F~Cl>=D7UMF!O071dyfVZ@*1Ndm7ClTROk;Rp<9+#Vg zPs&#cI|pqF{^6SQRL=UWg2S;aB85{`%mPnF#UyJ4tti8Wzp4g_&t1uSov*K6bU^n* zk8x50k9qtPms|0DvI_F|E>pQ_pf?a`_?5UObuK&?A?9BQ@e*ifXyY)?2HUQ%BvBy# zZXC^JM~~Ljhpv=+`I}YWb~~hpQ3RvyMswp3>%30RAAyE5ZP<0B`793QW3e%K#r4Kj zyb6!Q^~cgb2|HeOewswOCvvlC5aovcY!MO9udw;_}ybQ)ovv$KG_Ftbc1JVFADcG zasW3-==i#< zpI&SOlcN3xpFLYrm-6>M`TFaoSWmG>5zmC1k`7KJmrGUiU3t{gu(0}_5SoJGXlh+% zT3B$tN)RlvhfDGB4yF!OgC2Cof$NZ)&pWZ-GT(d4R(qy47ny}Cc5Zaf^s>%k#c=x| z9$|N*MW+lEAN0)|@R%_dqGWiOU#H8S8{+9vY?enQq@$94)d4&@>Ea4G6DJ7S(`p+*BKF4xJ3N9rjGCvn zj$wBp*vNUbx{bT$_im|GIG?pCJ!5`YpHX*kd}swA!v+=$CCN%23B08;BZn@x1caE; zqo>^<+bR;fSZ6yrfO#Gc24D^z4z$9^r{klR0zB>tu-r7nc#oGc6z(){3eGVZ%S0-o z1{`THq(v4tCa#Ulz5>G}vo>phS=3dsx_^yk=1I0;=9=t|(d%GEEin`5epv58yRU!+ zjkw>bO^139?t~&!3zi!?p>KcAEJz{PM*uCh;xX9v@?&@Ujx?b`6GdVr^56J z8LyYbLbsRhtLBXs#>oR@t~ysi@l0|77S)+vC0^ydSyziZayA%V!%h_%Tc8R!^hnZEa`trl-(Aswbt!bs}z&a+u(%#T4^I}iuu^)MknbC?*yc$Oi+?P<0J*yYq>kRvag|vn(~$gQ!csoIy1+54L7frC12odnv7yVr`B6C2P$nCQI+b zxZM(B!u#5yN5(icZ(zG6fs`J&g14TdFtZudQ9`eBUK@S^iP1Q?%LV}EvF{c~qdaCv z3Jz_LD&xs3yvsk^+Yd|oQVclD`6QF?3!2d)|8>yoTV)j)VKS>STf)xXyDk~105xvF z_7F`6s*7X`6+4jhl4idHR5ez`9r89JOs>>JbYo^Zzxk9 z^54xPn2@=q5T7hVOCS5iN`5)pK4uSZtko(@!<|7lWYnFKK=YlPJ>P45{PwJ1>}(8Q=j(j_LW4elCM{42nPrd-E46C|<;gva)}b&c4z_^A z)}H%S>=*qaa=t{>65Sq9nRJFJ1)EH)#a5f?NaG*y=3gUUvTO?pqVCiyn65k%N^(jP zPf|9GQtQXGL#h$aCDrBDC^Hte(B)Da1Xf%zLPNQmq0@L55HRov8+O0xrIydHu)+w5zp}5rOCpqefC&Qg8Gh4IdslHxKY_G zwKr2I2t%360eJZhZQ08kF@MdW6H*d5Z6`K^ zKSWhTpWqB4%J_&HKXn}5BPk{SJAGd|sqKdzr?72=_#!Mbi5I9e`bHt##bGb!4d$-7_tMMGeO#m7=ND)Zx@>&B;7s`@b$U8?DT#S6fJii%qzuObIybO7s0r$gtk~G2Y?qVaO z!?p@Jxy}Ay`n*f?voMDnua`nwv@mXnQx{>CJrd5TZ@>~w)WX$w*jxa2F{Jx(kVJ3p z`sLg01OI_1IG>P;NYtl{*BzV0LWKK2Fl9iyN}oyNx%;R>!C2=aHuW6D*l~s}&O9iuHKwCq4Ve{OgW98B{9YDc|F#C8x_^tPf!oCy;Xm6;i2eI%>K#Qd z_ucZsugXwnxORGnoReCwp`rvPr`7_Af>PZSAkX|#4mF*Lg+BLQ7mhsRt!cH@l$xa@Hc`l-P>dK!TRR&m({W1WmFdkW?RK<=e-%l>kPVIB zX7LV%R_@|OQhtn1kJ+@e`9(5RRbn@oB;kT;vqX+) z>~>qz-ZRmn4jOzMnqR5v!1|`6P57nU+Uspxl!WO|eRw!Y3xLmOGII-}#0sz4aK@Fu za-zjAQ|7gfSNlRG(Yp%smWtR2Fn;=aq~iUa`BAdVe&4RQP{gEic$oJ|5$WCCffq6R zz@SYuUwHUGd^q8HB&K)oNRopt&Gvr?6$P@6-z|u$0cS&_zbS=BjH)@A4+wdH2^2`r z^6Lz_D{0gbs$ei`UEnlqquXWbSaTNs33ob|$_49~sH|^$uZA~>>%-mkOhi-?k*GN4 zSh%s^dVF~~@avuV_pI@Wxwy-69<&tnA|_Gm**n&Yu7d?(c=LK=ta zlyiF1KDPfM^ea;Ny4NKX#Wk)~S*m@QG{GB8OMI2gwa&lU*$VvWH~Pi+i5T9qNx=1d z)@&^#pd@^1M#FeC;@>XPC{I}hC5gX%DzQp~r(?|k&}#TcJA`J0ZUtUr>}P0S1ynv@ zCOF2rja=>3NER;oL@SOGHDL*u(V3Ll5dVw(?{_G+IOXVN*buBSNEZzLpeo|9!mk_n zAtt41!3KlBZsxCGm0`5c4YhyyxR?Mgt})9p%uX-EwPA2~h~Z;2uIm!ExWq3Q8aP`1 z_I+u;t2d@OI_5O%f{Hbd3iFBmNX74n|MK&t+oN0)DlHAt)^h-h!NuI}iVALi_7y`z zDo-o>5cCr(9y~@yk_M8DBjX^WEQUgwl1jqc;g>~+Ul9vS|1f zq)LN+A>Ke#vgX_g`rl%4=6}M5E}hvfM;;$9`KHEL%x@omV8kboCbE&)ZG1lO&<~#<7(hIm;S!~tH^=qj!8mFDugz|N=Cxom?B$* zv7d9RPx-bq_9Y?sgKODgZz?+O8CNW~G|-6Mi>d!I|7{`fV!OhZ1N89( zE-pf5(M>cGkYPKMakL1O@*|__<(VD%`A7B!#u)(Vr@s3j9SGU>j{($M5v#R=nuBT{ zo8Cr?5YHq0CX!%xY6Ru^7E1~Zde3+e69WaA-wIiKF=GD|uDc|!HS_fN!sz@9HX5fv zveCMERP$}CFD33XaMJqZj5WAh4~ie6=Nec%s8J$uAW?mm{wpZ3PqsN=~_fIQ1LgEXkw+WcrVgk?G8bJX7|Fq;v<*lgbrTmyX1bRIv4Xes7N?&2r;%-`<~ zibu*?G7sM+y!-UVI+aUhPNJ{Cj)AD1e#E$VqFG7iQbomY*G`76*U~XwFD=n7XWJ*k zjEWYX9RGDtuQC#&57#W7b_89NM~eQIT$jRuSTl1rTsAb%2>KtSqujo{@hajN!t8JT zocbB}`**fD)C)+8IsrS^$lXO2;6=I?DCJd@+KXb4t(MSw;8jjwNZhzUcwI<{LtB6T z1JSyDV!V)i%U7^pC3W+wz7DuT8EJ@Pw$^1PGPjmEr@3WBH zO;)fcj?OIuT_fSJ){0u@ecKJjbT<#jPo+Xuz^Q56t*na_O2x+OEqDjq%mAQ1hhiS$ zeUCoZfl$4f4Y&-EsG`@R?)JX7e0^aX6Nookaw3tehwXAU|FI69M@Qq`;OXwY%N}v^ z;gT?5S&fFSO*tWM)wga(s9N%qBO7h%jOT|iE^sYDjPMQ7S%#O{{KfzM8Vboph58pM~%shd6 z16_MKGJMJzYXF?x|L9~Sf6tW#?B`gK44SPBn_SJ<&IF|bb{`#uvd7;dXy3*u9HI{` z%^tO*ynZN~RcaVll^IX0=#9Q_c}5=lj|ISXfDSAQc&x)nIYyV}eY>tBl}5RoTrSW* z(A!^uZ|<#!xCTs}8|=Nm$gXhjj;rEh(C;;~7p7KFDZRN9hi^XO5WR=zD8>7YQ+Z3@ z*7{|z>5Pj(Vf0o9#99Y-`(XBu%V3u-7x0EoorCAj#Irc=@$LykUL$zh#&>{|b9;>* zH=>bZ9E(h^yy^ea`Hm41boRzx7AHkPc6veD;m_3!F_GxdjFy_9XAQgx~+6%Q@L z_{fU8ojVxg@&RYck^)DF&&zVLE`lP-Y0~xz$0ds~nkLbd){8Ys$##98=fVankXC+G z?jug4B^KQxUCw%;zG~l(0hIS>aO)2mA+Xt2^7#lx5y(Hj_4151&_LRS0ibZ@d}X9l zkpn?;t8kjYy(R%*6vmbYzEjaXi)gr|V02JynCRZyb6;r)g&S=;J-X%MnOOp=g_Zjs zD-8MHqe=zb?^Skj!63$S;``fY}N>{FQ-TU z_q1jS(~*qKUa;BpG38IxUK`ntY%ss0wYK~zo(Mt&4TEwDm8FALRGD>b32H)73T8FF?#e-(FE@E!UP+TN?k4 z!Uci)A+V9Dh+TaOOs)taixNvE#QsjXIn?r({z|>W`U)emp;p;#87Y~ZyA#geV)ebi z=AjKP-0yPfKUtx~tW9So;1#tszznsA?3UxY>b+pO3in}Z8AT)bZs#=&fE>IzGsu~6 z*3Sn%CZyU$g>;o`(neyTh9a?4h_TT}ux&DhOe%J+G;;Zg!NbkQ` zBQ>={U=u|)b0oVKh9QHaRh%K$DiVixKG}a*0%Nt<)H?%t)41@jYxpGgzYPASrIxtQ z3UZqg3VMQSTTPfhq%1*eDBXURX3nC?Y=Oz*gcgFqQvr~w#ae?l z8MJ`ri8h7t=&kHB<+z+YmCMD=)AT_GAe4=#5CR!wR1j=y@(-yekXNMbHwrtO<|n zJz1vhE7Samu**NL=>h@cWiF~BShd@i?!C_P$G8|A&P$d+Qm-(pBfZt@*x?*AF=LvM z5mpOB%ApYjLrZ#BaeJpe6kdDQ_-}VV66Ok|chyLCgZSPPKCF6xX{x0fMhIA>_F7@* zI$-y};YIHMlzG((#M;k^8=hYii`8c&EK~cmg2Zg&Oa9?w z-%w90mflUNNWI|~A3Myr0ANGzLV$Q=F|ni`I*6-&WE8{;=0*pP-DtGlZclXjEcYYgt9=XF+4-3Eh+0dmLj)BtosLw1tyTB?3d+2 zt$VKBo(%D{-Z*xZ&)6|OeD3H%>9>lfTg11xp1}wZq?!y#hg4- z?KM`oF%X7oCKYaXMh zY`g5H*}Q+&)Nxup8xIDTG<55@B-j-VpD(4IX1`QJG?CODpcS8*LG#%5s5x>+L7bYq z4Oew;aJ^UX*Ad(q;ln~_*WI*yIFZcwKf}VWc6!)b#152d<;V}z63tg z*i1V>gK?UwTD$GP>E*kbzJ{SEGv*e7V6w1ThPzI|cME(s$#Q1&3i3f$2k7`;y3llY zv!i2asExbWMtE|a3WGme#6}6yg)b3oLB(_%I}Eirey5hOn9C&oU4D=ZUZ9Gp1qaD2 zgU2s=lHhHmDF|}U-*)i7WS1vXuisV0?g;=wzOJhgAGzm@l*Twc)Rqt1$x0caU`df` z6n#^DV`eGZyWB{p^-8RgJM&n|9s4iOt=U6X_}R~)V58gpC0QbO7Y0l+f$vdEK9YVZ z{9%jx`D^RPTVG&MjHOe;K2AM4wzXx5-AEQ`k}c-VdVE8Ag%ZEUlHODT3F1 z6x`ZnHT2W1K4--$GF5YrOf@8ax6OaL!Gzre%rP6^cj*?AYoo-OZj^-G&rJichTd`H zdAwi?Czgn_J~cMcs9N#*OwF-3r@#V(&ztKOu3>DeH+O)x+o*gdR{fMUq2SNT1-V9YUw|ej>}w@otM~ z1Q33zCk94A$3^W41>YJzT_YNO+w|erFN(n?~VbwfnKqiAz*0 zn3!i}sIr!&t^46-x#pK35m)(^>nU_|uST1Y**? zT*DT{p75Kz9QP4l#vU2DC%F3}sQIM^(k&Hmk=s&M(&As=3>fcdmfDf_GD%b{Tq-vDLf|Gjd^SQcbhFh$lLa7pvI>w%1ecn%XdS&U?qw!sXrgT zN^@t(;uOw>Qz44>?xtO7N`L*T#L^V1&6QNB5G`J`!WiLP)Q6C7i#7$N!>z9H0LPm@ z*Z}4kykEn9o4FrDCS}eXETzv zGDov&^q}riLDP2xWKQ1K3EzE0zLPTqY(12SXmdp`Y#F%`uL0&HU`2^1;>&9QhQMIK zp_+Qoy~Y=pk9!k?3qyO(n%7x`iP$ZQrt7pJF3n_|VP=^iZfavYX4j~HQdQ-=QUbXy zmpX(P?GVYV-}|s5ncF$zCz#R3s;@8oivW5vNFv&4`@gjfeNx%Yzrz=bHuUsyRo*}m zYgmhoq}xrFN4hQ*7>XrWYZ}-#-h59H<`N?uxNgQ@G@gAC+OPo!M>G_>{-BtYAH<*! zF8o#xlUK^*%8`4%kH%eru*d_?xBHe4{w!#4$Fa8)u$JOdp>R-c+LCrw5hk6G7~eS3 z^_8=VM>=*`m#9q>ppTVQ)nJ={sK4PKp$k{j$oyb-$a=}ees2{(oV+k!D?frh6^Ps1 zQ;(9*gr}9VPk~l%D&%HQqE&xZG6GA8r0P4qh6!CmVY|!N^BtntVId_~=RyC{q}h!T zFuR|8uRrjq=azUP8NJ}y>qD|Q_Z8?i9x%?^M=Ab&Vxn7a$qxR2K#k7t_es5!sgPlu zYP(;#xR=C-h@ctR&?S+*%dUG(qrJxHeb)=+etZic-~xfWZ#bxZi9Zk)2)I}tjoj_K zQowbs{Nv^HkBDO>8mna!YV|3difWU7$NXxbg>5Dd++BajCFBgL$5+-D{ZeoFI@~Av zY37&1)CDwu?r|DtKj0MtF1&*G*D1M3Pn#r7i_Yqz?HurD50|+TUzx%}Tya^)zP&8> zh&O@v_fik?E=nWb4xyO~;^fOC8;P7`2MU zhB2`M0*gx}+`8gv#D!k%6?jt48@tHYMH1-j9q-NVk(tlJN0o|`E4E21^Aw{4X6?M! z%MARPkiQa{O7u0&63uvFgqpDisBt0|V!%e^%*$vFbGZeW#KwjfKv6eKl$S^6%0oM+ zVT`!@j_nxFg3rlQD-gBXpaYILg;3p8)&cev$Ki(2ztzz-KXQ*b=PO3fc5Hl#(BPCs zN*g8A!J#w!f7^uLYv%TuA{&{*OiZd3aC+UNhC5Q#h22nw$j6$qCW2=(zBN&Hzqqcdf$L~JwF z=%^||sXazO>l4!8kMm|y7mPbR7DQ`^EJ`WehhNAR?Tjh*d-WtcUC^iqZpP<{yRksQQD?ns7RFPUBeg8_WbpFrFbUHawsI`VpI8 z#_{Bp;fK1RuE)kM{)Jflb@9oCOjoWe!W5QT@WP&H;$O zFgW@ejH?C72$v36Fxq9pquR0pX~?t)VJo|c(^pxXMUUlY@#c-cFUmSCdvfA$L66hp zCQz;yZh<$Cf=l1*ll~MWn}A#PSo~iHLK&YtI%sKwIS}{4!#fi86Q_cKmqNRyrRT8W zuz}rh4g}drj)wSt3e}#pD!Yjs5Baa9?H?J}bB$tz?pIHAvPiWG#to{kARkz=Kp=zc zkozU0nq}d1c97X~9beO3w?+Dxb#l{4cJ*UoPvb2z4rO7CHqdP;Q4zUG8A(7NyJ~g%zY^o$>uMa6ehIgpzW*Z+Sv|!XDcP*KjHGyn|5Bz}t ztPI=N#GG4pwVTXisHETDoUOhC^XJQ-hPs$e77NcGI%$30Vb|)Ixb*FvYT2Qbz=fV* zvGtctvbWO~Rg#3LNimEv_EhK2U5jTGYQ~~46C%=5id%)7zz#z*C~JV#_f2%ABg3Mw zl<5m-vc(?=xa;fn2MJA<;8LyesWV44?3c3s{#(V3{!6>bL)?Vw?pKrSX?+pCx0~v1 zZTSsZ;V0XPquL>Be4t6;;$<}zo_LI8{7q>UWL9#~W^CbJt%1br6H;sJ7vo+MySE`* zOwtx8VCgx?31M%AgVH;O`&o#`ZWzK*a}fN)?o$3rnYWM$$e`Xu|rJ67dm~UuMN3mcrtM|jS;|k=at73B*oVm9DHyZ#%*ftR2Dd1S$ zG{u3QP1{QwZvD;I+X{Qg&ob>X+abooF5EGX&bjjpSrzd|LFW%RVd2cniBug=);4&= zjbONV`7f31ShC!_F4hh@)50aSn9d!4K7plZ8W-!P3bo4@)TWX|0y|>*(`2iDMqLaQ z>M@XVH1_;(cU}sj@t0pN>+Orh%q-irq_$4$b+&AR`yIaVKou9rS9C~&wXtA=UK`d7 zYSnA>b-fyR42Tin)nxf;4U6`^+jl5{cP}PqoI{eED4zmk-4z;TWwX!W?q=k#Sx6*u z==v=L*SPwvgJ#iq#KnbN;~8W|g7R;s1GBuAwzP^#!+s{{forl0<@nZM8!0y7^(dXN zN^Q->+YVRYjk{P{8rz}*;oKSgGA>dccf`LV&XX&FcbvWS`)3iQ=Y_lE@MsuLcHw+B z0q>zDTW&abdCtlSsM=*ffkUI!2hRhmw8M(-46oN*VXV&HNqsW*M_8&U4g~3VBLtx{ zdmy|MdGi4WisSmir$3LNyHSl29rogwNDmp{SeB=q_l|ASc4OI0h1jtXzace#VyA*KQ%GXHS z=o0w6;0OevQ>Gz&XH8tvBVqCUGRp(zS|5gx=rTI4uQCtiDOVEPcm~l~G{UJa2PCk_ zMTL%QFVFL{cD2SbyJEx7qb@P5oLWL*Va)=ZiQvz95%4?#6gojeYji!SZ2HUV;`TV%g zsE^W@_05AG&{OJ{WSGRqWT(O3d744o9eMgJ{8&*wr-b5qK-(;ZDugwlhNZet9g&fL z=v-Y|6Kl<%(n%ABZfV7cD?s>WFh=A)2GKxR$3m_NOouFX`WzG&IJ0LM=L?!QWBV4p zdJw60Mtw=C{+%n0Ba}yIfvKKChVp=DzZ$ySSkdi0gjpsgWl?_645AL_L_;9U(B&jq zRB(MzE8{WN6h(ytJlhu<(V>W>IzDo#tKq+Z`%J0H*k&A?* z)8sx&L}!X~6-HaGJxQhdOBd|s_^P|}{;iPw4O=kwRl{;U1Uy|OGR-A2DdStF>CI$u zK)#v;ixAfa-yjKKooE@}_V+@&_M32pGafu{>FBGngo`q@gIj)LSO;{Jli&7r^Vb)k z2|rt0qE=!IiuM<56CT2eo$#c8HkbTdZ*t=Ox)vj=nX&Z$|Duk!15m3U@j4l>*^*Ef zSvx>$n@nRH2-6&I4XD(#ay46-R)+gM+ix26mwz_XlJ*&1wxZQQ;f<$w3of#c=0LXo{2`ZRyf&_Y3iZR)j+6XGN}>Hlby&8jcv5vv8hDTGOT6IQ_KyqQnQK(Tptu znRzYkwJj0XfpmHUFblb-lCfE?X8G53+Kp=C))&bb&8tdv{K{M^Z%7vD)o;)}(zWha z^eF9v5i?^{A-_+-9^};yvVXjrLIBN5*?XKvspv=H6UcL04+bfmA5$U*3f25!YtH61 z%zNkOsv(_rIf;ooblwT!=%;VuqhznF|5dV?97~j3naj`OAiUv_fEv8wiLyLdB^v(k z8}rfZl_toa&BT>uGaGWoxr;=Qqq9n#J*-UWflDSY|LHd`kuT`tHihAesxnty*w?`Z z_Qwt<1r&c${QElYp6}?o#EwdCwgZI0UCdNDcg11arUlcAaa&gm?>S2%sedKGt1aHq z`Tt1GDL3Z{f71+IvCRtl6}eqab(@vU{!kTNkI`RXTLDN}hJ>NEgI>)f#HVC2*Y@$w z88)rfO+1N&F_$!KzRk*&=n9fT;0?Jx zhFrF%b-(4FUBTx`tEbo!S-TI+W$2(VVVExDR^XjD*a*?ZMeiQ5dtE;15sq}x!)^}x z6o$3=U@{-ka|+VVtAMd`pD0h*!KRIQ6iYZbfgEAA?qnR;NNvu&(nOMat3~U!P>q(5vrwPKiWL&&- z@Q25u&MR!X*~g~s(bSRA)WFVTxChy20tEd3%#x7M()vuga1;&+rZ^Aw!P`Ei9iGDO=i?;T80dZz9~A6?jr_Fw6J*z$F7ZM9et$=Bu&4(G5V%#xj1=f=hJi3J=J$9_A~W zo2$^KYieM7Rgzc*jl|6+ZdUD zihP74#*)aJ_{<-8qa)tTv(*xPPqIo&Ad+CrOf7<5eT@;B24b18Y>J?Po`JS zm#lul{u>+^wmo|L9o%T0NS`bR~Pd&w}a&4{hyF?V=l5eGTE6%OfCuCMM7Y}q{KYB%Kje)O!lUAAvUl*saGpz^Lof2}=+^o%87VtJ29(U1=rQBYRodh+Pk$EeaNcsTkVQb=*1I) zJ`UYDX`F{lB=8LJRpgJvn3fVBpoP3>Sa$QZCUp2c?;Jcj(;9z|B&&r zxXxs3AdB0E@#S!!kGF4Nr=sK)`Sfhw;#&b4AicxvDcvjDmLDeBUfx;+J@0x5fD{b{ z-7;F6ByK-%&_mvl>grY4)X>i)w#UC>j-FGg?g&O4_r#3;8a)$TzIk+aN#x;@XCePe zHZvCor~gCIl#x7{e51#r)8!iZWB%+5zj`YD$6w6uXp3+WNz3;~lRaVF0HH$; zxyVQP7lS2SbvQ#g1V4m6vNx7dM2XQ6fah_EZ|ccX1~CZSI~C7XuQk(x##`QR|DoR1 zcl-mB0co539->PQ#=5!Pwu0TYWJD=DYh}6wQP#ez`hqOMseVFfkQh z%3Z!Dn%^3EelEL|U9av_Jm9H%+=7RjI z#%(}^BJ!_5DVGAasVN8@jammX`KQHQGuZguoqwi8PEGyQNP;8~>t=%Nil}+{%37Bw zf3JOHY#kZ01H_tlE~VviG(fpOsFRqyn)5B^zNnwGcSlBXsGr6mt^@wM#1hG1Po~`BmZqprwcpmxjijirX(CT@2^E0(lzaIz!_ko_I z;dw??N?8=RhZf`%^_I5loBymQMm!VQ zYw&*1OdrB$AUva;bMtNwYa1snosM<^d9h}w`>1WJ~1M<#>3unPDBg75hk za0C`(I;1m{QM|GuW?b|*R(RJLU&a-LmqbKUT$>`k(951NrY(~xnTOFe;&ciObESH5 zLiKmDGY(LDXbws}X|-LmPP00w$H@b>J>L&38-?%SPSPT!wI};Sc8SZVFOq4}l{sj( zP~d}9^=ei_LA0TJnc+S2F3&Gx)1zu#6^m^W)2MW6t=9eHxLAtz7uJ_nGcgoPPiPXJ z&@JLK9hkoELSysmx%-FS8DB-Um|5=nLm?Et*LgLW5A8r#T02yeis3{ydCeHt4xZZ5 zG`HXs-d8WAlo_<~I4DyK0JYN@VY(`iTiE7b#ziZTSEVnQFVYk8^n-EUa9(2Gzu~)l z#bNe)8ppPZ^MY0saITiYF^aJAsNc#s%40;FP`^6Ae7vdJil%>bcR#9e=_e-^CZd|G zh-yyqPF^)}H`r}MicL*Fpt#A1SL~-sYcOc&JWk<`e?1VnB6jp{fZc?sFr25INVk2o zwDEohT`t3^6&3)aS%No(+P&P6q9A{f8I-zQA@m3RQaXn|vN-7DYqanL85Vpr(svPD z8{{q=-#bA@*m6Y}O7gG-9_+OrRd4e@sgap>=s!v&5J~MN3jPq$|Y|RkdqdVP%Msc?Y07de8UDK$g)02<(J^%lKWj`(0CG{QVqT&%cdH6)hmdl>vY4X3*i|#Bv zse-6Y6dV=7U^gSmc8QKso2#OeEv~uJj+97>vwMMrw^}WUSDJNoz!I_Q{ek8l3c9lQ zP~k7c0W6QV4AdfTY6a|L^mR&WP<$B7R4n5I9^`@oOsn4GjA(3cyQ5+dQu$epCydww zD?6-ZAOhX6Aa7ah{L`+U$Mx$w(}*CfQyZz=5ke2xy@_BX1T4LALL@HxY{ka6u_Lox zGMZnX{CX%?mBi~r;Qcor1zoC9AhEES8=OM|G3W1JWL2DCXRpT>pDTYq?Ij*&&$G=D zY>GB4J_&T)Hp0>vN1?t?L_3DCqgD<(c-cz9H}of8wKwHGz!9)j(SExlDF@KZe3syV zL^=-zrS+@VEE~kZ0o${Q+Y3TO?CE4B{URuq?1se+-6OD<0SvLgZ47%@BE=rmM6$nHe~MUq3Uqx*lWC&?Z>alZsE(HwSzR)Y98f8UsR zG24EhW{<>n1eFCi)r?#P9t?3)(hMxm=1|Q|B(ewjAIxC1AOoBYuScek>ciqYYB%Rg zF|R+cKqL5<2wms;Ra|l;`GrT8*z3TjKY3}A&3KUU25EPw1m*nv0F189TSv2)S*EO?%J#2(bem^w z3cP+;y@l~hJL@?(^zxm}9)#hvj5!z```{>jZ>_a(G4Xs4})P?ksx3!V95kK#mRE)T*5tQUxM3 zMP>3JgFw`p=RL&a23Ch>e`fN11myEfMHRCo_-b_fAiF6WzC$7CfMDTF&JrTbnPg#9 z)QQ^G5RXZpAHG&7?JPO`_rEnTa=H2&Iv~N$1j~*Bql6)4L{$8d+r9 zUkvSWuT7FDJ+ncuUr>xrjM=9IF5E6=wV%DI$vlQ1v^1#?u=eFTit)4pna&AzC{+O7 z!fQ1Gl(hOEy=l@w>zCrbn`$rUlr0$LPd~Qw4$pCv@fz55CgZFQl9%Bzb%Mex*^gH! z5I+kLyqO}tVjivG(tBDwpQVi0RvN60s*sXLL^<8GB6v zs##5(f)>AvI7b7w`1(fT?XTJoz9)WlxD`Ka(|0pAt346KsN{ zCI}DgYrjF2E}=LqJEJnK+E||AO+ufk&`Gu=)%%?vQV@v{WK4Roi}kz^TR6Iek{yV{ zMRdd0*~va3Tf6NhSP`KdmCt1s1J;e zQE=WJo?m$4qGNZjf;_JKql5et%mG>Di!}H0J?;o%@t)a3{HO*KF`R>VwR+|SB$JpA z;`9Do>s0RV-t@4l%sM7y+A6*|L9l^gL&xYAiK>K6n%;UAb1s6h^A;Jnu_RO7&4$iC z9TLtJ{XcRj$Q6KhgXZ6RHD_*ArIPQjbW5w-)vIszGvQJ{ZY_?UqXwg;K z*-0If*!N=g%>(fXwD0A50wYei-!cN?^wuW{rGyGlu)8H$-j>RK%}dzeO~{s;|0CYh zFq~XyJEKCb73i5vVt>z2$NdQ$*c6ycef6+|$ZFcnw!uV3#fS@^mL1RB)9-eo*oIeh>QTM>nc z*fT-(B=TGXqRJY8(vO@qQxP_zFHD%4$$b?;Q(_dnk=!y(9Of`3AJi5(X5MrMy{4Dw zkn6B>RXqcy(FfznrN*F>G0BGiz>RLHg@CbVfDxm3;|&}dJ7-6Nv$wvgiZgva;rgV; zZ zs8>Td!)q&QwLL@C77QkAi2$WC)CGC+5?sUpC4b!>pJ7=7A6TxQ_q{BPK5?7pU(y<< zC5k;bS`H{q;%ZZauAqSnben~GXwSSqtx3nowVsxJo|F?USEEFs`I>Bs!{v(I!5?zo zw{@@jj&xa*3T64Xx#oiPkQ-l{A9oK-P(AiagQZ;xMy?Mhkq`7l1$~5_LBzSo!Si*P zw*U2WN{d-`&H}Z^4s z**V$MVxj-}ew2O#2s5vHeaDDM2bMw%yuXtJks;2>n0fjZojS5zEA?njgV{j_HyH!v zCiMfz0K+^?D{`E;^~`A^QWY?}pR&a)hrR^@VASrp`?_}lZ%+?iIYzcRF&|KS4gfx% zcb>*M$L!SP1DrJTWq3#n$9n0S*$cxpod_hGbizgj2$%i8bzf+N zNLqI7t42HhauQXz?~V1F<1yk%B@}+s&hy>OJmZllt=XZ^`;g0f69Kf@ny)eAJ$pvQ z4$vfA5BLjuwGkXrh}f@r?OCx)moZ(Mtd|$%{pDYNI{@rw$Oj|VpEvIYEK=w5g!YID zhdA}2!ysT2dBZ*>iLM(l5u2Lqz)=FI*p}^P&k3`1LK81CzXD@_9tW{fcE~7TO%2t^HVJlni&+lQ7* z%rR_)ZDV%ZIR~AG%We)C`MyHx-&3y@A#n$mC9>t67V_q!^s;vHwyo9W&MG>t%ZEi2 z5Dq=G$k)dAI1EsN8 zO<Hi))W1s`hBNN5&4rh}=4=e_Szj*(@19od%q*zM@Cu_lM~yvqyTrr{M1#OI-wKy;f>T_n(Eu zPDO&m`omW4wR#6|I)4nb;pN!-2SiL?fK23a6=C1o zfLqXs`o<=cWTPp7vFa|@s5a1azx(R&J1kq+{A@ z6d-*l5*Pt?8(5%Gm_U}e^H~Y4u7{G}a7gpb9AAu%2as_#M!Z;_&LNTqCW}yLCuyqv z>~7L;@JL7C`x#0pLg$~h_=L^&DnbKYvvBwdThlnsZ}Sn463IoFpf~DvWs3V+Zr3nI zZG}QZB~3OQZp~eD^rK-Al6o?#2}Vw0yIEdURtFQY85xH;Z>EoVz3mXB>Zfai0zMA+ z2{W-U{P!Pb8C)iBG`MJ-hp9S)IGsj6dL}oS&tNmLhFBz2-02a&qtoL;xTHjXa^I^jo+v@+?4W=dn)ptDk$THRy2l0@HiyXl+a?5!FD^4q zMHc#+dxsZ@3m8s^6o}aR`XzyV&Oq&CEhvN@rZKt_Xxwf(j*Sc5TCz3TrI*vyQkgoG zrZ}DdIn#f_`_sf`)=9H>EvdAuYL)j!dK|l}tFO#@5!Y|l%CgtNy3zpp;+4ht@Sc(2 z2Rc$F4Z8+KUTN-8Y1pc!RCQCeD01!$k=Tq@{#H4f_Sq9Wr8K1hl=2+3cB@uK#~Nj% zOJ#Z=U%;bY90w*6TMHfFm^7r7E0PaS;1dpuHV{jyh$fVU#V}w=Ybn_p;;Fq)n=mzexWr_C%Azt*UoU0mvnLV zRX!6~o&?bb(D=eH+~yhsLF~Kbva8O+0JF&9<@;wK4%A1~EYv}6`Hc$7O>=Ka#s&nN>96{{%~oZ_2_5r*Z7{CaEPppRDh z9N2keJf=^}GLs8@tw~2hegGsNTc<}{!6`WHEZ?8ElRl>bCCL&S+8Skrc3dRQk?~N| z#PJVv1DilCGQzp^TY<)zJ&xVC`}Ermqm&mCIuNb#6($dt%i2izT*c)AM|gjEv_#?! zsw*w>7S*Yt%t9DFt1w39uSsvj5#jaT=op63k*FVV^&AcUKe1h&9wLO|jM{d74wA3` zFc4vGDGn_%q{Xj-lP#w3kamwrChHqI&qtAFul6-9Y3=lNCy)e5*mLt#SZ&?qre-wrd}BBQwW-Tl|2bQDP|@VGO% z#N-Tx#x2f>s~_Q%JrHUaM{*;3Q1en=zLov4U?;F+sp44sgmFGvcn|jqYWqCz<*_iANg!fi17sj-jZCd%u^wIzf)2=@Z;mjD$2F ztiG~E)9+0Z&zT^1itDrN%AFIf{I=yRmUrxBaqTXVp1k~h&~66iK;$Mu2Eb_AWwsvy zL=Lq6AJ4&_usqH&U~H2<&ZvbX+{bAQ4$Jt#ZpJ+0EtgwZ{|}q#b+p4~K~Fhj!+XSP_lcT571ewhDejHZk?cEP4nmON3E+BPGh1FVjx1$_Wm}W z`0MYrXqIag$8RwsitK^nUTqP#G~)JUFwMs56^gTJOZfShwAb)GdH!Le4jk+Amqr9T zjnDMHqZ3p-=5=lFOIUtTa{00{6eSS%y;6|HWkFo4{A>r24FX-A@2CVRjl0PkWJ^WN zYXPuE$lReYx}XKjvVk=}d+8<8wAd}Za73`46f;HnKAK{`u|EK72Ubl$s)9PRX0HeA zr~kPACb-P&c%DbAAe6v;K&H33$8&YcTj`dqM`Hl14kfeFMd9YvPDjaU-k#5ZMhNC} z(`m+Sy2t8NeTWe;XYxtsp+tdwvnzV1zBh05Z9{mG2LA$u`#{h4ZLZLmYz2!4W1=I_ zvSfQXzjkhCK#Bvi=08rV=;3F>wAU3h#K^i=T>KeYe(m(JcSz%^-~x2=^zDgU9bcUMw30XnRq@~E+Nvv6Uu?4$-CxD)5|v=q$$7J6D$&%eGPBRD?-@<#Buo51WsAr3|#bSP05K>8ST+=tNX_Bo_BLZVl zTdoF<=OGr}6Nc8hrRTNIit`4uxzaEuuLK^pS(tq~MJ5aJK8_agI3#;nj7TfbL-T8} z3VaA$3=`RUf5;Z8Zh6IJ4|F|`ON@QV20#`vO^YrOk~e&+&H_kRtp5$$mw*}6avt$t zWU=;aM#RAF9D#*hvhxIg9AE{Q8zs>72fKM) z-4+C)2VXOvdxf&N3KMOkVZB;Io_yH#b-pOE2-7&kfyW zrRS6O@@eEnt*t<;uVC8iuH~u|3&q@5f*PfA$A^X< zR8sB*M3e?5#gd?>6qcC89n~6|=L$RVn+A8EVR<-(9}}^q$zS?{mB@|BM_2Q+PWB_^{Sw(DFA zQ*-AyDx`fkUVHD6FempJT(as$_plQ@p_Q0p6m7S+-vaT{GVi|L34N^B&%`0hO?ENt zN>5 z)YeQrkg2vmvrmyR`Fuq&;jME|w?Qz;M)uQUAVEO~*1yD!LhzN+%BV;0^%CeW1vW=8 z%MdiW1m_FYhG{@2nafoG*;hZ7g<79k9)sXXJU|=9)!shZ&AWk%IF7hAc0bdH-}4MB z3{0a>sOOAF9Sl9A#s2UCiDw7@4Q7**xQ_ja?UcT-L;lK6a&IdKK#*$#(PpDOQ$v<= z8W!JopSwhjrCx|GoTA4UuW4js7>!Nc={Qpk0m!|HMiAE5BtHI)dD_Q2qzOwoF^x7T z1idoutV!fp*hbib1wmval35s=LPd&zP2x+2bv2Sp(m6_uAd|T0e_T}me{cam`9zZzFbUzk{IXm(M2t^F`vm9Y^@s5(B2dG_E9nA1 zpXdlMNX|kGA~ps%T@%98M1R}=fZA997FvNG22L<0umbP1U1@FLtGCPQ5_+F)Pl?wOfXlv7hQRX!#df6YJ)V z<-8SmLpuE->Aq9{(dAx#$+GPq-DNIb`t(T@(d^4B@^YO|DR~$7o9dI^lhR zM!yMu3*w{Cb^p5*snS5piAe zl{TPMb8M4b>_9dRZoew6870h1x|&|L*(j6j)UGsy{rJX2tONKVyL&@~v6=QKufW>l z-bRFx9f7+~FZMl-CHRh&{#as_9H+D&=UAIT_CdEK=ifP4ar$7RA4ga##d^013ariO zA{i{5b_RSRE*JgM@2l!9D{bf6bwAaQ(>Be#a~4Z^MH_AW8v5V_i3_I5FC)3rU9yMb z*49n6mhO#{KhW7bmH6vTfuO};NRpr4l!xcr05k~1_PHcg8#7EFxUA)o`G`F$c8X&1 zaK%DD?N4-#2x6ywJW9;w_{0ggG5KPmie{F#m{C^RixcWZtJ@%h(32Mtim3e=ZLyV~tPDPY*A+F>kajwB>-%LiGlQlm?<~z-tgt0p2 zGh+BDs$;4%eY(!whlCHaak0^#5l$&|9zSKI8vv$rS z(az_#GG7$f56W|-B^~}Aajffu+rL2SRS>NORzW}A+I$^jCBZvcQTkUNtck642 z-O>I1$W5z#)6)#&7-vbK_B!v?Jxs-FpY8W3w&JEvR|sqxL%OmUa!S#Ta!g9=!Xe(} zBNA|#%Imo{rcx#fc)5)2Hw?m6ACKsc$D0XyD_wNV;xWX2Ml$>jP=O@y&4u91*t%Uj z16GSnisxZ=02TsP7g;HlrmaomW75A=q)eWFs<3XmfGOCw14G5o%P14!Q-PUA0IC8q=IV?)4TA9%_xkWiH&n6XZcI2rwO8!OjpW zNp!t_bfribjrcsryRO)JeRE8XNCqw$oZd1S*^VO(SI$OsodzNc(lXR|zN9E|ED?AJ z2pGri(uGk^0>Av8I*gxPd(LA(o$+iRWTXPnAOBCnUq1NC#Cdt=aT;&qO`|uf?+g?o z>ItjX1y#Vm>ABzj{1BCwEnTnBsNL$cxTDisy287bglQ68%?WVLtl>1i!$p@sFz!3T zsk;0P7dm-VdK$5?qHG802|B!ELyazx7h%yOqIDpeqpfuS&h9x$7{g)^I&-jPbLZb` z?O?4y4EXip_oD-ZJ#wTnR}l`RRv-NE5hXto0ruih>}B=Ka`fj+s~z&J_K=MwKWccs zNbjl+@&K;oss>RUs{=cf=_pjp&6S;7;fAWkJEnP2l}vTPf?K+b;&CNf2@o|mdl=h?yJHUbP2|~eQ9aJE@KU)0S-rZC`nS`%ksMyO3Sm_){ zSv#PtB-BF4vCb?$31fy09EomY%% z51xbt@l$OS4Y-~|eOTHsu96nG)@b-d90w~T zx|(TRY5=uvIjSto>|OJE-P;))>uVdi)iE5|UEZfRJ=TD{KqX}j5X_gbx;JD`t0e2r z2Kn_Ti$@7K+NEeFJK6I3)*Mx4EG(VY1 zGxH$DbaxA+o=qkYZmfVRCah-mCip&oTplp8cl0q|NGz$n+0c=srcE<4xtfoc!Hw_^ z((KNSqc0|w;7{FNlUYJbDsmoH=2+%#*(rw?M7HD32gd#TV;^G^_YlHXqwrjDF%UMy=q79gvhx9gNOTdT z_r+6x20VrBMdA2Ym44|swT=FJ`c^E{ng!o#T_gro+>o=t)a}I#;z{RjqySx_%86idG+~zJ2BKA+z z&9u(llO=*f-p_=?TU$C)(jw6!leL8XoWX<|HYx8}zAad^0yQ-o&Zs=jl~^pzIy%nu`g8p9T#D zLHYomfSodF&xKA`ZbX8%E}+Xk518DfDiPi2sDQ7r>Oo^QY$KJye!y<8cBuyV#St|p zM{K&U&KSZ9g5V+{O}fLIRkKK$F}&^S8IzkOz~dg>mu(KB_EYjL&DXdE(DF|mLOU9VGA_^ICWm5BZHUNP zWLLDB&Zr%L2Hi8dNP|5f8P$@4$dd424?TBWBgEs0Vq8CeA`c#t0;l^hY0+Ht;`#t> z{;5oR4!7&>Lv=}(xUL?A3(&fzgcN;ivM;Gc$2IiO$BO{y2$I$0_^9v$kEkWC{)?Qu|Ku)3qg{898&*iQ|4h;}tf^7tmTL zl;CD?NHc3u3}`yltqqYle|7~aTL@QH$`Z1(Cwnly*pQmt-1giY-A?S+0 zMG#Cr?Hi!bsjt^qYR??oAIFE)gn(6e7^CA74%^avK`Rg3(deON@ikvvd+&qdC0Qn` z4)*x}KauXZp1Buc^@tsXze5%Yy#e?K<&LzF*S}tzHd@dwVImO4C|o1vV^}c$bfxCJ zLUQ*_YLef`GEGXG9?F!hEgUii01cGe!M~Vfae1qQ3;9rzxjJjKQ;isUl!D(aVOJt=v*zn3;>bAW1ILu{dCj34MCQXiZnxZ zzzNMYer{K_rBaxz4YMaa1&m$V#p1Wqvub2{6hL){iE?|nkkAi z;6qDJb(g%4aw-oY6ErwqYC@;-q|5mw&>(C|bCVeB?cEZ!0%c3rsW(W&Q9PfT#Ce$< zexb}p=~&ndWEm1+vtv~b`&_oRb-lLM%A;ODDt>3fA_CSLVpdSUy6EtBc8PZwDY<^6 z3y`Ry!CYlmRg%}+g{w8y(n+r@c-a&BCDh){u;mz*(404WLo_}DZ(b#V}sd@~JuM=7ygGymD&p+4=J6&0$f@EkP-zz+XSiU9cFvv+y zs+~Zv@BUrMW04dXh>)|gfgLzmW+z23Yut0rU#~^0_B0_FtOO*o_HjKC>;`$i{OSeQ z?WyP5&EPi~V3P@^N6xVDan*mv)y&d@DPg?DOgBEG>$l}N81K>FOz!WhO7iQ5_@1vz zGqdscnH+<&@s4kq@Re#eK> zezrFZe3{6VA1|I>D=2P}S2g{%{?~wIsZ46=rrFsvTdlZwrT9mpQ#fYY@lO~-^;OE1 z0;nn4PL}oYNt|Jb6V+4uZvZ5h0215;Ml-wH@KTw|40YS%r6XN%jp5EHNfHy%LWvh- zQC;Trj1FN!j#*i?sKvM2hN}J9jM@~#ZF^a}aS8IiO@y;~9Yf3@pmm`lmm zRN)dGh{K@Qu8VJFQ*l6F9Xeo+kzQl!Z1IgF5>9rEYY(EDYM#>ZFFUJAGF2m39nN9rhxxZ6dF z`%BgITA0_0XRpR`YkYs`vVR?&`5;-xE+rnp%THc2Y zlcmrhl9@M`A);xb+8m*K4c%N{2 z7E<@R_IP*lkzMa`tCw^QJB0Dp%By8Smut`#-1b_l@3@lBhs6vXUd1l$ck7YD#pByx z#kGQoPto78b^4CE4EDajcfIjC&tAObo1cv?si;xpdda@gb_BhqgcsYcDg4SPl26J; z>^6|PIvQ%JrlL*%;`L%287TayJHhfOh1D2r8-{T&9pxad!HVeJC**6alk5+&u_xmNp0JF8n)6R?1 zt6pSR-j9drIV}1tsv+_|N6Jp~7rHE8+))&eMn7d%lC*dRqWjq@iXZ3nd{fn_+lb~2 z*En*lT_`1W<&BQV@goR)3SpQ=#fmtr{qap9WPiY|jMY_^Wvm`exvuG7H2+>D!K@;DUT!M1i;m=>3xslu)%G`{KxaW*TQ~pp}iSb_HQiQ*ezV>HGObI;)ZP8G}XU<9}5!lj3L4pWUpJ1)pXJ zwn(X%!bi$}^p{!wF%z2fQn;ygN!0bY$U-kHZ8zzn4RAT9Mp4Fg+n6ZkQzeYV(GsM` zHn|gIkQ}daLgvzp`p0_v=}u2P!*+n->k0$aXsMS(KU^cav7qTef(${S$Rh+qqPM2s zhG2^0O!AVEVFe4d`h#U0&*}!F59) zx~rZ`Ayx2Vy|@6JmpEV&=e12o|2t^yKB`^}1h?q{E@dGGBMDDDA2*-2hu}YLrcSWY zkp7ySQ4l%EPZQ}gGX6T8s%NVhq%`jT>(QLqM9@?};a}VT^q5BSc_dHxF2tWr5I1><>Y zwi?D+oHZp?Y$Ih5z`#WjjnuFs@#7R_u+8V{JUV{0lxkrXmI6A2h;B~0=8)F5r1Ct& zOW9|j4VrQi9oy)@fK5NZ6b3BIIetyYTBQAmljbR>pc{f`@ouoH(p8r$=mVL02g}aA z0-C~}W*}ld`9xyMinPwe+3(*ODL^X1-lP-sJ#rQ;001fQowS6;-P8O3`zgG*9d!a! zMuACjzU8APW5%Z1Y~bMU;5UZU6eKL16;vBoBFvQJOW5h0RYA|kKVAjBt{vdW!TZ)q zxZ>{MzXTN?Ov%26`UTt}bf^d2dLJarjrK!EN5!CQRH4f976?EG^BlMkdAv$>dcb!= zv!Y+-gV8BSDS);sbqfDgI4^7YP2#!`8Aj2RM5R9K$l3Lglr`=3WvA^O3~U|)Ri7R; zdcd1SG6gm|JUFz_g^C~_UVJN!wmwaqO6=)Z+2mJ?QT*5x%U_pHZ+Uxg{Qcnm zg1?p8A`b1T8QKcoK0m*GxY+I%BY!kmwP=0f9eY$y!he5>-l1c@=D&{&9&|2hx5*HmH{IOOe<-h{xSxKnM97gK?@*euIhySFa|hvSE{PBvApG zmt%QU361 zOzL7GFdt!J_$ z-`qOD=d6Plr$#R>pSl;7DMFjXL8vV2Db$tGbc`*XP>%csa~`x#b!ehT`b$Aa z2B{WY!dX16<~X8^)_>h$PgOz*nzn+bHt@X(;rP- zr;s94BAVGM)O-i+5Z??kow2)d!1HcF4Du1h4Q2T?)^(Np2D)Sp*~)MhSk1nZVt+Nj zWS2`GjF@C`L#*p{y!rH?*3!X5+EQ^sf`_`MO-659$7@3DayK#2r}0ym8ddnrxC<$2 z8C}EGZiq&`?{#j?@78L44>;4_(wvl>@utKjf*?#z=WY{3%n*$RMKnN@?D|5DFp?wP zv6eBy7hYM5yb6-4!Xc2%`%NyoLMQq33BVd2jgx}?pQSUB_F>m3VJ|--nV4JVRGb3s zEmX%igVTK{IJFGcG%HY+!;kTLGzH7KOhxbS%dWfGHe7Q^Ae;t;lsT?`0EtaKCe>E_6ePy%CrI$}APFsqbGGr=e$`dyGo>&>G__d#%Lm;u* z`5T)$MoxkjY&x8;IMXHVi+}}z`TgcE)5zZG)(@o=A&tqEe4?u&N+eREuGI*i6q_`! z#88ZV#inmL_y^uPPqQOY2ly^J|AiiN=kq(6hayZZ<=(m-CTIX)k9TjCr9qO$AbT&kOEB1KXahMER^dJJ3L}=eB3NJYm|Kk7+hypMQvp{(}t? zGp;XS%MV-QezupknwFzI1&YbRKM6hKcLUd|HsGF`P+)D(cDMr73d1q+R>s49;eYY4 z9UvRgraRBGy`$}vb8ID045$8~`5AA~?Ox4T{~$a9YkRg=R5?|eD{Hk`1bh_v7Z2yE z%7%mh_=_I|T1_bq%_=-K_?f=0C!2wn(|IheD67#layxxD{#Yw|N)49CFSXeW;p7GzgyxJsS zZHJtE&&Lz+=7O}cI?Wem`+J^(crOJ+8KvY}3|6lH9>20A|F#(yps4wY^Yi-+T66)n zmc!b#>m{q7@vLwCsz^M%V9)=-6UV&}yJQLxjrd>feP>t{%hoPQ5d_JIAc`0elrRGb z3^TP5F=AHCiU9+db3(y{iUAQ(F<}m1U}nrrcbQQ!E9RWVgi0_Wx2mPwedfCN)_cD1 zIrp5ykACW1tKRk2sx{S94Kv+S8ecj--dU&-;>q~Xn2f(*pO>1(HwjwheQIkl>H8kv zpdf&EC*$`Qjenku=|8)PkndfRi;|3Q>exaUzeeL|@2&46#N*?SWc>Kj_$@PIVBfbR z^6aSth5A3*c|pZl1q_4XUq^yR4ewy>V<$N%n^r_+6XT>{r_@{la#Y=+A)Dmf^Br z!6$IEM#e>|jja8ZJ|AP?ckN%zi}9kqgo6CB1?1<|Joqcvy2E05T>Mncgj*rF=DeEl zyEc1mf3=PL5{d&!e(_&x9{d&jy!~Q1#7~uz{D9{7yEe;9PqYsI3a2PTC5GhuC~$R^ z{0a_PWQJFlzs>K6xXrISYX-k-)7OojyX^e^JN#+uA(g*LMF?ooLh>s(DtDNAqUA+z zPB#dbYwrrbYqNFrtL^wv89U39`aPJEA^8)+#PQ%)oU%`cAG7dOy zc&2IfCRpS0AO?QdX8FujC}=Xz#~iVPW(-6NQB( zll?i3;6nuG5S&Y}4y30ULs*y%**BdCb|cuA;2?rq5FAEuZ-S!;9xLpvVPUg~9Z&Eg z;!7rY1;J|x-b8R3!5IYaA^0G{hX_7S@M(fC5S&BsO@i+e{Dk0Kg7XM2Aow%EIzj1a zdO=}f<$`o{DiCZ;uqnaj1X~hpL$Dpe_5?c;>=g7X*BE7-U%wtJtJS}@R=<1wTgLzA z{(dN{Us?VBnZG}^*AKf+q)CeprQHnR7H^p!riS=8acY2OY99*gn?@+&0R_o$Bi zT5VnV$%DR7t-u?Pz33!g-Li(frEvqOyv`f1xfdjFF}k6=ZPx~{sHHa^_PVz`HKmU{ zXG;T!FOuTsQ)1;C@5Rb*6f^*%^-?@y#v-}N`$h7ujr_oez0VX1V2qYByU{%u>5>oe{gOp!EcvbkT3MPC~q{zAAH|>;YUmF z%Z~;>kb7f)7+K(jr`F1rzutUCKJ2(Z*naWC{det=PpGh8ULo5bYUoJt3BR@SMFTg; z^)L9t5(5do$;HbD9a|{xb;TcsRFGhPMwC1njgi}5_lF%7CD?in$miy@ko(^9hYpn_ zxawSMd6(20@{BwF(A!*sS5>+kxNm7*VEjFQxMU&06HF!rR>)l)c>KOUY`2u)F@(##7-c#vCFJXd2gT0orJ%d#J>!id&5 zpDz2uIeiHZ>9<~UVAW#Hyz~AbFY&@%p6t^|n{CldIqeUYpS`f}fU}zT_nDgW$NZsn zz87BcM**4}jMfyV*T?t-j z5W+qA=*La+@Q12BBzR?o2Hf%MZd~>EesFw`1Wz-r%dOq($SvLN2OTR(@qA-@4lg$6 z?vEw?{mFVWGU399>T@N&eqgVW;wC0vHPaTn(!9@a0Ie;&@j!$7n#SmoMx$x~efoRj zyw689b6)S$^c>y*+U+O(7uHNN1V=7T4tx@bH?9W?_w`NF)9KDcs~dzr&JT+D1|>I=IY`{Gs~dS;rD$KO;v z`hWkwonAAr|7nV^vDmf5U$xqNZJWhX{hwjx({9=SjWq@fnAWL0iVBeGH5HSqy7gpV$^-*8j8iuk?S$r#`Cvclv+VFV@!1K^!Z_ z;+UUdsw3u8Ob_vAJhhgO_H-nl{n!smkW{}E>RF9o2TOhFm%(c?sK4dRDH8kG7Q5)@ zL;H@tR(?)+=tVihPmfiWl-Nlq?mVrWSIPM>0iQ8R@GL%GQ9@(qW^7Ux$8;3@Mb34+ z$^{MbqW-&c)_Ll#ou#CB(X6V<60;8ifBe{s8TU$3g&Z_$U!~r2JAq?tk)Zrsa@MOl z;a?p5z)M&2LC~z<_><(zwSfY@`+29b#K>4m^J!pmOsRWvkf2#G@SK;9zmb6F)t=<_ zHMN^CuM?A6OFVTfgt^yg_drtdewPfY-*;;riMdW4A4AKa3%qaG}A>ds;3ndlqdwbD3FZ?!oSGl|nN;=l%pq5?+URFw~+3oclrNQ$d z!dx8OuS<018>p!N@tlehy%ClIpS;mYbSDfI#=Tf>v!vw99HE9U=KDzW=6}Z~eX;Ue z&3yu=Zg?A|&c-=PI&LfPiy3;cXN0i|k69@V+FA;@&+IYEdnL<-TJ7lSs?yPk6Jq&b zYp;@oL?NHTVQZ9Cb=-xz<>>oLb(~HLaJAQ*I6TI znsyDA>N?dF#@cV!&g*N8y|BjiEt(}U)u|xVE$*1~n!NZZzd^~vXdE7p6<)1QwI=uz!l;L*=9AYFPlFevXp!1|T;^29GOP)}1Yu;rVg zfP1d3NtFAD->c*6>LAo;v=zSLP0n%_m%A!@h$ z-m4hcy?B7e`Q3QgX3ul-{f}dy)`VnD?$~)Uw-3+cCvL{T>y7&~ciyd#)xW8usCYgG z^v>VVSPn^(wLM^}h&vnu8wZujj<=xR)cd zIbTt+cuNed^K#-AKfWTXyYj1i+0Ga!@^Rv_o?n(-N`4@JLcSw$$KQ$T{pyme)xs0< zDFd3S^MDPz!TXqkk!PAJCuJ$R-~U8XmghIH+ABS^0Q@A zOp|08#J)o8%=f2d*2R@FlZd^O*w^w-$?hIfXYyxapfa%szd0%Eq-(D6CVG}cZ}iJ7 z+58$!H1AHvKvIYk_xRZfS#nUcrsz1SXRs4@<}m)=X;7Id6)A&F)UztV39KZMP#=Z*>eTtLwzQ-_Oe$G^oc-T@nMfHJ!Le8Jw*7 zUVqMhUJTTBbmBT~)yVREnsEBlV&Ir9saI;I%uLmR^BETdPt2USg5-m;Y3_YEWmF6_ zsbkJ9@z^N~_HEC-i6!enro&x0woYa!Ys9rlj)A7j?rZLMNtSuYeaQ7*3~bqZNb@mw zj!aixo0~x9^ZC+R&4a=TvYP?693rpJ=U1^BYn$FOlLm%d%_}jm%{W+7Q_@s+t52TB z^&}?KDfP1gLOPGoOd;o2xWVT@!|>z)H@T0dIyrx`v*hwbm!<)Io91Oc`V<3?;-ck& zo>~6c@)4O?j&+G(`@S`!;1^pQWkN#{b%(p+mXJ5#KI@4M`9dlp6 zMg;rUz9G!rl4vf>F;UU6&Jq8~s3$`GyAglCWJ@*8(~kJF;vWl~NfftuB;YWDt7gwt z>XF#51TVB{B=|QIyn2PFH?5B$!T!Ff-(Mr5>ECmmP)~b;1CGCw(s5~SCq{i%QN9C> zUE< zw?DpL<(eI-PLgyHzHdeQ{clC8*H`%7Pwn12BGq3q-)6AyW7RwxsjiaY_k+LkcBI;7 z`AWggBK&8XNVV0m20y;PH9{V#z83mNe~&4V>blL6y_jADO_X|^X2lP^2+bgMhs!=c z?5Flo>PGLc|F9>1j#6(b|J|nZt12I&9$a(nA9@EO)s<7~si^)*(*MCON?oV+5Wzl1 z?1C?Y)w-LdKk|FqBTC)0dTR;GXNNzXJv*LRShPxVIjic~MHsQ97R@>`_ZAwvEm{sAKK4afZ8 zSBi;J-_;#2*hfhGjMPZ=nY&X3n~v`Uk?M=wgdett(;&4^gJ>^SpDpX6)DOOyNm+ec z21ThmwV5pR(|p?XiBva#zed9PE5;61J2q}43S@v7NxFk z0)kEBuUv~#uUJ1#;M4UzwN9jZVB_!gqxNf$DD{Y}IY0E4r$?$Kt5*NW$7@!kdTZCn z3_3rmueT;ry=eRZ!KUjG;v?0q9T)zHe|sWQ9T&XnNBpFeNOf3Z-Vc6WTBLfc&mXq< z`;X$iiS3KDrGB>OF+bfSS)VxWe*%lgqI>4g_G3B@9bY>imKV#7aTx#a@?&xTuY8t| zSVwzImebET;<^7>4q^_|V%(o;ipOWMVxKmqHDq;USeqlZ|7uKeAJr1a{T-&Uf0eIT z`)68fTQ-936)Hj1q~L=TcO&?~;^2d+rT81c>j>^j{GSPC{LX|=IX#L0Tq&kHQ6lU_ zFpcd&{QU@CPjD}SLq(iArGCnB6ZwNg_$0tZgZ#Ig}$Dnj7_x z5^-jf>d-mT{MlTp6U_L12&Q>b{hZP|P|f1fxzpIBQk`&u2b5yUDG}A@aH*f_gq3R2 zeCC$=sm^i2r(;n+#cVE05#B}kEKko;O!?s=9cO}R{xpXVB$n2S)_IwTb4R3ET&hF) zO-nJ&=Ur(m)qh*cr}$s<B=~!Jvn6BZIDXrv{ZY60lRS`Hf`w2QlY_q?xvqk(h zT6|_RJ!+p3=~0`;GktA79bda&Jf3!bEMBaa^%H&8Pvhx)&9&xdT54CI*N=@S&Y$jO?4bJ<#o|3odw&$~eJt*0KJnfs z<}ohSrC2-`jnTFlpJ}ihnV;F>@tE&toS*57eH62?#PLj@_0j)tv2ke2=JPWi)1j?6 zPV8s8tYtcEjK7OzuhU;?GHvZvJbyN>HizZG#$i0xvT>QM-Lif*7OS(E$Hrtn#$mD4 zugwwrXdl_TG2N#E*9iL;ru%8!YGF^ubdUQe!V?IG@jVD8`=G#|O7I$jDgQ+&pYDmb zOZn8FP>O}UQp67?nCj5$H)oMQtJE*-=>(I#RmgKA!88Y&=SPu$hzQRlm}=74W2KnR zQMVM+vBsA2X>M&wG37`ICVRaQTdR~${ryCofdsQ0wwGec*&^bP5#eE_nC6oq;(Lj3 zSSh9)4Z(E2G`DDi*<5JN>9~|b=Swl=*ra~1Kh0s8h(q~Qhw{sp`Y9*1)KBq35k6GP zq5SzG{;g6>YpyEAblj~3)7&VYE8=$)VH1K`4r@v=pzI6~)Y^dzl!sy^it3 z`=S`rez8976YtYv&7WcMINF%;Sq`+N`eGjCuzbYVL5xfL#2m3E)6v#se%gxpVl3u} zG2<{zS{rdc#o{~}pZXbQIkW3E%4andYf(NMhs81->ZgY|mho8((_-3U4HnC|;#e`J z8f=a%p2mnj+tcQVHCYa{rGB=SD5iQ$llp(<9_KR7uip<|R;zz)t$z3Z`!fDN_xysg z`jyr1pLza;_WBX;QDyj#&p+9|T~?ESubTYIGg`_xzy3U%vReIXYxTR&4=UsTbI)HY zt6y3D{+Z`@X|Er8{ZMw4)!;v64gAV8=E^v~{ye_2TK#Kl^}EkMEaU%k&yOstUs?VB zndgscuOIf=P+9x^^R==%{Cn5oSDuku#`*Q<376ICUt6o+eSUKp|DSvQby@w&>i5q) zKV5tMlzk5N{rgE}b@H`RiM{I8~*izRgj)z55p^0=4aMk1-&O$g_u2dygj!PtQ@OBLI-<3qvJ|Ad8j(9 zf9JqAeYFB6MbrRQf+K%-#tQJLP!kTjSLa7Ntbm8cE0v z7k-oD3ix=YCY)~Q!Y|*p0?azp0DXeveOE%A8`U5v$c3MJcqJ&ptHNY(;YYMu1z}IB zz&_-{_q(wQ1`nmciXOq&25WOa03_q!tM2t)8iwG@pa*k4cY((ksr_j9~XXa{s!VPrz^8P}~) zKJz51vAs6mZS)rKPdbmh>(%04Xg0&3!BF}$x~!;f2)3hBd4q1-wvzTDF_aP+1*RB^K8 z#cTMuxi=U|uPC^|mMFQY1j_8PdX%k)f1mS#URRWT$LQbdJ4R)%*Pp*$D=RI)``pTb z1^GRt1zi_lX>)x@sa8QVb>jlObD%B+f6U1o{&oTGXi|bYsaIz9mMz4g&A*`iw}Ug= z&02_q;r2LNWgU!uTYOovjZzD6L5`5 z&rxvh;lK)C6R_RB$EdF7*T7Fr7Gbme`^Ze@AkR%)gbgKkP+Sjx`K{ZFaPiO^NIxb_ ze#Rvc7pCQ)5$i_DyI)*{-}b+O#uJ=7X%T+mbO%i#ctWj3_|dKVXfVMQ&L!YmOCO`L z1TPz(fOFbCN0SJyT_XXXH+d!S_ncmcPiDPEQ;9!h%tCx*`Uio3$#EghR1^vNeX|ze z-5)=rX@v7`1gVMo8=6gUjQs-K!A}?HxMs)Z;|tdMFqz=hL+9hx?+qZ1;QE#4NRZ!XTrw1GK<<83+@yQfqZ{73fA!D-{Fz!Ktb+j|bK z)6oIu5q#fh4&ESfgarf-SI@>yX4PRa!Nomh<5jPmAd%n&`H(BK@z<->z#ioC9)WZ4kULf3nkjjv`T9Bd_9J^pyq<64Gr$;?_N7;J#_cGp?=3cd zkyy)a_-^5MmKW*7)*oHCNx+RSEv$8J$}$0G7nh{FmYXZ!^=-bV1}NjJW8ZY{0# zfqN)mS6!X@vzKOn_lxpu?3h@qn+an%nBzVpF=aNN%cBL37RDV)ugrd1q+&Qb(E@+4V8k9 zjgwL}A+v?x-#W@sda}!|ZB%n@rjsfjH>&$&p6-Pd-?r$)u$j_m93n;Vy zv+6<5O?r*Qu9M2}AJ>illQrpk{md2z@;fO{H#$pWJKoqrf0O0ZffXt{_mD00_fu{b z#;J6+Nq_jqPq-%Fm5H5{ftre2DWBq?wE6<3vA*36w^Ge{9S1?- zeCvllauDY!8Cpls*Unj-&-MW?H?bVXPgwRNXIZnlLhSzNo&PYeV;NO`)WPIo>}ERm zxaWN`#C-8wlJhnQx%m&*SBrBKbHq9&otG(QH<{sWmEA#lz9soTW|{pTRS$M;Rra~c zAJ3lo->Au~-eJP;GN{S#8cgf=9gnRPE?XH9wu}Cbz;5!}1eL=}{U+hE0*1}VZ#VP} z+eLq4;)8j(tYfcIKIN2ZjwPHcBEPgxDTn%rj-XHY2MC}3hC&0XN%&0DgkbtR3u8^g zW#T+@$+&`_jLVT&L5Jk*Li_?I{w*S0uK#yFonryXL5L+|DMYasx|QZY#=6q;kKDcz zEaYYsE}K+3uG;z^bv#P*_a)+jF^FSGx%>cRf@DQo}u-{k*B zEv8j(2Aen|80kERd(gBwG_6t*-Yx9S1&wF{xnoQ~|ArTrx;zx-UoZvBn!4P#LoLCp zz8N&Txn9%jMJu>8+Z^8BF0av8w1F{?EMWf2@IVJyTd)Nyn0;xSd{W*2z)fukHX}+f|0qS6eEU-RcObJM5s_{Afj?ekTYrvWL1gmMX&PcZMes z4q*Rvhhk61E-?F0Rj|HxTu~*cGgwAD03_{FMAz#CtNiR?V4D=hUE46I^T7_1D$Y%G<;FcOq*PfwJVV)^G*kR0R znzew0CMGb$*N>~_(;V#eDuR^j$I;quB()t*YWsMc5r3yvAH^BX06gL21$1xz8?Ips zP*{!|fIE-NLCH5yaf@9X6=SRh;N}l*Ao-(>+|ES>^36;7<8Z&bsQ>wTZl_||a> zlgIX4aC%R?!mSu3bxK!kl_08y=CP3r~~t6^&wJxpyU9 zuw!?9@L70Cv1nQ!E-$_t{`6KCo;S=;yvGf>Ub;PS#8@4unz=yn>R1hKRNtPs;k9Bk zxk4v}=L%hJ+>TzjVAE%0+16YkNjjoA@gN*;=v;*E9$zBgd2pKM%D3LQ=Iam0=ViPs zd#bLcjzM2MXkZ?SoG?R^JKxH`)4RTScGfEtaM+N`Tc#(kdZHiRT`~Y2Qxt$xoU02aGqd&?24vIW_j*H%3Lm_h>fVYO; zKm)(#aZw8!DmG6ZfP>s}koN1zp0mfUDVWV#?Q@r2hq1qt#C_~OCECxf)tII>Puu@9 zKJ~F2#F}hu+Wr}b>eE=p5$m&D#G1^<@?zt%mW|1DSSyYbV;09++V}Qw13YGrHF!Tb zub5ckhjV&a!_nC)g@Gaf2UM_zHXg}}g_C4>h0+T4Z5ytz+aHL(cC&(Wg+7W61#%p2 zK=AB*xraBxhj&t2xBJ?#~V0*ceyZY!04n7jZ=on&44w%wf~E9rWDCmp__; zt$sG=T+{@oH8&^E{@ukLJJ%RbUttbk0+w+7HizJDFU{d@+DNY4)JE7#ZULGHGH!EN zFg99X0o&{hxF+rm@%=j%V4k`{^V}c^AMmh*B=6msb8jP@5Mv2vjCJL%yA?R{f+b9^ zyi*? z9bpY=(YqD2wqr?cC8V}RA45@S<%f#+rCs3q=|VJG7J#lBT~K^H)fJ`%6`^6R>Y$J_ zoFd_AH!xUPgs%8mAz4JaV)@JNaQQ|N+E7xWSbJ@`V(|4IF#Br}n%nt?Vs-sE#gy$m z;hf$_G-jqsk$Y)?qRYTuF!oguI*>F^;p5s+v93ZmL>wqWJ8Cyq)Q)seR9+MgTO*55 zPeq}82fUOoDGrC8#f8XWua7)ucdFd9U2nKJrVwdD^)%;~)s-j3_l6!93Q(H)ZH?E9 zL|L1(-VkG6fUesGat}u9YvM9`!&%>av@>T0XI^{0X6fqQP#E+9UGod#A_kgjj7fis zI{BzmTAt=s>Vy3&xA%qz`T1yDuOLnIBxCvK#l69GdjZuBJ_CG+HO`u2uxp@k?L zj>y66l039(Z}@nr5S@PGs_<%QqR_|TfEyN}}o~Y${tX$ zun0Y?SQ%lPU5Zu*xfes+%2^O?o6bDOp-mSQpIcl>lbHa2VNSQLvjwK0oh&n%_= z+T&6VDzRcqtxf~I?`VX9{4-{D$;H%)B zMtk{2nsV^q*;jr_iz>LwCCo>i)rF+oV*W6yf+M${=HGVsjGQvR@iOZwcuB7uzU}2a zr0P<_pE+%ZtG&6$x2pCGojg*)FYIfF9RX$Jio!Mh~K>OI$9vBh2ukV_*ndr|GMZp z>U*pPo?>u|Z`JfOubOxr-3zXcbv5_-)Wcu+^swuw*WRjFC+aD0=TXe()Vhw|Evbqd zZGXYv4tU4AkA8^!L#yJ0`(E*b3Lf**m%T!luRCDL+_!wy$m_iOT=IUaaKO2a@A=wm zviUF7bztOjTO8Z4n6JJ3D4*F&A8sGB!1@&paGg$>{Q5EFVM~??e%8zgo84FO`r$_K zbdw===u`ligU>Cs#*)Z&e2ev!ew?55Toa#j z42%8RnA-H9=OsJOwK+_OaTs6RQp^sq4)d||pV>^4+G5Q5nO__y#*8N(ORU2%%lXe@ z#X1bLmc=r=X$2Ftzez zrJTubgH;vpczaX)dW$q;cIz1u$}vrUA*r`vil8~vt)l8#>kmTgUgZkUT3^e1Q;uHP zRppfAvr>w`Y^$$)U(rcLbxuUBklx+7Qt+1}Ic%7+L%=#=OO8~P|cBK?mKl{RWzU3gj4Jw5jZu|w@Ff3&+?|67`J+=JC_;=d5&?LteU02P#E_F znfue(NSN15GT-XMn+VvL=7$+wX>l)If0QWEI6Lon+0W zk1n{+;~>y0d@R>nt{3QHSsM?EZv?S1$@0zC`{WDCIb$n}CNN)VEPpiGQ}N+)HEchw z85p)*py~E`tK#!>2fX1)bGWwBi&G8ztXR9u4yWI20hfFhaF)0>TKd=;Piq$nyEYx> zhMjDM_Fpx}Ud=;c_TEe`@MwEvP{SO*To?*nPwwIR9_Wl*qs(x`rBHJJ*Dmg8S`Xx@ zs)SctwS=W_w{Zc>`k<=SEG$Ga)Pk0al?jsENt7BH8T81V#=R*iId;g6avu`Qd5^su)NOz%<$A8Q;89Tv}!??U_K zM$29BgT4)+QqgsJ=whQlFRm`W)IUggpP=Wb_@LJy?0M=G({qmYvvW`z(`ymRXBzAp zhS{uTI;>@Wu`czob6lIpu6bCTc0aQjkG0x->eudL9M=9-KO2W~|BA`C#<)1Io;Cr3&s?)mV7B&w)bxK@c< zY^s_|_%t@iGegRk^2c8CRGF0eb!TNrUzKXUez{9Jynh#AtTv52RTV~l&%vv(jcP_j z7h$Xwk3ChY!G{IS1gi|GIM4N^v1gn-Rgop%b9i^!RJCwxD=(Tu-84_N#enZ~iOKa) zjoYTHqW*VTsZyJ+c}kjpUEOx7H>En2UVEtch;G8T<|OB2m?H3_EE1#@OY8H(qphmA zl;7;3hsvikw|0>kQojM+gt^SR;PDR}v5vvMs(8!F-AK4d`JM@kK5UMk-oK6p zEV_p(Csl%;b1UHq}^$ zuNmB2_K44#V*$51-$oP98$-a32YksAOKAG>Ir0lA2PxC;@r%Y=LG7*usC>~k^w{X@57f@GE1NfBu3DNhKujHWb8Gm(94tpPBJZdw{+MoGYA8pxK+Pt6nDTn#R8vj#R zoP!usefl0F_E9Xhe{Ephfhfii4a z4dHsGbLTo4isj%<`F?%ctJViB6s|+|q@VN}KVZEVy*_b#k|qhBGD_g@y?;#dsp1ZS z6=2^6HWyWLYHiF;p1NLgHG!yu*L%u3ao0bSVk`=90 zKI2yiocc49q#kpQ3%NPCB&+iBJO%$TWn<}+fvLhZ(x_ESl!se>7Gl@*n;1j?e%nDDHE>W2Cv$!46ax#aEyr`Zey#2hjOIZan=)z_6NY& z3b!;CHB|B`7u_LS69}sHwwkXOdMj=x)q|R26=3G@LGDzdhxYHP4Oaq#;6&J5MbLm2 z=+wDtFk*f~*wwMW;;n%{;`cbh==0=vW83&CjN8^mn?m@f0PKB~!LX-jR!Vb^lvaapdcWqs79SZs?qY<$`;#+1WsF<;wH zIgF=`X})Zp`E}#aTGx5d)}{*nL~ugRY{+|685a^fb=pi=a?BQgA$X|!H1J+!g9`}W zqnZpkqpbyhUi0bj?Sm~YCjQw6S6&XS7giH=F6XX*mrJW*UDr6Y*=`v)ay5k5@lBGT&7)fQGvPmK zz6iFpuZ2Gn+@{q6&^c05;Aq;$LuW}%TtxgX9cRO?wax-(N#~hhWbQ1C6>T*aEbcoA zI(^SC0Q-#U!n|6{TMRX0tKqLCR@!tK)NAYbeeU;{L;KMVf@a#p737%(RRsLRauuvQ zP#M1^{2JR=!>QXgLJkYoroi^Lwt~*5CCRXu)bQzJKQv~#9(?Aeat_&@;NRW08PF7E zoX~?C@49g9UWY-_)lTSBi5^U`^5)hScZ4hHZOOHm9$c0MbL+#ypu*G^$l$UbRPNo5 zJI{x~$W|dJ_kbQ`P4CTBbLa%^?GZ9f)q}R{hjR+_*~X)XzsO>ryO4LvH+=8{$cL;d%*88wG{5xM_`4mp4?h^b5C%=Sy_c8=*cIP#?HO=7n z5zRg*4<_#1CE(qu@8PJ;E`BfZ8|fB+*_55UlHjHmZ(+8zO5n_@@dCc3@8Q+NKlbcX zaLH5i`w5Pi_!wIIs095^wI9Ox3E$_^_~JcStJx{!>^+@B8ywKfQx7{@|*SaZEF?&0Z0 zz|~wQ;Ov5TuzA{M0bd^U3Ko!B>6e$_ruB8?Elj*{t4@7Unf;$t4|d+O>krzN;eWg) z`=6-E|MY!}MaB+peJnw^m+rp-m)!^W&)o+|&vSaPefvKhCm(kg?&Ff=otOSMV7)1g zu=2x9ZgQ_w#ZW~}IFZ*7_nY67i<~=IvFv1RNN5&>yWH{OEOhe>|YpNSR{?m1bcx z2|O9x04KVI$P=R-xq)rGp{E!dX=VJbRwIyhFY<_tMN8`fUopT`ZPm^4Gg-ZUuV5oq=+^A!NPgT$ify>N0nb zeMGpEyBT-qnSnxT>IMZJ8{!?8TXKgQ^i@3DR|mA~rM(Zb^M(2U%BJTO+cO!T+U#6o zE#okoX|nxATZi?tmc_G{=`fqN%*SF_E9Ovq^+-2Kb#iafV`)Ohw~~a6Y6RPLnJdxP z(ea|VSLPjwu1;^kKZJ9Yxaq`t(tE7>$gWBBblPUn*eSyfOJ0rsfXgD zcLvz_EzY#<6%9^9>Z7{}*#W7^X_?`jqoG9K9d%y+Jis#lNapgk(Qsp>J8FDOPd2Ij zt<0m%qhX!52P%lLknPU+ka;gS8X~ei5Pn@<7HwEw^C~bJ_I!3nd-5vEdM?P#9M?D+ zKDfFg=VxyNwpTor`M7m7)aY6tZGN237W9a|FDTn=?$^NEf92PIuWe#WCM%ZK?W zmmbeL7E0*-E~m+TJigm=Gbr9d?v**RZIp!GE8|PlGx$lQ^_LF;D z+&hg`Qe1_^R!ff)I97zeJj_Z(?}-_17cTph_Ef1y@BnguOjghvA2@iCx|`ZU3aw` zp7q1thP$a(WHl1(Bcwm5c#wK%qd)G`c~w73{p!_AL60Z>GIAe}Vd;H5dx_oZY;X19 z7L$bdr^N34YNWb{ai(A&r~Ik?)V7!Ad(rV}eEaGH)fPJ*NvM62*cvocoiJphVAK3O zhYePz^sey3zOcHVTHbPiFh1=+du6EFBYvKsPwykT)oHNW#x=rTU-Ax?ay?@=ZE(C)gFVzi({CNa>ah_SZa&8 zV(f6GGenQ@gUNnYaAsgvcvrIlbTc)8Xzh(W!=dcj$1DGcwh4K;P^0S0%yA;j=9@+|2J ziY>n2nE4fn=h!7KAE~+N{9fz2c+7zEU^Vd>3ZFQD?>5;3TP!k!MyqZh_r^{5cBwx2 z!iWm+=-X-Zwqk8QWrPf;=^4ST-I?gVo<3jmKHyJ5MzHy6I+~b$h#PZ11Rt(z1SzpA z(V5F*xu5~f@zebk;Mv7^VcRy^4~4JAMK3IWZ3x=+V(;H{4T;wr zwdq0k2fA1M)taPn;#e_eYg63*4AXI_pT=tUQ=1-)!`8o;Py58N^!%d-^)Wx?OKaE1 z@$$;h^L=wZx{Va;J$C}Dfrk94iT-#}k{hhtH7h;Tmgfv-;1nZ3@1;32sRm^n69 zk@m3#ev;f2DxA|8Qt(5O9Zobyg_H) zw8!UD{6J%|7d@;WiVrzS;N{CnC_jq)J+Z|Ny6iSW#@hn%W{+Cn^Yo~^>N9VgOg?)| z8mr{Qb6oYhBj0BGA)L_c>e$wS_2AgWn3@E>I&m51lnwtm{yPi zj`c%&wmnf>-VFw-y}-gH0?k?wgNj4yfaO^aSaIA7b*kG1t?23n+wj(qsIEsD)^nnSBGRbgL~rdHp z8>n3~hr95~Sd(Se5iFmWz!E?5yzKX3Tz}8bple_N+Vx^_i%J1KQFK~60{5Rm& zgJ1F}kCOw@s%M9npRhMgH z%a6fOX8&G2==&`_N9gh2fdAWmH}=NKs`zNn-ALxB1KsU(pv?ZgdeG~T|E8l#lTE^R zB&`RYll(W}+*7Yrds@sd`Vy&k36#e54ml0}1aoX$$DbxI(+b zTlk{M+hFs2XSnmQkPkhu4Jx|Vh3qAZ_%(&wVE9>gxM{zQ`{11hmxp@82**4{laXoQ zS1ABSgsn$!YpjHJbDF?hCMx$9?x8!<;6JYng`HE$_X{b)e&vM;8Bf$9L5`{V{ z2VI_TtZ>gB2v=*ZRD^E(f{vcGQG9#S6Q-3UDlTb`qn@YADf%}X4AuM0QVjNwL(O_W zlCSME4svTnDO`4aRt#&UmiJmV1>!yjE83=C)wJk6Nj`H~4Cqg&tmqLb<gT?C)o4i`OZ;j$?eWKHJO0{GW|0?x#B9gX#S&=OfNT@PKK#=*CM2ye?uq zmRB-^>67yKpbpdU@mqDFo#Qs%D?bjm+7=8!v5oj@$@B5maXny4<&wC{cha>y-h@|-z~w9hP5K!bE~dssE)_d4-)ur(u)OrY8__@w&~?yWOqxrcy|M`POAd# z@4P_e4_kstheL{mcF=W69vaZu2wZmNpko(pVd$VjbZ6E#GF5PY z_0xmf(=EvFo0Xs<`^%`&SMnPt29==ca~)7cXi$Fp3h*M?5^5FbL;Z1TIkYniSsYSXnvF>ydp%NHO&@F0~n-w)9}<1l86j2i2!MYSUPzrR`@n)1x}#+}Qt~X+O)2V&1)z$V+_f((&0Hi1bfDkSK+%?eA z4rI0V^tAP2l?i0Ew{@}gu=aBGV3lFjcSFB-*0CD=bBvGG#ns04 z>VS}Wu=#&WfvnE9o{#@A{kOh|v-R`x_5djb zvO0i4`GJjs)SdrrqhkH&pZLKTJpP*hSDk=(@IQn=s{h3BU%~y0EZDe*gR_H|gU`Q@ zT6=kUI6U&Dj+L| zM^`4I{~h}k$$t{&^)L4S%7v%3vzwDG*jrZ_clGvobd~%oh7Qiw_W$Pa(A&<=*2Bob z)|XXA40Pz=Yu?MsEA1S=Dw|)c?@O1U~S2O?V0&MA#tFxP{i>-^- zzx;>`i%48mdb@yQNKE>QGnmr{LITo4!s0?gViKZaQsR=rl2Uv^0wNNk(o#~AqM{z@AsXFL76k_;*!%yH1u*6Rw-EkM<|6-J%tii}*1=Bw zUt9mD@}C5Xh=CdYck>3yikgc0|C|H=&Hq2UT@A|K0WS`$e`yBaK+Q8F7#lZ=@oUqDBONv~LRR@>K883y&_!ksbfPVvIw4!=(FhB-#>TPiZ3Gr=hEx`pLx;&)AbT*s5S9-^5k-{K zh-XfANPP92T75S@q^ZFUg74lnWcuto#EW`2q`SqC{Pn6DL=7zjIdokedDB)B@r1_@ zX^GE=D5>uMDrkj+B>VaRdBy)}TL3a-Knvm1T!TL5haih^)RDenl4vZ4AF@ZD5Am*> z7xTFW7i=`gB-V}~NV%gC9|eD*b4~1#HPtY=17;TtRdY4s zQWewaf3}A1q_RMgh9J>C=zAFW`#6MK&;k0@{17@jO&57M)`Q-DLx;)sHb%H6+`*i1 zze0O$-9Zu|V!QxL3#e9E_in9uuzj@dFqhQi^(I;$-5`X>Qo@OCabxmFS> zevb*6K6f2cG02Vl@@p4?Ia0x(IH{34Dh`M{=|&i>QG6s-E`UyZq=1<+SVHVD9iUa~ zh%jQVEeOp$1V$3Pb`UU@AS9*iFgYnY$b|1>@~JOqkz0DL2s$4(Pu2VzW z6ni2QvZ;|jTX~V=#`H)O=wrJd4;gPFgzSa%A=C{0kX83q5p@Uws zLfe}I+43r1-r-0RnSA3DB1N7S=?>|WYEXeATQA-sZr9)=2dD?69Fr;$YxM;P*2E12 ztw@7>LbV)1(EkgKqLdW!9oUH1MwQb z1D0z5C5V*3EwE4mR3K6TykMaMXh5U^_`pH~(1Az?@Pma8U;vQ;5C97Ua0A2}fFS6F z3}6PoZvadnG66zhVFI}efg20R4;MVj1RiAu{ZfKR1oC7CebInO26AHtHE=+@0s3SH zHLigO2kn?adnOQRKs#noj|fB@u#OqjqXY3K*a8cPEa3UZ2(~N)q7W$4gS-Sm6a-~j zkgouU0-#I{#=#FFKPX=ZlU~RvIYP(aJ$m_*EbYG59aP) zH3Sfb|Jo-9>i{Q7jw>^`tBQ)}mHf}==dCY2;11kP?LJsZL~*r21|~z!05GBIw-xXC zLH^`8r}0Vle-yNOv=Qk``Wj;Q$%M}ea+6SbUsn!}wc7Q_-6#yqt=N&}73D3F*;k$- zj8uBlN2-2*Y3!nN`r@GG(lfRF1$NXjw6SB{6@6@%c%f==vHq6dFMeNu!*<`AM=@}p z0YAWdwSYz&7UD4pyl7?Zb93n*V@MSYnWn|coYg@b#W=Tas9VZEm~BfH6-QB7!gb&F zM;KRpZ0~BkQ#N-uVgq3Y?~Cn>UXb>iF8y;if|FUS9Cma)`GMNy^yLMO@(3#TY=J9x z9sSl~HgL)PvSA>v?c^;N)~Mie`cTP@rOs?~CEe_n2eUhL*Fg&c*^vn-sh=!D+Fg}~^|G*Y9oWx5F~oD>Q2-dhB6ywy`$I>*Y@nDo`|UI?r}g@f-rVg) zoDdGAKh)+)eLaF_+vbi|n}M>g3HM4d=JF!&2_>MZ4)uCr!ohaj=Os+29t1>r^Hn=) zY3=UzA}`0EWNPAQ(v^{=;^|}nH3^8IBzt`=JA=_=gjC}qo^oCe?i0w)X5-SIS_*62 zeh707UFfa82ON(-yfWQtrLj!FN$EwLuHTujUZ(YSJ=S&Dl7m;UY`&>`cwe#o+rbuo=@1lx&(fuF&d^ zOXJ5AYtrnI+^ihu9xKK1&VDrY&YdL#uM+}rLJXTyAkZ+eq2HNx*6X5k&E++VHg&U)FDvy4t2mm*7T8sZyd%yV(U*$tZzA~};=?uIl5 z#}Un1Q&^FnR!svho$S8z_K*8zceMnflr5f5opg-9=qu^2;~vCTp_moClHYW~TyX9p z$bN*q(e&FB^NWGe+9T_UL?<3ON=lvC6)K z2T-sIF}%T`Z(>s3&=`Zx2Zi+Zrr zV*?wv0p@sCKA{i78H-REsFh28I?JAZ1XNA&EmOLY*=Vx5i&hByvOgf4R3K6#9R zOmt23>CtSE8bBh>5_tlf$nc~(o1?*WL`U(49}c|wg_8P;DXb&W_QEN(LJHHj0r)@?{Dc3!O%*5-nj+B#)xA4R(%Cw z>^_YJ-vgWX(9zl+@Ci|f-OaP7*%c?a)Cb9MHGzX^?d4(W0x2(h8oAdK*Q)Zf;RRut z33R;)IKCPvs`YZg-01T+{lQ@l3OA;b$73(FlEY_hoN7Bcph7j5P|iZB4fyA{^X~e~ zmEH^Aq|cY@E;c3GKQ}&1nm^1pouB_6|F#^r{c&4kU@$pT3ZOCGJDizLhH8GWe1F`s zm{F+|Csluq&k51RpiotI{Q{@xn$h#kB%FF=n4NyE2`x`qPgh9D;lg1Eve1!Ra=I{r zWF&S|TYl=-a^P2$jxm*_viY#rZXTZse{9t0@8)CS0*eQjv0gyQ_SvA?S6? z`FhQ}*}3|!g*7Xyr145lKHdY~f_;n@0n3I!nZ=DDvUTwKU6Bi$8K2MHPomN~a%{Ls zASufaFEziD3LB&%rX7gMB9w^e1u9P!@9b<#GAXC!$q965*H4cS>=KX`DM<_Kw`>1^(oZ;}KTH%pRL=Z5a^IYlyf@CD zz&R7(9qaX<`OamJ>|U}9O`jV--4>{YB9-V-TI!FgqD$f$eM?(H6dOJ&Mg`(8VC~=) zS?As3I(Oy9zjKLw{DwQqpX)U8X^TzEot7=HhSzxP@zlFaMk^n;5q%tr_Jf`<5;TNb zZ(96xX(5R0_vEH4g6aABw>NJb((}w;46Sr2(50JW=ZAP;VgAx~wzoJg9yj{(1Sxp34SlA8LWHBDBBU{e+Y~sjK~y zUAW?WFve2ta=k!1X6%=n`5PI!DKR$W&1L8Ls-a#_weo{Ng2|MtJblEUv<>aKXb6g% zjySg?7KiYRkE+cnu!ncxJiDHts;bK~?3MG8&KS3ByMxj1)bjS98#HO{h0bHWu850u zWswER+{R$3fspi+#=Vct?>3|*-a3lX<|!$-imGftzaIa_6P$e&BllvLJIXkkbRvcx zf6Wz@Ih8R^a(bU@Xw!V*Ydu*%!x#12YXKiV5k}Ssw%3+cr-@eoGAt}n{&0q-UD{_l zjLN`GpZl}u`X<;F7)?G~9J)N6zSPc{4hlM)mRy$Yel72L`PisaJ6XoKeEX5zW=?=U zfzFxKf@Z0pjnG2k9bu8(h1d%zlVjdKMy|c=$nB1>ZM1*T;pw{n-2>y-jk*_&6(mYc zM`fjJtq5UXr`EO78*;a#u?<#d_`06(qx488myKbxq=GFHuE0WR6?*7jbKJb~u+Q1E zgx)Os*U9_eW4=CxkLx~Y8~z%}9Ul1si3{2Y3nB)XiElSM4FvWa%MQkh!-ebvg5D{3 z^@bE#PM;t2cx~$qDU}mqC2)Mq<2?V!w3fB8;K2dsj>*>VzZ`1$E8FjD`6SZmef{I zwexsvNR&(IwDcw0YN4+U(#ZFkXV>biJwu1-s(bft-ljI;l2BwVs9J+vZidHqw_vqOm|jqL^aV<~sG3h~mIA|LNqQvbYF zK;(kTEPgh9eOw2si>efC*Y&P+c2}0H z*M-~uoT6_no5Ep5Eh-h-r$>qBOsm_FDTyY|zwRsuA2nzBR(w34|5!_Xgp<<| zmOkA-9jZNX3xAOl`-8pYW=ja=%zY*#3(N_hrl&?ID?7qXJ}*;Ax*5go#jzqohE*r@ zdakhuOyf-86x?np$-M5ICLsyQvS!noIC=(j+)+{n5E9O|tm@icDK(N|VBG?F4 zoP<-6+gz@ky?`x+Wn?~Z7lQ*>*O~<<>&E_Ew>qd>&4g5c$ClfTgm8pZbxZ0!19SC1 z@(gVcJW%nSLBw0sKiTmmE~tubURqy1Y7OY0Quf`eFEFm`7~=1`J;rQI9^v!uI1gpG za8qdg!d%a7Gt?t^QKZlng}K--_jIBQ=s9J)yg1rr?003I!Q(FdYV3UbO~2)kSjDrP zFvwiSYHVn^kg_(B8$Z5#`aX5g0=1bO39vT0C+MlJU10 zt;OGbj`veMUr5YNUm&75FuG-B_2&we&#<DHyQdJ&w}L`B?L(xYreGv|;Eo9TVV!;T%`h>;JQ z7?q~p=Gn|8YrWW>A;-E$QZ>$g5-xPPJNll`{CNJZ*)?gba#TFT(PXqi$_^cl=Zd=1 zjwBThwz#}`8P70%{QB_qdEnN~bb`vb+Vjb}HJ@i*^*7C%2c$gV;x=!O=<;mz&bYwQ zY5nk_enL3Y(Bd4WYN)mewR1~B6O7V|WpQ)scdkhV^_aNB!5bx1hOR zDD>>OH}rLFD4r>JSzcM5;`9C;w#Pf{mTfXzd91YRh1XD=sdwXdwyc|JM5*L+SM4c3 z*(Iu>T)@e`R1+$P+Pis)T07!;7!8%WX`LAxxA5g4>e{c=fQg^G`xGx1Db&6#@_pfg z$X(dGup|e6p2tX*)Sw_P-N zv1~KipIhXpyG8NaH(!!gy#50Y6A43d0DJ+JLHQCi2|9T4a~=stQI5Zn_C$th z|F&$c5!8Cpmi*Izzk6>A(NAf@OwWnJ|0MULt}T@4Bn1dPYGGQ$gicV{?X)vFVvrLV zKhD49m0f>jhvk1V+7aD98eZ&s#Ma4gAUAG8O5h3HlzSb4O(0AHlARnBK#n zM(<9l@&^v!WYd`cb7WF!)n&@tnCR&yGiY?rTn+5#d@~dS{-|~_UTPEub;*yp>7{OD zRF9)b3Ipj4U|ozI?sE1HuHc=`IsG5>MQ}k+=FYK~()h=;XNp>_9_$aawrzZ(;&qtE zrnOLsy{L59(d1@GdT70qw%Mx~hqE*DlhrKI*0;;+?HYW(MAnK&+)dJBI;``x#4J3b zIt#hrj0VQs>#Uv^9cq#6{M%AVMoQ*Xi;Im!W2p_?64^(k}-dUc^>D zCWH8Lz_BD&A4pb08EX@ZuT9(h8D3v(lic3Ar$Ue@y|sh4dS>rcUv{x5i8%N7Iyp|y{A=+!4JVTV&LVh5 zr^xHNMxAjgKUQ~|hj>K>CYS&@9n#_I2>usGtXPx1 zY3HD3LYmBziY^s0)18aVT|}rl>bR*nU?bg3*yUFcn@+LAM3va1N>&kXwboBTVVwlz zH5Dmhj|IYHCJ1`9fX_Uf)VX8Q7bUG^aU|Eo-7BWpnHjQve#_lun8icorY*jhY6v&^ zUOI|-!kPInOB0AM7(H(JoccU9&+5BTo1m-)o5C3#MZN^Q&m`~|e!V|ma3=ahi`@BO zXR3R781wY>4$3og?nxxQT;(-ENvxW$4~>F|bsRKLGw!Erq;lGQ4Sr?E`Yw31?dW}h z`T1+8To1##O1A#;a^|thb%vSLW5Lw>hJWnB>jD31%}HJ-uP@FcsCx~6_|mJl326O` zHm40E%9I1Q(}1%_6ZwrMpI*H@Pv*<5t&_e+JHW!X5z= zQ|$CJtJd)z`_z2$3-aWwwg2F}cFDRbs6RE*YhT^gM7GaAQ}^S9Fe@8~Nk3;#`)b-i zgeLl^YUCJ19QV{hag9n@#q6ZQd;@o#>A3Ua4_<~k8-H_1((kpPArE*4V58)E&z=MIg?2hv z?FQZQGjvkOw=ng{#7~kwbZeY*T7x|F)`JcGv1Eu>R-6!kB=B-6^y2vup9a8Z8W-=B ze!i`k@B4%*OYHIbw~jxkj>oqX>Qwk-3@I6ZTTzvrq!ExCs^tno6evSGgpM$3tJ*(i zQd~9@lM79Gc79eni_FjuZd_Zb`8L4S5BCVliCH;NZ_Dt^gtJizRzJ7pKw}x4vyfw|O z%wf#(Lp3M{wkis&@c0{9mzedH5x+5V-nDNJ>hw!iC{k2C$@;!I_QZ52$TyrwNx(TH zHS#VJ-QIQCR|`|nklc?i`qM8y_r_e0fYv>NW60u}SkljWdP#|S+MO9%RTGVc@Ujp? zD=TMWpz_Gaf_nJw^)ivDH7Q4)3kql1y5b#LKo*5kE;RnckC7$+CMpk>QxqJO0fc4LQ?L zlzR@&H4e7e8$l~>X%3mlbg<(D>dMC*Hi;GA>l+fukF6sr_vNW@YGm-}6f$5%K38(@_%a5^;>2 zlA^CU-N2uhiPCx6VgLp$F~8-luuk94xtK^Tn*M zRj)#-GwbFJhG44CeI?R7L-!o_O1LtMe!hSzn60%b-7u+tNQY_|G5wAe8`g`fkZAe< zUw8C+xTOc)S6daA9n2Wo8gni=i&g1(=RFvHoS)YaF7q-np7-8wJlQXVY%6V|=F9Es zsCU6^g6I=`DtOxFruM;KR!9?3~hi$-C4S2C+h1Rd+hcHnt6Y* zR=U@AUJnUTD_EBHN7iaduljNiQK=KAw%`BzcCHD7+iVl)TCcy?u{L4PA7vx3C676Nz ztGbi2D{d>|i#U3Qei1i0e-()Hb!Y+mg_OVAh-PN2%x1!FI6d4@1d(R(tjMz6r`YU| zjoMRlxcM2K*1Y=QkF7??uAR5Lc+!ulKl)sRh0sYWZ7$TKBA#O$aCW@4!MhHeH(KRu zrtci7dpkaQ&7i;2B-PmmUnR7t zb}WN%atxjNEJe|p<|ZXz)P8IAf+rKabx4{;#SB}CQ>c3}s)_pKGpQ@ok>Z@(ztLyN z9!s{$ZCt1)^}tgGVkTFer!t$-Dkdt?-5qR|IgWYPR^m$E6z)EF?`bt1?sG|*ZN+wd z)ezb~ogBtYuOKQmoXr989N=qf*AqpN&+5O*thq;&cRt$Lf4a~1RomXvBVPu_7|dVD z^EgHIeUzxT+9T&pyNNY(4f90pk>8ttei5F2r?6^;Js?qMj6H=AKlZ8X$tdd_9@gWw zr}DPS7{WCVE{wyW(bhoze9wZq)I~OU}GCoj>wGd+(dtN*VFzLmRxg+NjdOsCgG^AJke> zUS^T;*s{}@*KC=LRR3~L)YLLjouhJz?o>>39x@5a{Rz*gig2)A((PcoI6HFv&w&2v zAUy9*S`(fwkn(PDqRf)3yX=Wi5ROZ3T~9tk4?&s1TB^9R3eebXQdrb>qs(+6oLIFz z>{em%Rz{ug>XCm8S+t!)P_{OJr`sHY%|CWAwmYzUl4$jXuwJI7_t%pq^?K5Kw$g8& z_cKE2Owxh(W5Ynqg8>au6_~mD+X{n0e|IU=3+&y>gd962Nm;Q|FQ`>|6VD-Gnaj|f zIsGjBKtoAdrh)aku-iyg1tZAgl)*^3swf9jMqDF0ayB|NuUngptG7Z!365y&y!vS7 zeK;1@mi|-3v+Lu~R<=LG69LX0iyXU-FWoZYX@iVexRFN_D7&a9de6(=7gs7dnGSrW zdD8-k-ImYFEXxdzuXU+$u=y-13F(vQ!~1-H>kmT9)GeZ9t?v4ZIIW-K$}9%1bDBor zAHd(Y+*xj|0p52P=)Sf$Gi3j;XoTAPoPQdRk*R!v6H7J-PsrF2H6y%?e8F~pGwXY+ z*F2&CQzQ3UNDpcr=?+-Gisw|YRa~H>Qb(Eh+xxvljNM~mG^mGieh`(I+K}0g+P08< zPYFbq;;-&9rJSDa_8xEE3V&jv`hMa|G%kDPCo_(jj!n`JqVV9SWw=~b-1Q$`Sv=Kq zyCa6{LvlZFG+#u#n>OA}Iq#g-DJwCTM3W1p7jbyq0|jNqkGqsElJubncl%YpcJok1 zNR{?bw~X{KprpBAye;m8{x>dMGLRVh>UA9`d)D(~ zN1OUxBlwY8sL_vi&);Goelv z3b9$qZH*t-%fAfziAX{+1a=x`08Be{qCM3OTK}h5RP$z55pv#%Rkl1H+mrw}rH#P^% zH*^nt9^qxoR6D1qPGMj>jpW{y!QH*}BIw<fN;RAoFz10y+U)7y7Mc*}la3?YcM2 zA&yM$f$O}_pxLUk5+rX(Bd^V|cwG8K-?IDVQjEN&{RYVl)JhJV6jmhQdAcv;D|#*2 zr_hC6qF8kG$4unwa$6*qaJ>5(%K7b3J?`npWuNb!l-Nv7z!h*z3PV!3j0Dx|Xz<&p zN>919x*CV7I?~&$Og9{qz7%ReN$-ICKk zGLs^`kvNOQ6UyzepW6^tMPv2P$+E}3{aFpIb}&vYZRx%azgOxku18Gx1GZXC8siKA zR0daT0f2=$m0gQ&TuD@jCwzzj^}e?&kRRngDL1h;dFS_vHrnNcqsmu$ zp*#7Ik)9CiPBTb}JjQmW4~h(K?P-8z^#WNLH!DM;+dbRtE^oQgzv@Mh*mW?T;xFHG z%@okuen$FrYY395q@Goxm`-fo={TQFX6A+?B^kXL8 zafS%7VTT1hDZFJIZvzoo4|j#SFHjS0v5Hz}g@;;~YquX9V_xLg!e>4-z=8-8iG4$H zhsk^4pG(|MCE;`WY%)&WCJHr=DUbE%*-lKJ%)Jf9$>(Zf^Wm&t6(Iqho1E7$SdTtCX-X+o-^(@ZpWuWUnA5_rZb2r1R|J5V?e!aL%T8;my}juMRIfoYwG zP@XOK#qQj=F{mT2-dKX9FW-J))8cPSga^s`6HZddAldp*G*E1G0w8YF-QQOSaXrdcdF|N0_NWi$Hh1pdB~$`X@Ae!Y^g8pr*h7-c#kYz~95@jGuD_R$(p92U#*EQCxve51s62 zNG(P?ym%?Gsbb}MrJgqEKyP&sxpmuYhTK2#B2zxX&2LgaywZ~>u4i_y;O#yQf8*`^ zJ9V4sXXHn_%+CgorY>R4-_DHtGLezlCN{rOQ*)H9WdbVt^*gWOd6IAMxnvzh#926e z*xrf|>;Bxh>#QwgJOyO+@J2DtNaSsCJ@oC}+_qJgofjzb`Vn#)-{96z*;ssz8jQ3! zt%UJancYmgg9OXZz}fZdW*@n{?HC&%eY6_Gp=g{rCR zb1Ia&&Yg#-Fx%c0)mR|W{dny_;!)p}n4p^*te~hJd>-%h@$AegX^w5`BJR^?6{V_@k>Skp5!nOc=BaAe-(x>$T|~@};QO_J8V@^Kht?b7PVGkB!sFX}g$QVJ>aOxNdrC_?=(V#b=j9URj3usE*e zDfh=?WOt-<)(RLmkdCA1m+gX(_uHa*wXhG7M3&ctpwHjkk6TQfXG*u@z%DFiI*LPR z!`(b)-fdlD1y;!BgJTQJLn%>9>W4?F{w~lMGwA!QtGODXcXb}KRd@2N7yNdedV06< zO_iD%FJJXEa_vZnd5gFLt81cGJ)}9hh3XNM0aAnS$SZGNibFi|T$6#XcfK^8o)CW6 z?cO`pmz9DFU8oH(NzhD0#8ym;c%5Okd_uk@i%qipSW3}?GOypVOscx0U@;QFOGfr6 z$onWY#x?Y~9eFnARd%mb(;@-zjuWthzGs0P5v$P;-LF>`=#*x2qZx5wAY@`I4?SG^ ztrKd!m~h?{Hw6**t|Rovb>B?D34xnQ_mK?2IRY6kyG5Q@7)}&Tj_olYoDZJ*GSP## z&UthbVwnt67)-r|2Wnsf(VbA@|C3<7z5kq#LDQ0TCt)5V9iFWm%}l*xy5stM3z?)iz-`%` zd>i{QOa^$uh~u6RdatbPhg{q@}dl z+20)Er9?F)OXo@IPWOiK;(wW3*DAf?L(7o}G-dO#s7O6X29A$~8Mo_qZ|U@Kj zH~WXa1Btf5t3^&vYuKfA5CvcXK6^#={*Js`V`QZv7k)Ca3X4p* zanl1sW18w)X0h@Y));ujp4_Ae#H7WBbVi`_F4V;9qz>Q6^)eAhHR?hAH*g{;)oJdF z>W6lu*PKwQnlPeAW!UG8PAo(W8wkXc+;to(!*KV1TSakhm%BduQPi;Vt{AEuE(*&N z5?3hgAupr0d&rpQ_Il?%O5=4ww8f?N=WP;H|MutT=_#CJYq4no?jOWW@4gtoEYwd| zHa{7T*tK1IV@_XO{U{K>ZJiaX-j#T{v*&-lT_}BFpY;;~$?!8LT~K|)i*M&LwdlAb zZU?S@^b%*r!JVW(S7(duPUIvGJAZX37Z{|m1audZwn!>}huds8?Cr9@jdw<7#n z`O{j>X3_}6VAXUi%u-d{_okvn*=6El<=#_+ojEW%A39lEYYeS;EiJ8^{57P#^udpO zW{WOyXlkNWcD2!Q^^$>MU*I6UmX+uZ7xSC<)YJd#?M2A-<0$@Sg6lMeg8c z2NUTLf9NERcXHe}-O&|TFoqaNU){*po5Tz^*O@N7jC zKEvZ5-OUD$VNOrr#)yj2X^9ac%Js+Q1EpQXwr5{UYiLvnG7KIThX0DloS%+Yc@1xD zzhr!GXis_1BYcFKRm@0Rv5aOnokvzz`r zM{lJkXqlwO1J{l^;UAiRFj_fJ06}Ez-^&?`tS19LEQ{=jaZi@s?(;#(xGEy zkh85whU+i-ZCj<90+t$g%N1gE?%#@DSYp1YR)2{hy7naHW44~LX9)qh#TTp;{^N=F z=H7MdYBWXE{x`&#LN8(0Ea4b$aU_hk}nP_lGa_ENeY0B(-W)UN9G34z#%AS?6~*?32>Oy6f3BrIvs!FBe%{)X@%*X zX`{@VzrDI@tbWR&ce)WLPi!KMgq?4-knO9!IZJ(0FMA9l#s1vLtW4?B*w6kt3vk#Y z*PrjDZAWZUAI!JNy8`cX_g?31k?-iVd%&3$r*3aKPEmwCSpGit;Mx2E(cyP4L40In zxdmZ%&jy)%Am_0tU9v0}a1mSH)aQ11Og^Uu_)!gr*EVQahro=s{8|&rkmC=dHkvHQ zdwnYiC;!~E*Y?e~=sc$cYTAsOyBg_U#I-Wc-295h50Koap4HUuy_dbmp3Qrz91KvD zp9t)8NsCImUJp4KHnx1{uDS&-j|@5foz6x|j*FwXd<-avCMD__kMds=ni+;Rm3K1; zAH4BvoSK!7e6&G(Fn@WU0x(wbz~)pOtk13=9@U`TxyokoRZ$;p=D{VBj2oV`g8R0} zW}Kdo^q^JCu+=hJkxQGWW7n!f8`DBDX`7f!^o7djKZ=HvU$_2Tv*P8cL~e$lH`F3J z$r`ptcL=A!#g;SY9UKaRdT$Q~G)XENRQBJQUWid`=(>b^*GWJ6j^MbP(UL;Mt6&_4Jc77MgaX)>ALrLi#7NH_kGD7r;@W^U^3KrNw^M&HDKK zqFTGG`)9bMQ2@j~Vk~`IHFOib-W`&5DTINNI2%G$p$kbIBWY*)-+FIf=zq&)(Jjk; z@ocX4qul!8lB|Vnxod7Zvd2C`g*0SB3U&U&V~PP-;uH*9rw)7H#~5&(C*Bm#!m5yf zeD#%T$j(WlhWznz`@2VDy|)XsfipIIZp)Bk4!_C{S7n{OHO~%wisofa)B5X1s#s=9 zPqK@k&68zSzh_m`!#VPhy`3~M<`KJaX@%fPypl|L`#gNz-Q`{`!JXZT+~0C4(1{GZ zH|YM&Zpatso(&6``D>5IEOX`MosK7`d@^+5ErAd)~;*m(iyx{#^eEW;+qq8PDpEB7n<^?anFN&MxS>Ggb zAs>%Y#gnanV={W()O8cmyrhnTeb4C8#F6M6C{R3Sv$@p5Sq~j!O!$_BnB7@SStfvR zqLv6KSbaPW=4UB6QJEEDBomWPAL<{|H(c<)Ob?xH!zgdN4=^{7?Z?JH$35gKsL7yW zJo^@Fku^VLAHNZD@I4t^TJp{T`%G`Fb^&|3h;E4D_P>@0P#5~4v!p7DM*SLK-!f>a z)hzvWqEf&m*!XeJf3vT*cXH_fHP-#kGt~M9V>44^5$PD6L$A=cW#0pf$S^M=3O4mG z#noJw8e6(wsajvEg3taPW&|p?ftqRa-e~Si!piA(W!Y{j;URAcf5A--`6s@|BNi`a zwx$$n^VzXS&|c4jwWa4@A**RWYDva42-)9DkW2&)V3)`pwkCb26LBcyy*8om<0|U< zc}occAEmWj7hDT6XZxNqLb9)Xl77$c9lF3bk9x5_K;mHj__+q)%PT9q^C&TpF{I)g z9i@pAr9_W?L}WKT`|DDal|s?=21{Pk-7g>SN8_2N?2~Vrmlqi02NS6P8o?Sr(n%)_ zFC#b=9?JN$d>!1vf^UtZ3OE(UFwhyzZq{IB3NFKk$ z?bl*ugBMRGj|4Xv1_me64rP2y59X&*f!q$!5C(P zC($ZEB$2uL=3U>XLO1y~y~pU&4CEGDM>-Qs`k3Fl@YvfS*Xk(pCMP<@P}CLVP-%UY zaAhs`ER<>U=CczC15tL`g!k`LV1qXLD=zZiPP_cvdIDAMe^zc(mzF-gKc5PmGstt1 z(86(NwaVdjtTcsq1y8$xPgdHo*M^SR9GM;^+*Eon+H#X|D%wzaH|M|=L(n?=0DG)% zY3$3P5UUd1J_!6_IT#gq{L@f5O50%YGdtzuo=zB|T^&cA>7~Yr*q_wBq3wz_26K(? zj}p;k8+TFku_3P}Z=BrSU^)=^W1FFLbY8Z<(<_EMR2^f3D+z=u^ndsBBb(&;@z`C( zEhhk1+r%hFzBhpvLcQL)5Ltm8DRFF3%1%HhvMI`YgRkBg!$J*T=t(bfG&b0m;xSZd zG#Xw?`{hgHzQPA%j|ZDrwT;cDvc zt!VA)wTbgq7Oa%vIUK z-PGRR#$3b6!^+yx!VO~UM{Q>6W+CZh@8qgw;qC6>3JJ`Q+6I!EH^en00f&EVWK7L} zR{@fV>mT#~lCkp!{Ei6{@b66iE5-i`8RFm7#=*wj#`7NqQ+Ib)8#530=cymHnyRL} zmb|LU?{rmEHI&7bsD-##skNl_Bvn;4q>MSKg}5QnKmxNde>MUB&k8)p`MYxN|4QIr z6>&3laJILAwC%a{P9Co2&s}&9(#FBm>Yo_QJS;6OTy<Uw7Fs^e&#n2b z#Nq5{1?lO3FXS_XsW~JDHz(JBdHNd#;>_I1!P&{t!qNR-P`q5+e9uA;N632Od-h@q zsjLAfI~T7YP>_p@kB6UMkdF_@Dagvn&d(yM|mq2>w6rH6_KB#5I2J zhyNM>-(C6Lels6;3ndFjD|g6lf>fB5`dOfAY59ALLptVe>T318+krfSe2_)Sk`-IXrME?^nrzO(sW<>%L$RPmzC;l(n-v7k^W!v|kcuH#`kw5YLCtfT| zyr&O?>UTW{yCSzGWNbbf_FXtj^8JEC-O)B%wIIu^hk1nK=QN- zqW_Lpq*dtsBY)KVWH-|-Mk(LeHM{yDb(x1jFl z-u-{_eShiyNB%jsfAIVMKY7q!`u~x4=BE*T##eyk`yY7GzvQC9>m@J#(f?0;?_WB- zcRD_OU)fPbt-lHMLT)htn@ete6IVH+&%FP3La)!Q2WYq3wJ*9JrWe?q-s?a^(u)z` z0%GLO_^tD-2LJ?v{=#{d2mgcf8}lEWzQ1rp|HApL^BV>b-1j{GyBHw&AV{3OkU0Og z{cka_&ANh&P@qK_iqijM41eMLoy&iV;V+!t=o7!bKt2XhU)E%i=h#Rt{QI~L$^Mr2 z{3RD1aPjLCB}3|s*nsc-CPCS|@8AQ{ZJ_&GF8Y`Jx8Hv-MIpXG5MRCj#@8Qt5A!Bv z@3prtNH`LycO=*kwBm~(syzhX`F;y=|9buRKK`ZuT+cu2 z;dhVz(f`f=>F>W}&osF2?;8GH^XIGo&hKCP&oTd3uiqp3fv{N+M7vFJdjV;FAP-N< zUc2*&p1=$d^jW9q*0;}Y8nJiO=eO-2xyWB~(PT_EQEHG5$cUI-)JN9_ z91pc@hm_6BqmxZMhAMMb_5O^1^!|*0 zkW&c21b_jMLMSOf1ago< zq7#9fAOJDo1wa%+MFE769mEKkL7oR8a~gmkKo~-W0aO5701z_6g`6}1Gyo5P8A6!> z(2y&_0DcJN2cQEG0qg)y2;~IeK#)WMtPsiyfCt2=smP)s6C*=l(d6Z%GystNo=?Q* z2hRme5Eo=Xa+Z7P1^}R7Kc7(Zp9Aj!kX+=Y#I?MkPJ0ZJYS%pSb!)1BeCz32Q`W#; zo2Dmgt`eX+_s0@|+5v>%5K1_rAz`}WP|mB$2TFf)SiJx>!0hdP0wm(fG|(|O$fe*W z1*}&HfdjsH#otbAw^rNMYS*yx`OQ{mZ|0gO4hfHvx&=mgR4yU(T?xz9e>g$(H==Rw zEZBWI{26$@cYVDlg?IBRaY;~Ar#7}pKPIN+Q_a#b$>x1|ypfSnwaB{);guDi!ESYD z%Y34`_IgeD$b^KfCwi7J@&hVv;^qUE;klkKgtj!~kprF+uRk7v9>=zC ziSGv7=U;V$lZ(e(|MeRyuf3^7o&))0P@DdDeT|*v zKjLBGF-C^pU98|drB$dV`~CNnM+C~KM6y|YRtdEG^vq7dfI z#MjG$DQ)=1eJQxY>BC?_Q3v@wR)MxOt*?e14=T{b(azmDQ6@$z??lb)lJ`-N*zHc? z9#nxMW)%!uJU?zD;`&XYdyx#6x2~Z|nDLE&kB_9WvEUqyFL8-*SXPuZi9xj4Cq`Ge zeiL-V&*JLloKcnE3jNV9gH#BDX8`6+Y5p|rGWw{$wv>v)sXR(8Cs|dxRB3dN0+jL4 zRx~+rl}_rj5L}iIT&gko(Wie|waHDVzs&vNB=k6Y1fBe85=q&a+dSVx!)Cq6Dw4&X zc(RgCZqZ$Pb69Y}rUWqXu|}tlNpflMBQ;U>$b!s!C^=ip=+uGo(T%oOJ}x+4l`1|H zOVks??x&2dMAE0A!ijm$%Xp_|6V)}?FqXVs1wQWT1G);Pn^u&a`_MVZw9aCy+IwL6 zQDdi~JyxaE%^jn-k9i`oU1E!=C#_|rD~XDGCVssjzU&~^SuE_4hjAxBDzAljvk;4Y zp8}McK#$x6+!riVh-H6JKqML6$2qMYBhZcR!l7wVd2*&U%mSZCRA8zw_C@Ul4(R0NJ+zRQK;@sUrr zz&Nq#&Bo8uaC0Bss3@XxDI;rL>`CSpx+?8)R(Z+WT%@M7OnP7{k)UR@t2=y9NXNR^ zH4IV^ExCd0;r%#*OFkxEhPQ`D)#~!g>F%=MA&qrAtvl?lb3QB({IJn-E^~_tGdax3 zBby|{&xpHVcaNUE<80B3TSqWkAS_X^ZCe0$ak|!AIwIEuOZk~4tCW+?zT_-3aVpK* z8y@)ipre?xZCOBAwv0{)#z|7d!Cq1lw;DZ?`%qF6_ifpr=4seoL^FtnKrl=3|9%XpnKJ2OL5I&D=E7XD*1FHV{oEoYm>wjvtKg-Qjfy8(wxAzrm_lZFSsgIa z5-k`OuHyBs-*JkVkC~`J);zkDis_9tdKn>iL$5^Lcw(LR61jqeZ0(zHm3C7r(;8vB z)ymfgNLQFdI*|vw@HvSy13uE8?)5p3x$J-r5d=CHdD{AqlBB?Fbu7u4Ekd*a^6U}1 zoT9a1B_h<6&}m)PFj175vwpo&dT$_LEjB$GINl;Ff-${AVj3=Ji!c{m>Ob7UJ*`=7saTO z&2L_w-Tc_fjSAeo4Eiz)P{>Z_dN^h$+S2qPtlP8h+#$VYNsun`5>JSvx-lE9VK*e| zoB`%!rl6)^F67y1^^9&>sY{0iyNBa2s*CoaP;RS9$~QLo%0Tx}U^J`z9Su445FO7%gZm=s`)oVb1bYGt)+Ky~ea zvD-zpIO8R@S3|WJvEvjy-Y!vj7Z`+WP^6`Yvqnciwk1wcVoGj*gkF5e4CFc=N1{`R zeJPyPYP|mwx;cBk|ZjZQCTob3Q_$|&C|wL!93tB*o$%+j|7N+FDdr}{v! zWG|A$TY*>BmV%`f^+CbztrsJhkB-rs!A=o+5AZ=8AKN!Oz)72epe2H)ckD^JvSYFt z46?Gb`2`fl~O+#C_O}qbd7%e0smLe>->8{Nd~DjIRE5k_WkXtCqFMQOxX!!c?kIr-1&^iEL!# z)rU9N7k-Vu+9}ANZlmrt@^3VJ12*`eA)CK#>4AT^qWj6I*X2iT`|O+9&SYH`yAL|$ zm+xI#e=TtsGgID=iwFql-QDqn9%iKW1P7n_3ceE1WOm65?piit2ST zW@lPkW;VTx-*~wAHwlT%*_se}cNk8^LeGB~qSvW;`W3*`c^{Xg@;HK_()Z*`C-4nJ z>miag*o)k__vv7N^XXTOQ=c;RF^4WnwTB}`uQJsjMVlZ0YJONSC(7;50Znc~v z-+5h$F;Vt@=%hxhU~MqX6IJC73p<;1<2Zhd!wbtY76Wx7WUlaorQ@*n*{8!Uea(!` zCpDJsy*rAKpB{qtu%e$(#Bv^jZojPYZ+80MVcBGaUsKuCo>FJX)zY@le?0p7%5%Zc zqQN`;G4EzZg6pMCO>m6FHwnp%Pvem*6Asm*!$TIRC9gCG97S6!>G+siny^PDLf1y^ z<*b^Yw$F153Jk5$?$1F!*H1y;ed%b;5Gp}wD3k<(>y*N~X_ZHUZ{$V!yE{@9j3^a^ z$=0HloCDJ`j%zf2si%6jY(()3w{+0v2`t*Ix%JtXINxl5T%hbEJa37U+Dy-KM8$#2{iYyvJ0QE; z($MtN3CrjMX@ zQ5-07L*F~s`Jf9z;4TJ)37*dQjRGzbzq85j=DC-ed~LXj$JLSaS77n5{zWU6pOUj& z*y){{u-Acu!=!&5#giiSE~@*)Ac;SaN06M8Pi1O26N+u8eiQN->ZK;TG6+nbh; zcMVpcEar1LuGEnr+8S4yyT&v;=&bP9h#9{3aupmQ-t46;ZjFan46#}xYBue2mD9Z} zol$zIMFv2^cYvnlRk$o$e=%(J*+4NJ@CGyzUkclx19*g`XHb8JmRu-??5jL}=a)eD z+s_=v{y!D{b&l>R$eun>yzuS8#*G#JQ2!Ykyi73jG;n9tcQt}CKZhjMB%mzQ`OzzI z*NDLzaxaBPMkg=zogqUk)%Bb4Ar*aA0tESIH6Iwl} z+m2-<^1HArh%e$R#f4ZLtD5BtQrgyK|WOC9JDqL;B()cw_0s1vr^=%KJ{PP=}sB`oPB@ z>P33Juk<+D>_7`;wMJUsS<1$~aEol_JG;hdQC?0^t;BEP-fq9GN2BzZSuttSKv9Sx z#*;f-w<65c(Pz4fRQ9uO_T(TpxIu)sh7ChUb%~lLzObA1xkTZr=XW{bXKWh`Lier* zNXb9yX`Wnbb=tdpVdC4K6%_vtsm`wv-h-MCoBhz0ad%$q95Wn7d4~CUM-*v?H$mU< zXJ^@OdW$BL^0k!v=7ek{-bvN-m@#d6vfgG~U$hue|}7Ukdka zD3a$$;;ny-5ZgC#xG&PfBD}`=;A=fZEhQ2PO^Am15@{PK>ii{k^E~O0GI*0%tq3Sq zm9WHiaguu>yE(^peNsbHZnzKHfIf`M%xBq0${|`SD)t@eGUsVNot(_aG5l_+kq0`c zdu=}Hw~LN}WGW)hn^29=PGYvA%1secwVcnebDkBiduCP2W)nY5z#OGy`lr8aVXmZ&92Q-sBdSr^gVZrP4!k zOUzcOR;*1R4)wC#H=B=C+JT~b&&*MRU>Zx5)^$vTy|;zH0dg*a^0EeR-OE;evy-xW zI1r;g*vWI>2sU1MXtTuF+F^4iErcdsT5{h~P|fNf>ubw%3fSIxz?c!e1)r{sOhk<( zJua!LfOOA0yer|hx@U#wGyUm5bY-MTh^W4yPvV!)w@O;%RWr(VmAR$USFU3SS`(g= zT(+33#dp{aOVFbHoR(6oSYgEFX)4!ewvf7zBMxI<>Ka315IkX&uDj9zTm_53BH>5B z+Pt6~2en1n)HX_Ec(;$u9&jKAC+Ctah<{aB4z4vz8*rb7HiYWK=?l?wZuLF6-Z^n9 z2>SYgU>)OeXLt6)ZV3!WaA)tz&>eF&5}xYgIG`LyXhoPsWZZmr3Rlx^K36Ww!^QV8 zOC@sA3muGDuu55t#iGef+suY54=Re<9%S%iKy9*?8IU9Pl44D??v31Z-4+kxIzhXJ z+9!SEYdRFsb74Rnpb}uyR3E5Z^8M)xI3aNb@x<{n{XIB3K+-B~^Aw>9K@Skfa4-^d zbJL7*ucDM1HF3a@RaT|3Y>7Xyc&dcyEmnDoDJ@)D7v%nxG4uyt0nv*!ogz^nZjXG} zmmlvql-juGaZA|eM>VhJ)jGa}Wpdy|?u@jH1a47Vd1xef%m@mB3HH0$>DP_G5wBv7 z9WsN)fg0++a@OXGz|`Nxd8nKi7LxD;6?wMQzABA+NW1F85Q?@N}Re&v97 z)*qk$MsEh4pOQEkc0WW@`i^FS6)L6XveX3$Vy(&cw)Y?%Ul5lIBSxtQ4x(@7Y4((j@oZiSgUF4?2vfP zht?0jg&WWRlEQZe*HE+Q!>W=imZ6ypqLFys4|lT#*3Nb}ON7=&9dc&$x8|29_RQXY z+6-X&0(v?G^V`s!HUl2N_Ek8AU;Dq_J@IjAVaBRx1E$K;ywgglMY6bBk?xdTtq`fo zcPbadJ($0$A%97kn9fHPJ02gtiR$i6kq^Fb9MKS%>v zU_P7(?pyS!^q$VLez!`|_DWT?ES9(OO+>q=D_fAwupSHYhWY3tC(i=@>i{7v0bM6^mE z)l1w2Vs2^ecxVJBoH|Axyw4<;W0kOF5|y{U(V3EX<%A6$-k<&CC}KsX^cm}Eu&KycP+F#r z)wJ%?1O{kW77PWBUFpI*O*@Wr(u(EAY{1M(t#?^=np4F~zK_Sau+5XUHl!hYkD<(K!|DNM7hz*d@9 z@fL}KW{K;98L(mgIt_(%jwdUomAq`WCkhsd$@1vjGN>$IgTN zWs#5U<_2v$s$;S7%3K4iosC~fg-MYYZ-hK{$_I_psH>v-!aIi@*5HE?eI=CCDSi;o zzn56I&sWy%eGFms31p&MqPCd1h6@%nWgp@-n1L~nj!RR2S-HdT@?E#|YmR&P7zw&6 z?MC~K@Gu>t$`E5d!Ktd0=I``B`~%*%-0t`0xCYFJ8(fci1e_=eVW`qc z==U1MS&&> z7W&l$e*YqZGQUdpt=cNBoo&w6%XriUfS}}%0=yMK+NKH-H4@)yv-*c`VbsAKqw=<= z74Wf50CwVoUR6>ER$Ba|MS+k0&txKnPOS9D$iYd~OL}3CD!J_*X_WVKqzUsa4TLi4 zf{5|(Fv@5RH@uiJUveSMzu_bxYi?^0bmd zX_BlVdr%jx%9CD6-wdU=^k5m-q^FCa~DCB@lRQfcfAJONUB$AYxz zTej9W?Rt&(uojQbYJX*;pgZ?XyaSX$|typ z?cRXDrrMizt&<)p=H8ZoNsz+d=G*=dZM}*A@D02DyZ@%i` zs3q*Qi#GiSdYzwk__2W`aV=}_8GZVQZO>y0*cNPmO-AVsz&?;)>UOdXi1VlHRH77( zQs77P?^2u~v?)uY1gpIV2}Kij+Na52_`W}@)5 zxhPrLc%-1C!=xS78=3up8Q9M3B%G^e;8D^Upwm`9i>gz-%ruERhSGExWZOyycq6UR z6d~D+>pMMwnPMGQmBlQaxCA*^bEf+; zHQJOCwkhH5ByXh#cBm4Xws>m#{o+1?K`9gPEGq1R0{;E0H;nY%{$ym;ZYkIZ%CeHl z=g|drOwPx_$h>y)i}{&Q34>AJBnSf!i!XmA?9VlJ913zQznxukdADQW}*P&W>#L zwMxyeM{tL^sp(6>_o#hhq4%Em@8%3p?!4;UvO?Y(0^Wjgp`(r>^5RN~Ht+vnUV z3Qzsv0o5h*glNn}2WqP@Ay4U#hg(;oXZ#G6~;3qx10~AIh$V z%af&Wy;iS}+Usdz^?Y4WZwrX%)zI8r4r08wNU7nzU2$sruSOj4{0lb8X}2puKkl=zg#KcElDVus7D zPyrjeMSW*)*@&?IZ7TT=Ze|- zj`?iPV2bh&6Fg!}H0Z&uY+dahmxweoI9wkvf6dG4*B zV^$|dp!A4ogT#=RkkFu!#3ds;CMk83<~>$&w5VAUGkG^A`_236#vcwBn?5*G(1+B1 zHs$JMIXEJQV!Sz;l2@%(Z)KLwZf2|i5ejly4kfQMxSg$>)$Pb%m}4A$eMXvS)t*}z8NjneCM-EjoS#+D}nlGPp|J}i5rlh(6oB(I3~`#D1##y zQg)DQ6Ia_(OqJ3|tDM1zinf*6MFM#WML1D|lNs0sid=WcXdu~c0Xsz=JL{bnPYXJS;$Y7ERAZ3dT=_;7L;UhB*9v^$M5m8$6ap<|m zCA1hoHoN7Ewh^1qGqXj2mlg@lp@MsZG;HzUJ0!#RJs*v5L9etpB=CFT9bq->>$de| zaOs92$teB1fmIW#Ebdf_{LwAJFfk&zVJGEe`?;;9IBE=in5AT9H2&>&86?^-$1z+v zyjGktQOaTR4N4pEPjatd=-)37mcuyP#VOE?y&~4VC|Jvk;MeU8ZWPj0uNAW5_t)pJ z5KcQ!tHQsP%!l$c0@S~tO6;vb$B0gRe~gG#8@gi&{yuRlRmlhw)96b-+8IM^_+0) zq$bj!F8@J&J_q|%d=?;V3~d92NDmI6lw2snt7e=+TSJ_k|M52N!{tK8baV+;REJQI z$6JPoSL}OZME#6tvywLKY;l1s+#YBK6TdF4zogS z_E7mCB$cxp^p%J*Nqpcff!7(pC56sj1KIOH_)8@E)m;6G`A1#?w2n44iZO0eVW{aL6Iz5P6#;;3 zr|={dE$~V|k#w4Mg_QqM!zzhSY{@yjeXS@{HRv|qd#%>|=nME3qyGB@3DhTrJ6>*$ z$bHKW3X>D?{?XY;4SJy&X?Mw2A01v9HOn1=?+7bKf4&RwdSKJ>_0wDcdkB7uRK3E8 z+ykuoo>B!93QcX9tp7Blk#aD@x=Xd&z5d|`N8DC#2E_XCzyt+$^qgeeuKeUr+empXKqEZl~|3@;Vc`a1KaC6`;Te?Vh^9WDx%=o&>f zwB%Xpzxy&~%_s&)jrJrj?$af`5D$AZrcP>NaBs2KZ}AguD=8Q~2%6!uEyL4A$kqE1Arspo`_#sR8a=yU@d3$M#Q_p4k?R8`3Lu+ng%~{MD<9_L&sLH zF%C8f)+u#4hY`Wb4*ozC*Yf%Le01|@FWI)FyB&s>%K0cNv_;cKZXG}f_jTy?!(*y0-*tVBiOLm+RUb_ zAn_6mHI|Xh;Ar)9{evZox2PAWGK4OpWq3e&}RyDZs4{sP>$2pLwf8y#UdCKC5fpIWD z(+%}eRIOjnE?M7MyAGjwNntbIsUULo;2{hH)@GiD7OXZau#0`MTdK(Ri`C_8lAIa7 zG3^Fn1z(&14c0aK@Y5p|^=^7R*@V!GmJ&|1C0?_$(SsBtxvgthMO4DhPog}5RU-mP z$625a&T4z3n1MR*m6S$*iC}$)LdO?gYYKA>&)01D)kW%eNzL#Y+w+{&FW&Og-oXO& z+==?&7pi4&4P;PPc7s;%KF)QW_f))2+O|H@M7ct1Ah%8}1 zaUf^?vRSa4B0_Qr&%_^zNpNya6`0J=$a5tM4r8dl_fm%jM@p376H+Y$9vT;~OpaSA~1_P>ThfDd-lI`sm+Zv7U%ftzuI^PQc(GA2vLS)p($8&O8 zT*e_~g1aDs54Ci@BdPZIUfW(nw$hZr`PB!Sn(Jyi3bY(51}Fbk2DU&C$5tva zwz%yqn5G6VSfk}YG^d@|`RCwgxJvk$+)%Sb>p@Srph7Np&6J|hjm9_3Buxw0cGIgK zgX5a*XxePRjnb#U>n~4j%ilMiMiCEVL#&z$$E~AyxF%{#bVP_WZpb{VhHK2B^W4Tk@g?r2i9CC+w?B-0rB0rh= z+8i7+Vq3F7UqbvankHmVzted-RIVA& zMYhnwNt8Q8`?N?vJuxOZ;3D}DJfQ}>_!Zm5Px5|cJRe1@5LI29&i71P$c9)|Ea{47 zBR!k1l{8(z;BlW)Tsh>?wB2C&UrN)1L19gAlb|Z39HTU3sGFnb9l z|5)suwpHD9HHP@-Tl&n3d1mjABPrCbG~UE+i>H-q@JTS$E*lI7S_-%-M`}o3=`^1d zCR01-OVGP{C5yyb+B81dW8tdXXL*0Ru;5`cIc%+_f}0r5yHMP~vH#3frEh(uq2s=u z0THnE$7{Bh;10k4iX~%Vt#}_>v4;qU6e&^4R+o+4S|#1V^61rzHLd`cgcQxuR1{a4 zybhcVfN2oU=k&*udaz`jM1OT22*34qoHDf9&YX7f3QNmSR7#r5xFIgGX$pI+zW2ML9LnZyO`g+Kc&!MC*vC0r7SXBPjUD z)H>IIyDDY(j2%4TSHBwP-yGz+DGuYBC0?V%VVKp0|0H}KtiI!6shvfoYPVQ|jsI{Q zp*kzRwx?DR%-R1F6Y@a{r57O2`F)H5J)Ga@<%B&ETA1AQNiO3`hhvB?v~7o`{j$YN zr9wJqOTvN9eP;pYEhRdKv@yq%IE?Xm9!uVg9$!>`U zuvrtYYpxq4Qb`Kq+jPY9t^u|p}%Xn7Z&8yW`6X6LZgC6R(D zOZX&h-o$zbVX~stdC9)?%*(|`RktP|rh{+IsT;R(abNy4=Rv&~eVd@AJEbz9Z!@>^ zKxfrV)dULMPi(#VfnU?iOi#A(8mBDMeHA{aP35ki&z58IB~PKf@jbd`@~=0%B~ttX z2!TVqBef^s6KSf6jaRep3TPSsb_%^wpjs1beTG| z+H*ky)W3gAQWe|9^DPO~-XJepf~%*30{Mbt56lyK2NH{>`LsQf_nY`}^pqm~Rn*5Q zrmjs`1Zu0F=s3!+cH)V~PO+tc+w$P0!^{C9zG3wUvmT2r@0&pmvT8#PIK3+4cOfo~ z#rXL%9g@e?#B1a$bl->q&Mj3p~VWuaU}&Jm(2!3 z?1gnnQ6)k3U<2(DNriAVk6!m-LL`-426w``s$ojU+OdLm_)TqRN^u#I4fG)W-pKi? zw2uC_;z;2XFEf!pN1it|e+83U0WO%FnE@kIROx9*$#asesw0xVRYZJoL+W(yT7ssz zB`KDJuCW&=Hy59Ha(9yCTJ#o`jpoPR3Rz(1CUTuCM@ANAS(BpnLCFW;MZjc0Yd+1h z&~$AvkOXH<_0x>?gkt_u0S}m{`K0ScV|$wI*&zGNRvHfM$lUjGy?oEt#*HU{ZPgG< zaa?7Jbwk=F6yJd=@`A*JBKZ9kQSgat`7%~@q>GrEIg%N)?X2|v26L=`b@S=P7dPz9 zGRnnK~g%Sn{PLiPRva&I_cSZu5MYWx9zdX`VI_HzM zRKo^EjDkf-(R431Z)3oWsN_(wHtxbW*d#O=+A@vjW6g=C{!BKb4Qe*sKU zifS8Zun5+S{@6BbWvIx@sbHJT0RK0cf8`R>yCer!ou-YbFr@qWTv8Ns-z zVBC|vR=cBxxSx*&xiKDvLXT6FV6t_s80X!3Q$0tP(c_-kSI5i}`s%drf0n2TM^ z-Dqnn;J&tts)l76$%r0rp6*$ZOP#TYGBm89B>h@T;bN2O#++-PG4@sffQ6hi#uZh4 zQ4{m-N0PoYmQ=0a)(1>`?i58zC1A0B4%4FK?$6_!F(S_Jj8&fX)phK?Rai}`Wb;YQ zJml5;yjmLf{!OetLq19~yF8r~S!fN}YaA*BWd}s%vHZg`^*j~AzD5(SuVe=wzULF( z6Mr6nk&oy)Bja_hUhm4md6p`*irEoq@aTaPQJG88 z<}&BxsCDkiF9dR<(q{vWKbpGy*E@u0Mv4si~G?+d=ZRlWa9_#(K&th|chyg)vPkvX@)Tw?mJ~ zY#tR|Ot&NtL)XSo^X!HF-jT0|(t7W5IXSBNg6P`4@)JzEDf%3Z9G+^Noy-i}Ki5zDhmUIcx6NAJzmV&+VR3+7J)!OE2YP>v2k;RMPZTU%hLqouOQotpL08mtoNW}L@UVIQgZL9pgzdu)(dWrDwwPjV%^lIGI=_BvN4cKx4ppv#^81O3p`D*m zK@qTsooxs9bw+sxQbTQuga9s+q{x>hi}f*8XMu`TYEhXSqN4^5(H@kx=Emk#tr)P8~*zNvVBsQ%fcQXS>ZyV^oc zw95`t)Hr?pFPTV9ndq?;&gjsBMTrAV$uOu|UE8w8hAr-|5)+NU1HxNG`E?ui>(|ql zy7MPN7XX=1F^RVx`)B>zg;gfS!(bdeDb_ZuAbL2?cKkXA&J#?%g3e4yPV_7||bL+JsIp%LMnbeX|cw!6uO^Q2;oLNrCVWT0l1%8~LegD2Hjw9yLk1Q=7X zn@D5xHgH+&?=S+ljx?S43mn}v(cu9)AcflF3WK6d-q4GTXU+Ed<>r&uKF)wy@U z^ws&GE>*Dl;~a0}CJOkx^FuNm@mbaK4vTs-n{;}mid;L3NXMe>qxROtS^o@I61;M` zd0QriP543O7uoms-`d!Q(O57<{azjPiiVLCY&%{2h!tMT ztGW3OcJoVa8NSKpzN8#CvZ$joS8lVuW`&=`ZZaRoKYUxex*ZSAW&gH|A<%t9R8$Xg zGv~&3#aj)N2*a@KG|a(<=DV*7T~b@tz`Z`oj(n>A`ElN2kxsHTgC^f{K&?GR+-4v) z$SWj?-2J%EQ}(j9HJ+BoF&vMK87oQV7&AbQB;Uba>O}O093^;|ZO^fk=G?OK8#=BUXbcrR3_Q_JGbbMQ=?xuH}P3J?8eWKa!U zp)ORn-9f61ZwJ1lpi%ip@`rfmw?9l~s7!p4o35Z6W=jh{`ZR^?>tW4e8uD)>+Woq8 zJ4M1$%G+zTeW0OrxINcOIeFslYCI^KrN7I{Ys-dQOq$Hk4QR99MxPf0j6);3SoBW?`!K%R%x%*TQfW$xdL$?2bG4mzC;J*0D}!%HiK22TAbO;n^Lzg+`Haotiq7~ z5Q4c*s8U<*7IECRg=&<83wrkqg-2D~AC5~6OkT!F#3d@^Y6<&$vlPe}QGm+vF zJynUql9q*2V4!Tpfg_R=tNfPyM0WDtZzqYp#!w02$Pw%TZ?fZBMBYhM$PsnWR#(^GW)y%^g~qMqe$3 z%WcdY^T|`dEi9t4*m_S|5TIcT3IuAw2i1=zjuN{{Vpk-sT(a=3T(D@qp&?e&_IqLn zBiV#n)YzW9+d9SQ*#TYDU_BaKIQhVf!F0OwK-+dxs(=L-@LsG%pxII^1r#>T(k1s5 z4*_xSP2h|w+Js#s1*e1U@MQ_pJjw^R9CP=%5s(@OYtJXXcjTO1tQvo=R$rEH$quXT zFU2AmVqF{2(l1~pXc-M=!s=iM#J%#gOYGhINbOdA;1^|&wP&z}@#-wxma_i?ZU6LB zZr8?u*unq*D@Hu>wqxH6aO$(|KSAZ3fV&|4mx7P4L%*V*&kZ*bK-Jucd z@r_%Izsk8FnF7RGDH83~UXF1LZvG^M9WY#^k2gb3-FhWPPhd(49*Y<2De{I7C=1Jc zsBBmh0!T%_102k!=(U@vOOeIemE&Mj~?2oo7&pj43@&zTjE1_gtaPV|7)Z# z=)=Ux(bj8lymgT;SwA*4hPu8nZQqV54s|6M<}EGTM|dd%t7w`t{2`gHeax5>!2L2l z@YrvQKULz5+8JRG_mWLQYGSQ*ERaD?T^ZIZsdMeJ1L}!L^s}K*gh#2|mO_|M2>Evt zLVGpx%2PKa_khn<-{8`~)sj+6j8lRV_$eX9x?a>xCw@GVw$(*eaTN?KP|9AGj4YKu zeCPoR0asqS)uo1;LUTX-0NiKGeV|81^)m#};S{`PHq|>pz0Wz9D4HMX57tS+$;~Sb zZ?s#{0&OZQRb~!cVc8-PC6h*-W0XSBBo9}BrZR7Syg!)0OFYS}RpdCqhkJ9PD?SQG zZr)k<3o|`n25`&BQ`3qSPoFP%=Mi3{!{=}7=69|kd6JLk##d_7*!`Vf4SlULws?MJ zt-gpwGu1KE1|?_5p0A{&7FsO>vOhay8EW_`PQS1_z zEl+fha{^mkItg`}+wp*mWzvaU9*eZ9w zixAE10y`VE%5sp{7aK@jBpuSqN$_?)8ZjT4_jtG7Kdpzupw^h!R3?o8vzRSk(88W5 zmgrzQt(?n9XE#D$t2DZTiwqv5s(+J-gfkP6HOgeLMi7*~Utmtl3-iUceE{Pvv+Xw5E2v9jgku58W`A+ zQCUQ=s=j`dk3ynn4#5Mb_~p2fvu>B4HIdpB z?ub7zsQA|-7lPuS3PN?7b_f1>A1OCB96S+rrCMBo;TwOk-@X(BI7t_iX+K=qX948( zzu*ERju@+PPgP($7ooBfikTYzL7&?d6iI5gi&C|{2G|fth5pfKip|q296H*HOoV0; z=RHiduw%f;bWfN?k+A7jHMJp1hyEFs=Npau+Zewf7K@c%9ud#FESO}= z7^uwbx>4C6PeKojzgCtmwev!TjE({x?7Q5BUoSz$+s1F7d`=-~QG{~nDN7{ru05UO zFXmcE8r7v96Tdooe5&KM7@||eyYc(xB?xY>gDCHO0|~R{W49$=Nl-HlQG6SKGl}0!hu{9eqmFwVky~T{hlXA8`^8prNOq6U|<{OpK-h|&5 z7UI-6=<8}t|8$k5ZX#si^kCYH=Ii*yA(i3hO@R9K+e{QssW2o3X3=19O9jsj__z5F zF|t+)2nP7wWiD)-dSH%Q1qldl!ue2TpEE#xJU5WmrU9UVEKjVa=PnLZaK)nSjn1fp`b)*c0Ykfu(Yt`kPed&ea^sD$zI-1`i zdYpnZ8b>3+GOdEfkQo+jH4?kj;E`k|ECPK#w)7$J=VKD(OS|08?~1=tFHret7_m$! zhybAXj6ZTx8|l2_ULipJTKq$|vCa6m`C=@a^O6I$dKAN_vP(_yB$ZJ!ha>KWe(-vq z1;DifKoXRocN?l)Ew|KZ&(`>%BTQ1N(e5pR)?glJ_2{ES%569B6LCJ3UYP4h6;^t?Z1vJyrwL7ZLu$xmOo zkMj3dM_>8c8!;4|X=Cy7;)j3z>KB(s&t6^V`s$67v;XXyZ*cu)-(P<6;?F)hI7RZPmuG%~K$;)k~6Bi8 z<%cT!oB?=g7T79kDKP4I$|~G+q2a^T`U;WZE-<4ZI{iwR754K=Ed&;xg2$C>%&wV0 zzAP3nR0F}x3m9)~dJ$CHvmPx;l{P`W#|E`<2Zv?pu6c323x^A`#?Mq@k|MO#vRdKS zXWT@;6ThI@I7-s+O}29)?u6b8NjH(<49F)e-823RU_MUkQ*6?np*JMp#^rO}MtZjqRgRUKxMZ&DsGbKStM;!i&p zFwWpv;f?VR({=o@D6v4D0c>nb4<`W^T#}rB)F3|Y7ZEI|9YpBvZq$4b;yw#NuLNs; zX8%E~(pcRjkp~5=LqO6lCeRs;a7C3&_-#8YeJb+97evrP$f~V#LHA9G!s4M5C2B|y zCZW1ow37g5=3b*jt}D>zf15`@MrVY!f!+LgfMyEU zMeadZAgkk7|BLG(4*OgJJ=0gTdLjzx9LMCPuQ3c)iRxJq&uB=DsB1zznc^D>ordWe zKR;8&u$~|5t5V8n&kcc!9do#6u7L|YQ!j6esE$Kt_i>(n zPqTcBcaDzd7fM{OhV=LqD;TB3deBbR^1fb?2@gT)If92abn607IFJ&*db));;mY61 zFlI%39yeQ~g*ghEVn?i}OxYwhv|KwQv|LLaXks5d`jL&?1DM`bfZ5G8{KrRM_{yU< zrTr7G4c>WjQl2`D+_+B#3~0DH{<;PtIA$n3xj7M46KJR z%sh!mE7zyDJRN#-foFx+#UgW21}iX5-qKcWa3qw8EXFAgxb7}=*Xy?fv7^c!?f`IG z{Cqjj^0thK>#JOZPZ~abadCWn^5oP$%4};E9uTnd){2NVBy!`26Mvz&fRG}L8qv?S zA_IWrKP%eG`E4{_zX0>jq`L!MX!9uwR^A{MM7>FFbkVg@ljxB`_A{!$)gMVC7W! zbq2t}I}2ji3}dY*HZai>6hJHq<6Y8^3M{g|)!k`rXNI2hT?Aj8(M@PT>Mdc}ki^~tKAxeG;X#;+p7jtDLgfEE(zvBD2?O6(J zGZ^}Qj~||4x$vtYZGZXf;-i;J>D4R2SslI7x5NaAbwm#o{V@+bm$bq%QA1(y06WL! z(TnrTPtPtNIlPD&Cw2K%;6o2=gEPir<}v8DMfz+#kHDe|S+xus*J(HeYEPx2GEolO z-0uuvP6C2SBaH) zCB^AM`fbHVE$cH=v?Z=1yxw(iBnHF{gDpfMp@+i9yCC;ap-}deu4>Tp7jK<$br8i? zE;8pCVKhL!&AVSgjRNr!9|mXqEIdhhSv&8eK{9eG2_uctX_&4S{NXYFOcoe&cHjg1 ztSMcwNk}S&Bj6iIkW~=^F_<&>%g~nJjSf8g!j9@VsUrZae}pwW@SC&wOVGRzQSEaE zc&QhSlD_iCGtJZ_)q;^MmLKgTUb$Nhm|-9#xFAU*95ALO9gdOXXErOrrlnDmUw3%} zGIpskXW5+h)kdY&N~c*!xSVlNcNITtj$$QbO1iPDT69b>Jn(ZGNw=Ai58Rx;tVI`E z8n;pFw~30+75x6pT250EsXQG#${{Pqnv}#xwbKm-D;EK<6W!X5PW?=2;FmIU<`|v9 zZ;BuqzjTRDmA3^++*L4UA=Fb)AT)rlVsNI1qes(gx%3WP?{fxV0pJ8hP(fS0YGkTR z7YmGO`}~W~NQ&sz5D!^nqNvaVk7a`3g z;h}KUkmEx?U-wH(1++Q3TNLMq%#sZwCa|7!-OWjx0b>bay_4Lh?k3KrP@C}0$ zOZnqBjxU_*zc{=6#Q5V4W+lv}*HWC7w#ZP?2gB5$DP`M~^4*AaEftXv)$YiQa1pN> z1&uDgDjM6^+Jk4G1t2poFISIAfDsdBOW}4%f#JrO^rqYW!IKa#-5LJsNZ+m_^=~~n z(ao(Ej#k6lZ}2fmT|y{dbx}PY+RQnDX`*`c=;_H+XzL$oj~h^2uo)PkrG9N_cS5keT(d z7{G5T2X)jHLb2B;S{6>&QpEGcFF#WKmEV3WiW=G6m(dHo3zf%Wxp@WAgeq)HZP(Pb zp0zqWqHp;WNc@^W;Cmxboo*#hf-55bxRzWuZ1a#${%J4^yu-Ejxd)K-m*;>|6g*Q^ zg9<14WmHGE!(&Pf(QdYG!#pG*a=Q1wicx|SAa&8C+Q;VYE<^e=0JAZ_;tcZ;q}u`2 zy2>^-EHgw$>x>^;U6$a;tW+S(E zOWQIO9?2}gaNX{QOaEp}Fl0KbNZLz@Xl6|*8{UT`xsr#iPW?PEcD|i$@G{)86N~l$02R@jHOE zDm>sg8^8UuN>mky>>Z%Fz1X_mdTVt7C-tUUP(wOubTncPkvz}1UH|@n&PH)UBAnNkCLfMBfS;2O%QEACy*Dqsl~IEJ~+-#r&r~ z<3lImzT~C50Okfj)E8$*&(AKDPj5a3#)8u7L@Bk#Pp8dEv%4GcSJIa#3Nn!k0XK!n zr4`bFZw-G=cQPezs|`TOATMg%>F|~X)^O>rMl*oFE<88`h{@}{zPYs2N;P5t^Fg@A z^jWQ~FQMA<3?NbTaI<0b9f0Z@sojZH*p~Qv#ab)~4qxwi3FLP}2u%mNCY$LI+);~x zHl>&)5P#gLHUYvl3wpxUO+I!06PKYx?Qji4Nr(|gjM#3Q14i^4jfbJ6=T>dzKoWDV zHG+T6iB^c`u^uIKjSt)-6CEJ2>7FHCtC>`YFVWx$2jO-6Ir~`+D1sP^MjN`jrr1XC zrxpVyC~`>{0~$cR2Tmc zg!Mtno(tfm-w!85xJBITi7MI-rt2EY&cs!62wc^qFhdflXAu!ZnHaKB5iu9#m0muI zhB8=(ObMpNsy_tuK^L{6HVPOl{j}6C5QX zbZ6|h!t3VXr8a3zp8eW)Z`~qCs!cdr}2nQP= z?kX*dN30r$1Y>l8M|;pQ9Gli#!gtx&cYMzU0B9p?*fqfcpP{seXE>YXuKRs%ZgASZ zL-(^elvyj@=#fR1gdXOf`5A)p6*Cr$+FCOmKg$M@6cFatw)*aGKjL4nvj6c?l>X_) zThG|2zx0&X3bY;m>Zf{b!$J*0$}u%&#tNghn(O#AZ*m7n_RX##tRkZS@1uKfE+RhZtQsvAQZw) zZKQEhU5Ck=2Yx`%P&myRw-Q%|#9tnU-69qwlRSiu@c6D^Toe&1(ZyUy3?;^DnmUSn z0Ve-=7=WF;gC=tEmd9;!9bw$U)j%rxH zWosjTVU*i?30x;YGvkvI#ptC|OJEHWuOk)g&GA3yvQ=kMO#3xN)Dj8%Xs4qP&5k8O zFwlyBaE4!Ke!ATPkS=Xyr87LIYr*uqR+B70F+*?*J)#Te;^$yQ#SK28P5%+CV_5xv?%QHC504 zFE0P=XRqFQv{DYhu9umQSD(H@!O1aC99~^qJktrlP$M|wZ-};Ftl#^|*%MxADE&G7 z^{3jC0i*5{f0n0!fR8nx!eka$aTV%+^OKifd;3&xQGWjF^1Uak$8Ty<#KezY%YLp4 zwp{BI=@MtG(3ZttJwMmG{Pj@xljS`+H6%;gt6zdLH?@&8kSYH3mn$3_YXvbE{6N!( zelCtbJ=<#cj3ZfP)t0<;pgg&tcAXzg11OvvMnvg7MA>rz{Hvcm{qNrY#C{Nu+C}W2 zqnm3F?Hno$I<}ra5!l-8e+JZaU;C^SSOg|zt*0nowoEv5k&URs9*Z!Wsq9riBd0MH za!zb|Mj4v% zGaytR(>N@$Yep&t%h^k%<_|uqcSyf_b@c70C+5R7LR0tD=!+f+w;~-;nrJ*byL?tU z1FU=zkKO`dkp5T&?~Hb@(>?LWmrM=tjJ0OUdtBp(`SNJn?Z2_gcY#FlDE2{Sh=Y+b zz4k>cY8JoQhS0$qdoF;#dUje_R&H=`WIQ*HUb=~-T`KU*so0UQRE1ZwQUxj@sIF2o zys8s@wtr?3dMGs9jT9zIn&TLCQv~zc0bLRJr3S(+YM8?|@FxRXVHp~{#pcWlPwHs1 zLg$gG0AtD_M=)%nq&s8rS6ldd5bJiIcP_NFbl^^9(qQ%Y75uQ7KB{!HY`F24 zzmAQqz!iqMyRI{)OW*cqfJV#YCB~eBF-F%$-AE;hM(v~7%y-q5!f=qo{tMv${>768 zzOZC(!>54mfKHB<(*~Zzw5#+bB#P?R$?ck_iMzne*BG*b!D%V>m^2u43~4l+2BSX2 z?xta4Z9gsWj@$s2Hro^LAwUBEgj$0eR~Sr|*XUovDMYuW1A;SR>!B8U-nbo3S*?uRi3W-4jn>1+W++E=skZu77L;A+b6;$HhX0l zjo%bc=+SEX?LS6wMrLv@^Mwtucl>e19b#sLz}FN1~;|+lpobDHZv=&L)W`?zw(YInu6<|i9GJnkWx)iNld8ybPzssO0ly` z`o)97r|+D8<85mejc_|LG@G*9HqR_S5THD|FDsRD~4E$=6U9hRa#EaqL z^0&VF_{1Mw5YBg=_^zjQu8vQ>{%${sw^hWh;13{Uwz<`#PtNpo;kVvAWq!6GQ5$a_tQq?Uf*6c~251c~m0mF-Vt8z3kU zo-KwFedZ2FJd2^aDaV)_=&C4TM5?^zSuumo0TG8P@xtSxm+_I6Sc*gDW=o19Lk?p} z#nPbAXb^eb3I^~lAmZJy2QT}0nbE_Vmk&63EJxD%IzN@Z!R`N1Zbd54K_2Y z)$Zr>df9-7K3((BrrfOlz9aWK1N_V{g~Yc+-wv{NHM4`Rj{VK7Y9_rMnAJmsM8xEH zoV5msnhGY}vn~_5FHnH$;s`4QG=(r(hhJunfJdxbgJw{TMn_$v*wnbXI;Wt3-c|e( z{P2_W6_55=fBKJo&(AJj@C_wg*T|+myr%Qu&z|X9{4e!5Un-xRo;)SA%QjZ1@EsHW z1)e%7Gk%RqGGArY{NM+B;|Dr=P{)W@uk~HUFFt#Z*Iod56%cokXE>13Mz2vpbOXx3 z|5wlYv;+C>5^P2fUTaJc(vv@85fmTOuvX`c>49^%seL%^wE%P{^z8iP=?O2|ckz@s zY`Emo)00W6S|b_1GHN=4BlL=n9t3%U{X!;R|G*xr>~rLZW2CG~O_#Q=!D4HBxzq_z z1)O;n*j7UtJ=pw^aGn;cLDs#hfluwW*#jN9^qAV<(1&a344w=aYkPBs0g&} zR}yy-WXJ=ggJd;>DAHR*CE(XFd7k3{G3q_V7xd!h(!@W2aoh)_*b_gqA0$e9vtcdd z4fu;AXgA{5Y3Y%kU#*Uw)whP*qsE4yF!2s&VXi>kf;79Osr7OW*9)Myuw!Fj8l|{nelV!z?-{aWf zMnFfPx?5Q29lG3i0r-9hoH#f?wj}+- zobf~O4**OtpW!ur+i_)h!Y*VwZ{-eH9V-!%hULbh)_yQ{E&llsV+&fl9T(z_@rPp_ z|Ic3RoG_Dvv1p~N)6u0-(N~M9fMP*L=sZ~2*`Mo3e)Rn0T^@!qCC2WJrDhjO=yA*5 z6h$IqRLv6i1g~j3x_qg(0r9$6773BzS~4HEl9-b=`Wv2kDuxw77-HTBbtog=#_w=n z#jh_;`Rd8)V_!d5KkudCAq8c$Y53ZTmG_Q6x-SzVeo-$pNTu;lZW@hr+>9T;$af6o z5-2u9p|*Is;t4-T`L!wjI-?*Vt^PJrw?Js}=J>bH!vFt%xbqEwgDgzbYbJ^UK2Zy% zPfJ-3HNS?>WgD@HldwNXIluzYRnXVo_!v(dcGuv>Nj%Do;GrFcq=UrQ`9_; zf@GOA$AY)S>9r!q#4r|pNda?vy6s}C5PqJ6>f91CxeFd74;L>oX z6viD5JpNGMV!e9r3p^?rKB{Rb2qsE4z8OEzh?LRWl!3(y%t)PtXHxy`7qb2M%K8rOu!ACx&>>1sPxhWKcpYG_t_3g}|R z$~=g<+zJMai5u`oBGVH+u{hghGh4@>vsO(lsuzE^#GhnEYZv335iTJO%f|Q%8)pFi z^IF~c3i*r&bb)7E?HwyE`1i|xKR+GYytH9wu?3_oY3#(PdEyFnxw;Sz*}B&YVFB_? z?+iKfLv*K|G9ZQcrj286xsrS1SDbhoK^@bu#~lS`H(!ntWqROfk@QCRtVilvL#c|z zLR7ZOXq!$~I%g3yNj65d#-B5uPuzvaSW8bSvv(B`W57_rU{x)CvqPtAiRPJ@6S~OW zj$e8eb#8%Ov>3#Xc{k)Gg0w6_`+5Ctg6@$LN+a2Uq~I z^s|?|gN26{38;E9{A^vDMqbSqaD|sbC{&)*$#AwVKke0 zL=-#?D*=A_tV3gF3lt}^{u_qEx)Hyog4wXiG35b(jy7^j{KdTA833~wcI895*mdyp z%m*e)@zL}I&_;@EO2^%rGW%$h(e32 z<-4>f6P3*Hg@$&mg$@2LBVuZlX@?LK9bef&T5pWI(C5XB-72C7PH8(3{&v6d#ZyJ) zR{S!qe-N)<#LNjQHS}iq6CyUdrCy-2-hDEH&v?7m+ zP(b-Gm*l*kMJg7oq7~*EM8mb@NQKytB298`J~=QA`Xr$SNfD0gUbq|4skt-$s6`Lh zU8xf{Z^qw&@H;L7!uX>Nr=kIs(z%Y@!CUOoDhK-xV2Aii_ItZO|FKO2vyU?(O(1wG z6a>XZ#BOpliwRNn5cOdefRO$81^>p>CDW3dClN@#cr(V+btcvj6wN3l_eo<_Bqa3@ zV8ml9HTTg2C89dG0bNvCt|%^T@ro$Z`dBd5)HNjy69x>MLQCoK=%VT-{DB_f$bv%N zr547{-P`deJ!BN0+ZS+Jof{x3LrddE{Nc=7NQ6Q+!$U1PZ;ijMaxu1N!Lm$vHs)Z8 zUc@xQ5F_Rf>M7Z2cT(GD5?fas6T5Fa9HxR}9GFkfE&{N?_S z%W;q^R;e)nY}+^uvfD#xRL4ZO?Ft+ZRt~lRgizm+@~39P`Gkhvb+=$1MQ6q`7GHC(rbT4mN?6ic-ge&-)= zSJMBCkO^)8IQ`IphNP-iJ@U5ejbNNPLamTUZml z*lY6T2@KAK+705iW~co}U2cMNir0Ox-&KaBC}txCW6P>E0Fu^RL+X;7&>h&m5J;3E zTZ-<^_;se%by?nR=Dc3RU%oVc^asc7_yJ0wG)Zbw*718VBL#S4{PiXb-E-DZ-WfVc zBJb`k@&ECQ`lOyg>{gBKKVeo)d?;yn>S(7SdK#l!uJ2}bYwklXfS}tYh(#+)O#wtZ7h-sMzpQj;QGN<*Ml@i{ZJ>kQu|QI=Qb0 ztSHR&u5{;WA4;j=fFK;V;OD9q2C>jkli5Qb-O`qZYGVuMP!68ZU9VNV?JqD4!Fqxp zZ|TBL<=8G3o5*Ff-wQ1s-Si~RxfPBSHK?sb$MyLC`1yTqe^E^Yh$6)>RTr@u_AK_B zB1Tce&f$T|Ar}BI37;#%hUouG z=+rK0prP3y!zGhgapkzH14#&?vo$9M zH{w^`20#DKbREA&&{pb8?JfA_;Pd)00IDRL1y@12HU9sP9&g;El*_F_;c*zio@Jq< z;}4_$nnCTlT^??>jzb;~xd4PqCjnw>PXbfu;{g77^BxU#86{)FvLsE5^wgqDGsi(i zqq+~StZmA=-C`A|*i_5PKxJz%#7Y#X-!S&U9}fnkyjOHsv3cM0C;I72%TaxTP?tS4cZP z@VMA+S{*a74vUL6pW-FudrO;;cI&mO{qb8I(7?56)#WCaA;AfQIeRGN#BIWl2LJj) zpg0n3H0`Bd6Gg7Lw9AZI z6;}bAx6|`&KwcpzOQkv5Qj2v_o@rjPWWkIAn^O${w@YiRXY^+LOlEKwe!j#-pWrP3 z#=ju(#m6v&ZumCgFT1=Y7HsBG987NfL)N2mrz*Cyq9{QvZ$ zdtLuHw!s@is)fN6kkfJ~vP%|Ed=s180eAcQ5XS?b0R-_U+B1aPAx>t@T?Uvcg212I zCI-73aXT&!krIco5lSi#^-!Q+4@Zgj5hs(C&~-y1%TN)Q&~ou(q7jvd+FRn6X!O@* zhI2I9HADkd;er#Q{*uaWKpKF@Xh4}Req7E=4Uu&WQ3pA!R;zxC2tO`x#b`cPie^N& ziNCLD7uh{qcw3jOJ_D#rKxi8Tc+6u;j6hL5=eX@@{Z_HVFMvP(@F~8yu!23EA*e@# zzpQPV6$2PGak+(cXKABFJIARnS)!aR%}UYWmMXPvf&q7HU!fb7ZirEA`HW$c^UASK zwJ>f&`xo{-c9)PB}nGr{eN)6tlF+R%|-e5?VVeb9LI5m z7gv&CNET&F5e_RHqV(!l{dnsK_{EYRZA&smg(Cc7iUbJ~APMYZeZF(DvTJ*07X&fA z0}xxg+ntq_my=mp)jgM;Q7?Jx0XroE;TNqk%d22|l8%Ld&UebcKlS5PD~LET)1|%%n_#W*}^h`u>MWL)1;O z)83E@>r|=hNgkC~))p9+x2^2LDiJl=tV$Y|zAOIqymg(G=fIAWu^#4m-H+evlv=Io zcfdAM^3YCN-0a1#5V)U?#E>6p43}P;5?$SslZVe<@d;3yl4-jah(Y>#m>%oXQ^~N# zxj|A(tXxsuHK7mVD=_N%LLikF;;&mEd8sAk0B8IOd2(?D z{`}{UW=JyJ3>dp$Oi_Rt^lAR^43EPPq05K@kWPH!PJd$-(p#yt{Xg)O#sQiQ;>wQd zkbbNy20)dBNLo;3ZwY6MVp_xk!@i?jC zcVRo)b~5d|EC$OX5}651 zn!g9X9$fM+?SOHO8^0L51yb_6!zQ!1pfjlC?u_ctMF^kk5BwI4TP%=M|77M zGdSay0>8XTDbN_Sa{F~XhR3n;|H;$u|MrK%Sf^wpFu=bAky>z43b{`RSg0C9(u_KTxx*2wdNFW>% z#K742@7y^#Jw3U9$1&S1?_coqCzAIH1F(MNru^AyI1G4Hg!T%-Pu9`Vg-((lt>`8T z*f=>k*!>TQ(62l)?@miy6L14Wuz`gpQVf3<7$Gr=?q+S1D}c~`_KeRi33Q53QE?eg zW46T1oLOef0;yth`L#YdaI>aAAxjk?T?$SX^7Wc@TPiuT{KzY&u!+oUTtZ@xdvwak zcEpC@pkbYS{I2*VjW6_d0F9eT@$IGJm1S>o`|(Q`2s%)~lF@6)Yy6A@l=EfydFDq_ zIYEA>{6Bnlu+5P`aJ$Snaj4b66oIqF5Q9-mZ>!^03*Zl5E#DvGXnY`~%7Ujd1u8P3 z_9#_D6{+b6o2H(=)KMdmS2gf7v9}E5C@oTnG5)NHl1$mDM#Q!VgO=o;A1(b+g*1lL zjj%0=;W4xJ;dfyMbh`*(tbqkL8N#qB0{~kjuD~xLRP?7JHery%i~++APIn7Gaqvro zj>#}AC@w61h9Q8O*2iCe|Nnpyin$3i5psPbO*H-|CX|oRQ{T!F2Aq{@%K&dsMbC|R11g4q=a9>;y@1BR>lD|<2!7erpPBpd zmk0X{EzmJi_&uZ&0?f7cVk)(6-eA z5J>zDVnfidsd0`oe$hN0S;SqwVodlavjAASm*clh39__gUR@pa zlZ6yK8dhuC7z;;0qDUZxPWiI@1^lQxFdu-e3%Cs*=upN3LPrA@v-}lc`2Gu+2ptH) zrDir<0DoMPSa%mB03>vohw73C^Xu4o5fQP7dsC%&k~gXF<+_zE&np&3Qez*x2I6v0~e75x}wBn=Ex$UXPf#zURPCdwx=9LPQF`Ca@7Pe~}E`U6WB6{C}C<-NA zzo~ZfGYu5B`969$A?rAP$wpc5)cK%Ik*A1b)9EUig^paw_%v)fxwV|icx~8ZJ0K$? z+AeSuUxQBE#Wy%8Uc@gx)$g~{ z;K(3jkFIsyo$#Cge+PR4G*JRgKPhN=uy6c3DJuH}kSnv9z#v4+aEzfXjvFq3Z}|Qg zZrVr4#F4l=5^qt2r>Tk<@^0kC^3@lgTWy{Q5+|elS3uGu*(i=|Ss8cURv^-FR4^zn z;^)(WFj%U6g;76dO=OrO+-kuu&)(mLya)H-AFwsvqcKZrULHRxRtzHWPhCZt4Z@h6 zUIUAt1Q7hjV*#uG*DJpRG{$qJz_kiT)?Dx8Pz3M|ovvvIASSZ}GozWa+34Zu4Htkw z>LQRBJi7`i(@Y_YJU2XQHWtdGB4{2GkDOtM=`GVm_LZ-KlveHnh+#AlL*^9g_R zD@}5EC4O|z^-h+9-T#2bE}g{`zX3AP^ToW?9|2?<$q_SRO^a`G*meQ@>8p2{>8h;d zIgL!r98gsokMP8Hxmm4J<1{7}`Q!=HY!vJ*b&KLhht8kuCwtBy^-%>^mSc(J;*O;2 zh*QpV0~PYS;*YLuy$FAN`)KG6(*fA#p=DUw|1CtteK~$HHz11Pvc*?k4G(QANUUkj4RQ3)?E>MU#w#F~Q3Pu4{ zE-KrFUvUa!ph%+dv|{jUD?#g)_AHMa?9d3YC=l*f&MI4uEeFYHY<8Z&XU;+CZ5M!` z{*5)j1F+0ZDrDh!TD&=t{e;FWv*D2k9d+X9*8!3or_nh)IoDg_QXG-d5iP6Onrz1` zwNf%%XT&VN#N>}Rvst0^CnM5&A$}K@^=(auLgG{W66ToPa5z?o1KYqaIL31UKSFrg z!S8fkjh`?bw8UhlB61D@hBrC~d;z%90pLn~9t%`tI@L8{Oia4stC{B{^lmcj9rV2U z0{G8P!-{Wrf1UCRQz@v%L&gF&Bd^lid(E zPP1o-s*(-=mTQd`UQ<`%m!4*q8N`|om*dB;n&Kc5f`M}p|A6cOTp5eX3V#A&n1(sK zju#yrC*DLe%DCsk-jgAaoS%RFTyNq!a7hq|Qj-uJDZrc~&NM%RV3ffukX{@mr_*-r zU@!Px22oc4C7dvm{gj0hk)*>;@p}%i!^F4^PU%utEDYTRoiUYk`0CI5<5T0J8&`~% zm6Amv_t`RJ7q(_xqWB+P*u@;Wwstjs`9T2Kz7JBo31Nlbh$ud9z(G^)@Zwe~F3`aO ze}b`;i)X@b_au#h1;4!TL<{95Ym5Mk($@(6-TZ&K*a^DN}6Fyl|k$O@cjt{jeq@oE)lnWo0n}(G$t3#0{KMdfunCzS~ z&CTzRWJjmFBOxWZL@Ka?5kh4^|e5+l=Zvenx zzU^pnXZ6PKZve@1UGjq#CJPeA0SC*z7W`Ubz9K2U5>9A%wIhrKUg^UB)8kkD7kI4f zv^W|ljhari0&g(RA>t4OwiX^r2RmQK0{EZD`Y+)MIK^uC;wa2Kyn~2{t1aP)8NO5G zghWxGJ?jYYxqqHQ3yXtU8?mlx+#FB5Xtk2z@iCi_AN$45;yV^1jLr-3W7Ou`2G_Mq z@JrGLBcS8ll@+|JaN%FX4{P9$BaZmBsgRaYR9ce+SaMvG*gm|-5n&K}JtIQp%e4m& zcd&g0NWMWT1U`F%$b$klA@kvZ%cxKhJJRqrY1gp;KGz#->&_=zxbxsR6%+frbK=mo zEy2^T1Mld~x2T5sq_o%|J!+cOlGkXgkx|*fIJq?dkr9KZ7l}}0)1+%NA$-(fU@#fQ z{rKa&@w?IrkHd*6j+oL31)bv)YUIZ>d|tt|AYrgZOJ%{|mV+N_7(zF6E&}PtzJTSU zP)Y)Mjku?$|6k!Fpl#{017XUwkHOa%lMsfCno*h&Ma5ZlWS5zLHU4!hfN!4P{@Pzd zRIw3tWnHoIo63NIbPj47Q!DVTV_`aMW=@L~cmhY|!lFoF*?8(pni2CUc7_<4^FD-3 zc1p{xROpss=H^QL0F!GDD9-r9VU&ULqEN6O&cH7jf9ypWu_AW`80Ifwigf9q4qe0c z3vDjf0V|cdPEZz>gmpoq|A6`GfsO}nzKA)`APN??pTw3Y`-1}x(Rp*KsUeZEaByHT zcpVEso<8s0B^h@fK%k9H$8<;Sn9o7;q5_5R!L;iu6UYEb<$JVJPf2fQS;MuzSyZzu zI~?s(DK3jJA&m`{ShKEGy5O*YpeX2R%#vov`lw_}v@Xo( zWYkA^Av{l|Yxx@YaM=-S;4j6YRo&95Q!M+E#&|i;3K>`;lVe3|?FxCq&+U^(kbHB3!8KOWLBpA+f<9XPjcNn_Cus36o38#1yB?Ie?I{FueTv-`17-g5NfEh=s{AhT(H!F!N53ZUUB&)kDlOMF&Ti=tC(EiYUTkM{qCW z9B2H!Lou*HE4(8fQlvi?pHoF2JnD)7c<9Ws=*`+SEdb$XkKsz^P`sbd7@&YMsnoM z$IxtN@Os+h84;uevo1>XeJMx;8=SAu&;p_?C95?129?-mTHM1Ubx^QgZwdlIW^H zY)9ADWUn}$RHG{67x9mMQD2T^^?mqd$<|UChKMihv71smik#~J+;Z(q;yfwUh?>3w zPft|D&cTn59zBvxqpAa4U!HIdSQY~3T$F%r_@LJK^Dk{dqg%AC!rsNID}dwFh(Fzc z@R9*I4u5Q5z8Yq3xGb_}5Y~}9S|!Ct&Xg0nSWYf|G?O_O7g`5YkdAx}Suyr(B+4ab zzgD%PJY0d_h#G%O`m#Rbmlek%d47x^aPHaXg-{!Ia+S~qeko!k zkvLwiW<-+_sVWs|WFUdq53avB^gBR7(=8a}CV3^;Obq~;-{jc%L6a8Ybeq{W4@X?z z0ubiUp550`5vNjeBn>rlPEF@&NHT8}?0A~B-NtG5xW_OS(eXFzCG0^&AkA> z?36sNMCVT@ENZ9lCQH|i^`jAT&ivms!d5XHa}G_^TqWX_E#;LqnI;(U@1IO209JS&WZy z8xfP~kHb;QGQi!atx4AvL)qDji)HA>SeeDCeU!PE!*AT+560k6H~3XA`Xc1u=e^&R zg#Gy2nst|qxwPcN%iiCzY|tFi>^|wZ_345C2XgrEIic2E!67o5;wCSK5Rqb`Eu-CazyS5PJyx~q$Lww@G3~}m|hvk@|HN)tW?gUxWI|?3K64LhBm81?@V; zDM5M^aN{>NJ?}#~0CV71*vU$%01MwsTY|EHVY|Hx}SgXatd zEugDuSqoCfMJyK^L$+{{eX!oOUIFw-D-X63CUdFy$D}Hz!H0q-JDzgOc<%ino=mTI zMDZn?&qsk0t-n+W$6*k%I+Oyx#XtqEJNg8|c+8G#%Oz$_MkT2uXCK9XdHjjjXdJuo zV^coDP$zBUV4x;<>n`2YCieSB=zgvED31UEaW4uKKi zg&}vtvigP5S@PBCYrO&pt}X)a+}apkFP6>lNy3}n|Hu=sfyk*t1KHGcxh1ZK zt|51I4lmL_oGX9=`}30rBMVB2H?7JD6P$_VG-k=n4Aq`p#h}ck;ABQ7fO|nrKfeMqpqFTD~pg3_~&JXSKAj@<5pX*HMSzN>Q?Ccx}M} zBdE<)&H*MR5|UU=|QROr4Ud6c#K=yAqQ-^?lF4*9CA*wF)N>TgyGvXb8ka1e$3> zb}AWl5EBva1U?ibMDzRTaGwDtDJ@|D01{V8L_t)FuYFB7FjOxJQ%RE7l8@FVJE`+4gjr zOQe*WZ$e_W<6CXpcM&G#xCYs1M(DYK<57)Yg+IcY^ULtZJkWp|0PNEkw}b3?6Vo+U`K6j6*A#Mz)4!9$Y z%A?27D;_gqe?uncIxc`PmBvu&3}UFsuAH*+Vp{xC5fv#QLYZ&9)?Ns!OX4iDwwH~Q z5jAcU;rfshHf>oWPKLEgo}8$bU~w548i28c4jaDzN7hHH`X)_<#+Yk3v}R4g=Hf6P zom`1naTq-8`3P441@PJQ+_PU3B&eh(;mr}x{EX`8YRa3UOIB%e9rnG#R7zcx7g8A; zZE}_ma}nrCkh9f%2!G^eoW-)4nZGz2R9hP^_)f@?3&Blvg`|b8-S8l0VA1jNK+wZf z*h=iOZ$-RI150jPgF`v?N8Z~9h!zR zw?n4NcA4W$rQQv3n>R!--%@9vL$Y*5jBPRc3}r7Ydq^wqNvC~bs+|r#wI#(i8xKP) zHVtSpm9!3-8d!|mi$-I)hJ!8E3CREXSqb43VTi@iOe+D#?~rt8z%r~MKbFQwE=P zOUa8eB|`JeKexK}@8%_3zB8|$LX$v@hM=SL#zcl}#O5^;r_4dLAaF>RT5=sNrWi5k z!d6NabN!+F0{jfSDn-~=jFc(ArhyH47VB#K!D*SozuYX1<&CT44-bVu@5`dQaa;Cv zC$YOt!1mOMLm+NCS)6V&w?KNFE5NtBB%B>e(>8*nOo^H)N}~i^BJfmRW0bPxS3j<8 zROzQ1?;J5@o({AHzxs@r>7!wUCH6)9 zi=D&^x_Z`9-}+HT!0VsO@egln{Ncxt=Ggl`KHBfc-)#5>xC-AVlI+$@^+Gq%Ln2C8 zGLA{zER|X2fb?+|fC6}QS`URY#g3fGPR%+s%$DniOoYQ#GWF@=&^18vaQqpG%9(C3 z>q=@3YdKw+dskHCtF|!B56yOTEEr4y#$yoGr803J;{cWv2%$V{xwEY~$=4vT zz*&LjeK-6P*BX!seQK%<5{{wBi9xZDMCc;y5H>$>QD#;QLUU9%s>MmjD-b0-v|42) zc98BhWnmZVS7&#>JiS95kQx0kF^Dnc`XxbXu4#tN7bA&dNF3yt*ffc$-2IZWpL@^{ zVm^j|MkPjYq;YRFNMuc> z_*4Pf>>m6$O^k?3kCKyLf3S+joIg?J#BnijElo(e#o>i+GTf|*kZ^kaJmD62kG235 z%)fo{Q-$vv3_@*!u&Hj!$V^Eg;0iDYKH2bW`x2jIsg@;0EqNFbR5_)JOxx5*Zk;JN z-!LHS#*zqzSc@IWg;TO6nv+H>K>gsuQ;U2*&##RALyk*Kh9(4^Br#{JFX<8u8$+r48$}e zcI{e(t=btk+$~~5+)a%si6IQ5r{P<-o}T7f51jxO)C*;|>H;ZNN8pyp_f^WTY{;DV zr}*51AN_$JaJC6%>H1D1cCt1EO9HVK&)0MO%f}z<7VhqyJGbxLxucWY-Me>h)2C(X z&z5%j{OtMZ89!;VupQJRF8~Gh?~gvv@u&Bm{_4HQA7~|LPE%2tTu)oomq?j zFZdH?kfl8B((Kf-U~Tr_?RXz9Jo$ z236ul88yd-Y=@G=ysbw-;#8_Fc*wN4Vj-vD(qHcK8DUH??F5$=g0M3!+qNXB zvK16paJ|4s#3f^5g&#-Yz@lvijA*eQKY!>u47@H2py6qk`kgnb z5AHtw^#iX2O>NbI3)r+~nmQBB>j_o()Q_J@6u&CZ#Y@>(s|wT1(1;Bg>d3o&gmEEQ z+5f$Jml3g4bslonjk{bb5mbzLX+p-lnI11B!Ou8Ov8H<#-?y7ZXh8$a0Fw+IHIIaD zo5(P5^7-lgzkKul7iWC_z)gE$241@b(1;(N-v8YrW>MFKU%gv*M;X;*Q)m7J@llkF z=qCK$ZB-JFM^iYyztjjCE)VF`kyvF1RhMjP-CYf-rKqUpbfcOMIvB=?9Ux*S;=pvV zqA}FXuvw3`85~K)?nL-mDa6FR?XLvnLCOyPgcC24{rv3SM_<2xteYIeeIpOA?*iy_ zYEpkct_gXZKxt^Jb&*pT&$(gH`zU!SUHvW!ZLL(LnhVqCai3zgYYysM_fhV+mN7zo z)hf!Bz&zEd%h=<9fJ^!I(G2yFh~mI7cZ)`iY~Ufl&sF!@?{DgUB=mcq-=qc5LH0`c$=#>_c<;%BThH#?;`u{88LHxN0a0O9 zm?<`DmfLD1OnBe5jO}VjrKZ7_5hFBPFx7`#kD{LC5ET}KcxH|<&a%QCOz}$vL*d}H z%}Sb2y5^Z&9=6&SM-#|vzyJ8A?n&6e+8en5I(j|e)33VsZ#{qa*3+Ne{_25NL2emb zeRcbg8z$9}s*P%P@$u%fY~Q?kK&`ScI7LvbG`{lp1=Fi z>4`22{h+yv*wvJ(q`<^ig;BfNo#8>b_9QzVGq4mak;?XF>{__da>{<1fFxd0eYRZQg!>3!rnRhYAn95^_!WJFNuo`Y!5}c*}YX zxad=z-juy4*o@U`4QThy@~B0kL0eKcOACU{-UEv}ERmXFHzEPp9+blxd&M@NlVNm;&zVDkX1&HLPUL5!gQN%DsAZ96%ce$l!08NjMWl*at`~OYdCyhrxzFiBT)6Gio(?>tL z{q*l|J^In@XR2fFUR2&LXBRL_Ld{$Fcq}UuRoO^tXf)L~FG;+2|8^~iF_5*OM-I=< zZ-04q@2}rJxY_SVZjOIG{sQ>rhadX?+x6Mq+Bx~F7E)LG$br!KR!A6mz|-Rv9fsu{wGhK z;Ew+mA>#3u*Tci`gM1BC>;F1@zUdo`=Wt$s`p665!(aXSpMLR+)vV81+Z}4oib$k>4n*|A$bJb8+;Xh3KKqMRQifvh7=RHQMUCW?Qmlnxje)v%9mdM@pjwA}?+e zJyfETwH^v_o%oaXhV(WQuf+oB2~a6eaZ{CKsOu@+K1R5^D`M6PJ#$vV>8=F2MpN$d z=(y5cF!QG1zgYl1ZO2{!cew(nb#1LS!tkd;teP+WMcptLQ&W+~Lfe@=HZ9Y$fNj?y zmR6(fs4a+iBk=2A6X)pOX8PC*z_&ou%~Y)Od^CS`WoZ7a8)lAITpVigOdd;dIPS`B zVvKNZ=3Wf5r0AA;t?=Jm0eYH_zW}!GRiS3~7%2-I4d z@As#gj&NIegYe%hfXtnaM_&MUdyh=jP2H;bslqO7>#OQ)#g0uxm_5{{TBe7Z(>}WF zBQxvHbX$0X@asbvI^MUOIQjzMQ!#euU}jDg#*&za)a}t2$>>U^?O$EW(dtXhxD1r` z>}aO<`kI+7yzBi~`1O$_os+kmIQ|0Y`p`^t-BhiN$!WeAv-}ueE3RZ_^_7KLvgwv@ zV%Je~T1%Xk53^Tx^H<*6NDD-9wmF-P{5-msZfi}f9NpXkbwZB600JdbHBYDb(`LM9 z@1JLPr8wKfjyLmJUd*}MbcnXrM9Vj)Rc2p38s=+@|7HPXf^2z&1QS~%# zN^;W_m6gogErH>qT|}n48gIIZp|qS=LsxVgLld#mDz5|nC9t=fdR-R4JPTbYP3%%qB8zT{k_8GiN2-GArF#Eb1w~HZ||u(hWaaZx()~eU*f_wtM^q zuv=;=rY<|pO*mb1Gr_0}vt{Nw)~H&WD#;Y`P>jqh)|?eF@7z7~CgQ(Y06l%jUjPlI ziTR?RlHKJ*xJF%=Ez{*b%Y?3C9fh3kYQc233F$VyOT_YgY$UC?%ZYrf%}Yr9YrucA z0D8WTz5q^B1eX<7S3?Ul=jvKn$@lf4BX43hINJ=|l& zBKA&j1ojTKkzJzAwxT#KHrs4w_UTz(VykX*S}UezgQ9mw+s-`H^e)k6TXENHhFW(o zetiW?n|jNMV=sX5d|Xdh=HrDE9I=&_n7j8CJ;AXVfjx@j#;Av?lB~aG`eF3!s|Dij zHOGH?dh-~d>f-ndplhWGL7VHT`5`jY%vHhV?x07TXq)5qq2h0W*<;3L&R($>`dVR& zk=FtL%`H$(|H;Xb-xjNX&F0fY{9zEgp9-PRh4Af$Du>3M2kpYALa48j>Z%Hnqk?Rr z1MZ@nCFQ28S^U_XCHLByUGMc3v#s02EIb=&zb)BB!1Pg)j~_o~)PF+Hhdf$3-&eyo z4XF9cHpZtxjPv=;r$TfhkG%i{-CnLw9$~&>;*+2nf<7a0#c)N zNXLKheR;S0`}TjI?_Afp4*0D5cduE!);-KTGdkZf(F6kk;A;f{FdP8TH8y~UKc z5WW!k5QsCv9pP=~>){QNhg@~>_Hg&`VROc)u&LfbxH}@e*>pq<*!(4grG>?1Ac7Eo zgtw2YhdV}CTv!wmCJ6Cyz!-qYi~fy#Ao7+W5O+H_3=d-b`!PX?yN4s<;sMc{VK@J4 z7XooZ__+L5{afBAz{A@Sav|ep=Zo-mwY&3|IY$pa`#T6@S4V^+MBdli4}mfAmxsSJ z1Rt{)&K8D?RylKM*1px5P2~{h>3=|nt_3lx{WAAUK|q&CMs8l3l)j~%KjqA-zD?? zEBe2x;bZ6Kc?W^%*G0`e{Jb45%6}1|tDBwk-!a(xIXNM`ue%}wAo7wJgRX7}lOWHF zp8OUP@pN~_H1od|@xp?g111C?5AVMm{b>Z_%fZ9V)59I%?)#S|DKT;B3#OktW{zZK zFQUd&)lyVgR8mS*Tv}F6Rzg-%R8CS{Qcz4-TwF?4N=!yZQd~?*T25A6P*hk#LQFWr*LQYf~S#VzQDl(z4Prm|sB*S6oa+LR3yx4ztQg z$%@Hd@FXN8#iS&}#H3^-3QdS~?=Il@3;$mVK$^3`zB_;n= zT~-W}%%AEK|6BBOq7wg-yM(y(?^E&jarvuqm=mJudI$5|0+E-K5tsWtasM#nWMwW6 z!C%$>yV8G@7t6%%J09-Dg7(9TK7;M!RTJ_FY$#P7n&GoN0Q`ko0pi)T~_H*=3ntY z_AxU5V2sVsIO`UCkGzHpoA1zh(0|1jb}nTuaI5gS(uK@_ihZx&QNEP_Pw+)9zvVHp z{p0ID#Q)gG$p0t!(ihBlyXm4Pu;~ir{|#T%_EP45#PLYQfB63k{>K+a=6}Kf-$J9} zd5Chj-iFfu4Z{len$k@6lng%RDg8G*8l!l@7f{9U|HOaKhA(nV!RTJjJa75m z@I?%lGXEp~yZ*mr{ug`^!==psgfHvAC$ii8f5Vsc@2)Ox{%`p2`j>EF_k)oXW$k>W zhjod{-TvK5{TP}4`4AL?T6(uWZW7rK~#P|W)KCrJ2~as_)3 zR3A3j^aobFdK3YT*D!DTOX|Pm+leEfQL9x-fAcTmy7)n+oJXLvLcD+5Ki=JM$@I91 zqQb=R2gbyW{6`*RAN99=J23xXvGN}x8_^aobN_(J{d3#k?nhSEz+Y09i8zR3T= z5{7jj(mk!kgAyK*}qYs5K1-8t;aY9*w>y!(UgOuZ|oKVn5waVpA z^w3`znP+W!&_8Ap^~X%M{4tX)f6OH6kC|-#Vu+1 zviXmhZ24m*oBybD%ip#A*IuChUFLVq|L*_4_2R$r|LDd4X8*DmEr0Z)<&R#p{Lzb+ zKYD@sqZciI^rGdDUZ7aSB%rT`?4boLV$j+8N~OzH2&(s+&oA&<8T6AJdbxgj)u9|8 zPXN7K4W}T`ya6@k%k>`HE#)Rjxbo%N`m`m7y1xw3N_{ce(PWEFV|yh3MdeZ^*fFW{mcF3dTB>2txk!xf(rVt>s;lY zl79vv^j}x87x$GmsXi(H>w4zKt&~-)0{v2gqoh|jqD8(6^IX&^mpz^5`=m=vn)u^4R1J=vJHgZ~p(^ef!t^FZchN|KBV8j!$H2@EC#@Blsx{YHh>GTVkj%Xh_NIAFkvVY#s@wC0!T5G6yN}a0e*lN zLwNyij13|{5JLq45da6c0tjKK5Wt18f(>wDC?~*!u}cWh0BnFLMxPCHaR4lUBt}jO zpu}iMV%7_K1;b$gV1OKk%3-o30b~Gq43)>kEswz_7-|BT0V;qVpo^ipfHHKnJYH1+HV{C@`xcW;MlJ*MYl+a4lj&20~0piFLHqjQ~tdFE0Fxn?<8!P%+FRjWE}7 z(%0w5KuqKS#?N0;f308;1ExxUaqvNm|6no<54a=4b)iP!p{eO}vH$%u!T)Xm0|-2| zEigxooap-u@OtxaJIs5zXyKlIpjPQ_g-Ftk{qjjyc zV4Y|?+OQyadx;2rEuedJ{o6V`)s-}LeOLs7M6W&rH_Q^DpS782X=*qj5N8|`BO7O* zZB9SK!`(CpSJ&6KnL|QC{JRO7S*>K(zNg!Grggiz&c=wTl@sW-Kou23M^?_xSb|0A z=!Q4;?dBKU#r99F5%s%jG9z?P38u{SIi~ zDMm^Vk5LQam3=)}P+I9LO>X4pdp?OB)iqzCCRq5{dNHEh)~fG+Y=%(e;H#4*(J?jl zhcNAWS_y`B{`_GDx?Z@{7sk>0y3ZQRE#{GY7r_R89bL?5I$1wG>XBmhJI^aeU3rzb ziplZs>{G@f4&VOZvvu*ARSn!Cb;}ClsG(#h_TiPG@J#82hSUyS867GkEd%`bjb@^v zevk)BZ!QunNFfp9JQY1p6u+aE5@%b*T@tbv7uz1IayNvNbIZ@d@#j5dCRk$OHU!X)AgdS^&5WdEbDlpkt5&2?NEjjA`gh35C*u&(wkvzk9gkMuOn~_ zrS!22P(47f`7ghT;b7Ehb%U?N+XI%~6u&T^#oN(VZle4aW_bql*3MgAo*XnIOTLypdExQZ0w+(?Sd=2p zs^%wk1J*TXMjf+Ovgp>gt2wdM^_>#pf&q+X7!x2^W7_7sH5OE$HQN1+sM_-X#x*@6XP{;zLU~ z!0UQCbeSse$mxzWJ!=y^*(lUF!1F9zA4KvFy{T-?H}@w$4osV_{0v*UKhroc&Bb(w z{T7b*-MkUbZ`0E=8>_TLUs(md(oSc5J%v9HpQvKVqk8_USyhZfeirF(-ui0$+s0l` z-CkXIj2(l$g zZ?X~3%|4VQfu-8yVXuHaRps?(1=7ZYao8-CBd5b_V?Sb{H|}2^<~Xu=rXj96?cM{WXZRn6c*3u*i1x&_Y7o~c(i9^TK`M@(@_2`7{u{3N zSdszN?%P9FLtSF>`i3j_$K7#?rcmYa(>HL^I-IxdYKf;N%~+9V)18+1xhP7)v(kPx)&Q2Ls<~fZ^zC@R zP(h`=i%V=g23E)|b;7eciLTw23}{?^FhoW!l|Ym|miNjxlkte)qwIBp*(+}$+rm0i zZ>=pW0C4y{w_rI18T+l7u!G3&D4!4&8=iLST(t3%#)G1anvj6$#}=W!PD-j10u2LG zJ}}0)08fLYdP=$Ix*2_^Gi^rC`grVw+Qd!vy2;T)o7yI_clsbswVGxkbJq>sw$yQ- z!WNT|qg%-%D~6;)_a91cor16&X9Z$s7VoLIx;;@2;0UZGh)MS(saW*o zO^cKEyc)c+2*)oc=tgTJ@AfD3-^#Om0uUMnyVo>7$AO}?h|yhbOe5-r&t@a;;}{W$ z#uc?YN3#&JfnMUAr38Mb9a+-D_J!>9F6+;W9(dRGH9f}R=rZJ*ZGY8BKHB7{@!GNk zKo*L%g$|aZYL4(frT`)6JG_Y*3}GQf4HT* zd_>*pX4uMitA3W8XXVnwY3s^EP7G<ro!Jz;0~ zuUnM zm&*i@MTJ3xSG=V}zI|&sCc$aNX7Jk)X^8pu+2}gAc3-F~)5?c;o6Xn1#UtZLL@06n zMT?U~sTjJmr>0%4yQa5RXcOY!HA=86>Xonks1yC#Ib(~HhW+3%YP`Osb+tZd|50P= zOn|%aHT+d7zH-_KF|DVquxfa$D5Jv@d0W6QTUFNWmhA)BNuyftf$?(MW0oR`{8_%5 ztgRtWRkT*u`@o-Bc;B&8^Q<{uRS>fALD8e5Gc9K@ne!J#=XhOB*^7G zaSAIz75!FSv>Sbmx`qgNS)^{iHk+GnW@C@4pZ$tkjM`APu!DM!q=+zS+u~4aO_;tK znW)XW%)*$!YtI>VoV1!Oua{rkh;~uuXM3j}=)L0jf~_0+iwJ6={&PEi^;brdA`dMf zZ~Q5F!KY-ehx}vNqUYfhgwBEcTAFm$lsSsu!DuTuhpS}FPCg|8WjN=8pPURF6sK>k zS>l^OyBndEL5mnFII|B;?> znc?Z6(@0IxWKe;ygbL`Z@N>s|pQDZ5MpAbu;#a03TDM-QjU<_kmM4vG{C?S4lr+uz zU^!^X!%RVhi}&2Gyn-Kh!&c?VDE7#^BBgsb`;a9P#JRG}C1>~|12J>~^i!wn=zyRI zDW-A>4ae&s^k&<(t32@oxz$RdE(|;|6{BQ#vqF~nd?80`>C+`!J#h+;2u0OV{hM|v?T58`KDP7< zmit32=68qBIekO}T|mZIRJx{aXUZgv%ITKH?U5|1oCIz&}2z+M` zsJ$3wW^t52&TOAgG#!&jNAdA$$hlYbOyj$IJzr9+D{=OFd|9_J25$d)$9GJ9YGb?? z5QpYz|Kgyf8xc~hJ(+cvY~|-!fFvcY=z>$~ZB_i!T{el#kXiE7y-(Rgvy-l0Bh&B; z<=xbsHgb%R*Pdg}YSHQ-?h%4eaxwfaf#=A{1NVo&7RuD7wsPY#xL>jlDS7Uo52T%C zXMFOM4;b5R^K+yi3WS>p;ct&oy{h9L^*CoQaPgf~s)SgXciZbK80Fs=%7w>G;QOmd ziB429FDtZ#6rU>lNM2v^I$e`HHF*l+iRXWe&< zv9uWg@pI?T5-=f#I1jBLbj-W!p!>zG4kyb+FrPsBDFTnYt>{fA56jfAzXSlZvuOa6YMz0uZ#jCsc#wL&+mMlx0f%`4sOAMJe%(^otzZs6C0dQbIx; zI_k$<=yK~BRc7IJBx8)p8wRwD$&0b?;5e;uj`|`Q@`!@eU;7eY9`Wryzo|k5Yd|h! za_SW=E^0_FXcxP~qeI4sZ+){OhO|76Ec3@gp!zA{3DrHR_@yKYYEidWa42?3g$jL^ z4n>EPp9uB)7QxNUA|ezmk&V)zd%NHl;e=_OJRM3*-L)&Qo}`HPHB4$j9a$h|G~-ba zLuAXLHwqqjhXdr)UC)9O7!@v9xZ@#Lg&1-Za+8T4r?i^Lp1@7x8+tBy9?h$e)YQzV z7;17it)5Ii=Itn187@0dD065WQC)(6ajVXwl^XH)30xz$4Uz0ee%GopPd8c+aX!++ z9yDn*=ev;;KWqhRBBPkF^wRrS7$_OuZ$zT#bzuFm%RSTi@B^ZxXv$ycU$Wl1amn>r zx=#dGTA#f&zDIgp`gJi@VzA2jp$wVe&yTj_A{NgnixE^;D7AH8zb&?bNHj35;0k_? z9NvjN^~+QcC{hdRYr6-*TDTDRvJzAwP8{2fW|!3a0elkt;2 zVdg!{L3iyf$`8B!VpUjUd`qOwtvZ?^b zO9CPSs6wQmj4_{zV+-bK-E4#RZ2U{4zo%y7$$XGF1NNAJJ$PJk$kYs+;uqagq6qIO zfl@nLskrCD49Us}26FgM`Uyo$LCAAt$vxg*uR>)}32RehozkPz$|{;5@rjl@_%fBC z>+WD2uOLn}w8H5@Ai0SZeI6zIRDHtNmpnv&6u!)NfFrSrm`AUFqpb7!-T}60ep&QTidLInFaKwMTtNWqjCX6W z)0etZ{agHiJgfp#%IF*R$S%m&lqik^AeZtiC*q+X7sK;ar)yDC#nU5BN=R^v_t7B~ z&D&)_$)O$zyerEQIeVr3F7zXV^A;ft{3;8z>J)yMLJZG7 z_MCYWz4Cf*En{9yS(muALc7Fn*72!63F550qg`Z!3SvG&A8vmze{lCbi3@&tdTCQ_ zZFbe>HGA2Cg|*`9&y0J%&k}-=SGj0j0;x*S0M^0rev1K-4+k-Y9oS!#4ev#)fFE03 z&Afq2xtoM_57bvEKR2A<6PVfKE20^b_Df5&zRV5C79oA;N@ex*rPqjh7e_VNzKzgU z3F>rGBRuH$p*@ZsT3|qRaxA!%7F2Y5jJPwB;(PBr4WykbUz;kLo}A5*w3{WCiDfRv zLvKC2z6w7QVA`>NFROwwuO*&d_%gPZBl7DM z-p?LUG*Sq^gd>$ApS;(wD=LbTfnS#RgJyQXd`u{5H-3oY=h#@>?rgoMix8%tpyz~L z8hjK>gn2|JK#pWW+h|Km(OhF&S87>tK+jU z8wrkZU-4!GhcCrXt56GUTf%GLwE_G!F?^h)A53}dZU#ZI$9`b3b}{TM6?(|EvGzH> ztP%sJ}@ZfPcO zHH|plz`d;o)%knVMf` zFUeeCFI8e9`r<&htu}#OKuy#v_^7}J#Cv*7br_61u3uf{JDxBaM`-tz!_@`Z;#v&> zdfazH!{sCn>@2D^Dvw41Y~nV{yiJ*Vc?{$J0WIW5o7Y+qkha|F=+B*y;(EFm0?SH@ zPCciolDC`7rohU9a~aQk%O~LVfKp>fUa7v_8kpaUZO`TEZVd}9#M#iNRYg|+ptUb= z-qXpTbFd?>ENFS%4BdGm-<`h~xs-S45H#N(PP^_Uj5B-Hv5n~X#45tkLoG!Tf$LJH z>=CyMmTsr1-iv&EMFLwKMSFjEleVmUI1cLaQdZJ#+dquAwj-PKL!GFdd~!gy(5PMKTZ1zl*)4g?Cbm` zA%`0Ff^|u8=4Mp*!!Wm{%)vl^?ST)1Y;u&YZsp+axy8CG4y*RKUp86p<=CJmIVe*S z=5}F%p6le0UGWrYk@*6rd(e4Vo~!7ekefTT}-pK3oc&|4DJpH0u+ zSqE&2*{CE0qi*y+ta%NRaC2PIn@Wa#!$(|sgzEB5 ziKm~7VM&%wmCn5ltIg8C9y!XgWB4tb-TbDYBf}aK&xz1F5d?zy+|xzA8SFAXv(h7MM(a@}H#*?IKXd=( zV7DF>WkSiE2Hux?qbK2g|M;=- zBN~7~^cGg-Yn(e{-Zil?qgz$_9S}VfMf2vT19tKe#l?g?_+$7Wk6aNwj}&qYdUA7v zvj{)weKwe{V1hZSuV4U6>SThtrN=dd2t1%;(7z-QcCe!jmyV=5>;HwSPkSRIjNV4Y zzI}o~ag{{r_%L$V7G&m+RyhO@cp3%EB;|q+m{D)+zSeZwxPclZj5|1S(#U75&14Sk zLY94;!hZG&zsUsU94*~VCm&5AU4};R=n8Kaw@s_CVqPqnbIR4tw;gdDYp1qCP;!iR z$)XV{hUVS+ARmw-xpwE<-oTsEw|6{-9iBc4POS*PZS_r# zUawV*7&2Op#6jC>=EXQ{$zW^Ae48&y#J_ z1tQ!RglJ_E#8 ziaGRQ(ua1BGQOM32eE%<2&lI|s&sH#t0NHtpoe$wi$H8q`4!UG0TzO{-d|gs_^*gDm}U;csGx z&KEtCIK+lTt85hCWtK(1y#_QykaHXM4h%Ka>(3H3d!ag(Er8;luYwvzhup?pm@GgRl<2&i=o!C!U zZqK5wzu3>INqX)#K%QZtw(~YgP0w=SJJUhYC=wkbM*Q~7^ltcCg%0Khz8i~AoH)yb zKcyN@kzksIhxfB%E-8RRII?s!&6dXx!S}02w zl8hx%zUrIg2yK5Zmb@3J#hJem)7!lvJc}(3S0fW=YHXCC8dDE01#a~G%1uIA8xjny zmedq?jCUB^Fv`Ob+pi&?B>jr@4D3cztMfEILuN60-o9RbS$PCV?1OB?L?p74I%~&B zTKD%(F>pnW9>h&vW;)i63smVj$k;9FFw-Lc^12rpC)~~+uOh*)uF>cX6 zzsE_?2`$qWvwLcgtTUgTK7SMzA!%4W^^N^l?{$|g9>~+JW^DVm_sduVwfXL04{ZBl zP7%M%?z^T>PF{cGAZ-0=zd1DD`$;CHt|V}>m`4%SRf;T9Gf>MAdmV0|N#Mdmdej~X zRx)x;`dUBML~~+6#!igK6QEV@Wi{4JXJ@cw-@OzbJU%?$2{pvo_#9>o7 z5iY{XS9YYw7sAIkQJb|N4SEau1;}synDeXf?->@~kx8U4Z3@7W&E>31sm9ih2Bu-WNf=hJ18;BWTC+~iLGVUP^#>hRQbp-l+%a%Mt%r4V@#78Al8bq4K5 z7SM(48>N8V(}TIV;G(|BoTR6lB^Fk$Ov%rpoSlp_PU3i?-^y`0Yu+GFrAf8TZGuXb zDX2k0B~wTiyN4~2A?K3Dz&NoMh0&F6$H`%(g^p}07@qPl-=}6&7xrVR&LYC*TW{yT zevTeBI)#-Dd4215iR{aU6;!u9UFxB9nzA#5bKJF|+*63Txn*mEuSE^pi~ju4lSS*- zPOvQvfS+9%?+dH-PV}PIq;5n5rfqFr6~V1-A%nvFY*(~=w7WSvjI+7#)F^Zlv}=us z&_>Vu>PGDk%nBf81t`@(2V{{@t*Db&L$mSHf?;4J| zatMa5YpNHtFqP-Pb}fvLvaWuXmuG9HA=Qfwl)GD9Dq`wMto$oSf7+SB)z~RlvTB7# z<}IZg-H?{a!#8zdIf#T#uh{~gmkh;oLRWY~J$efD2A6JoXFrdSe+JqkS`BMmux=2P zWkwgz4BkfKAmXG`pkh7m?T>|xE8cpAPAddCtn_hyyh^>sk5K+GPaTj$Dmvk&a^FL%xen{LHZS#``pl zhA}$V@x5kfyQap7AjFA`cq}+64rCg6GN4@kDB&4W+@;oJf}EL5D#5ClWE0;ijw!mL z0?*(yU1$4~u#dL^XA*P{&PG|_K2=f-PP3XId1-`|nbZ9qUexa!(PIg|+G_}c+`i4C zZGW99z}#6-^V-VGmo(Sv;iiTq3hr9|v6HD-1MKjHB$ADE3$G<57VW%@gNkB0U$naN zcfBj@^Ll20DJU28R&#MS1`%HK+40tpe?`bcakbW6ouh;s4J+!FelS7EQ9>#IQz<&B zNj^h*?Ri--4pseXgJ?=}>D2TPbW)F{>>RUQV-o#H@mSo*G4%X!Q0V7F|I(VIg@7k| zkL$a>x})RW^lIJ)>E-q@^ue!YW&4dkf-gCVtBPneO?8E(APf~BF_oS5aOGEv-efzw zcfheMI~UnH_nPksnQw3qGE`N?-{^i-+Qx9YS*|>p@EhUp*Fc=O46H^rG~G4s^lil} zQ6tVb(?jGoOwqO^uRfW-%WD73hA-336fAsma}lD6Ii9q1T6J3ZD2mu1 z!WlR@@4N8+hH2M7ZtSO9~a zJ!3hb!eNez?wA&Nh)ycu(=)CN3DGEj`!YSE(v-udK!G+FOjvqsP&89!Dq+Qn?T=LLH&1VAHHF4}z zD}o5M1hvUnCUqqOjFdI|tCMB#wfP&+!z=u%4qn9g@HAI9bQGXI~pg*w^>v#tf5? z)a?pY5XXa7t{t^U3j0CEf$SD{_}Scqs<4fofp|;xTLm8|yeNHT;!5ZvvML^saHPH} z;HbL$XvYHmNb6X!yMdB@2K}Nw)fnJ=?1JBe{iEyJ-NWL%taO=J+6QZFiK-C>_vjU#2;h5uq4@Z#8uddMZeR;^WXpQjjkGQKqUI|N=({Q(mnrFwa261m&7wl z8psX0`H|Pbv8ozN@grOlEzd@9R6_b+-{NQynoKvL3JWeO(;zKfeV8tMEy}qh*?`;F zfk-OR!$Q^Y>8BxVIIr!J)fk_;Ec;QrEf3omYbOCw+o2uu(NzOOfRQ}yuo#h(7s#d+ zw|G02Hv2P}t6DK{O|3O5qETs|rfGz>!+P)I2L)YT{#(z$@*Dnp1)1v!7Iq#_nafGj zYjdi_)EM9$^jmdz2VzWV&*-W2CRlIC2xvPk>sGy?%RPKsO$8Y9wrys$M0Miner)Xm?1sakd6QaQwiBZOq|F zQ&N0NyDh-T2MD{8N*E_FV7^Z`ibcpm^h5oVd`ma^mWZ18z!bxP1R>i4WHR9!lh@(u z-A^Sayajj#4pZ4XI0@t?;=`_(J0@vrD?sWfKC=ZXKlCN07kEWYT3`yi!1fL2eE_IA zG(>;A9(v>-8gm_7WTVGM1xpDwIH=xrfs5p9<`O$TF$5UE()?CX+j+Liq9)uPxF%Kr zKL|GgQA-WqPmfK|VGzCdYCeQXj3SgTqRk?CRZfwvDNa`eYpl|Z*Ssislw)` zq&iOkakkdiXWq#wukO3EVY10Y9$rKlnk4 z2sv)HC+PAo>vjr%kiz?Blt#$*O3@T(vSIHJEg|n;14MuG*KmChDs1x!t|oV*t;3;Pr&&n}E?C ztJFY??8$2PuhBt^niqS6xrq_X@zxgdf=e340?7X6`*L-OL18Q(GWmc#KO^1wx-H$I znZREh@a$4reD^ZlFTFDl@}I&h0P)e7t2AEA@}hF7S(_%rg+@90iG0VT%EyGvWV;S0 zNhEAH-d{Dw;X{0PvL59_R<_tWXNF8a@^(N4N%-gv8KgQdZtl+h%EGHc-O39~;TBc6 z{pLfs!AX({*q9edr`#{&=yP4}y<6HNm4d839`v^<2l?PNwCVh>)Q)w$)3H-=9xj1t zFUA`Ldd0x4Q$x@d-w^lfEN-`6)P^<*?-3V86y9$MKKZ%%E0y$Hs3|n41U)!~i^J!~ z#(_W~MkEPgIfHXq(aN_Cu3?={SmDtm{t9$a+Z`Q`I2bp>n^QNG?Gq{ZpYFVp)HxpyH&@q-#kihX_>0_ROv3-P9OsjqiJJC6=d{CLzZV`Fy$<2@RGBVkQRC! z7n153jFUzq+DKZ>$|cX1JUex=Wnv}Cj?PM!W$+vFcsSVWe8*@|vg6LemC>CF3%M*a!d1&6IWt8aYqHC9euZtf(EXh6KxgHjPul=b@ja~9@3 z*&PimAC3=a1oC8MCjLVPl}7wXf8<^W)p;~L@fn*|M0QDHkxDGnpq@k)K|$uJ{UKBH zeSH_~Q;Wi&0*a$V?WZ{L>AIi;#UH@WcXIrxje4;?SI;$^uooL8gXL1Iz4o}!9%EOW zQ{I1>pQSx~_9XU!CZ2kq)`!)O5&KO3SAFervMQeuYVsHt#%M0AperN}X#D_IEl+m=>W_ zH1NHhAtkb^OMXbNapg2;B+{80)_AVqHZ&-w82yqsa#4Slo?LW$332|sU8d-qXZPsp z_&FF}^nvQAH^rF>Ntm);7+yZ^X6*o0F|b@reyw=E!Y8T@ZO*%~cOGMXZhNgN(T##U zQVK2{eQ$VAY{=sHS?}mGU$9HnBy)k<*h0*9Wms!jC*JOc(TEx8APg$OTp;W^Q&UAy zhPi#_bj&Lp-7*}SEw@&XzmaExrM;6SUikfdJ-5&oxrEi~gUBx`?Csw@6m8C7F|Zip zdT2mXE>nJPs3mRg+=kD>ey)2w1@xyzB=*!j4d1@5{$P7JIHyybSFh3hCalPTApwgq?Y)a`^i>g%pf&d#)-+0%KO%z32MY$v1BMrd$IaD(*cwoUCuoT#uju7G?{jvU&pY7bCR0p=jsy~Qc~Jahi3ztG2-(Cxvz!xDx3%<2deP<0%dGGC%+>e$|R_8Q1>H>-K3L8w950)TB5 zdYnt!+_;Lzivw*gl#G&Se6bulQ@7Q^N)6+Nu6!}82^&A>@i-gEsck12x^<3Z3_U42`k9Q_u?__s%7=LB*p`Eu4?$BF{tFcvz`_{)Jiz zb;O=J+-Y$QKYs~OWNPLmxMZqd+KU(I^n` zB=(8?)>GoqEYCP^9CDpjTsrUZk-!qW4_KgF9fBn$*X=vLN=6(5ug@C5+9kOxI+bM||U*%`5%?1PG62;rQz)kEDRDj0-g$3OAOGvbL+md(sD z`%2-tQBLC@`=4-t;p!0XA$+#%s$<$r|t`b~s!{QUrxK9bK zz+O;(?)Thfv5O1FT8wH9EW-SE3Q$6wa?JhX1op~c`}=A)jg-=ho`5Z;q>KQIcO5|s z2;4QkTDDzL+i#MlV%2qlZg;dD)2KKf$SV{joEi(h@C4`Cjd{*Eo8qk;nU7CzyggEa zOAm*jP8-Y5HE6)w0#!T@&iCSH%%;gQ)PAYIwMS_;tZihilF;n$UF9sLn2Pnd=jhk> z)H~aZK8}#hl*Ge!swLc9N!E2H)KR~`9Pc4`nNXBV_vz|Y1Yx>2W?IZ7&$zg1Z~O{_ zi!<#`p1Qx`K}}lkznrW;&CfXJ^t7S;&cS!EKXbBy&-4AHa}o;duRiWb<*zY(YWNsU z3V#CFd@6ZL9h>x0`-SN3x0~izMdq)4-})P3KHzZ>uBjwwX*2KlW4o_JnSV?B;WMgp zrnMgHWhw!Q<&Pb-#H_mOK&agNhY-~0JYD>{P{PK$s>XcAwlF`fa7Mq=Z!72IcQ-@^ z&#TQVy@Q=znS51HCw@T2MXsNgt1e~tldz2%wwrLs|7m)4asqnW2+J1sT0Bt8AN#{f zq;?9Y!pAeaqw+DRX%3+Enmciz&vYT8A!{q-)y8Dz{`8)Htvjw}Pqr^v+&=FI=!JIxRt*4NVkF#QO_rk~|47_tQxiaZ*F5PQBY49<)9UIOhKu zqx-AQNMUK<%Vf5W3I1bTBWgusEa){Lssvmtq-Q)<11d>)=(V#wMbonaszAeD;`RnU zX4V)PJ!}`(4i=?BoSWx}Jd)DE%7WNb=BLmcqWpGQ{TURtL)x-F6QBb3@jf3}yzshF zk?+0Ezj25RY1e){S%z=mtGqeycHgpl%bU*Fqhy?e%WM7hQ;(l zP|E3*dV1T<3}tRfX0>z!?>C07MPEo>Siah>nt1VirgK6rSGaEN;k&XOk(pDw7hX4S zH$7Hul~g4jdte>{&$u032Ts#nm>1?@%G_fZA-BBW1`3YX&DywOw$Zps{T1r_=n=&tMxK~DG@0ok;6_QQ&+9PCSZ?3&J?@*MLQFeuJB`YiY#=U%e z|Ay~haL#Y9$LpNe>-nLrJ@L2(M^WX^G9Z+Bro|@=Vj#|6oWI@_pcOfBWY)SkYFC+g zk^J!(R9_(ADm8W3YBp_s)qNhCNNc=f3?43Tp?)G+!&RUrQ7UKv{7qw+otn^{I6ie~ zsYc$Eu=Uf$kjXl93py`u>_7gcHiGL>84cp)h}Y1vo~Ewlf3S#zc9qVGlV3BH^PbPH zPH-#xvjM-ekQ3!$C)fMCgo~vj(;b1ih1XDOR$uSw5nc<%6Ufa|939Q9+#TZRN`YEv z=`A|*N_V3%h|Eh+j%}Fk5oTVG$wpv-3oNqpM{Gesgv)^i7LAppHt)H~-mAT}-g)^z z$d~GLA+Bw8kH7oLQ^3}^Em3URlUW38tE}I*1@t*VHK|6Wqdk>OLQKJpB!-G|J=YZ6 z5#+M0T$b}V-f~;Ad9@syEIW9mXrE;Gn*{ywz27F1xVziCpU%PO;}!#HS_ms?i?0Fh ztx39}6xA*VH<=K~YD=y+uhFw%KwS?OS>{7mo1UGY&o)dx+7D@1xf^!&mzL>+uDDOS z1L7~W>e$DLz321S3)PAlU!M7tg|*XM9dw6knCO@1XT{V$rm&J zv}@h*rWsdFxyu~>sty%TT27-zr$^^bKG2!VX&JzYna0Zob#6d3<;trdBEjh6)rWuD z-rjRI5(*0}e}HOc^f}fCwZ{4WteomnaDHS!J2%sxZu8+6B%M5vc^i+xV|N>&yK?n>A}V(=t(+^xdJABSq$hjTOs~;_MIiC=G~F8)gsjw!CW<< z^ysv3@kF<(j($oBXHsZICnSQFr^D3QTQP_*J(M_DoTWA=`aqdxDCrZg|3sKwr{+9d z^?CvIcN(eCdK1#sEQ&P&M}yoDYs_F2?)iaAvxU$nU9;y8?c$XW>xqXUQ09hNa~@9q9$#8bmGF%2mPC

    &pc@<)8^A&TQpvD{9b%0EF$EK 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 J8y=$~{s#hti- literal 0 HcmV?d00001 From d919d457d396f41a01ff5ea0ea13fa802688be1f Mon Sep 17 00:00:00 2001 From: Bowserinator Date: Mon, 26 Feb 2024 04:41:21 -0500 Subject: [PATCH 200/790] Add Vector4 math functions & Vector2 variants of some Vector3 functions (#3828) --- src/raymath.h | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) diff --git a/src/raymath.h b/src/raymath.h index 15e403cbb..52c11b21c 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -431,6 +431,28 @@ RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) return result; } +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + // Rotate vector by angle RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) { @@ -524,6 +546,31 @@ RMAPI int Vector2Equals(Vector2 p, Vector2 q) return result; } +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + //---------------------------------------------------------------------------------- // Module Functions Definition - Vector3 math //---------------------------------------------------------------------------------- @@ -875,6 +922,27 @@ RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) return result; } +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + // Calculate linear interpolation between two vectors RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) { @@ -1137,6 +1205,233 @@ RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) return result; } + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- + +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + //---------------------------------------------------------------------------------- // Module Functions Definition - Matrix math //---------------------------------------------------------------------------------- From bd6c0bab44549f0ca69cddfa3f9101ccce3728a2 Mon Sep 17 00:00:00 2001 From: Gary M Date: Mon, 26 Feb 2024 01:48:19 -0800 Subject: [PATCH 201/790] add 16-bit unsigned short vec4 format for gltf joint loading (#3821) --- src/rmodels.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index 166f51a6a..1a4374a39 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5287,6 +5287,13 @@ static Model LoadGLTF(const char *fileName) unsigned short* ptr = (unsigned short*)model.meshes[meshIndex].boneIds; LOAD_ATTRIBUTE(attribute, 2, unsigned short, ptr) } + else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec4)) + { + // Handle 16-bit unsigned short, vec4 format + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); + unsigned short* ptr = (unsigned short*)model.meshes[meshIndex].boneIds; + LOAD_ATTRIBUTE(attribute, 4, unsigned short, ptr) + } else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) { // Handle 32-bit unsigned int, vec4 format From 3086bf1668249803cd847d158901087a708bcb7a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 26 Feb 2024 10:49:01 +0100 Subject: [PATCH 202/790] Update models_bone_socket.c --- examples/models/models_bone_socket.c | 169 +++++++++++++-------------- 1 file changed, 83 insertions(+), 86 deletions(-) diff --git a/examples/models/models_bone_socket.c b/examples/models/models_bone_socket.c index c454cf31e..0e0463270 100644 --- a/examples/models/models_bone_socket.c +++ b/examples/models/models_bone_socket.c @@ -15,14 +15,12 @@ #include "raylib.h" -#include -#include +#include "raymath.h" -#define BONE_SOCKETS 3 - -#define BONE_SOCKET_HAT 0 -#define BONE_SOCKET_HAND_R 1 -#define BONE_SOCKET_HAND_L 2 +#define BONE_SOCKETS 3 +#define BONE_SOCKET_HAT 0 +#define BONE_SOCKET_HAND_R 1 +#define BONE_SOCKET_HAND_L 2 //------------------------------------------------------------------------------------ // Program main entry point @@ -37,49 +35,57 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [models] example - bone socket"); // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = { 5.0f, 5.0f, 5.0f }; // Camera position - camera.target = { 0.0f, 2.0f, 0.0f }; // Camera looking at point - camera.up = { 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera projection type + Camera camera = { + .position = { 5.0f, 5.0f, 5.0f }, // Camera position + .target = { 0.0f, 2.0f, 0.0f }, // Camera looking at point + .up = { 0.0f, 1.0f, 0.0f }, // Camera up vector (rotation towards target) + .fovy = 45.0f, // Camera field-of-view Y + .projection = CAMERA_PERSPECTIVE // Camera projection type + }; // Load gltf model - Model characterModel = LoadModel("greenman.glb"); + Model characterModel = LoadModel("resources/models/gltf/greenman.glb"); // Load character model Model equipModel[BONE_SOCKETS] = { - LoadModel("greenman_hat.glb"), // index for the hat model is the same as BONE_SOCKET_HAT - LoadModel("greenman_sword.glb"), // index for the sword model is the same as BONE_SOCKET_HAND_R - LoadModel("greenman_shield.glb") // index for the shield model is the same as BONE_SOCKET_HAND_L + LoadModel("resources/models/gltf/greenman_hat.glb"), // Index for the hat model is the same as BONE_SOCKET_HAT + LoadModel("resources/models/gltf/greenman_sword.glb"), // Index for the sword model is the same as BONE_SOCKET_HAND_R + LoadModel("resources/models/gltf/greenman_shield.glb") // Index for the shield model is the same as BONE_SOCKET_HAND_L }; - bool showEquip[3] = {true, true, true}; // for toggle on/off equip + + bool showEquip[3] = { true, true, true }; // Toggle on/off equip // Load gltf model animations - unsigned int animsCount = 0; + int animsCount = 0; unsigned int animIndex = 0; unsigned int animCurrentFrame = 0; - ModelAnimation* modelAnimations = LoadModelAnimations("greenman.glb", &animsCount); + ModelAnimation *modelAnimations = LoadModelAnimations("resources/models/gltf/greenman.glb", &animsCount); // indices of bones for sockets - int boneSocketIndex[BONE_SOCKETS] = {-1, -1, -1}; + int boneSocketIndex[BONE_SOCKETS] = { -1, -1, -1 }; // search bones for sockets - for (int i = 0; i < characterModel.boneCount; i++) { - if (strcmp(characterModel.bones[i].name, "socket_hat") == 0) { + for (int i = 0; i < characterModel.boneCount; i++) + { + if (TextIsEqual(characterModel.bones[i].name, "socket_hat")) + { boneSocketIndex[BONE_SOCKET_HAT] = i; continue; } - if (strcmp(characterModel.bones[i].name, "socket_hand_R") == 0) { + + if (TextIsEqual(characterModel.bones[i].name, "socket_hand_R")) + { boneSocketIndex[BONE_SOCKET_HAND_R] = i; continue; } - if (strcmp(characterModel.bones[i].name, "socket_hand_L") == 0) { + + if (TextIsEqual(characterModel.bones[i].name, "socket_hand_L")) + { boneSocketIndex[BONE_SOCKET_HAND_L] = i; continue; } } - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - unsigned short angle = 0; // angle for rotate character + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + unsigned short angle = 0; // Set angle for rotate character DisableCursor(); // Limit cursor to relative movement inside the window @@ -92,32 +98,23 @@ int main(void) // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera, CAMERA_THIRD_PERSON); - // rotate character - if (IsKeyDown(KEY_F)) { - angle = (angle + 1) % 360; - } else if (IsKeyDown(KEY_H)) { - angle = (360 + angle - 1) % 360; - } - // Select current animation - if (IsKeyPressed(KEY_T)) { - animIndex = (animIndex + 1) % animsCount; - } else if (IsKeyPressed(KEY_G)) { - animIndex = (animIndex + animsCount - 1) % animsCount; - } - // toggle shown of equip - if (IsKeyPressed(KEY_ONE)) { - showEquip[BONE_SOCKET_HAT] = !showEquip[BONE_SOCKET_HAT]; - } - if (IsKeyPressed(KEY_TWO)) { - showEquip[BONE_SOCKET_HAND_R] = !showEquip[BONE_SOCKET_HAND_R]; - } - if (IsKeyPressed(KEY_THREE)) { - showEquip[BONE_SOCKET_HAND_L] = !showEquip[BONE_SOCKET_HAND_L]; - } + + // Rotate character + if (IsKeyDown(KEY_F)) angle = (angle + 1)%360; + else if (IsKeyDown(KEY_H)) angle = (360 + angle - 1)%360; + // Select current animation + if (IsKeyPressed(KEY_T)) animIndex = (animIndex + 1)%animsCount; + else if (IsKeyPressed(KEY_G)) animIndex = (animIndex + animsCount - 1)%animsCount; + + // Toggle shown of equip + if (IsKeyPressed(KEY_ONE)) showEquip[BONE_SOCKET_HAT] = !showEquip[BONE_SOCKET_HAT]; + if (IsKeyPressed(KEY_TWO)) showEquip[BONE_SOCKET_HAND_R] = !showEquip[BONE_SOCKET_HAND_R]; + if (IsKeyPressed(KEY_THREE)) showEquip[BONE_SOCKET_HAND_L] = !showEquip[BONE_SOCKET_HAND_L]; + // Update model animation ModelAnimation anim = modelAnimations[animIndex]; - animCurrentFrame = (animCurrentFrame + 1) % anim.frameCount; + animCurrentFrame = (animCurrentFrame + 1)%anim.frameCount; UpdateModelAnimation(characterModel, anim, animCurrentFrame); //---------------------------------------------------------------------------------- @@ -125,44 +122,44 @@ int main(void) //---------------------------------------------------------------------------------- BeginDrawing(); - ClearBackground(RAYWHITE); + ClearBackground(RAYWHITE); - BeginMode3D(camera); + BeginMode3D(camera); + // Draw character + Quaternion characterRotate = QuaternionFromAxisAngle((Vector3){ 0.0f, 1.0f, 0.0f }, angle*DEG2RAD); + characterModel.transform = MatrixMultiply(QuaternionToMatrix(characterRotate), MatrixTranslate(position.x, position.y, position.z)); + UpdateModelAnimation(characterModel, anim, animCurrentFrame); + DrawMesh(characterModel.meshes[0], characterModel.materials[1], characterModel.transform); - // draw character - Quaternion characterRotate = QuaternionFromAxisAngle({ 0.0f,1.0f,0.0f }, angle*DEG2RAD); - characterModel.transform = MatrixMultiply(QuaternionToMatrix(characterRotate), MatrixTranslate(position.x, position.y, position.z)); - UpdateModelAnimation(characterModel, anim, animCurrentFrame); - DrawMesh(characterModel.meshes[0], characterModel.materials[1], characterModel.transform); + // Draw equipments (hat, sword, shield) + for (unsigned short i=0; irotation; - // calculate socket rotation (angle between bone in initial pose and same bone in current animation frame) - Quaternion rotate = QuaternionMultiply(outRotation, QuaternionInvert(inRotation)); - Matrix matrixTransform = QuaternionToMatrix(rotate); - // translate socket to its position in the current animation - matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(transform->translation.x, transform->translation.y, transform->translation.z)); - // rotate socket by character angle - matrixTransform = MatrixMultiply(matrixTransform, QuaternionToMatrix(characterRotate)); - // translate socket to character position - matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(position.x, position.y+0.0f, position.z)); - // draw mesh at socket position with socket angle rotation - DrawMesh(equipModel[i].meshes[0], equipModel[i].materials[1], matrixTransform); - } + Transform *transform = &anim.framePoses[animCurrentFrame][boneSocketIndex[i]]; + Quaternion inRotation = characterModel.bindPose[boneSocketIndex[i]].rotation; + Quaternion outRotation = transform->rotation; + + // Calculate socket rotation (angle between bone in initial pose and same bone in current animation frame) + Quaternion rotate = QuaternionMultiply(outRotation, QuaternionInvert(inRotation)); + Matrix matrixTransform = QuaternionToMatrix(rotate); + // Translate socket to its position in the current animation + matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(transform->translation.x, transform->translation.y, transform->translation.z)); + // Rotate socket by character angle + matrixTransform = MatrixMultiply(matrixTransform, QuaternionToMatrix(characterRotate)); + // Translate socket to character position + matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(position.x, position.y + 0.0f, position.z)); + + // Draw mesh at socket position with socket angle rotation + DrawMesh(equipModel[i].meshes[0], equipModel[i].materials[1], matrixTransform); + } - DrawGrid(10, 1.0f); + DrawGrid(10, 1.0f); + EndMode3D(); - EndMode3D(); - - DrawText("Use the T/G to switch animation", 10, 10, 20, GRAY); - DrawText("Use the F/H to rotate character left/right", 10, 35, 20, GRAY); - DrawText("Use the 1,2,3 to toggle shown of hat, sword and shield", 10, 60, 20, GRAY); + DrawText("Use the T/G to switch animation", 10, 10, 20, GRAY); + DrawText("Use the F/H to rotate character left/right", 10, 35, 20, GRAY); + DrawText("Use the 1,2,3 to toggle shown of hat, sword and shield", 10, 60, 20, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- @@ -172,9 +169,9 @@ int main(void) //-------------------------------------------------------------------------------------- UnloadModelAnimations(modelAnimations, animsCount); UnloadModel(characterModel); // Unload character model and meshes/material - for (unsigned short i = 0; i < BONE_SOCKETS; i++) { - UnloadModel(equipModel[i]); // Unload equipment model and meshes/material - } + + // Unload equipment model and meshes/material + for (unsigned short i = 0; i < BONE_SOCKETS; i++) UnloadModel(equipModel[i]); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- From 7d6e59170b0ad061f4734281da378d80b3135291 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 26 Feb 2024 10:49:04 +0100 Subject: [PATCH 203/790] Update rtextures.c --- src/rtextures.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index efa91df91..52e6dd2d6 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3874,15 +3874,13 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) // NOTE: Cubemap data is expected to be provided as 6 images in a single data array, // one after the other (that's a vertical image), following convention: +X, -X, +Y, -Y, +Z, -Z cubemap.id = rlLoadTextureCubemap(faces.data, size, faces.format); - if (cubemap.id == 0) - { - TRACELOG(LOG_WARNING, "IMAGE: Failed to load cubemap image"); - } - else + + if (cubemap.id != 0) { cubemap.format = faces.format; cubemap.mipmaps = 1; } + else TRACELOG(LOG_WARNING, "IMAGE: Failed to load cubemap image"); UnloadImage(faces); } From a6425fa1b905f410e02def3d2f11f2d968358371 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 26 Feb 2024 11:03:09 +0100 Subject: [PATCH 204/790] Added note #3822 --- src/rmodels.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 1a4374a39..4f634990f 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5282,29 +5282,38 @@ static Model LoadGLTF(const char *fileName) } else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec2)) { + // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Handle 16-bit unsigned short, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(unsigned short)); - unsigned short* ptr = (unsigned short*)model.meshes[meshIndex].boneIds; + unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; LOAD_ATTRIBUTE(attribute, 2, unsigned short, ptr) } else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec4)) { + // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Handle 16-bit unsigned short, vec4 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); - unsigned short* ptr = (unsigned short*)model.meshes[meshIndex].boneIds; + unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; LOAD_ATTRIBUTE(attribute, 4, unsigned short, ptr) } else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) { + // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Handle 32-bit unsigned int, vec4 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned int)); - LOAD_ATTRIBUTE(attribute, 4, unsigned int, model.meshes[meshIndex].boneIds) + unsigned int *ptr = (unsigned int *)model.meshes[meshIndex].boneIds; + LOAD_ATTRIBUTE(attribute, 4, unsigned int, ptr) } else if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec2)) { + // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Handle 32-bit float, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(float)); - float* ptr = (float*)model.meshes[meshIndex].boneIds; + float *ptr = (float *)model.meshes[meshIndex].boneIds; LOAD_ATTRIBUTE(attribute, 2, float, ptr) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); From 7fae41b5c6f218c4e50fa738bae16c7ca924011a Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 26 Feb 2024 11:03:12 +0100 Subject: [PATCH 205/790] Update models_bone_socket.c --- examples/models/models_bone_socket.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/examples/models/models_bone_socket.c b/examples/models/models_bone_socket.c index 0e0463270..8f62f70f7 100644 --- a/examples/models/models_bone_socket.c +++ b/examples/models/models_bone_socket.c @@ -35,13 +35,12 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [models] example - bone socket"); // Define the camera to look into our 3d world - Camera camera = { - .position = { 5.0f, 5.0f, 5.0f }, // Camera position - .target = { 0.0f, 2.0f, 0.0f }, // Camera looking at point - .up = { 0.0f, 1.0f, 0.0f }, // Camera up vector (rotation towards target) - .fovy = 45.0f, // Camera field-of-view Y - .projection = CAMERA_PERSPECTIVE // Camera projection type - }; + Camera camera = { 0 }; + camera.position = (Vector3){ 5.0f, 5.0f, 5.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera projection type // Load gltf model Model characterModel = LoadModel("resources/models/gltf/greenman.glb"); // Load character model @@ -132,7 +131,7 @@ int main(void) DrawMesh(characterModel.meshes[0], characterModel.materials[1], characterModel.transform); // Draw equipments (hat, sword, shield) - for (unsigned short i=0; i Date: Mon, 26 Feb 2024 11:20:18 +0100 Subject: [PATCH 206/790] fix build paths (#3835) --- src/build.zig | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/build.zig b/src/build.zig index 32b31f1aa..5251f30ff 100644 --- a/src/build.zig +++ b/src/build.zig @@ -1,12 +1,16 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.2075+f5978181e +// This has been tested to work with zig 0.11.0, zig 0.12.0-dev.2075+f5978181e and 0.12.0-dev.2990+31763d28c // // anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type // was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows // us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { + var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){}; + const gpa = general_purpose_allocator.allocator(); + // get the relative source path, because it is needed for addCSourceFilesVersioned + const relative = srcdir[b.build_root.path.?.len..]; if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { @@ -45,37 +49,37 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // No GLFW required on PLATFORM_DRM if (!options.platform_drm) { - raylib.addIncludePath(.{ .path = srcdir ++ "/external/glfw/include" }); + raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "/external/glfw/include" }); } addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rcore.c", - srcdir ++ "/utils.c", + try join2(gpa, relative, "rcore.c"), + try join2(gpa, relative, "utils.c"), }, raylib_flags_arr.items); if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/raudio.c", + try join2(gpa, relative, "raudio.c"), }, raylib_flags_arr.items); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rmodels.c", + try join2(gpa, relative, "rmodels.c"), }, raylib_flags_arr.items); } if (options.rshapes) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rshapes.c", + try join2(gpa, relative, "rshapes.c"), }, raylib_flags_arr.items); } if (options.rtext) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rtext.c", + try join2(gpa, relative, "rtext.c"), }, raylib_flags_arr.items); } if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rtextures.c", + try join2(gpa, relative, "rtextures.c"), }, raylib_flags_arr.items); } @@ -85,14 +89,14 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM if (options.raygui) { const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); - raylib.addIncludePath(.{ .path = srcdir }); - raylib.addIncludePath(.{ .path = srcdir ++ "/../../raygui/src" }); + raylib.addIncludePath(.{ .cwd_relative = srcdir }); + raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "/../../raygui/src" }); } switch (getOsTagVersioned(target)) { .windows => { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rglfw.c", + try join2(gpa, relative, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); @@ -103,7 +107,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .linux => { if (!options.platform_drm) { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rglfw.c", + try join2(gpa, relative, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -133,7 +137,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .freebsd, .openbsd, .netbsd, .dragonfly => { addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rglfw.c", + try join2(gpa, relative, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -152,7 +156,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // On macos rglfw.c include Objective-C files. try raylib_flags_arr.append("-ObjC"); addCSourceFilesVersioned(raylib, &.{ - srcdir ++ "/rglfw.c", + try join2(gpa, relative, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); @@ -257,3 +261,8 @@ fn addCSourceFilesVersioned(exe: *std.Build.Step.Compile, files: []const []const exe.addCSourceFiles(files, flags); } } + +fn join2(allocator: std.mem.Allocator, path1: []const u8, path2: []const u8) ![]u8 { + const joinedPath = try std.fs.path.join(allocator, &[_][]const u8{ path1, path2 }); + return joinedPath; +} From 074fbb02647a08ad62b62dbecb76551648a5e407 Mon Sep 17 00:00:00 2001 From: "Christian W. Zuckschwerdt" Date: Tue, 27 Feb 2024 13:08:16 +0100 Subject: [PATCH 207/790] Fix DRM cross-compile without sysroot (#3839) --- cmake/LibraryConfigurations.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/LibraryConfigurations.cmake b/cmake/LibraryConfigurations.cmake index 18b4f196a..23a7ec2f0 100644 --- a/cmake/LibraryConfigurations.cmake +++ b/cmake/LibraryConfigurations.cmake @@ -43,7 +43,7 @@ if (${PLATFORM} MATCHES "Desktop") if ("${OPENGL_LIBRARIES}" STREQUAL "") set(OPENGL_LIBRARIES "GL") endif () - + set(LIBS_PRIVATE m atomic pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY}) if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD") @@ -86,7 +86,7 @@ elseif ("${PLATFORM}" MATCHES "DRM") find_library(DRM drm) find_library(GBM gbm) - if (NOT CMAKE_CROSSCOMPILING) + if (NOT CMAKE_CROSSCOMPILING OR NOT CMAKE_SYSROOT) include_directories(/usr/include/libdrm) endif () set(LIBS_PRIVATE ${GLESV2} ${EGL} ${DRM} ${GBM} atomic pthread m dl) From f0807d2be1cee5aedc48681ae2df978fa3a44ab6 Mon Sep 17 00:00:00 2001 From: Laurentino Luna <81370009+lauchimoon@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:08:47 -0300 Subject: [PATCH 208/790] Change sanitization check for `ExportDataAsCode` (#3837) * Change sanitization check for `ExportDataAsCode` I opted to use `isalnum` function since it should handle most cases. It cannot however handle cases of files beginning with numbers. * Update `ExportDataAsCode` condition * Reinsert comment on `ExportDataAsCode` --- src/utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils.c b/src/utils.c index 78b3b7bdc..2c26c114a 100644 --- a/src/utils.c +++ b/src/utils.c @@ -320,8 +320,8 @@ bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileN { // Convert variable name to uppercase if ((varFileName[i] >= 'a') && (varFileName[i] <= 'z')) { varFileName[i] = varFileName[i] - 32; } - // Replace '-' (non valid character for C identifier with '_') - if (varFileName[i] == '-') { varFileName[i] = '_'; } + // Replace non valid character for C identifier with '_' + else if (varFileName[i] == '.' || varFileName[i] == '-' || varFileName[i] == '?' || varFileName[i] == '!' || varFileName[i] == '+') { varFileName[i] = '_'; } } byteCount += sprintf(txtData + byteCount, "#define %s_DATA_SIZE %i\n\n", varFileName, dataSize); From 2aed94cfc21aeb9dc0371964485866aab4384671 Mon Sep 17 00:00:00 2001 From: aiafrasinei Date: Tue, 27 Feb 2024 23:15:09 +0200 Subject: [PATCH 209/790] Fix examples warnings for macos (#3842) --- examples/models/models_first_person_maze.c | 1 - examples/others/raylib_opengl_interop.c | 1 + examples/text/text_codepoints_loading.c | 5 ++--- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/models/models_first_person_maze.c b/examples/models/models_first_person_maze.c index 80a2c88e5..b1af7d47b 100644 --- a/examples/models/models_first_person_maze.c +++ b/examples/models/models_first_person_maze.c @@ -34,7 +34,6 @@ int main(void) camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.projection = CAMERA_PERSPECTIVE; // Camera projection type - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position Image imMap = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM) Texture2D cubicmap = LoadTextureFromImage(imMap); // Convert image to texture to display (VRAM) diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index c1b58d67c..b0b7d6ff3 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -35,6 +35,7 @@ #define GLSL_VERSION 100 #else #if defined(__APPLE__) + #define GL_SILENCE_DEPRECATION // Silence Opengl API deprecation warnings #include // OpenGL 3 library for OSX #include // OpenGL 3 extensions library for OSX #else diff --git a/examples/text/text_codepoints_loading.c b/examples/text/text_codepoints_loading.c index 04df96e52..c69803c12 100644 --- a/examples/text/text_codepoints_loading.c +++ b/examples/text/text_codepoints_loading.c @@ -60,7 +60,6 @@ int main(void) bool showFontAtlas = false; int codepointSize = 0; - int codepoint = 0; char *ptr = text; SetTargetFPS(60); // Set our game to run at 60 frames-per-second @@ -77,13 +76,13 @@ int main(void) if (IsKeyPressed(KEY_RIGHT)) { // Get next codepoint in string and move pointer - codepoint = GetCodepointNext(ptr, &codepointSize); + GetCodepointNext(ptr, &codepointSize); ptr += codepointSize; } else if (IsKeyPressed(KEY_LEFT)) { // Get previous codepoint in string and move pointer - codepoint = GetCodepointPrevious(ptr, &codepointSize); + GetCodepointPrevious(ptr, &codepointSize); ptr -= codepointSize; } //---------------------------------------------------------------------------------- From ed9a6d862b9e31acaa59c6ffffd1f8aa398d54d8 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 28 Feb 2024 16:27:55 +0100 Subject: [PATCH 210/790] Update rtextures.c --- src/rtextures.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rtextures.c b/src/rtextures.c index 52e6dd2d6..bd3d54cc0 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1056,6 +1056,7 @@ Image GenImageChecked(int width, int height, int checksX, int checksY, Color col } // Generate image: white noise +// NOTE: It requires GetRandomValue(), defined in [rcore] Image GenImageWhiteNoise(int width, int height, float factor) { Color *pixels = (Color *)RL_MALLOC(width*height*sizeof(Color)); From 077ab6d56bea4fc464cd5c07e02071e911eac64a Mon Sep 17 00:00:00 2001 From: Dalton Overmyer Date: Thu, 29 Feb 2024 11:26:49 -0600 Subject: [PATCH 211/790] Add an example that generates a random sequence. (#3846) --- examples/Makefile | 1 + examples/Makefile.Web | 4 + examples/README.md | 1 + examples/core/core_random_sequence.c | 176 ++++++++ examples/core/core_random_sequence.png | Bin 0 -> 34025 bytes .../examples/core_random_sequence.vcxproj | 387 ++++++++++++++++++ projects/VS2022/raylib.sln | 2 + 7 files changed, 571 insertions(+) create mode 100644 examples/core/core_random_sequence.c create mode 100644 examples/core/core_random_sequence.png create mode 100644 projects/VS2022/examples/core_random_sequence.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 8362b8c8e..9ce05da54 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -453,6 +453,7 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_loading_thread \ + core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ core/core_smooth_pixelperfect \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 204db50cc..af3325aa5 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -359,6 +359,7 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_loading_thread \ + core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ core/core_smooth_pixelperfect \ @@ -588,6 +589,9 @@ core/core_input_multitouch: core/core_input_multitouch.c core/core_loading_thread: core/core_loading_thread.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sUSE_PTHREADS=1 +core/core_random_sequence: core/core_random_sequence.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + core/core_random_values: core/core_random_values.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) diff --git a/examples/README.md b/examples/README.md index 0fed8acd0..94f5369db 100644 --- a/examples/README.md +++ b/examples/README.md @@ -55,6 +55,7 @@ Examples using raylib core platform functionality like window creation, inputs, | 29 | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Ray](https://github.com/raysan5) | | 30 | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐️⭐️⭐️☆ | 3.7 | **4.0** | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | 31 | [core_window_should_close](core/core_window_should_close.c) | core_window_should_close | ⭐️⭐️☆☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) | +| 32 | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐️☆☆☆ | **5.0** | **5.0** | [REDl3east](https://github.com/REDl3east) | ### category: shapes diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c new file mode 100644 index 000000000..c946b64da --- /dev/null +++ b/examples/core/core_random_sequence.c @@ -0,0 +1,176 @@ +/******************************************************************************************* +* +* raylib [core] example - Generates a random sequence +* +* Example originally created with raylib 5.0, last time updated with raylib 5.0 +* +* Example contributed by Dalton Overmyer (@REDl3east) and reviewed by Ramon Santamaria (@raysan5) +* +* Example 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) 2023 Dalton Overmyer (@REDl3east) +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" + +#include // Required for: malloc() and free() + +typedef struct ColorRect{ + Color c; + Rectangle r; +} ColorRect; + +static Color GenerateRandomColor(); +static ColorRect* GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight); +static void ShuffleColorRectSequence(ColorRect* rectangles, int rectCount); +static void DrawTextCenterKeyHelp(const char* key, const char* text, int posX, int posY, int fontSize, Color color); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - Generates a random sequence"); + + int rectCount = 20; + float rectSize = (float)screenWidth/rectCount; + ColorRect* rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + if(IsKeyPressed(KEY_SPACE)) + { + ShuffleColorRectSequence(rectangles, rectCount); + } + + if(IsKeyPressed(KEY_UP)) + { + rectCount++; + rectSize = (float)screenWidth/rectCount; + free(rectangles); + rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + } + + if(IsKeyPressed(KEY_DOWN)) + { + if(rectCount >= 4){ + rectCount--; + rectSize = (float)screenWidth/rectCount; + free(rectangles); + rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + } + } + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + int fontSize = 20; + for(int x=0;xc = r2->c; + r1->r.height = r2->r.height; + r1->r.y = r2->r.y; + r2->c = tmp.c; + r2->r.height = tmp.r.height; + r2->r.y = tmp.r.y; + + } + UnloadRandomSequence(seq); +} + +static void DrawTextCenterKeyHelp(const char* key, const char* text, int posX, int posY, int fontSize, Color color) +{ + int spaceSize = MeasureText(" ", fontSize); + int pressSize = MeasureText("Press", fontSize); + int keySize = MeasureText(key, fontSize); + int textSize = MeasureText(text, fontSize); + int totalSize = pressSize + 2 * spaceSize + keySize + 2 * spaceSize + textSize; + int textSizeCurrent = 0; + + DrawText("Press", posX, posY, fontSize, color); + textSizeCurrent += pressSize + 2 * spaceSize; + DrawText(key, posX + textSizeCurrent, posY, fontSize, RED); + DrawRectangle(posX + textSizeCurrent, posY + fontSize, keySize, 3, RED); + textSizeCurrent += keySize + 2 * spaceSize; + DrawText(text, posX + textSizeCurrent, posY, fontSize, color); +} \ No newline at end of file diff --git a/examples/core/core_random_sequence.png b/examples/core/core_random_sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..206aa8b4021ee2acd8e3ef2b8d8f999e698b357e GIT binary patch literal 34025 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 literal 0 HcmV?d00001 diff --git a/projects/VS2022/examples/core_random_sequence.vcxproj b/projects/VS2022/examples/core_random_sequence.vcxproj new file mode 100644 index 000000000..59e1bfc1a --- /dev/null +++ b/projects/VS2022/examples/core_random_sequence.vcxproj @@ -0,0 +1,387 @@ + + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A} + Win32Proj + core_random_sequence + 10.0 + core_random_sequence + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + \ No newline at end of file diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 3ce44a9ad..c9f50f6b6 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -53,6 +53,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_multitouch", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_loading_thread", "examples\core_loading_thread.vcxproj", "{F026020F-7B00-40C8-91C3-5DE85EC45A95}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_sequence", "examples\core_random_sequence.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_scissor_test", "examples\core_scissor_test.vcxproj", "{59089B0C-AAB4-4532-B294-44DEAE7178B7}" From 53221eb799de037eaaae4accbfc5ef6f6c2fe1bb Mon Sep 17 00:00:00 2001 From: johann nadalutti Date: Thu, 29 Feb 2024 18:28:51 +0100 Subject: [PATCH 212/790] feat: vox_loader normals and new voxels shader (#3843) --- examples/models/models_loading_vox.c | 236 ++++++++++++------ examples/models/resources/models/vox/fez.vox | Bin 0 -> 1123241 bytes .../shaders/glsl330/voxel_lighting.fs | 76 ++++++ .../shaders/glsl330/voxel_lighting.vs | 32 +++ examples/models/rlights.h | 170 +++++++++++++ src/external/vox_loader.h | 17 ++ src/rmodels.c | 6 + 7 files changed, 455 insertions(+), 82 deletions(-) create mode 100644 examples/models/resources/models/vox/fez.vox create mode 100644 examples/models/resources/shaders/glsl330/voxel_lighting.fs create mode 100644 examples/models/resources/shaders/glsl330/voxel_lighting.vs create mode 100644 examples/models/rlights.h diff --git a/examples/models/models_loading_vox.c b/examples/models/models_loading_vox.c index b830c492d..1a2721a63 100644 --- a/examples/models/models_loading_vox.c +++ b/examples/models/models_loading_vox.c @@ -17,117 +17,189 @@ #include "raymath.h" // Required for: MatrixTranslate() -#define MAX_VOX_FILES 3 +#define MAX_VOX_FILES 4 + +#define RLIGHTS_IMPLEMENTATION +#include "rlights.h" + +#if defined(PLATFORM_DESKTOP) +#define GLSL_VERSION 330 +#else // PLATFORM_ANDROID, PLATFORM_WEB +#define GLSL_VERSION 100 +#endif //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ int main(void) { - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; - const char *voxFileNames[] = { - "resources/models/vox/chr_knight.vox", - "resources/models/vox/chr_sword.vox", - "resources/models/vox/monu9.vox" - }; + const char* voxFileNames[] = { + "resources/models/vox/chr_knight.vox", + "resources/models/vox/chr_sword.vox", + "resources/models/vox/monu9.vox", + "resources/models/vox/fez.vox" + }; - InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading"); + InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading"); - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera projection type + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera projection type - // Load MagicaVoxel files - Model models[MAX_VOX_FILES] = { 0 }; + //-------------------------------------------------------------------------------------- + // Load MagicaVoxel files + Model models[MAX_VOX_FILES] = { 0 }; - for (int i = 0; i < MAX_VOX_FILES; i++) - { - // Load VOX file and measure time - double t0 = GetTime()*1000.0; - models[i] = LoadModel(voxFileNames[i]); - double t1 = GetTime()*1000.0; + for (int i = 0; i < MAX_VOX_FILES; i++) + { + // Load VOX file and measure time + double t0 = GetTime() * 1000.0; + models[i] = LoadModel(voxFileNames[i]); + double t1 = GetTime() * 1000.0; - TraceLog(LOG_WARNING, TextFormat("[%s] File loaded in %.3f ms", voxFileNames[i], t1 - t0)); + TraceLog(LOG_WARNING, TextFormat("[%s] File loaded in %.3f ms", voxFileNames[i], t1 - t0)); - // Compute model translation matrix to center model on draw position (0, 0 , 0) - BoundingBox bb = GetModelBoundingBox(models[i]); - Vector3 center = { 0 }; - center.x = bb.min.x + (((bb.max.x - bb.min.x)/2)); - center.z = bb.min.z + (((bb.max.z - bb.min.z)/2)); + // Compute model translation matrix to center model on draw position (0, 0 , 0) + BoundingBox bb = GetModelBoundingBox(models[i]); + Vector3 center = { 0 }; + center.x = bb.min.x + (((bb.max.x - bb.min.x) / 2)); + center.z = bb.min.z + (((bb.max.z - bb.min.z) / 2)); - Matrix matTranslate = MatrixTranslate(-center.x, 0, -center.z); - models[i].transform = matTranslate; - } + Matrix matTranslate = MatrixTranslate(-center.x, 0, -center.z); + models[i].transform = matTranslate; + } - int currentModel = 0; + int currentModel = 0; - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- + //-------------------------------------------------------------------------------------- + // Load voxel shader + Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/voxel_lighting.vs", GLSL_VERSION), + TextFormat("resources/shaders/glsl%i/voxel_lighting.fs", GLSL_VERSION)); - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera, CAMERA_ORBITAL); + // Get some required shader locations + shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); + // NOTE: "matModel" location name is automatically assigned on shader loading, + // no need to get the location again if using that uniform name + //shader.locs[SHADER_LOC_MATRIX_MODEL] = GetShaderLocation(shader, "matModel"); - // Cycle between models on mouse click - if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) currentModel = (currentModel + 1)%MAX_VOX_FILES; + // Ambient light level (some basic lighting) + int ambientLoc = GetShaderLocation(shader, "ambient"); + SetShaderValue(shader, ambientLoc, (float[4]) { 0.1f, 0.1f, 0.1f, 1.0f }, SHADER_UNIFORM_VEC4); - // Cycle between models on key pressed - if (IsKeyPressed(KEY_RIGHT)) - { - currentModel++; - if (currentModel >= MAX_VOX_FILES) currentModel = 0; - } - else if (IsKeyPressed(KEY_LEFT)) - { - currentModel--; - if (currentModel < 0) currentModel = MAX_VOX_FILES - 1; - } - //---------------------------------------------------------------------------------- + // Assign out lighting shader to model + for (int i = 0; i < MAX_VOX_FILES; i++) + { + Model m = models[i]; + for (int j = 0; j < m.materialCount; j++) + { + m.materials[j].shader = shader; + } + } - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); + // Create lights + Light lights[MAX_LIGHTS] = { 0 }; + lights[0] = CreateLight(LIGHT_POINT, (Vector3) { -20, 20, -20 }, Vector3Zero(), GRAY, shader); + lights[1] = CreateLight(LIGHT_POINT, (Vector3) { 20, -20, 20 }, Vector3Zero(), GRAY, shader); + lights[2] = CreateLight(LIGHT_POINT, (Vector3) { -20, 20, 20 }, Vector3Zero(), GRAY, shader); + lights[3] = CreateLight(LIGHT_POINT, (Vector3) { 20, -20, -20 }, Vector3Zero(), GRAY, shader); - ClearBackground(RAYWHITE); - // Draw 3D model - BeginMode3D(camera); + SetTargetFPS(60); // Set our game to run at 60 frames-per-second - DrawModel(models[currentModel], (Vector3){ 0, 0, 0 }, 1.0f, WHITE); - DrawGrid(10, 1.0); + //-------------------------------------------------------------------------------------- + Vector3 modelpos = { 0 }; + Vector3 camerarot = { 0 }; - EndMode3D(); + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsMouseButtonDown(MOUSE_BUTTON_MIDDLE)) + { + const Vector2 mouseDelta = GetMouseDelta(); + camerarot.x = mouseDelta.x * 0.05f; + camerarot.y = mouseDelta.y * 0.05f; + } + else + { + camerarot.x = 0; + camerarot.y = 0; + } - // Display info - DrawRectangle(10, 400, 310, 30, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines(10, 400, 310, 30, Fade(DARKBLUE, 0.5f)); - DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE); - DrawText(TextFormat("File: %s", GetFileName(voxFileNames[currentModel])), 10, 10, 20, GRAY); + UpdateCameraPro(&camera, + (Vector3) { + (IsKeyDown(KEY_W) || IsKeyDown(KEY_UP)) * 0.1f - // Move forward-backward + (IsKeyDown(KEY_S) || IsKeyDown(KEY_DOWN)) * 0.1f, + (IsKeyDown(KEY_D) || IsKeyDown(KEY_RIGHT)) * 0.1f - // Move right-left + (IsKeyDown(KEY_A) || IsKeyDown(KEY_LEFT)) * 0.1f, + 0.0f // Move up-down + }, + camerarot, + GetMouseWheelMove() * -2.0f); // Move to target (zoom) - EndDrawing(); - //---------------------------------------------------------------------------------- - } + // Cycle between models on mouse click + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) currentModel = (currentModel + 1) % MAX_VOX_FILES; - // De-Initialization - //-------------------------------------------------------------------------------------- - // Unload models data (GPU VRAM) - for (int i = 0; i < MAX_VOX_FILES; i++) UnloadModel(models[i]); + // Update the shader with the camera view vector (points towards { 0.0f, 0.0f, 0.0f }) + float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; + SetShaderValue(shader, shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3); - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- + // Update light values (actually, only enable/disable them) + for (int i = 0; i < MAX_LIGHTS; i++) UpdateLightValues(shader, lights[i]); - return 0; + //---------------------------------------------------------------------------------- + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw 3D model + BeginMode3D(camera); + + DrawModel(models[currentModel], modelpos, 1.0f, WHITE); + DrawGrid(10, 1.0); + + // Draw spheres to show where the lights are + for (int i = 0; i < MAX_LIGHTS; i++) + { + if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, lights[i].color); + else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(lights[i].color, 0.3f)); + } + + EndMode3D(); + + // Display info + DrawRectangle(10, 400, 340, 60, Fade(SKYBLUE, 0.5f)); + DrawRectangleLines(10, 400, 340, 60, Fade(DARKBLUE, 0.5f)); + DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE); + DrawText("MOUSE MIDDLE BUTTON to ZOOM OR ROTATE CAMERA", 40, 420, 10, BLUE); + DrawText("UP-DOWN-LEFT-RIGHT KEYS to MOVE CAMERA", 40, 430, 10, BLUE); + DrawText(TextFormat("File: %s", GetFileName(voxFileNames[currentModel])), 10, 10, 20, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + // Unload models data (GPU VRAM) + for (int i = 0; i < MAX_VOX_FILES; i++) UnloadModel(models[i]); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; } diff --git a/examples/models/resources/models/vox/fez.vox b/examples/models/resources/models/vox/fez.vox new file mode 100644 index 0000000000000000000000000000000000000000..e9fa726934c53693140511963642799c1cf3ffc1 GIT binary patch literal 1123241 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%0Dhcl`jf5N-|gm?W3@A?zo^(VaRPk7g#@UB1M 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%0A~tM^*^!WvkyB7oQPa@U(KE1TWa7Y) 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 z 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 J%$~IA{{!=w-`W5G literal 0 HcmV?d00001 diff --git a/examples/models/resources/shaders/glsl330/voxel_lighting.fs b/examples/models/resources/shaders/glsl330/voxel_lighting.fs new file mode 100644 index 000000000..1b6c5cffa --- /dev/null +++ b/examples/models/resources/shaders/glsl330/voxel_lighting.fs @@ -0,0 +1,76 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec3 fragPosition; +//in vec2 fragTexCoord; +in vec4 fragColor; +in vec3 fragNormal; + +// Input uniform values +//uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +#define MAX_LIGHTS 4 +#define LIGHT_DIRECTIONAL 0 +#define LIGHT_POINT 1 + +struct Light { + int enabled; + int type; + vec3 position; + vec3 target; + vec4 color; +}; + +// Input lighting values +uniform Light lights[MAX_LIGHTS]; +uniform vec4 ambient; +uniform vec3 viewPos; + +void main() +{ + // Texel color fetching from texture sampler + //vec4 texelColor = texture(texture0, fragTexCoord); + vec3 lightDot = vec3(0.0); + vec3 normal = normalize(fragNormal); + vec3 viewD = normalize(viewPos - fragPosition); + vec3 specular = vec3(0.0); + + // NOTE: Implement here your fragment shader code + + for (int i = 0; i < MAX_LIGHTS; i++) + { + if (lights[i].enabled == 1) + { + vec3 light = vec3(0.0); + + if (lights[i].type == LIGHT_DIRECTIONAL) + { + light = -normalize(lights[i].target - lights[i].position); + } + + if (lights[i].type == LIGHT_POINT) + { + light = normalize(lights[i].position - fragPosition); + } + + float NdotL = max(dot(normal, light), 0.0); + lightDot += lights[i].color.rgb*NdotL; + + float specCo = 0.0; + if (NdotL > 0.0) specCo = pow(max(0.0, dot(viewD, reflect(-(light), normal))), 16.0); // 16 refers to shine + specular += specCo; + } + } + + finalColor = (fragColor*((colDiffuse + vec4(specular, 1.0))*vec4(lightDot, 1.0))); + finalColor += fragColor*(ambient/10.0)*colDiffuse; + + // Gamma correction + finalColor = pow(finalColor, vec4(1.0/2.2)); +} diff --git a/examples/models/resources/shaders/glsl330/voxel_lighting.vs b/examples/models/resources/shaders/glsl330/voxel_lighting.vs new file mode 100644 index 000000000..f60bfd221 --- /dev/null +++ b/examples/models/resources/shaders/glsl330/voxel_lighting.vs @@ -0,0 +1,32 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +//in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; +uniform mat4 matNormal; + +// Output vertex attributes (to fragment shader) +out vec3 fragPosition; +//out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); + //fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0))); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/models/rlights.h b/examples/models/rlights.h new file mode 100644 index 000000000..e38b0015a --- /dev/null +++ b/examples/models/rlights.h @@ -0,0 +1,170 @@ +/********************************************************************************************** +* +* raylib.lights - Some useful functions to deal with lights data +* +* CONFIGURATION: +* +* #define RLIGHTS_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2017-2024 Victor Fisac (@victorfisac) and 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 RLIGHTS_H +#define RLIGHTS_H + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#define MAX_LIGHTS 4 // Max dynamic lights supported by shader + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- + +// Light data +typedef struct { + int type; + bool enabled; + Vector3 position; + Vector3 target; + Color color; + float attenuation; + + // Shader locations + int enabledLoc; + int typeLoc; + int positionLoc; + int targetLoc; + int colorLoc; + int attenuationLoc; +} Light; + +// Light type +typedef enum { + LIGHT_DIRECTIONAL = 0, + LIGHT_POINT +} LightType; + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +Light CreateLight(int type, Vector3 position, Vector3 target, Color color, Shader shader); // Create a light and get shader locations +void UpdateLightValues(Shader shader, Light light); // Send light properties to shader + +#ifdef __cplusplus +} +#endif + +#endif // RLIGHTS_H + + +/*********************************************************************************** +* +* RLIGHTS IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLIGHTS_IMPLEMENTATION) + +#include "raylib.h" + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static int lightsCount = 0; // Current amount of created lights + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +// ... + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- + +// Create a light and get shader locations +Light CreateLight(int type, Vector3 position, Vector3 target, Color color, Shader shader) +{ + Light light = { 0 }; + + if (lightsCount < MAX_LIGHTS) + { + light.enabled = true; + light.type = type; + light.position = position; + light.target = target; + light.color = color; + + // NOTE: Lighting shader naming must be the provided ones + light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightsCount)); + light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightsCount)); + light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightsCount)); + light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightsCount)); + light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightsCount)); + + UpdateLightValues(shader, light); + + lightsCount++; + } + + return light; +} + +// Send light properties to shader +// NOTE: Light shader locations should be available +void UpdateLightValues(Shader shader, Light light) +{ + // Send to shader light enabled state and type + SetShaderValue(shader, light.enabledLoc, &light.enabled, SHADER_UNIFORM_INT); + SetShaderValue(shader, light.typeLoc, &light.type, SHADER_UNIFORM_INT); + + // Send to shader light position values + float position[3] = { light.position.x, light.position.y, light.position.z }; + SetShaderValue(shader, light.positionLoc, position, SHADER_UNIFORM_VEC3); + + // Send to shader light target position values + float target[3] = { light.target.x, light.target.y, light.target.z }; + SetShaderValue(shader, light.targetLoc, target, SHADER_UNIFORM_VEC3); + + // Send to shader light color values + float color[4] = { (float)light.color.r/(float)255, (float)light.color.g/(float)255, + (float)light.color.b/(float)255, (float)light.color.a/(float)255 }; + SetShaderValue(shader, light.colorLoc, color, SHADER_UNIFORM_VEC4); +} + +#endif // RLIGHTS_IMPLEMENTATION \ No newline at end of file diff --git a/src/external/vox_loader.h b/src/external/vox_loader.h index 6df10b518..0d328c078 100644 --- a/src/external/vox_loader.h +++ b/src/external/vox_loader.h @@ -123,6 +123,7 @@ typedef struct { // Arrays for mesh build ArrayVector3 vertices; + ArrayVector3 normals; ArrayUShort indices; ArrayColor colors; @@ -292,6 +293,16 @@ const VoxVector3 SolidVertex[] = { {1, 1, 1} //7 }; +const VoxVector3 FacesPerSideNormal[] = { + { -1, 0, 0 }, //-X + {1, 0, 0 }, //+X + {0,-1, 0}, //-Y + {0, 1, 0}, //+Y + {0, 0, -1}, //-Z + {0, 0, 1}, //+Z +}; + + // Allocated VoxArray3D size static void Vox_AllocArray(VoxArray3D* pvoxarray, int _sx, int _sy, int _sz) { @@ -508,6 +519,11 @@ static void Vox_Build_Voxel(VoxArray3D* pvoxArray, int x, int y, int z, int matI insertArrayVector3(&pvoxArray->vertices, vertComputed[v2]); insertArrayVector3(&pvoxArray->vertices, vertComputed[v3]); + insertArrayVector3(&pvoxArray->normals, FacesPerSideNormal[i]); + insertArrayVector3(&pvoxArray->normals, FacesPerSideNormal[i]); + insertArrayVector3(&pvoxArray->normals, FacesPerSideNormal[i]); + insertArrayVector3(&pvoxArray->normals, FacesPerSideNormal[i]); + VoxColor col = pvoxArray->palette[matID]; insertArrayColor(&pvoxArray->colors, col); @@ -653,6 +669,7 @@ int Vox_LoadFromMemory(unsigned char* pvoxData, unsigned int voxDataSize, VoxArr // Init Arrays initArrayVector3(&pvoxarray->vertices, 3 * 1024); + initArrayVector3(&pvoxarray->normals, 3 * 1024); initArrayUShort(&pvoxarray->indices, 3 * 1024); initArrayColor(&pvoxarray->colors, 3 * 1024); diff --git a/src/rmodels.c b/src/rmodels.c index 4f634990f..316b91d11 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5641,6 +5641,7 @@ static Model LoadVOX(const char *fileName) // 6*4 = 12 vertices per voxel Vector3 *pvertices = (Vector3 *)voxarray.vertices.array; + Vector3* pnormals = (Vector3*)voxarray.normals.array; Color *pcolors = (Color *)voxarray.colors.array; unsigned short *pindices = voxarray.indices.array; // 5461*6*6 = 196596 indices max per mesh @@ -5659,6 +5660,10 @@ static Model LoadVOX(const char *fileName) pmesh->vertices = RL_MALLOC(size); memcpy(pmesh->vertices, pvertices, size); + // Copy normals + pmesh->normals = RL_MALLOC(size); //Rk. size as vertices + memcpy(pmesh->normals, pnormals, size); + // Copy indices size = voxarray.indices.used*sizeof(unsigned short); pmesh->indices = RL_MALLOC(size); @@ -5676,6 +5681,7 @@ static Model LoadVOX(const char *fileName) verticesRemain -= verticesMax; pvertices += verticesMax; + pnormals += verticesMax; pcolors += verticesMax; } From 6589311a0b7a217ec270000eb3ab2a5172992efa Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Thu, 29 Feb 2024 14:29:32 -0300 Subject: [PATCH 213/790] Update GLFW to 3.4 (#3827) * Update GLFW to 3.4 (draft) * Add _glfwConnectNull() function to rglfw.c * Update rglfw.c * Update Makefile * Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND * Revert "Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND" This reverts commit 9e79abde786bf797d8133fd95e8a475cf6e2b066. * GlfwImport.cmake: Replace GLFW_USE_WAYLAND with GLFW_BUILD_WAYLAND * Update rglfw.c * Output platform selected by GLFW to TRACELOG * GLFW has removed Mir support --- cmake/GlfwImport.cmake | 2 +- src/Makefile | 21 +- src/external/glfw/CMake/glfw3.pc.in | 2 +- src/external/glfw/CMakeLists.txt | 32 +- src/external/glfw/CONTRIBUTORS.md | 35 + src/external/glfw/README.md | 116 +- src/external/glfw/deps/vs2008/stdint.h | 247 -- .../glfw/deps/wayland/fractional-scale-v1.xml | 102 + .../deps/wayland/idle-inhibit-unstable-v1.xml | 83 + .../pointer-constraints-unstable-v1.xml | 339 ++ .../wayland/relative-pointer-unstable-v1.xml | 136 + src/external/glfw/deps/wayland/viewporter.xml | 180 + src/external/glfw/deps/wayland/wayland.xml | 3151 +++++++++++++++++ .../glfw/deps/wayland/xdg-activation-v1.xml | 200 ++ .../wayland/xdg-decoration-unstable-v1.xml | 156 + src/external/glfw/deps/wayland/xdg-shell.xml | 1370 +++++++ src/external/glfw/include/GLFW/glfw3.h | 348 +- src/external/glfw/include/GLFW/glfw3native.h | 97 +- src/external/glfw/src/CMakeLists.txt | 92 +- src/external/glfw/src/cocoa_init.m | 151 +- src/external/glfw/src/cocoa_joystick.h | 2 - src/external/glfw/src/cocoa_joystick.m | 17 +- src/external/glfw/src/cocoa_monitor.m | 22 +- src/external/glfw/src/cocoa_platform.h | 4 +- src/external/glfw/src/cocoa_time.c | 6 +- src/external/glfw/src/cocoa_window.m | 49 +- src/external/glfw/src/context.c | 4 +- src/external/glfw/src/egl_context.c | 107 +- src/external/glfw/src/glx_context.c | 7 +- src/external/glfw/src/init.c | 49 +- src/external/glfw/src/input.c | 21 +- src/external/glfw/src/internal.h | 61 +- src/external/glfw/src/linux_joystick.c | 15 +- src/external/glfw/src/linux_joystick.h | 3 +- src/external/glfw/src/mappings.h | 1671 +++------ src/external/glfw/src/mappings.h.in | 12 +- src/external/glfw/src/monitor.c | 8 +- src/external/glfw/src/nsgl_context.m | 26 +- src/external/glfw/src/null_init.c | 279 +- src/external/glfw/src/null_joystick.c | 2 - src/external/glfw/src/null_monitor.c | 7 +- src/external/glfw/src/null_platform.h | 128 +- src/external/glfw/src/null_window.c | 137 +- src/external/glfw/src/osmesa_context.c | 7 +- src/external/glfw/src/platform.c | 37 +- src/external/glfw/src/platform.h | 55 +- src/external/glfw/src/posix_module.c | 6 +- src/external/glfw/src/posix_poll.c | 6 +- src/external/glfw/src/posix_poll.h | 2 - src/external/glfw/src/posix_thread.c | 6 +- src/external/glfw/src/posix_time.c | 6 +- src/external/glfw/src/vulkan.c | 2 - src/external/glfw/src/wgl_context.c | 24 +- src/external/glfw/src/win32_init.c | 156 +- src/external/glfw/src/win32_joystick.c | 13 +- src/external/glfw/src/win32_joystick.h | 2 - src/external/glfw/src/win32_module.c | 6 +- src/external/glfw/src/win32_monitor.c | 30 +- src/external/glfw/src/win32_platform.h | 5 +- src/external/glfw/src/win32_thread.c | 6 +- src/external/glfw/src/win32_thread.h | 5 + src/external/glfw/src/win32_time.c | 5 +- src/external/glfw/src/win32_time.h | 5 + src/external/glfw/src/win32_window.c | 227 +- src/external/glfw/src/window.c | 35 +- src/external/glfw/src/wl_init.c | 412 ++- src/external/glfw/src/wl_monitor.c | 34 +- src/external/glfw/src/wl_platform.h | 220 +- src/external/glfw/src/wl_window.c | 1337 ++++--- src/external/glfw/src/x11_init.c | 162 +- src/external/glfw/src/x11_monitor.c | 37 +- src/external/glfw/src/x11_platform.h | 2 +- src/external/glfw/src/x11_window.c | 40 +- src/external/glfw/src/xkb_unicode.c | 5 +- src/platforms/rcore_desktop.c | 12 +- src/rglfw.c | 13 +- 76 files changed, 9460 insertions(+), 2957 deletions(-) delete mode 100644 src/external/glfw/deps/vs2008/stdint.h create mode 100644 src/external/glfw/deps/wayland/fractional-scale-v1.xml create mode 100644 src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml create mode 100644 src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml create mode 100644 src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml create mode 100644 src/external/glfw/deps/wayland/viewporter.xml create mode 100644 src/external/glfw/deps/wayland/wayland.xml create mode 100644 src/external/glfw/deps/wayland/xdg-activation-v1.xml create mode 100644 src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml create mode 100644 src/external/glfw/deps/wayland/xdg-shell.xml diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index 77c88e6c3..1c267aba7 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -16,7 +16,7 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) - set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE) + set(GLFW_BUILD_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE) set(GLFW_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE) diff --git a/src/Makefile b/src/Makefile index 2d426b163..7b8814310 100644 --- a/src/Makefile +++ b/src/Makefile @@ -411,8 +411,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) CFLAGS += -D_GLFW_WAYLAND LDFLAGS += $(shell pkg-config wayland-client wayland-cursor wayland-egl xkbcommon --libs) - WL_PROTOCOLS_DIR := $(shell pkg-config wayland-protocols --variable=pkgdatadir) - WL_CLIENT_DIR := $(shell pkg-config wayland-client --variable=pkgdatadir) + WL_PROTOCOLS_DIR := external/glfw/deps/wayland wl_generate = \ $(eval protocol=$(1)) \ @@ -420,13 +419,15 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) $(shell wayland-scanner client-header $(protocol) $(RAYLIB_SRC_PATH)/$(basename).h) \ $(shell wayland-scanner private-code $(protocol) $(RAYLIB_SRC_PATH)/$(basename)-code.h) - $(call wl_generate, $(WL_CLIENT_DIR)/wayland.xml, wayland-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/stable/xdg-shell/xdg-shell.xml, wayland-xdg-shell-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml, wayland-xdg-decoration-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/stable/viewporter/viewporter.xml, wayland-viewporter-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/unstable/relative-pointer/relative-pointer-unstable-v1.xml, wayland-relative-pointer-unstable-v1-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml, wayland-pointer-constraints-unstable-v1-client-protocol) - $(call wl_generate, $(WL_PROTOCOLS_DIR)/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml, wayland-idle-inhibit-unstable-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/wayland.xml, wayland-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/xdg-shell.xml, xdg-shell-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/xdg-decoration-unstable-v1.xml, xdg-decoration-unstable-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/viewporter.xml, viewporter-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/relative-pointer-unstable-v1.xml, relative-pointer-unstable-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/pointer-constraints-unstable-v1.xml, pointer-constraints-unstable-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/fractional-scale-v1.xml, fractional-scale-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/xdg-activation-v1.xml, xdg-activation-v1-client-protocol) + $(call wl_generate, $(WL_PROTOCOLS_DIR)/idle-inhibit-unstable-v1.xml, idle-inhibit-unstable-v1-client-protocol) endif endif endif @@ -805,7 +806,7 @@ clean: clean_shell_$(PLATFORM_SHELL) @echo "removed all generated files!" clean_shell_sh: - rm -fv *.o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).a $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).bc $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).so* raygui.c + rm -fv *.o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).a $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).bc $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).so* raygui.c $(RAYLIB_RELEASE_PATH)/*-protocol.h $(RAYLIB_RELEASE_PATH)/*-protocol-code.h ifeq ($(PLATFORM),PLATFORM_ANDROID) rm -fv $(NATIVE_APP_GLUE)/android_native_app_glue.o endif diff --git a/src/external/glfw/CMake/glfw3.pc.in b/src/external/glfw/CMake/glfw3.pc.in index 37f4efd91..36ee218e7 100644 --- a/src/external/glfw/CMake/glfw3.pc.in +++ b/src/external/glfw/CMake/glfw3.pc.in @@ -8,6 +8,6 @@ Description: A multi-platform library for OpenGL, window and input Version: @GLFW_VERSION@ URL: https://www.glfw.org/ Requires.private: @GLFW_PKG_CONFIG_REQUIRES_PRIVATE@ -Libs: -L${libdir} -l@GLFW_LIB_NAME@ +Libs: -L${libdir} -l@GLFW_LIB_NAME@@GLFW_LIB_NAME_SUFFIX@ Libs.private: @GLFW_PKG_CONFIG_LIBS_PRIVATE@ Cflags: -I${includedir} diff --git a/src/external/glfw/CMakeLists.txt b/src/external/glfw/CMakeLists.txt index f5e538bf7..a3cb1fe68 100644 --- a/src/external/glfw/CMakeLists.txt +++ b/src/external/glfw/CMakeLists.txt @@ -1,13 +1,7 @@ -cmake_minimum_required(VERSION 3.4...3.20 FATAL_ERROR) +cmake_minimum_required(VERSION 3.4...3.28 FATAL_ERROR) project(GLFW VERSION 3.4.0 LANGUAGES C) -set(CMAKE_LEGACY_CYGWIN_WIN32 OFF) - -if (POLICY CMP0054) - cmake_policy(SET CMP0054 NEW) -endif() - if (POLICY CMP0069) cmake_policy(SET CMP0069 NEW) endif() @@ -18,9 +12,7 @@ endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) -if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - set(GLFW_STANDALONE TRUE) -endif() +string(COMPARE EQUAL "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}" GLFW_STANDALONE) option(BUILD_SHARED_LIBS "Build shared libraries" OFF) option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" ${GLFW_STANDALONE}) @@ -35,11 +27,15 @@ if (GLFW_USE_OSMESA) message(FATAL_ERROR "GLFW_USE_OSMESA has been removed; set the GLFW_PLATFORM init hint") endif() +if (DEFINED GLFW_USE_WAYLAND AND UNIX AND NOT APPLE) + message(FATAL_ERROR + "GLFW_USE_WAYLAND has been removed; delete the CMake cache and set GLFW_BUILD_WAYLAND and GLFW_BUILD_X11 instead") +endif() + cmake_dependent_option(GLFW_BUILD_WIN32 "Build support for Win32" ON "WIN32" OFF) cmake_dependent_option(GLFW_BUILD_COCOA "Build support for Cocoa" ON "APPLE" OFF) cmake_dependent_option(GLFW_BUILD_X11 "Build support for X11" ON "UNIX;NOT APPLE" OFF) -cmake_dependent_option(GLFW_BUILD_WAYLAND "Build support for Wayland" - "${GLFW_USE_WAYLAND}" "UNIX;NOT APPLE" OFF) +cmake_dependent_option(GLFW_BUILD_WAYLAND "Build support for Wayland" ON "UNIX;NOT APPLE" OFF) cmake_dependent_option(GLFW_USE_HYBRID_HPG "Force use of high-performance GPU on hybrid systems" OFF "WIN32" OFF) @@ -63,11 +59,6 @@ list(APPEND CMAKE_MODULE_PATH "${GLFW_SOURCE_DIR}/CMake/modules") find_package(Threads REQUIRED) -if (GLFW_BUILD_DOCS) - set(DOXYGEN_SKIP_DOT TRUE) - find_package(Doxygen) -endif() - #-------------------------------------------------------------------- # Report backend selection #-------------------------------------------------------------------- @@ -138,7 +129,7 @@ if (GLFW_BUILD_TESTS) add_subdirectory(tests) endif() -if (DOXYGEN_FOUND AND GLFW_BUILD_DOCS) +if (GLFW_BUILD_DOCS) add_subdirectory(docs) endif() @@ -160,11 +151,6 @@ if (GLFW_INSTALL) install(FILES "${GLFW_BINARY_DIR}/src/glfw3.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") - if (DOXYGEN_FOUND AND GLFW_BUILD_DOCS) - install(DIRECTORY "${GLFW_BINARY_DIR}/docs/html" - DESTINATION "${CMAKE_INSTALL_DOCDIR}") - endif() - # Only generate this target if no higher-level project already has if (NOT TARGET uninstall) configure_file(CMake/cmake_uninstall.cmake.in diff --git a/src/external/glfw/CONTRIBUTORS.md b/src/external/glfw/CONTRIBUTORS.md index d938afae0..c4c74adeb 100644 --- a/src/external/glfw/CONTRIBUTORS.md +++ b/src/external/glfw/CONTRIBUTORS.md @@ -8,12 +8,14 @@ video tutorials. - Bobyshev Alexander - Laurent Aphecetche - Matt Arsenault + - Takuro Ashie - ashishgamedev - David Avedissian - Luca Bacci - Keith Bauer - John Bartholomew - Coşku Baş + - Bayemite - Niklas Behrens - Andrew Belt - Nevyn Bengtsson @@ -32,7 +34,9 @@ video tutorials. - David Carlier - Arturo Castro - Chi-kwan Chan + - Victor Chernyakin - TheChocolateOre + - Ali Chraghi - Joseph Chua - Ian Clarkson - Michał Cichoń @@ -45,6 +49,7 @@ video tutorials. - Bailey Cosier - Noel Cower - CuriouserThing + - Bill Currie - Jason Daly - danhambleton - Jarrod Davis @@ -64,11 +69,13 @@ video tutorials. - Nikita Fediuchin - Felipe Ferreira - Michael Fogleman + - forworldm - Jason Francis - Gerald Franz - Mário Freitas - GeO4d - Marcus Geelnard + - Gegy - ghuser404 - Charles Giessen - Ryan C. Gordon @@ -76,11 +83,14 @@ video tutorials. - Kovid Goyal - Kevin Grandemange - Eloi Marín Gratacós + - Grzesiek11 - Stefan Gustavson - Andrew Gutekanst - Stephen Gutekanst - Jonathan Hale + - Daniel Hauser - hdf89shfdfs + - Moritz Heinemann - Sylvain Hellegouarch - Björn Hempel - Matthew Henry @@ -91,6 +101,7 @@ video tutorials. - Warren Hu - Charles Huber - Brent Huisman + - Florian Hülsmann - illustris - InKryption - IntellectualKitty @@ -98,6 +109,7 @@ video tutorials. - JannikGM - Erik S. V. Jansson - jjYBdx4IL + - Peter Johnson - Toni Jovanoski - Arseny Kapoulkine - Cem Karan @@ -112,6 +124,7 @@ video tutorials. - Rokas Kupstys - Konstantin Käfer - Eric Larson + - Guillaume Lebrun - Francis Lecavalier - Jong Won Lee - Robin Leffmann @@ -120,12 +133,16 @@ video tutorials. - Anders Lindqvist - Leon Linhart - Marco Lizza + - lo-v-ol - Eyal Lotem - Aaron Loucks + - Ned Loynd - Luflosi - lukect - Tristam MacDonald + - Jean-Luc Mackail - Hans Mackowiak + - Ramiro Magno - Дмитри Малышев - Zbigniew Mandziejewicz - Adam Marcus @@ -137,7 +154,9 @@ video tutorials. - Jonathan Mercier - Marcel Metz - Liam Middlebrook + - mightgoyardstill - Ave Milia + - Icyllis Milica - Jonathan Miller - Kenneth Miller - Bruce Mitchener @@ -152,11 +171,15 @@ video tutorials. - Pascal Muetschard - James Murphy - Julian Møller + - Julius Häger + - Nat! + - NateIsStalling - ndogxj - F. Nedelec - n3rdopolis - Kristian Nielsen - Joel Niemelä + - Victor Nova - Kamil Nowakowski - onox - Denis Ovod @@ -179,12 +202,14 @@ video tutorials. - Stanislav Podgorskiy - Konstantin Podsvirov - Nathan Poirier + - Pokechu22 - Alexandre Pretyman - Pablo Prietz - przemekmirek - pthom - Martin Pulec - Guillaume Racicot + - Juan Ramos - Christian Rauch - Philip Rideout - Eddie Ringle @@ -197,17 +222,23 @@ video tutorials. - Aleksey Rybalkin - Mikko Rytkönen - Riku Salminen + - Yoshinori Sano - Brandon Schaefer - Sebastian Schuberth + - Scr3amer + - Jan Schuerkamp - Christian Sdunek - Matt Sealey - Steve Sexton - Arkady Shapkin + - Mingjie Shen - Ali Sherief - Yoshiki Shibukawa - Dmitri Shuralyov - Joao da Silva - Daniel Sieger + - Daljit Singh + - Michael Skec - Daniel Skorupski - Slemmie - Anthony Smith @@ -225,6 +256,7 @@ video tutorials. - Paul Sultana - Nathan Sweet - TTK-Bandit + - Nuno Teixeira - Jared Tiala - Sergey Tikhomirov - Arthur Tombs @@ -238,11 +270,14 @@ video tutorials. - Jari Vetoniemi - Ricardo Vieira - Nicholas Vitovitch + - Vladimír Vondruš - Simon Voordouw - Corentin Wallez - Torsten Walluhn - Patrick Walton + - Jim Wang - Xo Wang + - Andre Weissflog - Jay Weisskopf - Frank Wille - Andy Williams diff --git a/src/external/glfw/README.md b/src/external/glfw/README.md index 8b4a1546e..efd1383f8 100644 --- a/src/external/glfw/README.md +++ b/src/external/glfw/README.md @@ -2,7 +2,6 @@ [![Build status](https://github.com/glfw/glfw/actions/workflows/build.yml/badge.svg)](https://github.com/glfw/glfw/actions) [![Build status](https://ci.appveyor.com/api/projects/status/0kf0ct9831i5l6sp/branch/master?svg=true)](https://ci.appveyor.com/project/elmindreda/glfw) -[![Coverity Scan](https://scan.coverity.com/projects/4884/badge.svg)](https://scan.coverity.com/projects/glfw-glfw) ## Introduction @@ -11,15 +10,15 @@ application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. GLFW natively supports Windows, macOS and Linux and other Unix-like systems. On -Linux both X11 and Wayland are supported. +Linux both Wayland and X11 are supported. GLFW is licensed under the [zlib/libpng license](https://www.glfw.org/license.html). You can [download](https://www.glfw.org/download.html) the latest stable release -as source or Windows binaries, or fetch the `latest` branch from GitHub. Each -release starting with 3.0 also has a corresponding [annotated -tag](https://github.com/glfw/glfw/releases) with source and binary archives. +as source or Windows binaries. Each release starting with 3.0 also has +a corresponding [annotated tag](https://github.com/glfw/glfw/releases) with +source and binary archives. The [documentation](https://www.glfw.org/docs/latest/) is available online and is included in all source and binary archives. See the [release @@ -47,18 +46,19 @@ features or fixing bugs. ## Compiling GLFW -GLFW itself requires only the headers and libraries for your OS and window -system. It does not need the headers for any context creation API (WGL, GLX, -EGL, NSGL, OSMesa) or rendering API (OpenGL, OpenGL ES, Vulkan) to enable -support for them. +GLFW is written primarily in C99, with parts of macOS support being written in +Objective-C. GLFW itself requires only the headers and libraries for your OS +and window system. It does not need any additional headers for context creation +APIs (WGL, GLX, EGL, NSGL, OSMesa) or rendering APIs (OpenGL, OpenGL ES, Vulkan) +to enable support for them. -GLFW supports compilation on Windows with Visual C++ 2010 and later, MinGW and +GLFW supports compilation on Windows with Visual C++ 2013 and later, MinGW and MinGW-w64, on macOS with Clang and on Linux and other Unix-like systems with GCC and Clang. It will likely compile in other environments as well, but this is not regularly tested. -There are [pre-compiled Windows binaries](https://www.glfw.org/download.html) -available for all supported compilers. +There are [pre-compiled binaries](https://www.glfw.org/download.html) available +for all supported compilers on Windows and macOS. See the [compilation guide](https://www.glfw.org/docs/latest/compile.html) for more information about how to compile GLFW yourself. @@ -119,7 +119,7 @@ guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for information on what to include when reporting a bug. -## Changelog +## Changelog since 3.3.10 - Added `GLFW_PLATFORM` init hint for runtime platform selection (#1958) - Added `GLFW_ANY_PLATFORM`, `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`, @@ -131,6 +131,7 @@ information on what to include when reporting a bug. - Added `glfwInitAllocator` for setting a custom memory allocator (#544,#1628,#1947) - Added `GLFWallocator` struct and `GLFWallocatefun`, `GLFWreallocatefun` and `GLFWdeallocatefun` types (#544,#1628,#1947) + - Added `glfwGetWindowTitle` function for querying window title (#1448,#1909,#2482) - Added `glfwInitVulkanLoader` for using a non-default Vulkan loader (#1374,#1890) - Added `GLFW_RESIZE_NWSE_CURSOR`, `GLFW_RESIZE_NESW_CURSOR`, `GLFW_RESIZE_ALL_CURSOR` and `GLFW_NOT_ALLOWED_CURSOR` cursor shapes (#427) @@ -143,6 +144,7 @@ information on what to include when reporting a bug. content area (#58) - Added `GLFW_POSITION_X` and `GLFW_POSITION_Y` window hints for initial position (#1603,#1747) + - Added `GLFW_SCALE_FRAMEBUFFER` window hint for Wayland and macOS scaling (#2457) - Added `GLFW_ANY_POSITION` hint value for letting the window manager choose (#1603,#1747) - Added `GLFW_PLATFORM_UNAVAILABLE` error for platform detection failures (#1958) - Added `GLFW_FEATURE_UNAVAILABLE` error for platform limitations (#1692) @@ -153,22 +155,63 @@ information on what to include when reporting a bug. values to select ANGLE backend (#1380) - Added `GLFW_X11_XCB_VULKAN_SURFACE` init hint for selecting X11 Vulkan surface extension (#1793) + - Added `GLFW_WIN32_KEYBOARD_MENU` window hint for enabling access to the window menu + - Added `GLFW_WIN32_SHOWDEFAULT` window hint for applying the parent process + show command (#2359) - Added `GLFW_NATIVE_INCLUDE_NONE` for disabling inclusion of native headers (#1348) - Added `GLFW_BUILD_WIN32` CMake option for enabling Win32 support (#1958) - Added `GLFW_BUILD_COCOA` CMake option for enabling Cocoa support (#1958) - Added `GLFW_BUILD_X11` CMake option for enabling X11 support (#1958) - Added `GLFW_LIBRARY_TYPE` CMake variable for overriding the library type (#279,#1307,#1497,#1574,#1928) + - Added support for `XDG_SESSION_TYPE` environment variable - Added `GLFW_PKG_CONFIG_REQUIRES_PRIVATE` and `GLFW_PKG_CONFIG_LIBS_PRIVATE` CMake variables exposing pkg-config dependencies (#1307) - Made joystick subsystem initialize at first use (#1284,#1646) - Made `GLFW_DOUBLEBUFFER` a read-only window attribute - - Updated the minimum required CMake version to 3.1 + - Made Wayland the preferred platform over X11 if both are available (#2035) + - Updated the minimum required CMake version to 3.4 - Updated gamepad mappings from upstream - - Disabled tests and examples by default when built as a CMake subdirectory - Renamed `GLFW_USE_WAYLAND` CMake option to `GLFW_BUILD_WAYLAND` (#1958) + - Disabled tests and examples by default when built as a CMake subdirectory - Removed `GLFW_USE_OSMESA` CMake option enabling the Null platform (#1958) - Removed CMake generated configuration header + - Bugfix: `glfwGetVideoMode` returned an invalid mode on error (#1292) + - [Win32] Added a version info resource to the GLFW DLL + - [Win32] Made hidden helper window use its own window class + - [Win32] Bugfix: The foreground lock timeout was overridden, ignoring the user + - [Cocoa] Added `glfwGetCocoaView` native access function (#2235) + - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) + - [Cocoa] Bugfix: Touching event queue from secondary thread before main thread + would abort (#1649) + - [Wayland] Added support for `glfwRequestWindowAttention` (#2287) + - [Wayland] Added support for `glfwFocusWindow` + - [Wayland] Added support for `GLFW_RESIZABLE` (#2203) + - [Wayland] Added support for fractional scaling of window contents + - [Wayland] Added dynamic loading of all Wayland libraries + - [Wayland] Bugfix: `CLOCK_MONOTONIC` was not correctly enabled + - [Wayland] Bugfix: `GLFW_HOVERED` was true when the cursor was over any + fallback window decoration + - [Wayland] Bugfix: Fallback decorations allowed resizing to invalid size + (#2204) + - [X11] Bugfix: Termination would segfault if the IM had been destroyed + - [X11] Bugfix: Any IM started after initialization would not be detected + - [Linux] Bugfix: Joystick evdev fds remained open in forks (#2446) + - [POSIX] Removed use of deprecated function `gettimeofday` + - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled + - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072) + - [NSGL] Removed enforcement of forward-compatible flag for core contexts + - [NSGL] Bugfix: A core profile OpenGL context was returned if 3.2+ + compatibility profile was requested + - [EGL] Added platform selection via the `EGL_EXT_platform_base` extension + (#442) + - [EGL] Added ANGLE backend selection via `EGL_ANGLE_platform_angle` extension + (#1380) + + +## Changelog since 3.3 + + - Added `GLFW_WAYLAND_LIBDECOR` init hint for disabling libdecor support (#1639,#1693) - Bugfix: The CMake config-file package used an absolute path and was not relocatable (#1470) - Bugfix: Video modes with a duplicate screen area were discarded (#1555,#1556) @@ -183,10 +226,8 @@ information on what to include when reporting a bug. - Bugfix: `glfwMakeContextCurrent` would access TLS slot before initialization - Bugfix: `glfwSetGammaRamp` could emit `GLFW_INVALID_VALUE` before initialization - Bugfix: `glfwGetJoystickUserPointer` returned `NULL` during disconnection (#2092) - - [Win32] Added the `GLFW_WIN32_KEYBOARD_MENU` window hint for enabling access - to the window menu - - [Win32] Added a version info resource to the GLFW DLL - - [Win32] Made hidden helper window use its own window class + - Bugfix: `glfwGetKeyScancode` returned `0` on error when initialized instead of `-1` + - Bugfix: Failure to make a newly created context current could cause segfault (#2327) - [Win32] Disabled framebuffer transparency on Windows 7 when DWM windows are opaque (#1512) - [Win32] Bugfix: `GLFW_INCLUDE_VULKAN` plus `VK_USE_PLATFORM_WIN32_KHR` caused @@ -213,7 +254,6 @@ information on what to include when reporting a bug. - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or later (#1783,#1796) - [Win32] Bugfix: Compilation with LLVM for Windows failed (#1807,#1824,#1874) - - [Win32] Bugfix: The foreground lock timeout was overridden, ignoring the user - [Win32] Bugfix: Content scale queries could fail silently (#1615) - [Win32] Bugfix: Content scales could have garbage values if monitor was recently disconnected (#1615) @@ -229,9 +269,13 @@ information on what to include when reporting a bug. - [Win32] Bugfix: Instance-local operations used executable instance (#469,#1296,#1395) - [Win32] Bugfix: The OSMesa library was not unloaded on termination - [Win32] Bugfix: Right shift emitted `GLFW_KEY_UNKNOWN` when using a CJK IME (#2050) + - [Win32] Bugfix: `glfwWaitEventsTimeout` did not return for some sent messages (#2408) + - [Win32] Bugfix: Fix pkg-config for dynamic library on Windows (#2386, #2420) + - [Win32] Bugfix: XInput could reportedly provide invalid DPad bit masks (#2291) + - [Win32] Bugfix: Rapid clipboard calls could fail due to Clipboard History + - [Win32] Bugfix: Disabled cursor mode doesn't work right when connected over RDP (#1276,#1279,#2431) - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619) - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle - - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) - [Cocoa] Changed `EGLNativeWindowType` from `NSView` to `CALayer` (#1169) - [Cocoa] Changed F13 key to report Print Screen for cross-platform consistency (#1786) @@ -242,8 +286,6 @@ information on what to include when reporting a bug. (#1412) - [Cocoa] Bugfix: Event processing before window creation would assert (#1543) - [Cocoa] Bugfix: Undecorated windows could not be iconified on recent macOS - - [Cocoa] Bugfix: Touching event queue from secondary thread before main thread - would abort (#1649) - [Cocoa] Bugfix: Non-BMP Unicode codepoint input was reported as UTF-16 (#1635) - [Cocoa] Bugfix: Failing to retrieve the refresh rate of built-in displays @@ -269,6 +311,10 @@ information on what to include when reporting a bug. application (#2110) - [Cocoa] Bugfix: The Vulkan loader was not loaded from the `Frameworks` bundle subdirectory (#2113,#2120) + - [Cocoa] Bugfix: Compilation failed on OS X 10.8 due to unconditional use of 10.9+ + symbols (#2161) + - [Cocoa] Bugfix: Querying joystick elements could reportedly segfault on macOS + 13 Ventura (#2320) - [X11] Bugfix: The CMake files did not check for the XInput headers (#1480) - [X11] Bugfix: Key names were not updated when the keyboard layout changed (#1462,#1528) @@ -283,8 +329,6 @@ information on what to include when reporting a bug. - [X11] Bugfix: `glfwFocusWindow` could terminate on older WMs or without a WM - [X11] Bugfix: Querying a disconnected monitor could segfault (#1602) - [X11] Bugfix: IME input of CJK was broken for "C" locale (#1587,#1636) - - [X11] Bugfix: Termination would segfault if the IM had been destroyed - - [X11] Bugfix: Any IM started after initialization would not be detected - [X11] Bugfix: Xlib errors caused by other parts of the application could be reported as GLFW errors - [X11] Bugfix: A handle race condition could cause a `BadWindow` error (#1633) @@ -311,7 +355,7 @@ information on what to include when reporting a bug. - [X11] Bugfix: The OSMesa libray was not unloaded on termination - [X11] Bugfix: A malformed response during selection transfer could cause a segfault - [X11] Bugfix: Some calls would reset Xlib to the default error handler (#2108) - - [Wayland] Added dynamic loading of all Wayland libraries + - [Wayland] Added improved fallback window decorations via libdecor (#1639,#1693) - [Wayland] Added support for key names via xkbcommon - [Wayland] Added support for file path drop events (#2040) - [Wayland] Added support for more human-readable monitor names where available @@ -319,7 +363,6 @@ information on what to include when reporting a bug. `EGL_EXT_present_opaque` (#1895) - [Wayland] Removed support for `wl_shell` (#1443) - [Wayland] Bugfix: The `GLFW_HAND_CURSOR` shape used the wrong image (#1432) - - [Wayland] Bugfix: `CLOCK_MONOTONIC` was not correctly enabled - [Wayland] Bugfix: Repeated keys could be reported with `NULL` window (#1704) - [Wayland] Bugfix: Retrieving partial framebuffer size would segfault - [Wayland] Bugfix: Scrolling offsets were inverted compared to other platforms @@ -382,22 +425,18 @@ information on what to include when reporting a bug. - [Wayland] Bugfix: `GLFW_DECORATED` was ignored when showing a window with XDG decorations - [Wayland] Bugfix: Connecting a mouse after `glfwInit` would segfault (#1450) - - [POSIX] Removed use of deprecated function `gettimeofday` - - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled + - [Wayland] Bugfix: Joysticks connected after `glfwInit` were not detected (#2198) + - [Wayland] Bugfix: Fallback decorations emitted `GLFW_CURSOR_UNAVAILABLE` errors - [Linux] Bugfix: Joysticks without buttons were ignored (#2042,#2043) - - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072) - - [NSGL] Removed enforcement of forward-compatible flag for core contexts + - [Linux] Bugfix: A small amount of memory could leak if initialization failed (#2229) - [NSGL] Bugfix: `GLFW_COCOA_RETINA_FRAMEBUFFER` had no effect on newer macOS versions (#1442) - [NSGL] Bugfix: Workaround for swap interval on 10.14 broke on 10.12 (#1483) - [NSGL] Bugfix: Defining `GL_SILENCE_DEPRECATION` externally caused a duplicate definition warning (#1840) - - [EGL] Added platform selection via the `EGL_EXT_platform_base` extension - (#442) - - [EGL] Added ANGLE backend selection via `EGL_ANGLE_platform_angle` extension - (#1380) - [EGL] Added loading of glvnd `libOpenGL.so.0` where available for OpenGL + - [EGL] Added loading of glvnd `libOpenGL.so.0` where available for OpenGL - [EGL] Bugfix: The `GLFW_DOUBLEBUFFER` context attribute was ignored (#1843) + - [EGL] Bugfix: Setting `GLFW_CONTEXT_DEBUG` caused creation to fail (#2348) - [GLX] Added loading of glvnd `libGLX.so.0` where available - [GLX] Bugfix: Context creation failed if GLX 1.4 was not exported by GLX library @@ -408,13 +447,12 @@ On [glfw.org](https://www.glfw.org/) you can find the latest version of GLFW, as well as news, documentation and other information about the project. If you have questions related to the use of GLFW, we have a -[forum](https://discourse.glfw.org/), and the `#glfw` IRC channel on -[Libera.Chat](https://libera.chat/). +[forum](https://discourse.glfw.org/). If you have a bug to report, a patch to submit or a feature you'd like to request, please file it in the [issue tracker](https://github.com/glfw/glfw/issues) on GitHub. Finally, if you're interested in helping out with the development of GLFW or -porting it to your favorite platform, join us on the forum, GitHub or IRC. +porting it to your favorite platform, join us on the forum or GitHub. diff --git a/src/external/glfw/deps/vs2008/stdint.h b/src/external/glfw/deps/vs2008/stdint.h deleted file mode 100644 index d02608a59..000000000 --- a/src/external/glfw/deps/vs2008/stdint.h +++ /dev/null @@ -1,247 +0,0 @@ -// ISO C9x compliant stdint.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// -// Copyright (c) 2006-2008 Alexander Chemeris -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. The name of the author may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSC_VER // [ -#error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] - -#ifndef _MSC_STDINT_H_ // [ -#define _MSC_STDINT_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -// For Visual Studio 6 in C++ mode and for many Visual Studio versions when -// compiling for ARM we should wrap include with 'extern "C++" {}' -// or compiler give many errors like this: -// error C2733: second C linkage of overloaded function 'wmemchr' not allowed -#ifdef __cplusplus -extern "C" { -#endif -# include -#ifdef __cplusplus -} -#endif - -// Define _W64 macros to mark types changing their size, like intptr_t. -#ifndef _W64 -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif -#endif - - -// 7.18.1 Integer types - -// 7.18.1.1 Exact-width integer types - -// Visual Studio 6 and Embedded Visual C++ 4 doesn't -// realize that, e.g. char has the same size as __int8 -// so we give up on __intX for them. -#if (_MSC_VER < 1300) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; -#else - typedef signed __int8 int8_t; - typedef signed __int16 int16_t; - typedef signed __int32 int32_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; -#endif -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; - - -// 7.18.1.2 Minimum-width integer types -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -typedef int64_t int_least64_t; -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -typedef uint64_t uint_least64_t; - -// 7.18.1.3 Fastest minimum-width integer types -typedef int8_t int_fast8_t; -typedef int16_t int_fast16_t; -typedef int32_t int_fast32_t; -typedef int64_t int_fast64_t; -typedef uint8_t uint_fast8_t; -typedef uint16_t uint_fast16_t; -typedef uint32_t uint_fast32_t; -typedef uint64_t uint_fast64_t; - -// 7.18.1.4 Integer types capable of holding object pointers -#ifdef _WIN64 // [ - typedef signed __int64 intptr_t; - typedef unsigned __int64 uintptr_t; -#else // _WIN64 ][ - typedef _W64 signed int intptr_t; - typedef _W64 unsigned int uintptr_t; -#endif // _WIN64 ] - -// 7.18.1.5 Greatest-width integer types -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; - - -// 7.18.2 Limits of specified-width integer types - -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 - -// 7.18.2.1 Limits of exact-width integer types -#define INT8_MIN ((int8_t)_I8_MIN) -#define INT8_MAX _I8_MAX -#define INT16_MIN ((int16_t)_I16_MIN) -#define INT16_MAX _I16_MAX -#define INT32_MIN ((int32_t)_I32_MIN) -#define INT32_MAX _I32_MAX -#define INT64_MIN ((int64_t)_I64_MIN) -#define INT64_MAX _I64_MAX -#define UINT8_MAX _UI8_MAX -#define UINT16_MAX _UI16_MAX -#define UINT32_MAX _UI32_MAX -#define UINT64_MAX _UI64_MAX - -// 7.18.2.2 Limits of minimum-width integer types -#define INT_LEAST8_MIN INT8_MIN -#define INT_LEAST8_MAX INT8_MAX -#define INT_LEAST16_MIN INT16_MIN -#define INT_LEAST16_MAX INT16_MAX -#define INT_LEAST32_MIN INT32_MIN -#define INT_LEAST32_MAX INT32_MAX -#define INT_LEAST64_MIN INT64_MIN -#define INT_LEAST64_MAX INT64_MAX -#define UINT_LEAST8_MAX UINT8_MAX -#define UINT_LEAST16_MAX UINT16_MAX -#define UINT_LEAST32_MAX UINT32_MAX -#define UINT_LEAST64_MAX UINT64_MAX - -// 7.18.2.3 Limits of fastest minimum-width integer types -#define INT_FAST8_MIN INT8_MIN -#define INT_FAST8_MAX INT8_MAX -#define INT_FAST16_MIN INT16_MIN -#define INT_FAST16_MAX INT16_MAX -#define INT_FAST32_MIN INT32_MIN -#define INT_FAST32_MAX INT32_MAX -#define INT_FAST64_MIN INT64_MIN -#define INT_FAST64_MAX INT64_MAX -#define UINT_FAST8_MAX UINT8_MAX -#define UINT_FAST16_MAX UINT16_MAX -#define UINT_FAST32_MAX UINT32_MAX -#define UINT_FAST64_MAX UINT64_MAX - -// 7.18.2.4 Limits of integer types capable of holding object pointers -#ifdef _WIN64 // [ -# define INTPTR_MIN INT64_MIN -# define INTPTR_MAX INT64_MAX -# define UINTPTR_MAX UINT64_MAX -#else // _WIN64 ][ -# define INTPTR_MIN INT32_MIN -# define INTPTR_MAX INT32_MAX -# define UINTPTR_MAX UINT32_MAX -#endif // _WIN64 ] - -// 7.18.2.5 Limits of greatest-width integer types -#define INTMAX_MIN INT64_MIN -#define INTMAX_MAX INT64_MAX -#define UINTMAX_MAX UINT64_MAX - -// 7.18.3 Limits of other integer types - -#ifdef _WIN64 // [ -# define PTRDIFF_MIN _I64_MIN -# define PTRDIFF_MAX _I64_MAX -#else // _WIN64 ][ -# define PTRDIFF_MIN _I32_MIN -# define PTRDIFF_MAX _I32_MAX -#endif // _WIN64 ] - -#define SIG_ATOMIC_MIN INT_MIN -#define SIG_ATOMIC_MAX INT_MAX - -#ifndef SIZE_MAX // [ -# ifdef _WIN64 // [ -# define SIZE_MAX _UI64_MAX -# else // _WIN64 ][ -# define SIZE_MAX _UI32_MAX -# endif // _WIN64 ] -#endif // SIZE_MAX ] - -// WCHAR_MIN and WCHAR_MAX are also defined in -#ifndef WCHAR_MIN // [ -# define WCHAR_MIN 0 -#endif // WCHAR_MIN ] -#ifndef WCHAR_MAX // [ -# define WCHAR_MAX _UI16_MAX -#endif // WCHAR_MAX ] - -#define WINT_MIN 0 -#define WINT_MAX _UI16_MAX - -#endif // __STDC_LIMIT_MACROS ] - - -// 7.18.4 Limits of other integer types - -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 - -// 7.18.4.1 Macros for minimum-width integer constants - -#define INT8_C(val) val##i8 -#define INT16_C(val) val##i16 -#define INT32_C(val) val##i32 -#define INT64_C(val) val##i64 - -#define UINT8_C(val) val##ui8 -#define UINT16_C(val) val##ui16 -#define UINT32_C(val) val##ui32 -#define UINT64_C(val) val##ui64 - -// 7.18.4.2 Macros for greatest-width integer constants -#define INTMAX_C INT64_C -#define UINTMAX_C UINT64_C - -#endif // __STDC_CONSTANT_MACROS ] - - -#endif // _MSC_STDINT_H_ ] diff --git a/src/external/glfw/deps/wayland/fractional-scale-v1.xml b/src/external/glfw/deps/wayland/fractional-scale-v1.xml new file mode 100644 index 000000000..350bfc01e --- /dev/null +++ b/src/external/glfw/deps/wayland/fractional-scale-v1.xml @@ -0,0 +1,102 @@ + + + + Copyright © 2022 Kenny Levinsen + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + This protocol allows a compositor to suggest for surfaces to render at + fractional scales. + + A client can submit scaled content by utilizing wp_viewport. This is done by + creating a wp_viewport object for the surface and setting the destination + rectangle to the surface size before the scale factor is applied. + + The buffer size is calculated by multiplying the surface size by the + intended scale. + + The wl_surface buffer scale should remain set to 1. + + If a surface has a surface-local size of 100 px by 50 px and wishes to + submit buffers with a scale of 1.5, then a buffer of 150px by 75 px should + be used and the wp_viewport destination rectangle should be 100 px by 50 px. + + For toplevel surfaces, the size is rounded halfway away from zero. The + rounding algorithm for subsurface position and size is not defined. + + + + + A global interface for requesting surfaces to use fractional scales. + + + + + Informs the server that the client will not be using this protocol + object anymore. This does not affect any other objects, + wp_fractional_scale_v1 objects included. + + + + + + + + + + Create an add-on object for the the wl_surface to let the compositor + request fractional scales. If the given wl_surface already has a + wp_fractional_scale_v1 object associated, the fractional_scale_exists + protocol error is raised. + + + + + + + + + An additional interface to a wl_surface object which allows the compositor + to inform the client of the preferred scale. + + + + + Destroy the fractional scale object. When this object is destroyed, + preferred_scale events will no longer be sent. + + + + + + Notification of a new preferred scale for this surface that the + compositor suggests that the client should use. + + The sent scale is the numerator of a fraction with a denominator of 120. + + + + + diff --git a/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml b/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml new file mode 100644 index 000000000..9c06cdcba --- /dev/null +++ b/src/external/glfw/deps/wayland/idle-inhibit-unstable-v1.xml @@ -0,0 +1,83 @@ + + + + + Copyright © 2015 Samsung Electronics Co., Ltd + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + This interface permits inhibiting the idle behavior such as screen + blanking, locking, and screensaving. The client binds the idle manager + globally, then creates idle-inhibitor objects for each surface. + + Warning! The protocol described in this file is experimental and + backward incompatible changes may be made. Backward compatible changes + may be added together with the corresponding interface version bump. + Backward incompatible changes are done by bumping the version number in + the protocol and interface names and resetting the interface version. + Once the protocol is to be declared stable, the 'z' prefix and the + version number in the protocol and interface names are removed and the + interface version number is reset. + + + + + Destroy the inhibit manager. + + + + + + Create a new inhibitor object associated with the given surface. + + + + + + + + + + An idle inhibitor prevents the output that the associated surface is + visible on from being set to a state where it is not visually usable due + to lack of user interaction (e.g. blanked, dimmed, locked, set to power + save, etc.) Any screensaver processes are also blocked from displaying. + + If the surface is destroyed, unmapped, becomes occluded, loses + visibility, or otherwise becomes not visually relevant for the user, the + idle inhibitor will not be honored by the compositor; if the surface + subsequently regains visibility the inhibitor takes effect once again. + Likewise, the inhibitor isn't honored if the system was already idled at + the time the inhibitor was established, although if the system later + de-idles and re-idles the inhibitor will take effect. + + + + + Remove the inhibitor effect from the associated wl_surface. + + + + + diff --git a/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml b/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml new file mode 100644 index 000000000..efd64b660 --- /dev/null +++ b/src/external/glfw/deps/wayland/pointer-constraints-unstable-v1.xml @@ -0,0 +1,339 @@ + + + + + Copyright © 2014 Jonas Ådahl + Copyright © 2015 Red Hat Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + This protocol specifies a set of interfaces used for adding constraints to + the motion of a pointer. Possible constraints include confining pointer + motions to a given region, or locking it to its current position. + + In order to constrain the pointer, a client must first bind the global + interface "wp_pointer_constraints" which, if a compositor supports pointer + constraints, is exposed by the registry. Using the bound global object, the + client uses the request that corresponds to the type of constraint it wants + to make. See wp_pointer_constraints for more details. + + Warning! The protocol described in this file is experimental and backward + incompatible changes may be made. Backward compatible changes may be added + together with the corresponding interface version bump. Backward + incompatible changes are done by bumping the version number in the protocol + and interface names and resetting the interface version. Once the protocol + is to be declared stable, the 'z' prefix and the version number in the + protocol and interface names are removed and the interface version number is + reset. + + + + + The global interface exposing pointer constraining functionality. It + exposes two requests: lock_pointer for locking the pointer to its + position, and confine_pointer for locking the pointer to a region. + + The lock_pointer and confine_pointer requests create the objects + wp_locked_pointer and wp_confined_pointer respectively, and the client can + use these objects to interact with the lock. + + For any surface, only one lock or confinement may be active across all + wl_pointer objects of the same seat. If a lock or confinement is requested + when another lock or confinement is active or requested on the same surface + and with any of the wl_pointer objects of the same seat, an + 'already_constrained' error will be raised. + + + + + These errors can be emitted in response to wp_pointer_constraints + requests. + + + + + + + These values represent different lifetime semantics. They are passed + as arguments to the factory requests to specify how the constraint + lifetimes should be managed. + + + + A oneshot pointer constraint will never reactivate once it has been + deactivated. See the corresponding deactivation event + (wp_locked_pointer.unlocked and wp_confined_pointer.unconfined) for + details. + + + + + A persistent pointer constraint may again reactivate once it has + been deactivated. See the corresponding deactivation event + (wp_locked_pointer.unlocked and wp_confined_pointer.unconfined) for + details. + + + + + + + Used by the client to notify the server that it will no longer use this + pointer constraints object. + + + + + + The lock_pointer request lets the client request to disable movements of + the virtual pointer (i.e. the cursor), effectively locking the pointer + to a position. This request may not take effect immediately; in the + future, when the compositor deems implementation-specific constraints + are satisfied, the pointer lock will be activated and the compositor + sends a locked event. + + The protocol provides no guarantee that the constraints are ever + satisfied, and does not require the compositor to send an error if the + constraints cannot ever be satisfied. It is thus possible to request a + lock that will never activate. + + There may not be another pointer constraint of any kind requested or + active on the surface for any of the wl_pointer objects of the seat of + the passed pointer when requesting a lock. If there is, an error will be + raised. See general pointer lock documentation for more details. + + The intersection of the region passed with this request and the input + region of the surface is used to determine where the pointer must be + in order for the lock to activate. It is up to the compositor whether to + warp the pointer or require some kind of user interaction for the lock + to activate. If the region is null the surface input region is used. + + A surface may receive pointer focus without the lock being activated. + + The request creates a new object wp_locked_pointer which is used to + interact with the lock as well as receive updates about its state. See + the the description of wp_locked_pointer for further information. + + Note that while a pointer is locked, the wl_pointer objects of the + corresponding seat will not emit any wl_pointer.motion events, but + relative motion events will still be emitted via wp_relative_pointer + objects of the same seat. wl_pointer.axis and wl_pointer.button events + are unaffected. + + + + + + + + + + + The confine_pointer request lets the client request to confine the + pointer cursor to a given region. This request may not take effect + immediately; in the future, when the compositor deems implementation- + specific constraints are satisfied, the pointer confinement will be + activated and the compositor sends a confined event. + + The intersection of the region passed with this request and the input + region of the surface is used to determine where the pointer must be + in order for the confinement to activate. It is up to the compositor + whether to warp the pointer or require some kind of user interaction for + the confinement to activate. If the region is null the surface input + region is used. + + The request will create a new object wp_confined_pointer which is used + to interact with the confinement as well as receive updates about its + state. See the the description of wp_confined_pointer for further + information. + + + + + + + + + + + + The wp_locked_pointer interface represents a locked pointer state. + + While the lock of this object is active, the wl_pointer objects of the + associated seat will not emit any wl_pointer.motion events. + + This object will send the event 'locked' when the lock is activated. + Whenever the lock is activated, it is guaranteed that the locked surface + will already have received pointer focus and that the pointer will be + within the region passed to the request creating this object. + + To unlock the pointer, send the destroy request. This will also destroy + the wp_locked_pointer object. + + If the compositor decides to unlock the pointer the unlocked event is + sent. See wp_locked_pointer.unlock for details. + + When unlocking, the compositor may warp the cursor position to the set + cursor position hint. If it does, it will not result in any relative + motion events emitted via wp_relative_pointer. + + If the surface the lock was requested on is destroyed and the lock is not + yet activated, the wp_locked_pointer object is now defunct and must be + destroyed. + + + + + Destroy the locked pointer object. If applicable, the compositor will + unlock the pointer. + + + + + + Set the cursor position hint relative to the top left corner of the + surface. + + If the client is drawing its own cursor, it should update the position + hint to the position of its own cursor. A compositor may use this + information to warp the pointer upon unlock in order to avoid pointer + jumps. + + The cursor position hint is double buffered. The new hint will only take + effect when the associated surface gets it pending state applied. See + wl_surface.commit for details. + + + + + + + + Set a new region used to lock the pointer. + + The new lock region is double-buffered. The new lock region will + only take effect when the associated surface gets its pending state + applied. See wl_surface.commit for details. + + For details about the lock region, see wp_locked_pointer. + + + + + + + Notification that the pointer lock of the seat's pointer is activated. + + + + + + Notification that the pointer lock of the seat's pointer is no longer + active. If this is a oneshot pointer lock (see + wp_pointer_constraints.lifetime) this object is now defunct and should + be destroyed. If this is a persistent pointer lock (see + wp_pointer_constraints.lifetime) this pointer lock may again + reactivate in the future. + + + + + + + The wp_confined_pointer interface represents a confined pointer state. + + This object will send the event 'confined' when the confinement is + activated. Whenever the confinement is activated, it is guaranteed that + the surface the pointer is confined to will already have received pointer + focus and that the pointer will be within the region passed to the request + creating this object. It is up to the compositor to decide whether this + requires some user interaction and if the pointer will warp to within the + passed region if outside. + + To unconfine the pointer, send the destroy request. This will also destroy + the wp_confined_pointer object. + + If the compositor decides to unconfine the pointer the unconfined event is + sent. The wp_confined_pointer object is at this point defunct and should + be destroyed. + + + + + Destroy the confined pointer object. If applicable, the compositor will + unconfine the pointer. + + + + + + Set a new region used to confine the pointer. + + The new confine region is double-buffered. The new confine region will + only take effect when the associated surface gets its pending state + applied. See wl_surface.commit for details. + + If the confinement is active when the new confinement region is applied + and the pointer ends up outside of newly applied region, the pointer may + warped to a position within the new confinement region. If warped, a + wl_pointer.motion event will be emitted, but no + wp_relative_pointer.relative_motion event. + + The compositor may also, instead of using the new region, unconfine the + pointer. + + For details about the confine region, see wp_confined_pointer. + + + + + + + Notification that the pointer confinement of the seat's pointer is + activated. + + + + + + Notification that the pointer confinement of the seat's pointer is no + longer active. If this is a oneshot pointer confinement (see + wp_pointer_constraints.lifetime) this object is now defunct and should + be destroyed. If this is a persistent pointer confinement (see + wp_pointer_constraints.lifetime) this pointer confinement may again + reactivate in the future. + + + + + diff --git a/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml b/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml new file mode 100644 index 000000000..ca6f81d12 --- /dev/null +++ b/src/external/glfw/deps/wayland/relative-pointer-unstable-v1.xml @@ -0,0 +1,136 @@ + + + + + Copyright © 2014 Jonas Ådahl + Copyright © 2015 Red Hat Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + This protocol specifies a set of interfaces used for making clients able to + receive relative pointer events not obstructed by barriers (such as the + monitor edge or other pointer barriers). + + To start receiving relative pointer events, a client must first bind the + global interface "wp_relative_pointer_manager" which, if a compositor + supports relative pointer motion events, is exposed by the registry. After + having created the relative pointer manager proxy object, the client uses + it to create the actual relative pointer object using the + "get_relative_pointer" request given a wl_pointer. The relative pointer + motion events will then, when applicable, be transmitted via the proxy of + the newly created relative pointer object. See the documentation of the + relative pointer interface for more details. + + Warning! The protocol described in this file is experimental and backward + incompatible changes may be made. Backward compatible changes may be added + together with the corresponding interface version bump. Backward + incompatible changes are done by bumping the version number in the protocol + and interface names and resetting the interface version. Once the protocol + is to be declared stable, the 'z' prefix and the version number in the + protocol and interface names are removed and the interface version number is + reset. + + + + + A global interface used for getting the relative pointer object for a + given pointer. + + + + + Used by the client to notify the server that it will no longer use this + relative pointer manager object. + + + + + + Create a relative pointer interface given a wl_pointer object. See the + wp_relative_pointer interface for more details. + + + + + + + + + A wp_relative_pointer object is an extension to the wl_pointer interface + used for emitting relative pointer events. It shares the same focus as + wl_pointer objects of the same seat and will only emit events when it has + focus. + + + + + + + + + Relative x/y pointer motion from the pointer of the seat associated with + this object. + + A relative motion is in the same dimension as regular wl_pointer motion + events, except they do not represent an absolute position. For example, + moving a pointer from (x, y) to (x', y') would have the equivalent + relative motion (x' - x, y' - y). If a pointer motion caused the + absolute pointer position to be clipped by for example the edge of the + monitor, the relative motion is unaffected by the clipping and will + represent the unclipped motion. + + This event also contains non-accelerated motion deltas. The + non-accelerated delta is, when applicable, the regular pointer motion + delta as it was before having applied motion acceleration and other + transformations such as normalization. + + Note that the non-accelerated delta does not represent 'raw' events as + they were read from some device. Pointer motion acceleration is device- + and configuration-specific and non-accelerated deltas and accelerated + deltas may have the same value on some devices. + + Relative motions are not coupled to wl_pointer.motion events, and can be + sent in combination with such events, but also independently. There may + also be scenarios where wl_pointer.motion is sent, but there is no + relative motion. The order of an absolute and relative motion event + originating from the same physical motion is not guaranteed. + + If the client needs button events or focus state, it can receive them + from a wl_pointer object of the same seat that the wp_relative_pointer + object is associated with. + + + + + + + + + + + diff --git a/src/external/glfw/deps/wayland/viewporter.xml b/src/external/glfw/deps/wayland/viewporter.xml new file mode 100644 index 000000000..d1048d1f3 --- /dev/null +++ b/src/external/glfw/deps/wayland/viewporter.xml @@ -0,0 +1,180 @@ + + + + + Copyright © 2013-2016 Collabora, Ltd. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + The global interface exposing surface cropping and scaling + capabilities is used to instantiate an interface extension for a + wl_surface object. This extended interface will then allow + cropping and scaling the surface contents, effectively + disconnecting the direct relationship between the buffer and the + surface size. + + + + + Informs the server that the client will not be using this + protocol object anymore. This does not affect any other objects, + wp_viewport objects included. + + + + + + + + + + Instantiate an interface extension for the given wl_surface to + crop and scale its content. If the given wl_surface already has + a wp_viewport object associated, the viewport_exists + protocol error is raised. + + + + + + + + + An additional interface to a wl_surface object, which allows the + client to specify the cropping and scaling of the surface + contents. + + This interface works with two concepts: the source rectangle (src_x, + src_y, src_width, src_height), and the destination size (dst_width, + dst_height). The contents of the source rectangle are scaled to the + destination size, and content outside the source rectangle is ignored. + This state is double-buffered, and is applied on the next + wl_surface.commit. + + The two parts of crop and scale state are independent: the source + rectangle, and the destination size. Initially both are unset, that + is, no scaling is applied. The whole of the current wl_buffer is + used as the source, and the surface size is as defined in + wl_surface.attach. + + If the destination size is set, it causes the surface size to become + dst_width, dst_height. The source (rectangle) is scaled to exactly + this size. This overrides whatever the attached wl_buffer size is, + unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface + has no content and therefore no size. Otherwise, the size is always + at least 1x1 in surface local coordinates. + + If the source rectangle is set, it defines what area of the wl_buffer is + taken as the source. If the source rectangle is set and the destination + size is not set, then src_width and src_height must be integers, and the + surface size becomes the source rectangle size. This results in cropping + without scaling. If src_width or src_height are not integers and + destination size is not set, the bad_size protocol error is raised when + the surface state is applied. + + The coordinate transformations from buffer pixel coordinates up to + the surface-local coordinates happen in the following order: + 1. buffer_transform (wl_surface.set_buffer_transform) + 2. buffer_scale (wl_surface.set_buffer_scale) + 3. crop and scale (wp_viewport.set*) + This means, that the source rectangle coordinates of crop and scale + are given in the coordinates after the buffer transform and scale, + i.e. in the coordinates that would be the surface-local coordinates + if the crop and scale was not applied. + + If src_x or src_y are negative, the bad_value protocol error is raised. + Otherwise, if the source rectangle is partially or completely outside of + the non-NULL wl_buffer, then the out_of_buffer protocol error is raised + when the surface state is applied. A NULL wl_buffer does not raise the + out_of_buffer error. + + If the wl_surface associated with the wp_viewport is destroyed, + all wp_viewport requests except 'destroy' raise the protocol error + no_surface. + + If the wp_viewport object is destroyed, the crop and scale + state is removed from the wl_surface. The change will be applied + on the next wl_surface.commit. + + + + + The associated wl_surface's crop and scale state is removed. + The change is applied on the next wl_surface.commit. + + + + + + + + + + + + + Set the source rectangle of the associated wl_surface. See + wp_viewport for the description, and relation to the wl_buffer + size. + + If all of x, y, width and height are -1.0, the source rectangle is + unset instead. Any other set of values where width or height are zero + or negative, or x or y are negative, raise the bad_value protocol + error. + + The crop and scale state is double-buffered state, and will be + applied on the next wl_surface.commit. + + + + + + + + + + Set the destination size of the associated wl_surface. See + wp_viewport for the description, and relation to the wl_buffer + size. + + If width is -1 and height is -1, the destination size is unset + instead. Any other pair of values for width and height that + contains zero or negative values raises the bad_value protocol + error. + + The crop and scale state is double-buffered state, and will be + applied on the next wl_surface.commit. + + + + + + + diff --git a/src/external/glfw/deps/wayland/wayland.xml b/src/external/glfw/deps/wayland/wayland.xml new file mode 100644 index 000000000..10e039d6e --- /dev/null +++ b/src/external/glfw/deps/wayland/wayland.xml @@ -0,0 +1,3151 @@ + + + + + Copyright © 2008-2011 Kristian Høgsberg + Copyright © 2010-2011 Intel Corporation + Copyright © 2012-2013 Collabora, Ltd. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice (including the + next paragraph) shall be included in all copies or substantial + portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + + The core global object. This is a special singleton object. It + is used for internal Wayland protocol features. + + + + + The sync request asks the server to emit the 'done' event + on the returned wl_callback object. Since requests are + handled in-order and events are delivered in-order, this can + be used as a barrier to ensure all previous requests and the + resulting events have been handled. + + The object returned by this request will be destroyed by the + compositor after the callback is fired and as such the client must not + attempt to use it after that point. + + The callback_data passed in the callback is the event serial. + + + + + + + This request creates a registry object that allows the client + to list and bind the global objects available from the + compositor. + + It should be noted that the server side resources consumed in + response to a get_registry request can only be released when the + client disconnects, not when the client side proxy is destroyed. + Therefore, clients should invoke get_registry as infrequently as + possible to avoid wasting memory. + + + + + + + The error event is sent out when a fatal (non-recoverable) + error has occurred. The object_id argument is the object + where the error occurred, most often in response to a request + to that object. The code identifies the error and is defined + by the object interface. As such, each interface defines its + own set of error codes. The message is a brief description + of the error, for (debugging) convenience. + + + + + + + + + These errors are global and can be emitted in response to any + server request. + + + + + + + + + + This event is used internally by the object ID management + logic. When a client deletes an object that it had created, + the server will send this event to acknowledge that it has + seen the delete request. When the client receives this event, + it will know that it can safely reuse the object ID. + + + + + + + + The singleton global registry object. The server has a number of + global objects that are available to all clients. These objects + typically represent an actual object in the server (for example, + an input device) or they are singleton objects that provide + extension functionality. + + When a client creates a registry object, the registry object + will emit a global event for each global currently in the + registry. Globals come and go as a result of device or + monitor hotplugs, reconfiguration or other events, and the + registry will send out global and global_remove events to + keep the client up to date with the changes. To mark the end + of the initial burst of events, the client can use the + wl_display.sync request immediately after calling + wl_display.get_registry. + + A client can bind to a global object by using the bind + request. This creates a client-side handle that lets the object + emit events to the client and lets the client invoke requests on + the object. + + + + + Binds a new, client-created object to the server using the + specified name as the identifier. + + + + + + + + Notify the client of global objects. + + The event notifies the client that a global object with + the given name is now available, and it implements the + given version of the given interface. + + + + + + + + + Notify the client of removed global objects. + + This event notifies the client that the global identified + by name is no longer available. If the client bound to + the global using the bind request, the client should now + destroy that object. + + The object remains valid and requests to the object will be + ignored until the client destroys it, to avoid races between + the global going away and a client sending a request to it. + + + + + + + + Clients can handle the 'done' event to get notified when + the related request is done. + + Note, because wl_callback objects are created from multiple independent + factory interfaces, the wl_callback interface is frozen at version 1. + + + + + Notify the client when the related request is done. + + + + + + + + A compositor. This object is a singleton global. The + compositor is in charge of combining the contents of multiple + surfaces into one displayable output. + + + + + Ask the compositor to create a new surface. + + + + + + + Ask the compositor to create a new region. + + + + + + + + The wl_shm_pool object encapsulates a piece of memory shared + between the compositor and client. Through the wl_shm_pool + object, the client can allocate shared memory wl_buffer objects. + All objects created through the same pool share the same + underlying mapped memory. Reusing the mapped memory avoids the + setup/teardown overhead and is useful when interactively resizing + a surface or for many small buffers. + + + + + Create a wl_buffer object from the pool. + + The buffer is created offset bytes into the pool and has + width and height as specified. The stride argument specifies + the number of bytes from the beginning of one row to the beginning + of the next. The format is the pixel format of the buffer and + must be one of those advertised through the wl_shm.format event. + + A buffer will keep a reference to the pool it was created from + so it is valid to destroy the pool immediately after creating + a buffer from it. + + + + + + + + + + + + Destroy the shared memory pool. + + The mmapped memory will be released when all + buffers that have been created from this pool + are gone. + + + + + + This request will cause the server to remap the backing memory + for the pool from the file descriptor passed when the pool was + created, but using the new size. This request can only be + used to make the pool bigger. + + This request only changes the amount of bytes that are mmapped + by the server and does not touch the file corresponding to the + file descriptor passed at creation time. It is the client's + responsibility to ensure that the file is at least as big as + the new pool size. + + + + + + + + A singleton global object that provides support for shared + memory. + + Clients can create wl_shm_pool objects using the create_pool + request. + + On binding the wl_shm object one or more format events + are emitted to inform clients about the valid pixel formats + that can be used for buffers. + + + + + These errors can be emitted in response to wl_shm requests. + + + + + + + + + This describes the memory layout of an individual pixel. + + All renderers should support argb8888 and xrgb8888 but any other + formats are optional and may not be supported by the particular + renderer in use. + + The drm format codes match the macros defined in drm_fourcc.h, except + argb8888 and xrgb8888. The formats actually supported by the compositor + will be reported by the format event. + + For all wl_shm formats and unless specified in another protocol + extension, pre-multiplied alpha is used for pixel values. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create a new wl_shm_pool object. + + The pool can be used to create shared memory based buffer + objects. The server will mmap size bytes of the passed file + descriptor, to use as backing memory for the pool. + + + + + + + + + Informs the client about a valid pixel format that + can be used for buffers. Known formats include + argb8888 and xrgb8888. + + + + + + + + A buffer provides the content for a wl_surface. Buffers are + created through factory interfaces such as wl_shm, wp_linux_buffer_params + (from the linux-dmabuf protocol extension) or similar. It has a width and + a height and can be attached to a wl_surface, but the mechanism by which a + client provides and updates the contents is defined by the buffer factory + interface. + + If the buffer uses a format that has an alpha channel, the alpha channel + is assumed to be premultiplied in the color channels unless otherwise + specified. + + Note, because wl_buffer objects are created from multiple independent + factory interfaces, the wl_buffer interface is frozen at version 1. + + + + + Destroy a buffer. If and how you need to release the backing + storage is defined by the buffer factory interface. + + For possible side-effects to a surface, see wl_surface.attach. + + + + + + Sent when this wl_buffer is no longer used by the compositor. + The client is now free to reuse or destroy this buffer and its + backing storage. + + If a client receives a release event before the frame callback + requested in the same wl_surface.commit that attaches this + wl_buffer to a surface, then the client is immediately free to + reuse the buffer and its backing storage, and does not need a + second buffer for the next surface content update. Typically + this is possible, when the compositor maintains a copy of the + wl_surface contents, e.g. as a GL texture. This is an important + optimization for GL(ES) compositors with wl_shm clients. + + + + + + + A wl_data_offer represents a piece of data offered for transfer + by another client (the source client). It is used by the + copy-and-paste and drag-and-drop mechanisms. The offer + describes the different mime types that the data can be + converted to and provides the mechanism for transferring the + data directly from the source client. + + + + + + + + + + + + Indicate that the client can accept the given mime type, or + NULL for not accepted. + + For objects of version 2 or older, this request is used by the + client to give feedback whether the client can receive the given + mime type, or NULL if none is accepted; the feedback does not + determine whether the drag-and-drop operation succeeds or not. + + For objects of version 3 or newer, this request determines the + final result of the drag-and-drop operation. If the end result + is that no mime types were accepted, the drag-and-drop operation + will be cancelled and the corresponding drag source will receive + wl_data_source.cancelled. Clients may still use this event in + conjunction with wl_data_source.action for feedback. + + + + + + + + To transfer the offered data, the client issues this request + and indicates the mime type it wants to receive. The transfer + happens through the passed file descriptor (typically created + with the pipe system call). The source client writes the data + in the mime type representation requested and then closes the + file descriptor. + + The receiving client reads from the read end of the pipe until + EOF and then closes its end, at which point the transfer is + complete. + + This request may happen multiple times for different mime types, + both before and after wl_data_device.drop. Drag-and-drop destination + clients may preemptively fetch data or examine it more closely to + determine acceptance. + + + + + + + + Destroy the data offer. + + + + + + Sent immediately after creating the wl_data_offer object. One + event per offered mime type. + + + + + + + + + Notifies the compositor that the drag destination successfully + finished the drag-and-drop operation. + + Upon receiving this request, the compositor will emit + wl_data_source.dnd_finished on the drag source client. + + It is a client error to perform other requests than + wl_data_offer.destroy after this one. It is also an error to perform + this request after a NULL mime type has been set in + wl_data_offer.accept or no action was received through + wl_data_offer.action. + + If wl_data_offer.finish request is received for a non drag and drop + operation, the invalid_finish protocol error is raised. + + + + + + Sets the actions that the destination side client supports for + this operation. This request may trigger the emission of + wl_data_source.action and wl_data_offer.action events if the compositor + needs to change the selected action. + + This request can be called multiple times throughout the + drag-and-drop operation, typically in response to wl_data_device.enter + or wl_data_device.motion events. + + This request determines the final result of the drag-and-drop + operation. If the end result is that no action is accepted, + the drag source will receive wl_data_source.cancelled. + + The dnd_actions argument must contain only values expressed in the + wl_data_device_manager.dnd_actions enum, and the preferred_action + argument must only contain one of those values set, otherwise it + will result in a protocol error. + + While managing an "ask" action, the destination drag-and-drop client + may perform further wl_data_offer.receive requests, and is expected + to perform one last wl_data_offer.set_actions request with a preferred + action other than "ask" (and optionally wl_data_offer.accept) before + requesting wl_data_offer.finish, in order to convey the action selected + by the user. If the preferred action is not in the + wl_data_offer.source_actions mask, an error will be raised. + + If the "ask" action is dismissed (e.g. user cancellation), the client + is expected to perform wl_data_offer.destroy right away. + + This request can only be made on drag-and-drop offers, a protocol error + will be raised otherwise. + + + + + + + + This event indicates the actions offered by the data source. It + will be sent immediately after creating the wl_data_offer object, + or anytime the source side changes its offered actions through + wl_data_source.set_actions. + + + + + + + This event indicates the action selected by the compositor after + matching the source/destination side actions. Only one action (or + none) will be offered here. + + This event can be emitted multiple times during the drag-and-drop + operation in response to destination side action changes through + wl_data_offer.set_actions. + + This event will no longer be emitted after wl_data_device.drop + happened on the drag-and-drop destination, the client must + honor the last action received, or the last preferred one set + through wl_data_offer.set_actions when handling an "ask" action. + + Compositors may also change the selected action on the fly, mainly + in response to keyboard modifier changes during the drag-and-drop + operation. + + The most recent action received is always the valid one. Prior to + receiving wl_data_device.drop, the chosen action may change (e.g. + due to keyboard modifiers being pressed). At the time of receiving + wl_data_device.drop the drag-and-drop destination must honor the + last action received. + + Action changes may still happen after wl_data_device.drop, + especially on "ask" actions, where the drag-and-drop destination + may choose another action afterwards. Action changes happening + at this stage are always the result of inter-client negotiation, the + compositor shall no longer be able to induce a different action. + + Upon "ask" actions, it is expected that the drag-and-drop destination + may potentially choose a different action and/or mime type, + based on wl_data_offer.source_actions and finally chosen by the + user (e.g. popping up a menu with the available options). The + final wl_data_offer.set_actions and wl_data_offer.accept requests + must happen before the call to wl_data_offer.finish. + + + + + + + + The wl_data_source object is the source side of a wl_data_offer. + It is created by the source client in a data transfer and + provides a way to describe the offered data and a way to respond + to requests to transfer the data. + + + + + + + + + + This request adds a mime type to the set of mime types + advertised to targets. Can be called several times to offer + multiple types. + + + + + + + Destroy the data source. + + + + + + Sent when a target accepts pointer_focus or motion events. If + a target does not accept any of the offered types, type is NULL. + + Used for feedback during drag-and-drop. + + + + + + + Request for data from the client. Send the data as the + specified mime type over the passed file descriptor, then + close it. + + + + + + + + This data source is no longer valid. There are several reasons why + this could happen: + + - The data source has been replaced by another data source. + - The drag-and-drop operation was performed, but the drop destination + did not accept any of the mime types offered through + wl_data_source.target. + - The drag-and-drop operation was performed, but the drop destination + did not select any of the actions present in the mask offered through + wl_data_source.action. + - The drag-and-drop operation was performed but didn't happen over a + surface. + - The compositor cancelled the drag-and-drop operation (e.g. compositor + dependent timeouts to avoid stale drag-and-drop transfers). + + The client should clean up and destroy this data source. + + For objects of version 2 or older, wl_data_source.cancelled will + only be emitted if the data source was replaced by another data + source. + + + + + + + + Sets the actions that the source side client supports for this + operation. This request may trigger wl_data_source.action and + wl_data_offer.action events if the compositor needs to change the + selected action. + + The dnd_actions argument must contain only values expressed in the + wl_data_device_manager.dnd_actions enum, otherwise it will result + in a protocol error. + + This request must be made once only, and can only be made on sources + used in drag-and-drop, so it must be performed before + wl_data_device.start_drag. Attempting to use the source other than + for drag-and-drop will raise a protocol error. + + + + + + + The user performed the drop action. This event does not indicate + acceptance, wl_data_source.cancelled may still be emitted afterwards + if the drop destination does not accept any mime type. + + However, this event might however not be received if the compositor + cancelled the drag-and-drop operation before this event could happen. + + Note that the data_source may still be used in the future and should + not be destroyed here. + + + + + + The drop destination finished interoperating with this data + source, so the client is now free to destroy this data source and + free all associated data. + + If the action used to perform the operation was "move", the + source can now delete the transferred data. + + + + + + This event indicates the action selected by the compositor after + matching the source/destination side actions. Only one action (or + none) will be offered here. + + This event can be emitted multiple times during the drag-and-drop + operation, mainly in response to destination side changes through + wl_data_offer.set_actions, and as the data device enters/leaves + surfaces. + + It is only possible to receive this event after + wl_data_source.dnd_drop_performed if the drag-and-drop operation + ended in an "ask" action, in which case the final wl_data_source.action + event will happen immediately before wl_data_source.dnd_finished. + + Compositors may also change the selected action on the fly, mainly + in response to keyboard modifier changes during the drag-and-drop + operation. + + The most recent action received is always the valid one. The chosen + action may change alongside negotiation (e.g. an "ask" action can turn + into a "move" operation), so the effects of the final action must + always be applied in wl_data_offer.dnd_finished. + + Clients can trigger cursor surface changes from this point, so + they reflect the current action. + + + + + + + + There is one wl_data_device per seat which can be obtained + from the global wl_data_device_manager singleton. + + A wl_data_device provides access to inter-client data transfer + mechanisms such as copy-and-paste and drag-and-drop. + + + + + + + + + This request asks the compositor to start a drag-and-drop + operation on behalf of the client. + + The source argument is the data source that provides the data + for the eventual data transfer. If source is NULL, enter, leave + and motion events are sent only to the client that initiated the + drag and the client is expected to handle the data passing + internally. If source is destroyed, the drag-and-drop session will be + cancelled. + + The origin surface is the surface where the drag originates and + the client must have an active implicit grab that matches the + serial. + + The icon surface is an optional (can be NULL) surface that + provides an icon to be moved around with the cursor. Initially, + the top-left corner of the icon surface is placed at the cursor + hotspot, but subsequent wl_surface.attach request can move the + relative position. Attach requests must be confirmed with + wl_surface.commit as usual. The icon surface is given the role of + a drag-and-drop icon. If the icon surface already has another role, + it raises a protocol error. + + The input region is ignored for wl_surfaces with the role of a + drag-and-drop icon. + + + + + + + + + + This request asks the compositor to set the selection + to the data from the source on behalf of the client. + + To unset the selection, set the source to NULL. + + + + + + + + The data_offer event introduces a new wl_data_offer object, + which will subsequently be used in either the + data_device.enter event (for drag-and-drop) or the + data_device.selection event (for selections). Immediately + following the data_device.data_offer event, the new data_offer + object will send out data_offer.offer events to describe the + mime types it offers. + + + + + + + This event is sent when an active drag-and-drop pointer enters + a surface owned by the client. The position of the pointer at + enter time is provided by the x and y arguments, in surface-local + coordinates. + + + + + + + + + + + This event is sent when the drag-and-drop pointer leaves the + surface and the session ends. The client must destroy the + wl_data_offer introduced at enter time at this point. + + + + + + This event is sent when the drag-and-drop pointer moves within + the currently focused surface. The new position of the pointer + is provided by the x and y arguments, in surface-local + coordinates. + + + + + + + + + The event is sent when a drag-and-drop operation is ended + because the implicit grab is removed. + + The drag-and-drop destination is expected to honor the last action + received through wl_data_offer.action, if the resulting action is + "copy" or "move", the destination can still perform + wl_data_offer.receive requests, and is expected to end all + transfers with a wl_data_offer.finish request. + + If the resulting action is "ask", the action will not be considered + final. The drag-and-drop destination is expected to perform one last + wl_data_offer.set_actions request, or wl_data_offer.destroy in order + to cancel the operation. + + + + + + The selection event is sent out to notify the client of a new + wl_data_offer for the selection for this device. The + data_device.data_offer and the data_offer.offer events are + sent out immediately before this event to introduce the data + offer object. The selection event is sent to a client + immediately before receiving keyboard focus and when a new + selection is set while the client has keyboard focus. The + data_offer is valid until a new data_offer or NULL is received + or until the client loses keyboard focus. Switching surface with + keyboard focus within the same client doesn't mean a new selection + will be sent. The client must destroy the previous selection + data_offer, if any, upon receiving this event. + + + + + + + + + This request destroys the data device. + + + + + + + The wl_data_device_manager is a singleton global object that + provides access to inter-client data transfer mechanisms such as + copy-and-paste and drag-and-drop. These mechanisms are tied to + a wl_seat and this interface lets a client get a wl_data_device + corresponding to a wl_seat. + + Depending on the version bound, the objects created from the bound + wl_data_device_manager object will have different requirements for + functioning properly. See wl_data_source.set_actions, + wl_data_offer.accept and wl_data_offer.finish for details. + + + + + Create a new data source. + + + + + + + Create a new data device for a given seat. + + + + + + + + + + This is a bitmask of the available/preferred actions in a + drag-and-drop operation. + + In the compositor, the selected action is a result of matching the + actions offered by the source and destination sides. "action" events + with a "none" action will be sent to both source and destination if + there is no match. All further checks will effectively happen on + (source actions ∩ destination actions). + + In addition, compositors may also pick different actions in + reaction to key modifiers being pressed. One common design that + is used in major toolkits (and the behavior recommended for + compositors) is: + + - If no modifiers are pressed, the first match (in bit order) + will be used. + - Pressing Shift selects "move", if enabled in the mask. + - Pressing Control selects "copy", if enabled in the mask. + + Behavior beyond that is considered implementation-dependent. + Compositors may for example bind other modifiers (like Alt/Meta) + or drags initiated with other buttons than BTN_LEFT to specific + actions (e.g. "ask"). + + + + + + + + + + + This interface is implemented by servers that provide + desktop-style user interfaces. + + It allows clients to associate a wl_shell_surface with + a basic surface. + + Note! This protocol is deprecated and not intended for production use. + For desktop-style user interfaces, use xdg_shell. Compositors and clients + should not implement this interface. + + + + + + + + + Create a shell surface for an existing surface. This gives + the wl_surface the role of a shell surface. If the wl_surface + already has another role, it raises a protocol error. + + Only one shell surface can be associated with a given surface. + + + + + + + + + An interface that may be implemented by a wl_surface, for + implementations that provide a desktop-style user interface. + + It provides requests to treat surfaces like toplevel, fullscreen + or popup windows, move, resize or maximize them, associate + metadata like title and class, etc. + + On the server side the object is automatically destroyed when + the related wl_surface is destroyed. On the client side, + wl_shell_surface_destroy() must be called before destroying + the wl_surface object. + + + + + A client must respond to a ping event with a pong request or + the client may be deemed unresponsive. + + + + + + + Start a pointer-driven move of the surface. + + This request must be used in response to a button press event. + The server may ignore move requests depending on the state of + the surface (e.g. fullscreen or maximized). + + + + + + + + These values are used to indicate which edge of a surface + is being dragged in a resize operation. The server may + use this information to adapt its behavior, e.g. choose + an appropriate cursor image. + + + + + + + + + + + + + + + Start a pointer-driven resizing of the surface. + + This request must be used in response to a button press event. + The server may ignore resize requests depending on the state of + the surface (e.g. fullscreen or maximized). + + + + + + + + + Map the surface as a toplevel surface. + + A toplevel surface is not fullscreen, maximized or transient. + + + + + + These flags specify details of the expected behaviour + of transient surfaces. Used in the set_transient request. + + + + + + + Map the surface relative to an existing surface. + + The x and y arguments specify the location of the upper left + corner of the surface relative to the upper left corner of the + parent surface, in surface-local coordinates. + + The flags argument controls details of the transient behaviour. + + + + + + + + + + Hints to indicate to the compositor how to deal with a conflict + between the dimensions of the surface and the dimensions of the + output. The compositor is free to ignore this parameter. + + + + + + + + + + Map the surface as a fullscreen surface. + + If an output parameter is given then the surface will be made + fullscreen on that output. If the client does not specify the + output then the compositor will apply its policy - usually + choosing the output on which the surface has the biggest surface + area. + + The client may specify a method to resolve a size conflict + between the output size and the surface size - this is provided + through the method parameter. + + The framerate parameter is used only when the method is set + to "driver", to indicate the preferred framerate. A value of 0 + indicates that the client does not care about framerate. The + framerate is specified in mHz, that is framerate of 60000 is 60Hz. + + A method of "scale" or "driver" implies a scaling operation of + the surface, either via a direct scaling operation or a change of + the output mode. This will override any kind of output scaling, so + that mapping a surface with a buffer size equal to the mode can + fill the screen independent of buffer_scale. + + A method of "fill" means we don't scale up the buffer, however + any output scale is applied. This means that you may run into + an edge case where the application maps a buffer with the same + size of the output mode but buffer_scale 1 (thus making a + surface larger than the output). In this case it is allowed to + downscale the results to fit the screen. + + The compositor must reply to this request with a configure event + with the dimensions for the output on which the surface will + be made fullscreen. + + + + + + + + + Map the surface as a popup. + + A popup surface is a transient surface with an added pointer + grab. + + An existing implicit grab will be changed to owner-events mode, + and the popup grab will continue after the implicit grab ends + (i.e. releasing the mouse button does not cause the popup to + be unmapped). + + The popup grab continues until the window is destroyed or a + mouse button is pressed in any other client's window. A click + in any of the client's surfaces is reported as normal, however, + clicks in other clients' surfaces will be discarded and trigger + the callback. + + The x and y arguments specify the location of the upper left + corner of the surface relative to the upper left corner of the + parent surface, in surface-local coordinates. + + + + + + + + + + + + Map the surface as a maximized surface. + + If an output parameter is given then the surface will be + maximized on that output. If the client does not specify the + output then the compositor will apply its policy - usually + choosing the output on which the surface has the biggest surface + area. + + The compositor will reply with a configure event telling + the expected new surface size. The operation is completed + on the next buffer attach to this surface. + + A maximized surface typically fills the entire output it is + bound to, except for desktop elements such as panels. This is + the main difference between a maximized shell surface and a + fullscreen shell surface. + + The details depend on the compositor implementation. + + + + + + + Set a short title for the surface. + + This string may be used to identify the surface in a task bar, + window list, or other user interface elements provided by the + compositor. + + The string must be encoded in UTF-8. + + + + + + + Set a class for the surface. + + The surface class identifies the general class of applications + to which the surface belongs. A common convention is to use the + file name (or the full path if it is a non-standard location) of + the application's .desktop file as the class. + + + + + + + Ping a client to check if it is receiving events and sending + requests. A client is expected to reply with a pong request. + + + + + + + The configure event asks the client to resize its surface. + + The size is a hint, in the sense that the client is free to + ignore it if it doesn't resize, pick a smaller size (to + satisfy aspect ratio or resize in steps of NxM pixels). + + The edges parameter provides a hint about how the surface + was resized. The client may use this information to decide + how to adjust its content to the new size (e.g. a scrolling + area might adjust its content position to leave the viewable + content unmoved). + + The client is free to dismiss all but the last configure + event it received. + + The width and height arguments specify the size of the window + in surface-local coordinates. + + + + + + + + + The popup_done event is sent out when a popup grab is broken, + that is, when the user clicks a surface that doesn't belong + to the client owning the popup surface. + + + + + + + A surface is a rectangular area that may be displayed on zero + or more outputs, and shown any number of times at the compositor's + discretion. They can present wl_buffers, receive user input, and + define a local coordinate system. + + The size of a surface (and relative positions on it) is described + in surface-local coordinates, which may differ from the buffer + coordinates of the pixel content, in case a buffer_transform + or a buffer_scale is used. + + A surface without a "role" is fairly useless: a compositor does + not know where, when or how to present it. The role is the + purpose of a wl_surface. Examples of roles are a cursor for a + pointer (as set by wl_pointer.set_cursor), a drag icon + (wl_data_device.start_drag), a sub-surface + (wl_subcompositor.get_subsurface), and a window as defined by a + shell protocol (e.g. wl_shell.get_shell_surface). + + A surface can have only one role at a time. Initially a + wl_surface does not have a role. Once a wl_surface is given a + role, it is set permanently for the whole lifetime of the + wl_surface object. Giving the current role again is allowed, + unless explicitly forbidden by the relevant interface + specification. + + Surface roles are given by requests in other interfaces such as + wl_pointer.set_cursor. The request should explicitly mention + that this request gives a role to a wl_surface. Often, this + request also creates a new protocol object that represents the + role and adds additional functionality to wl_surface. When a + client wants to destroy a wl_surface, they must destroy this role + object before the wl_surface, otherwise a defunct_role_object error is + sent. + + Destroying the role object does not remove the role from the + wl_surface, but it may stop the wl_surface from "playing the role". + For instance, if a wl_subsurface object is destroyed, the wl_surface + it was created for will be unmapped and forget its position and + z-order. It is allowed to create a wl_subsurface for the same + wl_surface again, but it is not allowed to use the wl_surface as + a cursor (cursor is a different role than sub-surface, and role + switching is not allowed). + + + + + These errors can be emitted in response to wl_surface requests. + + + + + + + + + + + Deletes the surface and invalidates its object ID. + + + + + + Set a buffer as the content of this surface. + + The new size of the surface is calculated based on the buffer + size transformed by the inverse buffer_transform and the + inverse buffer_scale. This means that at commit time the supplied + buffer size must be an integer multiple of the buffer_scale. If + that's not the case, an invalid_size error is sent. + + The x and y arguments specify the location of the new pending + buffer's upper left corner, relative to the current buffer's upper + left corner, in surface-local coordinates. In other words, the + x and y, combined with the new surface size define in which + directions the surface's size changes. Setting anything other than 0 + as x and y arguments is discouraged, and should instead be replaced + with using the separate wl_surface.offset request. + + When the bound wl_surface version is 5 or higher, passing any + non-zero x or y is a protocol violation, and will result in an + 'invalid_offset' error being raised. The x and y arguments are ignored + and do not change the pending state. To achieve equivalent semantics, + use wl_surface.offset. + + Surface contents are double-buffered state, see wl_surface.commit. + + The initial surface contents are void; there is no content. + wl_surface.attach assigns the given wl_buffer as the pending + wl_buffer. wl_surface.commit makes the pending wl_buffer the new + surface contents, and the size of the surface becomes the size + calculated from the wl_buffer, as described above. After commit, + there is no pending buffer until the next attach. + + Committing a pending wl_buffer allows the compositor to read the + pixels in the wl_buffer. The compositor may access the pixels at + any time after the wl_surface.commit request. When the compositor + will not access the pixels anymore, it will send the + wl_buffer.release event. Only after receiving wl_buffer.release, + the client may reuse the wl_buffer. A wl_buffer that has been + attached and then replaced by another attach instead of committed + will not receive a release event, and is not used by the + compositor. + + If a pending wl_buffer has been committed to more than one wl_surface, + the delivery of wl_buffer.release events becomes undefined. A well + behaved client should not rely on wl_buffer.release events in this + case. Alternatively, a client could create multiple wl_buffer objects + from the same backing storage or use wp_linux_buffer_release. + + Destroying the wl_buffer after wl_buffer.release does not change + the surface contents. Destroying the wl_buffer before wl_buffer.release + is allowed as long as the underlying buffer storage isn't re-used (this + can happen e.g. on client process termination). However, if the client + destroys the wl_buffer before receiving the wl_buffer.release event and + mutates the underlying buffer storage, the surface contents become + undefined immediately. + + If wl_surface.attach is sent with a NULL wl_buffer, the + following wl_surface.commit will remove the surface content. + + + + + + + + + This request is used to describe the regions where the pending + buffer is different from the current surface contents, and where + the surface therefore needs to be repainted. The compositor + ignores the parts of the damage that fall outside of the surface. + + Damage is double-buffered state, see wl_surface.commit. + + The damage rectangle is specified in surface-local coordinates, + where x and y specify the upper left corner of the damage rectangle. + + The initial value for pending damage is empty: no damage. + wl_surface.damage adds pending damage: the new pending damage + is the union of old pending damage and the given rectangle. + + wl_surface.commit assigns pending damage as the current damage, + and clears pending damage. The server will clear the current + damage as it repaints the surface. + + Note! New clients should not use this request. Instead damage can be + posted with wl_surface.damage_buffer which uses buffer coordinates + instead of surface coordinates. + + + + + + + + + + Request a notification when it is a good time to start drawing a new + frame, by creating a frame callback. This is useful for throttling + redrawing operations, and driving animations. + + When a client is animating on a wl_surface, it can use the 'frame' + request to get notified when it is a good time to draw and commit the + next frame of animation. If the client commits an update earlier than + that, it is likely that some updates will not make it to the display, + and the client is wasting resources by drawing too often. + + The frame request will take effect on the next wl_surface.commit. + The notification will only be posted for one frame unless + requested again. For a wl_surface, the notifications are posted in + the order the frame requests were committed. + + The server must send the notifications so that a client + will not send excessive updates, while still allowing + the highest possible update rate for clients that wait for the reply + before drawing again. The server should give some time for the client + to draw and commit after sending the frame callback events to let it + hit the next output refresh. + + A server should avoid signaling the frame callbacks if the + surface is not visible in any way, e.g. the surface is off-screen, + or completely obscured by other opaque surfaces. + + The object returned by this request will be destroyed by the + compositor after the callback is fired and as such the client must not + attempt to use it after that point. + + The callback_data passed in the callback is the current time, in + milliseconds, with an undefined base. + + + + + + + This request sets the region of the surface that contains + opaque content. + + The opaque region is an optimization hint for the compositor + that lets it optimize the redrawing of content behind opaque + regions. Setting an opaque region is not required for correct + behaviour, but marking transparent content as opaque will result + in repaint artifacts. + + The opaque region is specified in surface-local coordinates. + + The compositor ignores the parts of the opaque region that fall + outside of the surface. + + Opaque region is double-buffered state, see wl_surface.commit. + + wl_surface.set_opaque_region changes the pending opaque region. + wl_surface.commit copies the pending region to the current region. + Otherwise, the pending and current regions are never changed. + + The initial value for an opaque region is empty. Setting the pending + opaque region has copy semantics, and the wl_region object can be + destroyed immediately. A NULL wl_region causes the pending opaque + region to be set to empty. + + + + + + + This request sets the region of the surface that can receive + pointer and touch events. + + Input events happening outside of this region will try the next + surface in the server surface stack. The compositor ignores the + parts of the input region that fall outside of the surface. + + The input region is specified in surface-local coordinates. + + Input region is double-buffered state, see wl_surface.commit. + + wl_surface.set_input_region changes the pending input region. + wl_surface.commit copies the pending region to the current region. + Otherwise the pending and current regions are never changed, + except cursor and icon surfaces are special cases, see + wl_pointer.set_cursor and wl_data_device.start_drag. + + The initial value for an input region is infinite. That means the + whole surface will accept input. Setting the pending input region + has copy semantics, and the wl_region object can be destroyed + immediately. A NULL wl_region causes the input region to be set + to infinite. + + + + + + + Surface state (input, opaque, and damage regions, attached buffers, + etc.) is double-buffered. Protocol requests modify the pending state, + as opposed to the current state in use by the compositor. A commit + request atomically applies all pending state, replacing the current + state. After commit, the new pending state is as documented for each + related request. + + On commit, a pending wl_buffer is applied first, and all other state + second. This means that all coordinates in double-buffered state are + relative to the new wl_buffer coming into use, except for + wl_surface.attach itself. If there is no pending wl_buffer, the + coordinates are relative to the current surface contents. + + All requests that need a commit to become effective are documented + to affect double-buffered state. + + Other interfaces may add further double-buffered surface state. + + + + + + This is emitted whenever a surface's creation, movement, or resizing + results in some part of it being within the scanout region of an + output. + + Note that a surface may be overlapping with zero or more outputs. + + + + + + + This is emitted whenever a surface's creation, movement, or resizing + results in it no longer having any part of it within the scanout region + of an output. + + Clients should not use the number of outputs the surface is on for frame + throttling purposes. The surface might be hidden even if no leave event + has been sent, and the compositor might expect new surface content + updates even if no enter event has been sent. The frame event should be + used instead. + + + + + + + + + This request sets an optional transformation on how the compositor + interprets the contents of the buffer attached to the surface. The + accepted values for the transform parameter are the values for + wl_output.transform. + + Buffer transform is double-buffered state, see wl_surface.commit. + + A newly created surface has its buffer transformation set to normal. + + wl_surface.set_buffer_transform changes the pending buffer + transformation. wl_surface.commit copies the pending buffer + transformation to the current one. Otherwise, the pending and current + values are never changed. + + The purpose of this request is to allow clients to render content + according to the output transform, thus permitting the compositor to + use certain optimizations even if the display is rotated. Using + hardware overlays and scanning out a client buffer for fullscreen + surfaces are examples of such optimizations. Those optimizations are + highly dependent on the compositor implementation, so the use of this + request should be considered on a case-by-case basis. + + Note that if the transform value includes 90 or 270 degree rotation, + the width of the buffer will become the surface height and the height + of the buffer will become the surface width. + + If transform is not one of the values from the + wl_output.transform enum the invalid_transform protocol error + is raised. + + + + + + + + + This request sets an optional scaling factor on how the compositor + interprets the contents of the buffer attached to the window. + + Buffer scale is double-buffered state, see wl_surface.commit. + + A newly created surface has its buffer scale set to 1. + + wl_surface.set_buffer_scale changes the pending buffer scale. + wl_surface.commit copies the pending buffer scale to the current one. + Otherwise, the pending and current values are never changed. + + The purpose of this request is to allow clients to supply higher + resolution buffer data for use on high resolution outputs. It is + intended that you pick the same buffer scale as the scale of the + output that the surface is displayed on. This means the compositor + can avoid scaling when rendering the surface on that output. + + Note that if the scale is larger than 1, then you have to attach + a buffer that is larger (by a factor of scale in each dimension) + than the desired surface size. + + If scale is not positive the invalid_scale protocol error is + raised. + + + + + + + + This request is used to describe the regions where the pending + buffer is different from the current surface contents, and where + the surface therefore needs to be repainted. The compositor + ignores the parts of the damage that fall outside of the surface. + + Damage is double-buffered state, see wl_surface.commit. + + The damage rectangle is specified in buffer coordinates, + where x and y specify the upper left corner of the damage rectangle. + + The initial value for pending damage is empty: no damage. + wl_surface.damage_buffer adds pending damage: the new pending + damage is the union of old pending damage and the given rectangle. + + wl_surface.commit assigns pending damage as the current damage, + and clears pending damage. The server will clear the current + damage as it repaints the surface. + + This request differs from wl_surface.damage in only one way - it + takes damage in buffer coordinates instead of surface-local + coordinates. While this generally is more intuitive than surface + coordinates, it is especially desirable when using wp_viewport + or when a drawing library (like EGL) is unaware of buffer scale + and buffer transform. + + Note: Because buffer transformation changes and damage requests may + be interleaved in the protocol stream, it is impossible to determine + the actual mapping between surface and buffer damage until + wl_surface.commit time. Therefore, compositors wishing to take both + kinds of damage into account will have to accumulate damage from the + two requests separately and only transform from one to the other + after receiving the wl_surface.commit. + + + + + + + + + + + + The x and y arguments specify the location of the new pending + buffer's upper left corner, relative to the current buffer's upper + left corner, in surface-local coordinates. In other words, the + x and y, combined with the new surface size define in which + directions the surface's size changes. + + Surface location offset is double-buffered state, see + wl_surface.commit. + + This request is semantically equivalent to and the replaces the x and y + arguments in the wl_surface.attach request in wl_surface versions prior + to 5. See wl_surface.attach for details. + + + + + + + + + + This event indicates the preferred buffer scale for this surface. It is + sent whenever the compositor's preference changes. + + It is intended that scaling aware clients use this event to scale their + content and use wl_surface.set_buffer_scale to indicate the scale they + have rendered with. This allows clients to supply a higher detail + buffer. + + + + + + + This event indicates the preferred buffer transform for this surface. + It is sent whenever the compositor's preference changes. + + It is intended that transform aware clients use this event to apply the + transform to their content and use wl_surface.set_buffer_transform to + indicate the transform they have rendered with. + + + + + + + + A seat is a group of keyboards, pointer and touch devices. This + object is published as a global during start up, or when such a + device is hot plugged. A seat typically has a pointer and + maintains a keyboard focus and a pointer focus. + + + + + This is a bitmask of capabilities this seat has; if a member is + set, then it is present on the seat. + + + + + + + + + These errors can be emitted in response to wl_seat requests. + + + + + + + This is emitted whenever a seat gains or loses the pointer, + keyboard or touch capabilities. The argument is a capability + enum containing the complete set of capabilities this seat has. + + When the pointer capability is added, a client may create a + wl_pointer object using the wl_seat.get_pointer request. This object + will receive pointer events until the capability is removed in the + future. + + When the pointer capability is removed, a client should destroy the + wl_pointer objects associated with the seat where the capability was + removed, using the wl_pointer.release request. No further pointer + events will be received on these objects. + + In some compositors, if a seat regains the pointer capability and a + client has a previously obtained wl_pointer object of version 4 or + less, that object may start sending pointer events again. This + behavior is considered a misinterpretation of the intended behavior + and must not be relied upon by the client. wl_pointer objects of + version 5 or later must not send events if created before the most + recent event notifying the client of an added pointer capability. + + The above behavior also applies to wl_keyboard and wl_touch with the + keyboard and touch capabilities, respectively. + + + + + + + The ID provided will be initialized to the wl_pointer interface + for this seat. + + This request only takes effect if the seat has the pointer + capability, or has had the pointer capability in the past. + It is a protocol violation to issue this request on a seat that has + never had the pointer capability. The missing_capability error will + be sent in this case. + + + + + + + The ID provided will be initialized to the wl_keyboard interface + for this seat. + + This request only takes effect if the seat has the keyboard + capability, or has had the keyboard capability in the past. + It is a protocol violation to issue this request on a seat that has + never had the keyboard capability. The missing_capability error will + be sent in this case. + + + + + + + The ID provided will be initialized to the wl_touch interface + for this seat. + + This request only takes effect if the seat has the touch + capability, or has had the touch capability in the past. + It is a protocol violation to issue this request on a seat that has + never had the touch capability. The missing_capability error will + be sent in this case. + + + + + + + + + In a multi-seat configuration the seat name can be used by clients to + help identify which physical devices the seat represents. + + The seat name is a UTF-8 string with no convention defined for its + contents. Each name is unique among all wl_seat globals. The name is + only guaranteed to be unique for the current compositor instance. + + The same seat names are used for all clients. Thus, the name can be + shared across processes to refer to a specific wl_seat global. + + The name event is sent after binding to the seat global. This event is + only sent once per seat object, and the name does not change over the + lifetime of the wl_seat global. + + Compositors may re-use the same seat name if the wl_seat global is + destroyed and re-created later. + + + + + + + + + Using this request a client can tell the server that it is not going to + use the seat object anymore. + + + + + + + + The wl_pointer interface represents one or more input devices, + such as mice, which control the pointer location and pointer_focus + of a seat. + + The wl_pointer interface generates motion, enter and leave + events for the surfaces that the pointer is located over, + and button and axis events for button presses, button releases + and scrolling. + + + + + + + + + Set the pointer surface, i.e., the surface that contains the + pointer image (cursor). This request gives the surface the role + of a cursor. If the surface already has another role, it raises + a protocol error. + + The cursor actually changes only if the pointer + focus for this device is one of the requesting client's surfaces + or the surface parameter is the current pointer surface. If + there was a previous surface set with this request it is + replaced. If surface is NULL, the pointer image is hidden. + + The parameters hotspot_x and hotspot_y define the position of + the pointer surface relative to the pointer location. Its + top-left corner is always at (x, y) - (hotspot_x, hotspot_y), + where (x, y) are the coordinates of the pointer location, in + surface-local coordinates. + + On surface.attach requests to the pointer surface, hotspot_x + and hotspot_y are decremented by the x and y parameters + passed to the request. Attach must be confirmed by + wl_surface.commit as usual. + + The hotspot can also be updated by passing the currently set + pointer surface to this request with new values for hotspot_x + and hotspot_y. + + The input region is ignored for wl_surfaces with the role of + a cursor. When the use as a cursor ends, the wl_surface is + unmapped. + + The serial parameter must match the latest wl_pointer.enter + serial number sent to the client. Otherwise the request will be + ignored. + + + + + + + + + + Notification that this seat's pointer is focused on a certain + surface. + + When a seat's focus enters a surface, the pointer image + is undefined and a client should respond to this event by setting + an appropriate pointer image with the set_cursor request. + + + + + + + + + + Notification that this seat's pointer is no longer focused on + a certain surface. + + The leave notification is sent before the enter notification + for the new focus. + + + + + + + + Notification of pointer location change. The arguments + surface_x and surface_y are the location relative to the + focused surface. + + + + + + + + + Describes the physical state of a button that produced the button + event. + + + + + + + + Mouse button click and release notifications. + + The location of the click is given by the last motion or + enter event. + The time argument is a timestamp with millisecond + granularity, with an undefined base. + + The button is a button code as defined in the Linux kernel's + linux/input-event-codes.h header file, e.g. BTN_LEFT. + + Any 16-bit button code value is reserved for future additions to the + kernel's event code list. All other button codes above 0xFFFF are + currently undefined but may be used in future versions of this + protocol. + + + + + + + + + + Describes the axis types of scroll events. + + + + + + + + Scroll and other axis notifications. + + For scroll events (vertical and horizontal scroll axes), the + value parameter is the length of a vector along the specified + axis in a coordinate space identical to those of motion events, + representing a relative movement along the specified axis. + + For devices that support movements non-parallel to axes multiple + axis events will be emitted. + + When applicable, for example for touch pads, the server can + choose to emit scroll events where the motion vector is + equivalent to a motion event vector. + + When applicable, a client can transform its content relative to the + scroll distance. + + + + + + + + + + + Using this request a client can tell the server that it is not going to + use the pointer object anymore. + + This request destroys the pointer proxy object, so clients must not call + wl_pointer_destroy() after using this request. + + + + + + + + Indicates the end of a set of events that logically belong together. + A client is expected to accumulate the data in all events within the + frame before proceeding. + + All wl_pointer events before a wl_pointer.frame event belong + logically together. For example, in a diagonal scroll motion the + compositor will send an optional wl_pointer.axis_source event, two + wl_pointer.axis events (horizontal and vertical) and finally a + wl_pointer.frame event. The client may use this information to + calculate a diagonal vector for scrolling. + + When multiple wl_pointer.axis events occur within the same frame, + the motion vector is the combined motion of all events. + When a wl_pointer.axis and a wl_pointer.axis_stop event occur within + the same frame, this indicates that axis movement in one axis has + stopped but continues in the other axis. + When multiple wl_pointer.axis_stop events occur within the same + frame, this indicates that these axes stopped in the same instance. + + A wl_pointer.frame event is sent for every logical event group, + even if the group only contains a single wl_pointer event. + Specifically, a client may get a sequence: motion, frame, button, + frame, axis, frame, axis_stop, frame. + + The wl_pointer.enter and wl_pointer.leave events are logical events + generated by the compositor and not the hardware. These events are + also grouped by a wl_pointer.frame. When a pointer moves from one + surface to another, a compositor should group the + wl_pointer.leave event within the same wl_pointer.frame. + However, a client must not rely on wl_pointer.leave and + wl_pointer.enter being in the same wl_pointer.frame. + Compositor-specific policies may require the wl_pointer.leave and + wl_pointer.enter event being split across multiple wl_pointer.frame + groups. + + + + + + Describes the source types for axis events. This indicates to the + client how an axis event was physically generated; a client may + adjust the user interface accordingly. For example, scroll events + from a "finger" source may be in a smooth coordinate space with + kinetic scrolling whereas a "wheel" source may be in discrete steps + of a number of lines. + + The "continuous" axis source is a device generating events in a + continuous coordinate space, but using something other than a + finger. One example for this source is button-based scrolling where + the vertical motion of a device is converted to scroll events while + a button is held down. + + The "wheel tilt" axis source indicates that the actual device is a + wheel but the scroll event is not caused by a rotation but a + (usually sideways) tilt of the wheel. + + + + + + + + + + Source information for scroll and other axes. + + This event does not occur on its own. It is sent before a + wl_pointer.frame event and carries the source information for + all events within that frame. + + The source specifies how this event was generated. If the source is + wl_pointer.axis_source.finger, a wl_pointer.axis_stop event will be + sent when the user lifts the finger off the device. + + If the source is wl_pointer.axis_source.wheel, + wl_pointer.axis_source.wheel_tilt or + wl_pointer.axis_source.continuous, a wl_pointer.axis_stop event may + or may not be sent. Whether a compositor sends an axis_stop event + for these sources is hardware-specific and implementation-dependent; + clients must not rely on receiving an axis_stop event for these + scroll sources and should treat scroll sequences from these scroll + sources as unterminated by default. + + This event is optional. If the source is unknown for a particular + axis event sequence, no event is sent. + Only one wl_pointer.axis_source event is permitted per frame. + + The order of wl_pointer.axis_discrete and wl_pointer.axis_source is + not guaranteed. + + + + + + + Stop notification for scroll and other axes. + + For some wl_pointer.axis_source types, a wl_pointer.axis_stop event + is sent to notify a client that the axis sequence has terminated. + This enables the client to implement kinetic scrolling. + See the wl_pointer.axis_source documentation for information on when + this event may be generated. + + Any wl_pointer.axis events with the same axis_source after this + event should be considered as the start of a new axis motion. + + The timestamp is to be interpreted identical to the timestamp in the + wl_pointer.axis event. The timestamp value may be the same as a + preceding wl_pointer.axis event. + + + + + + + + Discrete step information for scroll and other axes. + + This event carries the axis value of the wl_pointer.axis event in + discrete steps (e.g. mouse wheel clicks). + + This event is deprecated with wl_pointer version 8 - this event is not + sent to clients supporting version 8 or later. + + This event does not occur on its own, it is coupled with a + wl_pointer.axis event that represents this axis value on a + continuous scale. The protocol guarantees that each axis_discrete + event is always followed by exactly one axis event with the same + axis number within the same wl_pointer.frame. Note that the protocol + allows for other events to occur between the axis_discrete and + its coupled axis event, including other axis_discrete or axis + events. A wl_pointer.frame must not contain more than one axis_discrete + event per axis type. + + This event is optional; continuous scrolling devices + like two-finger scrolling on touchpads do not have discrete + steps and do not generate this event. + + The discrete value carries the directional information. e.g. a value + of -2 is two steps towards the negative direction of this axis. + + The axis number is identical to the axis number in the associated + axis event. + + The order of wl_pointer.axis_discrete and wl_pointer.axis_source is + not guaranteed. + + + + + + + + Discrete high-resolution scroll information. + + This event carries high-resolution wheel scroll information, + with each multiple of 120 representing one logical scroll step + (a wheel detent). For example, an axis_value120 of 30 is one quarter of + a logical scroll step in the positive direction, a value120 of + -240 are two logical scroll steps in the negative direction within the + same hardware event. + Clients that rely on discrete scrolling should accumulate the + value120 to multiples of 120 before processing the event. + + The value120 must not be zero. + + This event replaces the wl_pointer.axis_discrete event in clients + supporting wl_pointer version 8 or later. + + Where a wl_pointer.axis_source event occurs in the same + wl_pointer.frame, the axis source applies to this event. + + The order of wl_pointer.axis_value120 and wl_pointer.axis_source is + not guaranteed. + + + + + + + + + + This specifies the direction of the physical motion that caused a + wl_pointer.axis event, relative to the wl_pointer.axis direction. + + + + + + + + Relative directional information of the entity causing the axis + motion. + + For a wl_pointer.axis event, the wl_pointer.axis_relative_direction + event specifies the movement direction of the entity causing the + wl_pointer.axis event. For example: + - if a user's fingers on a touchpad move down and this + causes a wl_pointer.axis vertical_scroll down event, the physical + direction is 'identical' + - if a user's fingers on a touchpad move down and this causes a + wl_pointer.axis vertical_scroll up scroll up event ('natural + scrolling'), the physical direction is 'inverted'. + + A client may use this information to adjust scroll motion of + components. Specifically, enabling natural scrolling causes the + content to change direction compared to traditional scrolling. + Some widgets like volume control sliders should usually match the + physical direction regardless of whether natural scrolling is + active. This event enables clients to match the scroll direction of + a widget to the physical direction. + + This event does not occur on its own, it is coupled with a + wl_pointer.axis event that represents this axis value. + The protocol guarantees that each axis_relative_direction event is + always followed by exactly one axis event with the same + axis number within the same wl_pointer.frame. Note that the protocol + allows for other events to occur between the axis_relative_direction + and its coupled axis event. + + The axis number is identical to the axis number in the associated + axis event. + + The order of wl_pointer.axis_relative_direction, + wl_pointer.axis_discrete and wl_pointer.axis_source is not + guaranteed. + + + + + + + + + The wl_keyboard interface represents one or more keyboards + associated with a seat. + + + + + This specifies the format of the keymap provided to the + client with the wl_keyboard.keymap event. + + + + + + + + This event provides a file descriptor to the client which can be + memory-mapped in read-only mode to provide a keyboard mapping + description. + + From version 7 onwards, the fd must be mapped with MAP_PRIVATE by + the recipient, as MAP_SHARED may fail. + + + + + + + + + Notification that this seat's keyboard focus is on a certain + surface. + + The compositor must send the wl_keyboard.modifiers event after this + event. + + + + + + + + + Notification that this seat's keyboard focus is no longer on + a certain surface. + + The leave notification is sent before the enter notification + for the new focus. + + After this event client must assume that all keys, including modifiers, + are lifted and also it must stop key repeating if there's some going on. + + + + + + + + Describes the physical state of a key that produced the key event. + + + + + + + + A key was pressed or released. + The time argument is a timestamp with millisecond + granularity, with an undefined base. + + The key is a platform-specific key code that can be interpreted + by feeding it to the keyboard mapping (see the keymap event). + + If this event produces a change in modifiers, then the resulting + wl_keyboard.modifiers event must be sent after this event. + + + + + + + + + + Notifies clients that the modifier and/or group state has + changed, and it should update its local state. + + + + + + + + + + + + + + + + + + + Informs the client about the keyboard's repeat rate and delay. + + This event is sent as soon as the wl_keyboard object has been created, + and is guaranteed to be received by the client before any key press + event. + + Negative values for either rate or delay are illegal. A rate of zero + will disable any repeating (regardless of the value of delay). + + This event can be sent later on as well with a new value if necessary, + so clients should continue listening for the event past the creation + of wl_keyboard. + + + + + + + + + The wl_touch interface represents a touchscreen + associated with a seat. + + Touch interactions can consist of one or more contacts. + For each contact, a series of events is generated, starting + with a down event, followed by zero or more motion events, + and ending with an up event. Events relating to the same + contact point can be identified by the ID of the sequence. + + + + + A new touch point has appeared on the surface. This touch point is + assigned a unique ID. Future events from this touch point reference + this ID. The ID ceases to be valid after a touch up event and may be + reused in the future. + + + + + + + + + + + + The touch point has disappeared. No further events will be sent for + this touch point and the touch point's ID is released and may be + reused in a future touch down event. + + + + + + + + + A touch point has changed coordinates. + + + + + + + + + + Indicates the end of a set of events that logically belong together. + A client is expected to accumulate the data in all events within the + frame before proceeding. + + A wl_touch.frame terminates at least one event but otherwise no + guarantee is provided about the set of events within a frame. A client + must assume that any state not updated in a frame is unchanged from the + previously known state. + + + + + + Sent if the compositor decides the touch stream is a global + gesture. No further events are sent to the clients from that + particular gesture. Touch cancellation applies to all touch points + currently active on this client's surface. The client is + responsible for finalizing the touch points, future touch points on + this surface may reuse the touch point ID. + + + + + + + + + + + + + + Sent when a touchpoint has changed its shape. + + This event does not occur on its own. It is sent before a + wl_touch.frame event and carries the new shape information for + any previously reported, or new touch points of that frame. + + Other events describing the touch point such as wl_touch.down, + wl_touch.motion or wl_touch.orientation may be sent within the + same wl_touch.frame. A client should treat these events as a single + logical touch point update. The order of wl_touch.shape, + wl_touch.orientation and wl_touch.motion is not guaranteed. + A wl_touch.down event is guaranteed to occur before the first + wl_touch.shape event for this touch ID but both events may occur within + the same wl_touch.frame. + + A touchpoint shape is approximated by an ellipse through the major and + minor axis length. The major axis length describes the longer diameter + of the ellipse, while the minor axis length describes the shorter + diameter. Major and minor are orthogonal and both are specified in + surface-local coordinates. The center of the ellipse is always at the + touchpoint location as reported by wl_touch.down or wl_touch.move. + + This event is only sent by the compositor if the touch device supports + shape reports. The client has to make reasonable assumptions about the + shape if it did not receive this event. + + + + + + + + + Sent when a touchpoint has changed its orientation. + + This event does not occur on its own. It is sent before a + wl_touch.frame event and carries the new shape information for + any previously reported, or new touch points of that frame. + + Other events describing the touch point such as wl_touch.down, + wl_touch.motion or wl_touch.shape may be sent within the + same wl_touch.frame. A client should treat these events as a single + logical touch point update. The order of wl_touch.shape, + wl_touch.orientation and wl_touch.motion is not guaranteed. + A wl_touch.down event is guaranteed to occur before the first + wl_touch.orientation event for this touch ID but both events may occur + within the same wl_touch.frame. + + The orientation describes the clockwise angle of a touchpoint's major + axis to the positive surface y-axis and is normalized to the -180 to + +180 degree range. The granularity of orientation depends on the touch + device, some devices only support binary rotation values between 0 and + 90 degrees. + + This event is only sent by the compositor if the touch device supports + orientation reports. + + + + + + + + + An output describes part of the compositor geometry. The + compositor works in the 'compositor coordinate system' and an + output corresponds to a rectangular area in that space that is + actually visible. This typically corresponds to a monitor that + displays part of the compositor space. This object is published + as global during start up, or when a monitor is hotplugged. + + + + + This enumeration describes how the physical + pixels on an output are laid out. + + + + + + + + + + + + This describes the transform that a compositor will apply to a + surface to compensate for the rotation or mirroring of an + output device. + + The flipped values correspond to an initial flip around a + vertical axis followed by rotation. + + The purpose is mainly to allow clients to render accordingly and + tell the compositor, so that for fullscreen surfaces, the + compositor will still be able to scan out directly from client + surfaces. + + + + + + + + + + + + + + The geometry event describes geometric properties of the output. + The event is sent when binding to the output object and whenever + any of the properties change. + + The physical size can be set to zero if it doesn't make sense for this + output (e.g. for projectors or virtual outputs). + + The geometry event will be followed by a done event (starting from + version 2). + + Note: wl_output only advertises partial information about the output + position and identification. Some compositors, for instance those not + implementing a desktop-style output layout or those exposing virtual + outputs, might fake this information. Instead of using x and y, clients + should use xdg_output.logical_position. Instead of using make and model, + clients should use name and description. + + + + + + + + + + + + + + These flags describe properties of an output mode. + They are used in the flags bitfield of the mode event. + + + + + + + + The mode event describes an available mode for the output. + + The event is sent when binding to the output object and there + will always be one mode, the current mode. The event is sent + again if an output changes mode, for the mode that is now + current. In other words, the current mode is always the last + mode that was received with the current flag set. + + Non-current modes are deprecated. A compositor can decide to only + advertise the current mode and never send other modes. Clients + should not rely on non-current modes. + + The size of a mode is given in physical hardware units of + the output device. This is not necessarily the same as + the output size in the global compositor space. For instance, + the output may be scaled, as described in wl_output.scale, + or transformed, as described in wl_output.transform. Clients + willing to retrieve the output size in the global compositor + space should use xdg_output.logical_size instead. + + The vertical refresh rate can be set to zero if it doesn't make + sense for this output (e.g. for virtual outputs). + + The mode event will be followed by a done event (starting from + version 2). + + Clients should not use the refresh rate to schedule frames. Instead, + they should use the wl_surface.frame event or the presentation-time + protocol. + + Note: this information is not always meaningful for all outputs. Some + compositors, such as those exposing virtual outputs, might fake the + refresh rate or the size. + + + + + + + + + + + + This event is sent after all other properties have been + sent after binding to the output object and after any + other property changes done after that. This allows + changes to the output properties to be seen as + atomic, even if they happen via multiple events. + + + + + + This event contains scaling geometry information + that is not in the geometry event. It may be sent after + binding the output object or if the output scale changes + later. If it is not sent, the client should assume a + scale of 1. + + A scale larger than 1 means that the compositor will + automatically scale surface buffers by this amount + when rendering. This is used for very high resolution + displays where applications rendering at the native + resolution would be too small to be legible. + + It is intended that scaling aware clients track the + current output of a surface, and if it is on a scaled + output it should use wl_surface.set_buffer_scale with + the scale of the output. That way the compositor can + avoid scaling the surface, and the client can supply + a higher detail image. + + The scale event will be followed by a done event. + + + + + + + + + Using this request a client can tell the server that it is not going to + use the output object anymore. + + + + + + + + Many compositors will assign user-friendly names to their outputs, show + them to the user, allow the user to refer to an output, etc. The client + may wish to know this name as well to offer the user similar behaviors. + + The name is a UTF-8 string with no convention defined for its contents. + Each name is unique among all wl_output globals. The name is only + guaranteed to be unique for the compositor instance. + + The same output name is used for all clients for a given wl_output + global. Thus, the name can be shared across processes to refer to a + specific wl_output global. + + The name is not guaranteed to be persistent across sessions, thus cannot + be used to reliably identify an output in e.g. configuration files. + + Examples of names include 'HDMI-A-1', 'WL-1', 'X11-1', etc. However, do + not assume that the name is a reflection of an underlying DRM connector, + X11 connection, etc. + + The name event is sent after binding the output object. This event is + only sent once per output object, and the name does not change over the + lifetime of the wl_output global. + + Compositors may re-use the same output name if the wl_output global is + destroyed and re-created later. Compositors should avoid re-using the + same name if possible. + + The name event will be followed by a done event. + + + + + + + Many compositors can produce human-readable descriptions of their + outputs. The client may wish to know this description as well, e.g. for + output selection purposes. + + The description is a UTF-8 string with no convention defined for its + contents. The description is not guaranteed to be unique among all + wl_output globals. Examples might include 'Foocorp 11" Display' or + 'Virtual X11 output via :1'. + + The description event is sent after binding the output object and + whenever the description changes. The description is optional, and may + not be sent at all. + + The description event will be followed by a done event. + + + + + + + + A region object describes an area. + + Region objects are used to describe the opaque and input + regions of a surface. + + + + + Destroy the region. This will invalidate the object ID. + + + + + + Add the specified rectangle to the region. + + + + + + + + + + Subtract the specified rectangle from the region. + + + + + + + + + + + The global interface exposing sub-surface compositing capabilities. + A wl_surface, that has sub-surfaces associated, is called the + parent surface. Sub-surfaces can be arbitrarily nested and create + a tree of sub-surfaces. + + The root surface in a tree of sub-surfaces is the main + surface. The main surface cannot be a sub-surface, because + sub-surfaces must always have a parent. + + A main surface with its sub-surfaces forms a (compound) window. + For window management purposes, this set of wl_surface objects is + to be considered as a single window, and it should also behave as + such. + + The aim of sub-surfaces is to offload some of the compositing work + within a window from clients to the compositor. A prime example is + a video player with decorations and video in separate wl_surface + objects. This should allow the compositor to pass YUV video buffer + processing to dedicated overlay hardware when possible. + + + + + Informs the server that the client will not be using this + protocol object anymore. This does not affect any other + objects, wl_subsurface objects included. + + + + + + + + + + + Create a sub-surface interface for the given surface, and + associate it with the given parent surface. This turns a + plain wl_surface into a sub-surface. + + The to-be sub-surface must not already have another role, and it + must not have an existing wl_subsurface object. Otherwise the + bad_surface protocol error is raised. + + Adding sub-surfaces to a parent is a double-buffered operation on the + parent (see wl_surface.commit). The effect of adding a sub-surface + becomes visible on the next time the state of the parent surface is + applied. + + The parent surface must not be one of the child surface's descendants, + and the parent must be different from the child surface, otherwise the + bad_parent protocol error is raised. + + This request modifies the behaviour of wl_surface.commit request on + the sub-surface, see the documentation on wl_subsurface interface. + + + + + + + + + + An additional interface to a wl_surface object, which has been + made a sub-surface. A sub-surface has one parent surface. A + sub-surface's size and position are not limited to that of the parent. + Particularly, a sub-surface is not automatically clipped to its + parent's area. + + A sub-surface becomes mapped, when a non-NULL wl_buffer is applied + and the parent surface is mapped. The order of which one happens + first is irrelevant. A sub-surface is hidden if the parent becomes + hidden, or if a NULL wl_buffer is applied. These rules apply + recursively through the tree of surfaces. + + The behaviour of a wl_surface.commit request on a sub-surface + depends on the sub-surface's mode. The possible modes are + synchronized and desynchronized, see methods + wl_subsurface.set_sync and wl_subsurface.set_desync. Synchronized + mode caches the wl_surface state to be applied when the parent's + state gets applied, and desynchronized mode applies the pending + wl_surface state directly. A sub-surface is initially in the + synchronized mode. + + Sub-surfaces also have another kind of state, which is managed by + wl_subsurface requests, as opposed to wl_surface requests. This + state includes the sub-surface position relative to the parent + surface (wl_subsurface.set_position), and the stacking order of + the parent and its sub-surfaces (wl_subsurface.place_above and + .place_below). This state is applied when the parent surface's + wl_surface state is applied, regardless of the sub-surface's mode. + As the exception, set_sync and set_desync are effective immediately. + + The main surface can be thought to be always in desynchronized mode, + since it does not have a parent in the sub-surfaces sense. + + Even if a sub-surface is in desynchronized mode, it will behave as + in synchronized mode, if its parent surface behaves as in + synchronized mode. This rule is applied recursively throughout the + tree of surfaces. This means, that one can set a sub-surface into + synchronized mode, and then assume that all its child and grand-child + sub-surfaces are synchronized, too, without explicitly setting them. + + Destroying a sub-surface takes effect immediately. If you need to + synchronize the removal of a sub-surface to the parent surface update, + unmap the sub-surface first by attaching a NULL wl_buffer, update parent, + and then destroy the sub-surface. + + If the parent wl_surface object is destroyed, the sub-surface is + unmapped. + + + + + The sub-surface interface is removed from the wl_surface object + that was turned into a sub-surface with a + wl_subcompositor.get_subsurface request. The wl_surface's association + to the parent is deleted. The wl_surface is unmapped immediately. + + + + + + + + + + This schedules a sub-surface position change. + The sub-surface will be moved so that its origin (top left + corner pixel) will be at the location x, y of the parent surface + coordinate system. The coordinates are not restricted to the parent + surface area. Negative values are allowed. + + The scheduled coordinates will take effect whenever the state of the + parent surface is applied. When this happens depends on whether the + parent surface is in synchronized mode or not. See + wl_subsurface.set_sync and wl_subsurface.set_desync for details. + + If more than one set_position request is invoked by the client before + the commit of the parent surface, the position of a new request always + replaces the scheduled position from any previous request. + + The initial position is 0, 0. + + + + + + + + This sub-surface is taken from the stack, and put back just + above the reference surface, changing the z-order of the sub-surfaces. + The reference surface must be one of the sibling surfaces, or the + parent surface. Using any other surface, including this sub-surface, + will cause a protocol error. + + The z-order is double-buffered. Requests are handled in order and + applied immediately to a pending state. The final pending state is + copied to the active state the next time the state of the parent + surface is applied. When this happens depends on whether the parent + surface is in synchronized mode or not. See wl_subsurface.set_sync and + wl_subsurface.set_desync for details. + + A new sub-surface is initially added as the top-most in the stack + of its siblings and parent. + + + + + + + The sub-surface is placed just below the reference surface. + See wl_subsurface.place_above. + + + + + + + Change the commit behaviour of the sub-surface to synchronized + mode, also described as the parent dependent mode. + + In synchronized mode, wl_surface.commit on a sub-surface will + accumulate the committed state in a cache, but the state will + not be applied and hence will not change the compositor output. + The cached state is applied to the sub-surface immediately after + the parent surface's state is applied. This ensures atomic + updates of the parent and all its synchronized sub-surfaces. + Applying the cached state will invalidate the cache, so further + parent surface commits do not (re-)apply old state. + + See wl_subsurface for the recursive effect of this mode. + + + + + + Change the commit behaviour of the sub-surface to desynchronized + mode, also described as independent or freely running mode. + + In desynchronized mode, wl_surface.commit on a sub-surface will + apply the pending state directly, without caching, as happens + normally with a wl_surface. Calling wl_surface.commit on the + parent surface has no effect on the sub-surface's wl_surface + state. This mode allows a sub-surface to be updated on its own. + + If cached state exists when wl_surface.commit is called in + desynchronized mode, the pending state is added to the cached + state, and applied as a whole. This invalidates the cache. + + Note: even if a sub-surface is set to desynchronized, a parent + sub-surface may override it to behave as synchronized. For details, + see wl_subsurface. + + If a surface's parent surface behaves as desynchronized, then + the cached state is applied on set_desync. + + + + + diff --git a/src/external/glfw/deps/wayland/xdg-activation-v1.xml b/src/external/glfw/deps/wayland/xdg-activation-v1.xml new file mode 100644 index 000000000..9adcc274e --- /dev/null +++ b/src/external/glfw/deps/wayland/xdg-activation-v1.xml @@ -0,0 +1,200 @@ + + + + + Copyright © 2020 Aleix Pol Gonzalez <aleixpol@kde.org> + Copyright © 2020 Carlos Garnacho <carlosg@gnome.org> + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + The way for a client to pass focus to another toplevel is as follows. + + The client that intends to activate another toplevel uses the + xdg_activation_v1.get_activation_token request to get an activation token. + This token is then forwarded to the client, which is supposed to activate + one of its surfaces, through a separate band of communication. + + One established way of doing this is through the XDG_ACTIVATION_TOKEN + environment variable of a newly launched child process. The child process + should unset the environment variable again right after reading it out in + order to avoid propagating it to other child processes. + + Another established way exists for Applications implementing the D-Bus + interface org.freedesktop.Application, which should get their token under + activation-token on their platform_data. + + In general activation tokens may be transferred across clients through + means not described in this protocol. + + The client to be activated will then pass the token + it received to the xdg_activation_v1.activate request. The compositor can + then use this token to decide how to react to the activation request. + + The token the activating client gets may be ineffective either already at + the time it receives it, for example if it was not focused, for focus + stealing prevention. The activating client will have no way to discover + the validity of the token, and may still forward it to the to be activated + client. + + The created activation token may optionally get information attached to it + that can be used by the compositor to identify the application that we + intend to activate. This can for example be used to display a visual hint + about what application is being started. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + + + + + A global interface used for informing the compositor about applications + being activated or started, or for applications to request to be + activated. + + + + + Notify the compositor that the xdg_activation object will no longer be + used. + + The child objects created via this interface are unaffected and should + be destroyed separately. + + + + + + Creates an xdg_activation_token_v1 object that will provide + the initiating client with a unique token for this activation. This + token should be offered to the clients to be activated. + + + + + + + + Requests surface activation. It's up to the compositor to display + this information as desired, for example by placing the surface above + the rest. + + The compositor may know who requested this by checking the activation + token and might decide not to follow through with the activation if it's + considered unwanted. + + Compositors can ignore unknown activation tokens when an invalid + token is passed. + + + + + + + + + An object for setting up a token and receiving a token handle that can + be passed as an activation token to another client. + + The object is created using the xdg_activation_v1.get_activation_token + request. This object should then be populated with the app_id, surface + and serial information and committed. The compositor shall then issue a + done event with the token. In case the request's parameters are invalid, + the compositor will provide an invalid token. + + + + + + + + + Provides information about the seat and serial event that requested the + token. + + The serial can come from an input or focus event. For instance, if a + click triggers the launch of a third-party client, the launcher client + should send a set_serial request with the serial and seat from the + wl_pointer.button event. + + Some compositors might refuse to activate toplevels when the token + doesn't have a valid and recent enough event serial. + + Must be sent before commit. This information is optional. + + + + + + + + The requesting client can specify an app_id to associate the token + being created with it. + + Must be sent before commit. This information is optional. + + + + + + + This request sets the surface requesting the activation. Note, this is + different from the surface that will be activated. + + Some compositors might refuse to activate toplevels when the token + doesn't have a requesting surface. + + Must be sent before commit. This information is optional. + + + + + + + Requests an activation token based on the different parameters that + have been offered through set_serial, set_surface and set_app_id. + + + + + + The 'done' event contains the unique token of this activation request + and notifies that the provider is done. + + + + + + + Notify the compositor that the xdg_activation_token_v1 object will no + longer be used. The received token stays valid. + + + + diff --git a/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml b/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml new file mode 100644 index 000000000..e5967751d --- /dev/null +++ b/src/external/glfw/deps/wayland/xdg-decoration-unstable-v1.xml @@ -0,0 +1,156 @@ + + + + Copyright © 2018 Simon Ser + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + This interface allows a compositor to announce support for server-side + decorations. + + A window decoration is a set of window controls as deemed appropriate by + the party managing them, such as user interface components used to move, + resize and change a window's state. + + A client can use this protocol to request being decorated by a supporting + compositor. + + If compositor and client do not negotiate the use of a server-side + decoration using this protocol, clients continue to self-decorate as they + see fit. + + Warning! The protocol described in this file is experimental and + backward incompatible changes may be made. Backward compatible changes + may be added together with the corresponding interface version bump. + Backward incompatible changes are done by bumping the version number in + the protocol and interface names and resetting the interface version. + Once the protocol is to be declared stable, the 'z' prefix and the + version number in the protocol and interface names are removed and the + interface version number is reset. + + + + + Destroy the decoration manager. This doesn't destroy objects created + with the manager. + + + + + + Create a new decoration object associated with the given toplevel. + + Creating an xdg_toplevel_decoration from an xdg_toplevel which has a + buffer attached or committed is a client error, and any attempts by a + client to attach or manipulate a buffer prior to the first + xdg_toplevel_decoration.configure event must also be treated as + errors. + + + + + + + + + The decoration object allows the compositor to toggle server-side window + decorations for a toplevel surface. The client can request to switch to + another mode. + + The xdg_toplevel_decoration object must be destroyed before its + xdg_toplevel. + + + + + + + + + + + Switch back to a mode without any server-side decorations at the next + commit. + + + + + + These values describe window decoration modes. + + + + + + + + Set the toplevel surface decoration mode. This informs the compositor + that the client prefers the provided decoration mode. + + After requesting a decoration mode, the compositor will respond by + emitting an xdg_surface.configure event. The client should then update + its content, drawing it without decorations if the received mode is + server-side decorations. The client must also acknowledge the configure + when committing the new content (see xdg_surface.ack_configure). + + The compositor can decide not to use the client's mode and enforce a + different mode instead. + + Clients whose decoration mode depend on the xdg_toplevel state may send + a set_mode request in response to an xdg_surface.configure event and wait + for the next xdg_surface.configure event to prevent unwanted state. + Such clients are responsible for preventing configure loops and must + make sure not to send multiple successive set_mode requests with the + same decoration mode. + + + + + + + Unset the toplevel surface decoration mode. This informs the compositor + that the client doesn't prefer a particular decoration mode. + + This request has the same semantics as set_mode. + + + + + + The configure event asks the client to change its decoration mode. The + configured state should not be applied immediately. Clients must send an + ack_configure in response to this event. See xdg_surface.configure and + xdg_surface.ack_configure for details. + + A configure event can be sent at any time. The specified mode must be + obeyed by the client. + + + + + diff --git a/src/external/glfw/deps/wayland/xdg-shell.xml b/src/external/glfw/deps/wayland/xdg-shell.xml new file mode 100644 index 000000000..777eaa749 --- /dev/null +++ b/src/external/glfw/deps/wayland/xdg-shell.xml @@ -0,0 +1,1370 @@ + + + + + Copyright © 2008-2013 Kristian Høgsberg + Copyright © 2013 Rafael Antognolli + Copyright © 2013 Jasper St. Pierre + Copyright © 2010-2013 Intel Corporation + Copyright © 2015-2017 Samsung Electronics Co., Ltd + Copyright © 2015-2017 Red Hat Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + + + + The xdg_wm_base interface is exposed as a global object enabling clients + to turn their wl_surfaces into windows in a desktop environment. It + defines the basic functionality needed for clients and the compositor to + create windows that can be dragged, resized, maximized, etc, as well as + creating transient windows such as popup menus. + + + + + + + + + + + + + + + Destroy this xdg_wm_base object. + + Destroying a bound xdg_wm_base object while there are surfaces + still alive created by this xdg_wm_base object instance is illegal + and will result in a defunct_surfaces error. + + + + + + Create a positioner object. A positioner object is used to position + surfaces relative to some parent surface. See the interface description + and xdg_surface.get_popup for details. + + + + + + + This creates an xdg_surface for the given surface. While xdg_surface + itself is not a role, the corresponding surface may only be assigned + a role extending xdg_surface, such as xdg_toplevel or xdg_popup. It is + illegal to create an xdg_surface for a wl_surface which already has an + assigned role and this will result in a role error. + + This creates an xdg_surface for the given surface. An xdg_surface is + used as basis to define a role to a given surface, such as xdg_toplevel + or xdg_popup. It also manages functionality shared between xdg_surface + based surface roles. + + See the documentation of xdg_surface for more details about what an + xdg_surface is and how it is used. + + + + + + + + A client must respond to a ping event with a pong request or + the client may be deemed unresponsive. See xdg_wm_base.ping + and xdg_wm_base.error.unresponsive. + + + + + + + The ping event asks the client if it's still alive. Pass the + serial specified in the event back to the compositor by sending + a "pong" request back with the specified serial. See xdg_wm_base.pong. + + Compositors can use this to determine if the client is still + alive. It's unspecified what will happen if the client doesn't + respond to the ping request, or in what timeframe. Clients should + try to respond in a reasonable amount of time. The “unresponsive” + error is provided for compositors that wish to disconnect unresponsive + clients. + + A compositor is free to ping in any way it wants, but a client must + always respond to any xdg_wm_base object it created. + + + + + + + + The xdg_positioner provides a collection of rules for the placement of a + child surface relative to a parent surface. Rules can be defined to ensure + the child surface remains within the visible area's borders, and to + specify how the child surface changes its position, such as sliding along + an axis, or flipping around a rectangle. These positioner-created rules are + constrained by the requirement that a child surface must intersect with or + be at least partially adjacent to its parent surface. + + See the various requests for details about possible rules. + + At the time of the request, the compositor makes a copy of the rules + specified by the xdg_positioner. Thus, after the request is complete the + xdg_positioner object can be destroyed or reused; further changes to the + object will have no effect on previous usages. + + For an xdg_positioner object to be considered complete, it must have a + non-zero size set by set_size, and a non-zero anchor rectangle set by + set_anchor_rect. Passing an incomplete xdg_positioner object when + positioning a surface raises an invalid_positioner error. + + + + + + + + + Notify the compositor that the xdg_positioner will no longer be used. + + + + + + Set the size of the surface that is to be positioned with the positioner + object. The size is in surface-local coordinates and corresponds to the + window geometry. See xdg_surface.set_window_geometry. + + If a zero or negative size is set the invalid_input error is raised. + + + + + + + + Specify the anchor rectangle within the parent surface that the child + surface will be placed relative to. The rectangle is relative to the + window geometry as defined by xdg_surface.set_window_geometry of the + parent surface. + + When the xdg_positioner object is used to position a child surface, the + anchor rectangle may not extend outside the window geometry of the + positioned child's parent surface. + + If a negative size is set the invalid_input error is raised. + + + + + + + + + + + + + + + + + + + + + + Defines the anchor point for the anchor rectangle. The specified anchor + is used derive an anchor point that the child surface will be + positioned relative to. If a corner anchor is set (e.g. 'top_left' or + 'bottom_right'), the anchor point will be at the specified corner; + otherwise, the derived anchor point will be centered on the specified + edge, or in the center of the anchor rectangle if no edge is specified. + + + + + + + + + + + + + + + + + + + Defines in what direction a surface should be positioned, relative to + the anchor point of the parent surface. If a corner gravity is + specified (e.g. 'bottom_right' or 'top_left'), then the child surface + will be placed towards the specified gravity; otherwise, the child + surface will be centered over the anchor point on any axis that had no + gravity specified. If the gravity is not in the ‘gravity’ enum, an + invalid_input error is raised. + + + + + + + The constraint adjustment value define ways the compositor will adjust + the position of the surface, if the unadjusted position would result + in the surface being partly constrained. + + Whether a surface is considered 'constrained' is left to the compositor + to determine. For example, the surface may be partly outside the + compositor's defined 'work area', thus necessitating the child surface's + position be adjusted until it is entirely inside the work area. + + The adjustments can be combined, according to a defined precedence: 1) + Flip, 2) Slide, 3) Resize. + + + + Don't alter the surface position even if it is constrained on some + axis, for example partially outside the edge of an output. + + + + + Slide the surface along the x axis until it is no longer constrained. + + First try to slide towards the direction of the gravity on the x axis + until either the edge in the opposite direction of the gravity is + unconstrained or the edge in the direction of the gravity is + constrained. + + Then try to slide towards the opposite direction of the gravity on the + x axis until either the edge in the direction of the gravity is + unconstrained or the edge in the opposite direction of the gravity is + constrained. + + + + + Slide the surface along the y axis until it is no longer constrained. + + First try to slide towards the direction of the gravity on the y axis + until either the edge in the opposite direction of the gravity is + unconstrained or the edge in the direction of the gravity is + constrained. + + Then try to slide towards the opposite direction of the gravity on the + y axis until either the edge in the direction of the gravity is + unconstrained or the edge in the opposite direction of the gravity is + constrained. + + + + + Invert the anchor and gravity on the x axis if the surface is + constrained on the x axis. For example, if the left edge of the + surface is constrained, the gravity is 'left' and the anchor is + 'left', change the gravity to 'right' and the anchor to 'right'. + + If the adjusted position also ends up being constrained, the resulting + position of the flip_x adjustment will be the one before the + adjustment. + + + + + Invert the anchor and gravity on the y axis if the surface is + constrained on the y axis. For example, if the bottom edge of the + surface is constrained, the gravity is 'bottom' and the anchor is + 'bottom', change the gravity to 'top' and the anchor to 'top'. + + The adjusted position is calculated given the original anchor + rectangle and offset, but with the new flipped anchor and gravity + values. + + If the adjusted position also ends up being constrained, the resulting + position of the flip_y adjustment will be the one before the + adjustment. + + + + + Resize the surface horizontally so that it is completely + unconstrained. + + + + + Resize the surface vertically so that it is completely unconstrained. + + + + + + + Specify how the window should be positioned if the originally intended + position caused the surface to be constrained, meaning at least + partially outside positioning boundaries set by the compositor. The + adjustment is set by constructing a bitmask describing the adjustment to + be made when the surface is constrained on that axis. + + If no bit for one axis is set, the compositor will assume that the child + surface should not change its position on that axis when constrained. + + If more than one bit for one axis is set, the order of how adjustments + are applied is specified in the corresponding adjustment descriptions. + + The default adjustment is none. + + + + + + + Specify the surface position offset relative to the position of the + anchor on the anchor rectangle and the anchor on the surface. For + example if the anchor of the anchor rectangle is at (x, y), the surface + has the gravity bottom|right, and the offset is (ox, oy), the calculated + surface position will be (x + ox, y + oy). The offset position of the + surface is the one used for constraint testing. See + set_constraint_adjustment. + + An example use case is placing a popup menu on top of a user interface + element, while aligning the user interface element of the parent surface + with some user interface element placed somewhere in the popup surface. + + + + + + + + + + When set reactive, the surface is reconstrained if the conditions used + for constraining changed, e.g. the parent window moved. + + If the conditions changed and the popup was reconstrained, an + xdg_popup.configure event is sent with updated geometry, followed by an + xdg_surface.configure event. + + + + + + Set the parent window geometry the compositor should use when + positioning the popup. The compositor may use this information to + determine the future state the popup should be constrained using. If + this doesn't match the dimension of the parent the popup is eventually + positioned against, the behavior is undefined. + + The arguments are given in the surface-local coordinate space. + + + + + + + + Set the serial of an xdg_surface.configure event this positioner will be + used in response to. The compositor may use this information together + with set_parent_size to determine what future state the popup should be + constrained using. + + + + + + + + An interface that may be implemented by a wl_surface, for + implementations that provide a desktop-style user interface. + + It provides a base set of functionality required to construct user + interface elements requiring management by the compositor, such as + toplevel windows, menus, etc. The types of functionality are split into + xdg_surface roles. + + Creating an xdg_surface does not set the role for a wl_surface. In order + to map an xdg_surface, the client must create a role-specific object + using, e.g., get_toplevel, get_popup. The wl_surface for any given + xdg_surface can have at most one role, and may not be assigned any role + not based on xdg_surface. + + A role must be assigned before any other requests are made to the + xdg_surface object. + + The client must call wl_surface.commit on the corresponding wl_surface + for the xdg_surface state to take effect. + + Creating an xdg_surface from a wl_surface which has a buffer attached or + committed is a client error, and any attempts by a client to attach or + manipulate a buffer prior to the first xdg_surface.configure call must + also be treated as errors. + + After creating a role-specific object and setting it up, the client must + perform an initial commit without any buffer attached. The compositor + will reply with initial wl_surface state such as + wl_surface.preferred_buffer_scale followed by an xdg_surface.configure + event. The client must acknowledge it and is then allowed to attach a + buffer to map the surface. + + Mapping an xdg_surface-based role surface is defined as making it + possible for the surface to be shown by the compositor. Note that + a mapped surface is not guaranteed to be visible once it is mapped. + + For an xdg_surface to be mapped by the compositor, the following + conditions must be met: + (1) the client has assigned an xdg_surface-based role to the surface + (2) the client has set and committed the xdg_surface state and the + role-dependent state to the surface + (3) the client has committed a buffer to the surface + + A newly-unmapped surface is considered to have met condition (1) out + of the 3 required conditions for mapping a surface if its role surface + has not been destroyed, i.e. the client must perform the initial commit + again before attaching a buffer. + + + + + + + + + + + + + + Destroy the xdg_surface object. An xdg_surface must only be destroyed + after its role object has been destroyed, otherwise + a defunct_role_object error is raised. + + + + + + This creates an xdg_toplevel object for the given xdg_surface and gives + the associated wl_surface the xdg_toplevel role. + + See the documentation of xdg_toplevel for more details about what an + xdg_toplevel is and how it is used. + + + + + + + This creates an xdg_popup object for the given xdg_surface and gives + the associated wl_surface the xdg_popup role. + + If null is passed as a parent, a parent surface must be specified using + some other protocol, before committing the initial state. + + See the documentation of xdg_popup for more details about what an + xdg_popup is and how it is used. + + + + + + + + + The window geometry of a surface is its "visible bounds" from the + user's perspective. Client-side decorations often have invisible + portions like drop-shadows which should be ignored for the + purposes of aligning, placing and constraining windows. + + The window geometry is double buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + When maintaining a position, the compositor should treat the (x, y) + coordinate of the window geometry as the top left corner of the window. + A client changing the (x, y) window geometry coordinate should in + general not alter the position of the window. + + Once the window geometry of the surface is set, it is not possible to + unset it, and it will remain the same until set_window_geometry is + called again, even if a new subsurface or buffer is attached. + + If never set, the value is the full bounds of the surface, + including any subsurfaces. This updates dynamically on every + commit. This unset is meant for extremely simple clients. + + The arguments are given in the surface-local coordinate space of + the wl_surface associated with this xdg_surface, and may extend outside + of the wl_surface itself to mark parts of the subsurface tree as part of + the window geometry. + + When applied, the effective window geometry will be the set window + geometry clamped to the bounding rectangle of the combined + geometry of the surface of the xdg_surface and the associated + subsurfaces. + + The effective geometry will not be recalculated unless a new call to + set_window_geometry is done and the new pending surface state is + subsequently applied. + + The width and height of the effective window geometry must be + greater than zero. Setting an invalid size will raise an + invalid_size error. + + + + + + + + + + When a configure event is received, if a client commits the + surface in response to the configure event, then the client + must make an ack_configure request sometime before the commit + request, passing along the serial of the configure event. + + For instance, for toplevel surfaces the compositor might use this + information to move a surface to the top left only when the client has + drawn itself for the maximized or fullscreen state. + + If the client receives multiple configure events before it + can respond to one, it only has to ack the last configure event. + Acking a configure event that was never sent raises an invalid_serial + error. + + A client is not required to commit immediately after sending + an ack_configure request - it may even ack_configure several times + before its next surface commit. + + A client may send multiple ack_configure requests before committing, but + only the last request sent before a commit indicates which configure + event the client really is responding to. + + Sending an ack_configure request consumes the serial number sent with + the request, as well as serial numbers sent by all configure events + sent on this xdg_surface prior to the configure event referenced by + the committed serial. + + It is an error to issue multiple ack_configure requests referencing a + serial from the same configure event, or to issue an ack_configure + request referencing a serial from a configure event issued before the + event identified by the last ack_configure request for the same + xdg_surface. Doing so will raise an invalid_serial error. + + + + + + + The configure event marks the end of a configure sequence. A configure + sequence is a set of one or more events configuring the state of the + xdg_surface, including the final xdg_surface.configure event. + + Where applicable, xdg_surface surface roles will during a configure + sequence extend this event as a latched state sent as events before the + xdg_surface.configure event. Such events should be considered to make up + a set of atomically applied configuration states, where the + xdg_surface.configure commits the accumulated state. + + Clients should arrange their surface for the new states, and then send + an ack_configure request with the serial sent in this configure event at + some point before committing the new surface. + + If the client receives multiple configure events before it can respond + to one, it is free to discard all but the last event it received. + + + + + + + + + This interface defines an xdg_surface role which allows a surface to, + among other things, set window-like properties such as maximize, + fullscreen, and minimize, set application-specific metadata like title and + id, and well as trigger user interactive operations such as interactive + resize and move. + + Unmapping an xdg_toplevel means that the surface cannot be shown + by the compositor until it is explicitly mapped again. + All active operations (e.g., move, resize) are canceled and all + attributes (e.g. title, state, stacking, ...) are discarded for + an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to + the state it had right after xdg_surface.get_toplevel. The client + can re-map the toplevel by perfoming a commit without any buffer + attached, waiting for a configure event and handling it as usual (see + xdg_surface description). + + Attaching a null buffer to a toplevel unmaps the surface. + + + + + This request destroys the role surface and unmaps the surface; + see "Unmapping" behavior in interface section for details. + + + + + + + + + + + + Set the "parent" of this surface. This surface should be stacked + above the parent surface and all other ancestor surfaces. + + Parent surfaces should be set on dialogs, toolboxes, or other + "auxiliary" surfaces, so that the parent is raised when the dialog + is raised. + + Setting a null parent for a child surface unsets its parent. Setting + a null parent for a surface which currently has no parent is a no-op. + + Only mapped surfaces can have child surfaces. Setting a parent which + is not mapped is equivalent to setting a null parent. If a surface + becomes unmapped, its children's parent is set to the parent of + the now-unmapped surface. If the now-unmapped surface has no parent, + its children's parent is unset. If the now-unmapped surface becomes + mapped again, its parent-child relationship is not restored. + + The parent toplevel must not be one of the child toplevel's + descendants, and the parent must be different from the child toplevel, + otherwise the invalid_parent protocol error is raised. + + + + + + + Set a short title for the surface. + + This string may be used to identify the surface in a task bar, + window list, or other user interface elements provided by the + compositor. + + The string must be encoded in UTF-8. + + + + + + + Set an application identifier for the surface. + + The app ID identifies the general class of applications to which + the surface belongs. The compositor can use this to group multiple + surfaces together, or to determine how to launch a new application. + + For D-Bus activatable applications, the app ID is used as the D-Bus + service name. + + The compositor shell will try to group application surfaces together + by their app ID. As a best practice, it is suggested to select app + ID's that match the basename of the application's .desktop file. + For example, "org.freedesktop.FooViewer" where the .desktop file is + "org.freedesktop.FooViewer.desktop". + + Like other properties, a set_app_id request can be sent after the + xdg_toplevel has been mapped to update the property. + + See the desktop-entry specification [0] for more details on + application identifiers and how they relate to well-known D-Bus + names and .desktop files. + + [0] https://standards.freedesktop.org/desktop-entry-spec/ + + + + + + + Clients implementing client-side decorations might want to show + a context menu when right-clicking on the decorations, giving the + user a menu that they can use to maximize or minimize the window. + + This request asks the compositor to pop up such a window menu at + the given position, relative to the local surface coordinates of + the parent surface. There are no guarantees as to what menu items + the window menu contains, or even if a window menu will be drawn + at all. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. + + + + + + + + + + Start an interactive, user-driven move of the surface. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. The passed + serial is used to determine the type of interactive move (touch, + pointer, etc). + + The server may ignore move requests depending on the state of + the surface (e.g. fullscreen or maximized), or if the passed serial + is no longer valid. + + If triggered, the surface will lose the focus of the device + (wl_pointer, wl_touch, etc) used for the move. It is up to the + compositor to visually indicate that the move is taking place, such as + updating a pointer cursor, during the move. There is no guarantee + that the device focus will return when the move is completed. + + + + + + + + These values are used to indicate which edge of a surface + is being dragged in a resize operation. + + + + + + + + + + + + + + + Start a user-driven, interactive resize of the surface. + + This request must be used in response to some sort of user action + like a button press, key press, or touch down event. The passed + serial is used to determine the type of interactive resize (touch, + pointer, etc). + + The server may ignore resize requests depending on the state of + the surface (e.g. fullscreen or maximized). + + If triggered, the client will receive configure events with the + "resize" state enum value and the expected sizes. See the "resize" + enum value for more details about what is required. The client + must also acknowledge configure events using "ack_configure". After + the resize is completed, the client will receive another "configure" + event without the resize state. + + If triggered, the surface also will lose the focus of the device + (wl_pointer, wl_touch, etc) used for the resize. It is up to the + compositor to visually indicate that the resize is taking place, + such as updating a pointer cursor, during the resize. There is no + guarantee that the device focus will return when the resize is + completed. + + The edges parameter specifies how the surface should be resized, and + is one of the values of the resize_edge enum. Values not matching + a variant of the enum will cause the invalid_resize_edge protocol error. + The compositor may use this information to update the surface position + for example when dragging the top left corner. The compositor may also + use this information to adapt its behavior, e.g. choose an appropriate + cursor image. + + + + + + + + + The different state values used on the surface. This is designed for + state values like maximized, fullscreen. It is paired with the + configure event to ensure that both the client and the compositor + setting the state can be synchronized. + + States set in this way are double-buffered. They will get applied on + the next commit. + + + + The surface is maximized. The window geometry specified in the configure + event must be obeyed by the client, or the xdg_wm_base.invalid_surface_state + error is raised. + + The client should draw without shadow or other + decoration outside of the window geometry. + + + + + The surface is fullscreen. The window geometry specified in the + configure event is a maximum; the client cannot resize beyond it. For + a surface to cover the whole fullscreened area, the geometry + dimensions must be obeyed by the client. For more details, see + xdg_toplevel.set_fullscreen. + + + + + The surface is being resized. The window geometry specified in the + configure event is a maximum; the client cannot resize beyond it. + Clients that have aspect ratio or cell sizing configuration can use + a smaller size, however. + + + + + Client window decorations should be painted as if the window is + active. Do not assume this means that the window actually has + keyboard or pointer focus. + + + + + The window is currently in a tiled layout and the left edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the right edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the top edge is + considered to be adjacent to another part of the tiling grid. + + + + + The window is currently in a tiled layout and the bottom edge is + considered to be adjacent to another part of the tiling grid. + + + + + The surface is currently not ordinarily being repainted; for + example because its content is occluded by another window, or its + outputs are switched off due to screen locking. + + + + + + + Set a maximum size for the window. + + The client can specify a maximum size so that the compositor does + not try to configure the window beyond this size. + + The width and height arguments are in window geometry coordinates. + See xdg_surface.set_window_geometry. + + Values set in this way are double-buffered. They will get applied + on the next commit. + + The compositor can use this information to allow or disallow + different states like maximize or fullscreen and draw accurate + animations. + + Similarly, a tiling window manager may use this information to + place and resize client windows in a more effective way. + + The client should not rely on the compositor to obey the maximum + size. The compositor may decide to ignore the values set by the + client and request a larger size. + + If never set, or a value of zero in the request, means that the + client has no expected maximum size in the given dimension. + As a result, a client wishing to reset the maximum size + to an unspecified state can use zero for width and height in the + request. + + Requesting a maximum size to be smaller than the minimum size of + a surface is illegal and will result in an invalid_size error. + + The width and height must be greater than or equal to zero. Using + strictly negative values for width or height will result in a + invalid_size error. + + + + + + + + Set a minimum size for the window. + + The client can specify a minimum size so that the compositor does + not try to configure the window below this size. + + The width and height arguments are in window geometry coordinates. + See xdg_surface.set_window_geometry. + + Values set in this way are double-buffered. They will get applied + on the next commit. + + The compositor can use this information to allow or disallow + different states like maximize or fullscreen and draw accurate + animations. + + Similarly, a tiling window manager may use this information to + place and resize client windows in a more effective way. + + The client should not rely on the compositor to obey the minimum + size. The compositor may decide to ignore the values set by the + client and request a smaller size. + + If never set, or a value of zero in the request, means that the + client has no expected minimum size in the given dimension. + As a result, a client wishing to reset the minimum size + to an unspecified state can use zero for width and height in the + request. + + Requesting a minimum size to be larger than the maximum size of + a surface is illegal and will result in an invalid_size error. + + The width and height must be greater than or equal to zero. Using + strictly negative values for width and height will result in a + invalid_size error. + + + + + + + + Maximize the surface. + + After requesting that the surface should be maximized, the compositor + will respond by emitting a configure event. Whether this configure + actually sets the window maximized is subject to compositor policies. + The client must then update its content, drawing in the configured + state. The client must also acknowledge the configure when committing + the new content (see ack_configure). + + It is up to the compositor to decide how and where to maximize the + surface, for example which output and what region of the screen should + be used. + + If the surface was already maximized, the compositor will still emit + a configure event with the "maximized" state. + + If the surface is in a fullscreen state, this request has no direct + effect. It may alter the state the surface is returned to when + unmaximized unless overridden by the compositor. + + + + + + Unmaximize the surface. + + After requesting that the surface should be unmaximized, the compositor + will respond by emitting a configure event. Whether this actually + un-maximizes the window is subject to compositor policies. + If available and applicable, the compositor will include the window + geometry dimensions the window had prior to being maximized in the + configure event. The client must then update its content, drawing it in + the configured state. The client must also acknowledge the configure + when committing the new content (see ack_configure). + + It is up to the compositor to position the surface after it was + unmaximized; usually the position the surface had before maximizing, if + applicable. + + If the surface was already not maximized, the compositor will still + emit a configure event without the "maximized" state. + + If the surface is in a fullscreen state, this request has no direct + effect. It may alter the state the surface is returned to when + unmaximized unless overridden by the compositor. + + + + + + Make the surface fullscreen. + + After requesting that the surface should be fullscreened, the + compositor will respond by emitting a configure event. Whether the + client is actually put into a fullscreen state is subject to compositor + policies. The client must also acknowledge the configure when + committing the new content (see ack_configure). + + The output passed by the request indicates the client's preference as + to which display it should be set fullscreen on. If this value is NULL, + it's up to the compositor to choose which display will be used to map + this surface. + + If the surface doesn't cover the whole output, the compositor will + position the surface in the center of the output and compensate with + with border fill covering the rest of the output. The content of the + border fill is undefined, but should be assumed to be in some way that + attempts to blend into the surrounding area (e.g. solid black). + + If the fullscreened surface is not opaque, the compositor must make + sure that other screen content not part of the same surface tree (made + up of subsurfaces, popups or similarly coupled surfaces) are not + visible below the fullscreened surface. + + + + + + + Make the surface no longer fullscreen. + + After requesting that the surface should be unfullscreened, the + compositor will respond by emitting a configure event. + Whether this actually removes the fullscreen state of the client is + subject to compositor policies. + + Making a surface unfullscreen sets states for the surface based on the following: + * the state(s) it may have had before becoming fullscreen + * any state(s) decided by the compositor + * any state(s) requested by the client while the surface was fullscreen + + The compositor may include the previous window geometry dimensions in + the configure event, if applicable. + + The client must also acknowledge the configure when committing the new + content (see ack_configure). + + + + + + Request that the compositor minimize your surface. There is no + way to know if the surface is currently minimized, nor is there + any way to unset minimization on this surface. + + If you are looking to throttle redrawing when minimized, please + instead use the wl_surface.frame event for this, as this will + also work with live previews on windows in Alt-Tab, Expose or + similar compositor features. + + + + + + This configure event asks the client to resize its toplevel surface or + to change its state. The configured state should not be applied + immediately. See xdg_surface.configure for details. + + The width and height arguments specify a hint to the window + about how its surface should be resized in window geometry + coordinates. See set_window_geometry. + + If the width or height arguments are zero, it means the client + should decide its own window dimension. This may happen when the + compositor needs to configure the state of the surface but doesn't + have any information about any previous or expected dimension. + + The states listed in the event specify how the width/height + arguments should be interpreted, and possibly how it should be + drawn. + + Clients must send an ack_configure in response to this event. See + xdg_surface.configure and xdg_surface.ack_configure for details. + + + + + + + + + The close event is sent by the compositor when the user + wants the surface to be closed. This should be equivalent to + the user clicking the close button in client-side decorations, + if your application has any. + + This is only a request that the user intends to close the + window. The client may choose to ignore this request, or show + a dialog to ask the user to save their data, etc. + + + + + + + + The configure_bounds event may be sent prior to a xdg_toplevel.configure + event to communicate the bounds a window geometry size is recommended + to constrain to. + + The passed width and height are in surface coordinate space. If width + and height are 0, it means bounds is unknown and equivalent to as if no + configure_bounds event was ever sent for this surface. + + The bounds can for example correspond to the size of a monitor excluding + any panels or other shell components, so that a surface isn't created in + a way that it cannot fit. + + The bounds may change at any point, and in such a case, a new + xdg_toplevel.configure_bounds will be sent, followed by + xdg_toplevel.configure and xdg_surface.configure. + + + + + + + + + + + + + + + + + This event advertises the capabilities supported by the compositor. If + a capability isn't supported, clients should hide or disable the UI + elements that expose this functionality. For instance, if the + compositor doesn't advertise support for minimized toplevels, a button + triggering the set_minimized request should not be displayed. + + The compositor will ignore requests it doesn't support. For instance, + a compositor which doesn't advertise support for minimized will ignore + set_minimized requests. + + Compositors must send this event once before the first + xdg_surface.configure event. When the capabilities change, compositors + must send this event again and then send an xdg_surface.configure + event. + + The configured state should not be applied immediately. See + xdg_surface.configure for details. + + The capabilities are sent as an array of 32-bit unsigned integers in + native endianness. + + + + + + + + A popup surface is a short-lived, temporary surface. It can be used to + implement for example menus, popovers, tooltips and other similar user + interface concepts. + + A popup can be made to take an explicit grab. See xdg_popup.grab for + details. + + When the popup is dismissed, a popup_done event will be sent out, and at + the same time the surface will be unmapped. See the xdg_popup.popup_done + event for details. + + Explicitly destroying the xdg_popup object will also dismiss the popup and + unmap the surface. Clients that want to dismiss the popup when another + surface of their own is clicked should dismiss the popup using the destroy + request. + + A newly created xdg_popup will be stacked on top of all previously created + xdg_popup surfaces associated with the same xdg_toplevel. + + The parent of an xdg_popup must be mapped (see the xdg_surface + description) before the xdg_popup itself. + + The client must call wl_surface.commit on the corresponding wl_surface + for the xdg_popup state to take effect. + + + + + + + + + This destroys the popup. Explicitly destroying the xdg_popup + object will also dismiss the popup, and unmap the surface. + + If this xdg_popup is not the "topmost" popup, the + xdg_wm_base.not_the_topmost_popup protocol error will be sent. + + + + + + This request makes the created popup take an explicit grab. An explicit + grab will be dismissed when the user dismisses the popup, or when the + client destroys the xdg_popup. This can be done by the user clicking + outside the surface, using the keyboard, or even locking the screen + through closing the lid or a timeout. + + If the compositor denies the grab, the popup will be immediately + dismissed. + + This request must be used in response to some sort of user action like a + button press, key press, or touch down event. The serial number of the + event should be passed as 'serial'. + + The parent of a grabbing popup must either be an xdg_toplevel surface or + another xdg_popup with an explicit grab. If the parent is another + xdg_popup it means that the popups are nested, with this popup now being + the topmost popup. + + Nested popups must be destroyed in the reverse order they were created + in, e.g. the only popup you are allowed to destroy at all times is the + topmost one. + + When compositors choose to dismiss a popup, they may dismiss every + nested grabbing popup as well. When a compositor dismisses popups, it + will follow the same dismissing order as required from the client. + + If the topmost grabbing popup is destroyed, the grab will be returned to + the parent of the popup, if that parent previously had an explicit grab. + + If the parent is a grabbing popup which has already been dismissed, this + popup will be immediately dismissed. If the parent is a popup that did + not take an explicit grab, an error will be raised. + + During a popup grab, the client owning the grab will receive pointer + and touch events for all their surfaces as normal (similar to an + "owner-events" grab in X11 parlance), while the top most grabbing popup + will always have keyboard focus. + + + + + + + + This event asks the popup surface to configure itself given the + configuration. The configured state should not be applied immediately. + See xdg_surface.configure for details. + + The x and y arguments represent the position the popup was placed at + given the xdg_positioner rule, relative to the upper left corner of the + window geometry of the parent surface. + + For version 2 or older, the configure event for an xdg_popup is only + ever sent once for the initial configuration. Starting with version 3, + it may be sent again if the popup is setup with an xdg_positioner with + set_reactive requested, or in response to xdg_popup.reposition requests. + + + + + + + + + + The popup_done event is sent out when a popup is dismissed by the + compositor. The client should destroy the xdg_popup object at this + point. + + + + + + + + Reposition an already-mapped popup. The popup will be placed given the + details in the passed xdg_positioner object, and a + xdg_popup.repositioned followed by xdg_popup.configure and + xdg_surface.configure will be emitted in response. Any parameters set + by the previous positioner will be discarded. + + The passed token will be sent in the corresponding + xdg_popup.repositioned event. The new popup position will not take + effect until the corresponding configure event is acknowledged by the + client. See xdg_popup.repositioned for details. The token itself is + opaque, and has no other special meaning. + + If multiple reposition requests are sent, the compositor may skip all + but the last one. + + If the popup is repositioned in response to a configure event for its + parent, the client should send an xdg_positioner.set_parent_configure + and possibly an xdg_positioner.set_parent_size request to allow the + compositor to properly constrain the popup. + + If the popup is repositioned together with a parent that is being + resized, but not in response to a configure event, the client should + send an xdg_positioner.set_parent_size request. + + + + + + + + The repositioned event is sent as part of a popup configuration + sequence, together with xdg_popup.configure and lastly + xdg_surface.configure to notify the completion of a reposition request. + + The repositioned event is to notify about the completion of a + xdg_popup.reposition request. The token argument is the token passed + in the xdg_popup.reposition request. + + Immediately after this event is emitted, xdg_popup.configure and + xdg_surface.configure will be sent with the updated size and position, + as well as a new configure serial. + + The client should optionally update the content of the popup, but must + acknowledge the new popup configuration for the new position to take + effect. See xdg_surface.ack_configure for details. + + + + + + diff --git a/src/external/glfw/include/GLFW/glfw3.h b/src/external/glfw/include/GLFW/glfw3.h index 268754657..9c55ac9d9 100644 --- a/src/external/glfw/include/GLFW/glfw3.h +++ b/src/external/glfw/include/GLFW/glfw3.h @@ -361,10 +361,15 @@ extern "C" { #define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN) #define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP) #define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN) + +/*! @ingroup input + */ +#define GLFW_KEY_UNKNOWN -1 + /*! @} */ -/*! @defgroup keys Keyboard keys - * @brief Keyboard key IDs. +/*! @defgroup keys Keyboard key tokens + * @brief Keyboard key tokens. * * See [key input](@ref input_key) for how these are used. * @@ -387,9 +392,6 @@ extern "C" { * @{ */ -/* The unknown key */ -#define GLFW_KEY_UNKNOWN -1 - /* Printable keys */ #define GLFW_KEY_SPACE 32 #define GLFW_KEY_APOSTROPHE 39 /* ' */ @@ -825,11 +827,11 @@ extern "C" { #define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D /*! @brief Platform unavailable or no matching platform was found. * - * If emitted during initialization, no matching platform was found. If @ref - * GLFW_PLATFORM is set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of the - * platforms supported by this library binary, except for the Null platform. If set to - * a specific platform, it is either not supported by this library binary or GLFW was not - * able to detect it. + * If emitted during initialization, no matching platform was found. If the @ref + * GLFW_PLATFORM init hint was set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of + * the platforms supported by this library binary, except for the Null platform. If the + * init hint was set to a specific platform, it is either not supported by this library + * binary or GLFW was not able to detect it. * * If emitted by a native access function, GLFW was initialized for a different platform * than the function is for. @@ -1096,8 +1098,15 @@ extern "C" { * [window hint](@ref GLFW_SCALE_TO_MONITOR). */ #define GLFW_SCALE_TO_MONITOR 0x0002200C -/*! @brief macOS specific - * [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint). +/*! @brief Window framebuffer scaling + * [window hint](@ref GLFW_SCALE_FRAMEBUFFER_hint). + */ +#define GLFW_SCALE_FRAMEBUFFER 0x0002200D +/*! @brief Legacy name for compatibility. + * + * This is an alias for the + * [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint) window hint for + * compatibility with earlier versions. */ #define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001 /*! @brief macOS specific @@ -1117,6 +1126,9 @@ extern "C" { */ #define GLFW_X11_INSTANCE_NAME 0x00024002 #define GLFW_WIN32_KEYBOARD_MENU 0x00025001 +/*! @brief Win32 specific [window hint](@ref GLFW_WIN32_SHOWDEFAULT_hint). + */ +#define GLFW_WIN32_SHOWDEFAULT 0x00025002 /*! @brief Wayland specific * [window hint](@ref GLFW_WAYLAND_APP_ID_hint). * @@ -1164,6 +1176,9 @@ extern "C" { #define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007 #define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008 +#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001 +#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002 + #define GLFW_ANY_POSITION 0x80000000 /*! @defgroup shapes Standard cursor shapes @@ -1215,11 +1230,11 @@ extern "C" { * @note @macos This shape is provided by a private system API and may fail * with @ref GLFW_CURSOR_UNAVAILABLE in the future. * - * @note @x11 This shape is provided by a newer standard not supported by all - * cursor themes. - * * @note @wayland This shape is provided by a newer standard not supported by * all cursor themes. + * + * @note @x11 This shape is provided by a newer standard not supported by all + * cursor themes. */ #define GLFW_RESIZE_NWSE_CURSOR 0x00036007 /*! @brief The top-right to bottom-left diagonal resize/move arrow shape. @@ -1230,11 +1245,11 @@ extern "C" { * @note @macos This shape is provided by a private system API and may fail * with @ref GLFW_CURSOR_UNAVAILABLE in the future. * - * @note @x11 This shape is provided by a newer standard not supported by all - * cursor themes. - * * @note @wayland This shape is provided by a newer standard not supported by * all cursor themes. + * + * @note @x11 This shape is provided by a newer standard not supported by all + * cursor themes. */ #define GLFW_RESIZE_NESW_CURSOR 0x00036008 /*! @brief The omni-directional resize/move cursor shape. @@ -1248,11 +1263,11 @@ extern "C" { * The operation-not-allowed shape. This is usually a circle with a diagonal * line through it. * - * @note @x11 This shape is provided by a newer standard not supported by all - * cursor themes. - * * @note @wayland This shape is provided by a newer standard not supported by * all cursor themes. + * + * @note @x11 This shape is provided by a newer standard not supported by all + * cursor themes. */ #define GLFW_NOT_ALLOWED_CURSOR 0x0003600A /*! @brief Legacy name for compatibility. @@ -1307,6 +1322,11 @@ extern "C" { * X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint). */ #define GLFW_X11_XCB_VULKAN_SURFACE 0x00052001 +/*! @brief Wayland specific init hint. + * + * Wayland specific [init hint](@ref GLFW_WAYLAND_LIBDECOR_hint). + */ +#define GLFW_WAYLAND_LIBDECOR 0x00053001 /*! @} */ /*! @addtogroup init @@ -1406,16 +1426,25 @@ typedef struct GLFWcursor GLFWcursor; * or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation * failures gracefully yet. * - * This function may be called during @ref glfwInit but before the library is - * flagged as initialized, as well as during @ref glfwTerminate after the - * library is no longer flagged as initialized. + * This function must support being called during @ref glfwInit but before the library is + * flagged as initialized, as well as during @ref glfwTerminate after the library is no + * longer flagged as initialized. * - * Any memory allocated by this function will be deallocated during library - * termination or earlier. + * Any memory allocated via this function will be deallocated via the same allocator + * during library termination or earlier. + * + * Any memory allocated via this function must be suitably aligned for any object type. + * If you are using C99 or earlier, this alignment is platform-dependent but will be the + * same as what `malloc` provides. If you are using C11 or later, this is the value of + * `alignof(max_align_t)`. * * The size will always be greater than zero. Allocations of size zero are filtered out * before reaching the custom allocator. * + * If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY. + * + * This function must not call any GLFW function. + * * @param[in] size The minimum size, in bytes, of the memory block. * @param[in] user The user-defined pointer from the allocator. * @return The address of the newly allocated memory block, or `NULL` if an @@ -1426,7 +1455,8 @@ typedef struct GLFWcursor GLFWcursor; * * @reentrancy This function should not call any GLFW function. * - * @thread_safety This function may be called from any thread that calls GLFW functions. + * @thread_safety This function must support being called from any thread that calls GLFW + * functions. * * @sa @ref init_allocator * @sa @ref GLFWallocator @@ -1449,16 +1479,26 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user); * `NULL` if allocation failed. Note that not all parts of GLFW handle allocation * failures gracefully yet. * - * This function may be called during @ref glfwInit but before the library is - * flagged as initialized, as well as during @ref glfwTerminate after the - * library is no longer flagged as initialized. + * This function must support being called during @ref glfwInit but before the library is + * flagged as initialized, as well as during @ref glfwTerminate after the library is no + * longer flagged as initialized. * - * Any memory allocated by this function will be deallocated during library - * termination or earlier. + * Any memory allocated via this function will be deallocated via the same allocator + * during library termination or earlier. + * + * Any memory allocated via this function must be suitably aligned for any object type. + * If you are using C99 or earlier, this alignment is platform-dependent but will be the + * same as what `realloc` provides. If you are using C11 or later, this is the value of + * `alignof(max_align_t)`. * * The block address will never be `NULL` and the size will always be greater than zero. - * Reallocations of a block to size zero are converted into deallocations. Reallocations - * of `NULL` to a non-zero size are converted into regular allocations. + * Reallocations of a block to size zero are converted into deallocations before reaching + * the custom allocator. Reallocations of `NULL` to a non-zero size are converted into + * regular allocations before reaching the custom allocator. + * + * If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY. + * + * This function must not call any GLFW function. * * @param[in] block The address of the memory block to reallocate. * @param[in] size The new minimum size, in bytes, of the memory block. @@ -1471,7 +1511,8 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user); * * @reentrancy This function should not call any GLFW function. * - * @thread_safety This function may be called from any thread that calls GLFW functions. + * @thread_safety This function must support being called from any thread that calls GLFW + * functions. * * @sa @ref init_allocator * @sa @ref GLFWallocator @@ -1493,13 +1534,17 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user); * This function may deallocate the specified memory block. This memory block * will have been allocated with the same allocator. * - * This function may be called during @ref glfwInit but before the library is - * flagged as initialized, as well as during @ref glfwTerminate after the - * library is no longer flagged as initialized. + * This function must support being called during @ref glfwInit but before the library is + * flagged as initialized, as well as during @ref glfwTerminate after the library is no + * longer flagged as initialized. * * The block address will never be `NULL`. Deallocations of `NULL` are filtered out * before reaching the custom allocator. * + * If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY. + * + * This function must not call any GLFW function. + * * @param[in] block The address of the memory block to deallocate. * @param[in] user The user-defined pointer from the allocator. * @@ -1508,7 +1553,8 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user); * * @reentrancy This function should not call any GLFW function. * - * @thread_safety This function may be called from any thread that calls GLFW functions. + * @thread_safety This function must support being called from any thread that calls GLFW + * functions. * * @sa @ref init_allocator * @sa @ref GLFWallocator @@ -2076,7 +2122,10 @@ typedef struct GLFWgamepadstate float axes[6]; } GLFWgamepadstate; -/*! @brief +/*! @brief Custom heap memory allocator. + * + * This describes a custom heap memory allocator for GLFW. To set an allocator, pass it + * to @ref glfwInitAllocator before initializing the library. * * @sa @ref init_allocator * @sa @ref glfwInitAllocator @@ -2087,9 +2136,21 @@ typedef struct GLFWgamepadstate */ typedef struct GLFWallocator { + /*! The memory allocation function. See @ref GLFWallocatefun for details about + * allocation function. + */ GLFWallocatefun allocate; + /*! The memory reallocation function. See @ref GLFWreallocatefun for details about + * reallocation function. + */ GLFWreallocatefun reallocate; + /*! The memory deallocation function. See @ref GLFWdeallocatefun for details about + * deallocation function. + */ GLFWdeallocatefun deallocate; + /*! The user pointer for this custom allocator. This value will be passed to the + * allocator functions. + */ void* user; } GLFWallocator; @@ -2134,6 +2195,13 @@ typedef struct GLFWallocator * and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init * hint. * + * @remark __Wayland, X11:__ If the library was compiled with support for both + * Wayland and X11, and the @ref GLFW_PLATFORM init hint is set to + * `GLFW_ANY_PLATFORM`, the `XDG_SESSION_TYPE` environment variable affects + * which platform is picked. If the environment variable is not set, or is set + * to something other than `wayland` or `x11`, the regular detection mechanism + * will be used instead. + * * @remark @x11 This function will set the `LC_CTYPE` category of the * application locale according to the current environment if that category is * still "C". This is because the "C" locale breaks Unicode text input. @@ -2222,8 +2290,12 @@ GLFWAPI void glfwInitHint(int hint, int value); * To use the default allocator, call this function with a `NULL` argument. * * If you specify an allocator struct, every member must be a valid function - * pointer. If any member is `NULL`, this function emits @ref - * GLFW_INVALID_VALUE and the init allocator is unchanged. + * pointer. If any member is `NULL`, this function will emit @ref + * GLFW_INVALID_VALUE and the init allocator will be unchanged. + * + * The functions in the allocator must fulfil a number of requirements. See the + * documentation for @ref GLFWallocatefun, @ref GLFWreallocatefun and @ref + * GLFWdeallocatefun for details. * * @param[in] allocator The allocator to use at the next initialization, or * `NULL` to use the default one. @@ -2590,9 +2662,10 @@ GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor* monitor, int* xpos, int* ypos, * specified monitor. * * Some platforms do not provide accurate monitor size information, either - * because the monitor - * [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data) - * data is incorrect or because the driver does not report it accurately. + * because the monitor [EDID][] data is incorrect or because the driver does + * not report it accurately. + * + * [EDID]: https://en.wikipedia.org/wiki/Extended_display_identification_data * * Any or all of the size arguments may be `NULL`. If an error occurs, all * non-`NULL` size arguments will be set to zero. @@ -2639,6 +2712,9 @@ GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * + * @remark @wayland Fractional scaling information is not yet available for + * monitors, so this function only returns integer content scales. + * * @thread_safety This function must only be called from the main thread. * * @sa @ref monitor_scale @@ -2835,11 +2911,11 @@ GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor); * @param[in] monitor The monitor whose gamma ramp to set. * @param[in] gamma The desired exponent. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_INVALID_VALUE, + * @ref GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks). * * @remark @wayland Gamma handling is a privileged protocol, this function - * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR. + * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE. * * @thread_safety This function must only be called from the main thread. * @@ -2859,11 +2935,11 @@ GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma); * @return The current gamma ramp, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR + * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks). * * @remark @wayland Gamma handling is a privileged protocol, this function - * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR while + * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE while * returning `NULL`. * * @pointer_lifetime The returned structure and its arrays are allocated and @@ -2898,8 +2974,8 @@ GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor); * @param[in] monitor The monitor whose gamma ramp to set. * @param[in] ramp The gamma ramp to use. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR + * and @ref GLFW_FEATURE_UNAVAILABLE (see remarks). * * @remark The size of the specified gamma ramp should match the size of the * current ramp for that monitor. @@ -2907,7 +2983,7 @@ GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor); * @remark @win32 The gamma ramp size must be 256. * * @remark @wayland Gamma handling is a privileged protocol, this function - * will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR. + * will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE. * * @pointer_lifetime The specified gamma ramp is copied before this function * returns. @@ -3079,8 +3155,8 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value); * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref - * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref - * GLFW_PLATFORM_ERROR. + * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE, @ref + * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR. * * @remark @win32 Window creation will fail if the Microsoft GDI software * OpenGL implementation is the only one available. @@ -3102,23 +3178,35 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value); * @remark @macos The GLFW window has no icon, as it is not a document * window, but the dock icon will be the same as the application bundle's icon. * For more information on bundles, see the - * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/) - * in the Mac Developer Library. + * [Bundle Programming Guide][bundle-guide] in the Mac Developer Library. + * + * [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/ * * @remark @macos On OS X 10.10 and later the window frame will not be rendered * at full resolution on Retina displays unless the - * [GLFW_COCOA_RETINA_FRAMEBUFFER](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint) + * [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint) * hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the * application bundle's `Info.plist`. For more information, see - * [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html) - * in the Mac Developer Library. The GLFW test and example programs use - * a custom `Info.plist` template for this, which can be found as - * `CMake/Info.plist.in` in the source tree. + * [High Resolution Guidelines for OS X][hidpi-guide] in the Mac Developer + * Library. The GLFW test and example programs use a custom `Info.plist` + * template for this, which can be found as `CMake/Info.plist.in` in the source + * tree. + * + * [hidpi-guide]: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html * * @remark @macos When activating frame autosaving with * [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified * window size and position may be overridden by previously saved values. * + * @remark @wayland GLFW uses [libdecor][] where available to create its window + * decorations. This in turn uses server-side XDG decorations where available + * and provides high quality client-side decorations on compositors like GNOME. + * If both XDG decorations and libdecor are unavailable, GLFW falls back to + * a very simple set of window decorations that only support moving, resizing + * and the window manager's right-click menu. + * + * [libdecor]: https://gitlab.freedesktop.org/libdecor/libdecor + * * @remark @x11 Some window managers will not respect the placement of * initially hidden windows. * @@ -3135,20 +3223,6 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value); * [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to * override this. * - * @remark @wayland Compositors should implement the xdg-decoration protocol - * for GLFW to decorate the window properly. If this protocol isn't - * supported, or if the compositor prefers client-side decorations, a very - * simple fallback frame will be drawn using the wp_viewporter protocol. A - * compositor can still emit close, maximize or fullscreen events, using for - * instance a keybind mechanism. If neither of these protocols is supported, - * the window won't be decorated. - * - * @remark @wayland A full screen window will not attempt to change the mode, - * no matter what the requested size or refresh rate. - * - * @remark @wayland Screensaver inhibition requires the idle-inhibit protocol - * to be implemented in the user's compositor. - * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_creation @@ -3231,6 +3305,38 @@ GLFWAPI int glfwWindowShouldClose(GLFWwindow* window); */ GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value); +/*! @brief Returns the title of the specified window. + * + * This function returns the window title, encoded as UTF-8, of the specified + * window. This is the title set previously by @ref glfwCreateWindow + * or @ref glfwSetWindowTitle. + * + * @param[in] window The window to query. + * @return The UTF-8 encoded window title, or `NULL` if an + * [error](@ref error_handling) occurred. + * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * + * @remark The returned title is currently a copy of the title last set by @ref + * glfwCreateWindow or @ref glfwSetWindowTitle. It does not include any + * additional text which may be appended by the platform or another program. + * + * @pointer_lifetime The returned string is allocated and freed by GLFW. You + * should not free it yourself. It is valid until the next call to @ref + * glfwGetWindowTitle or @ref glfwSetWindowTitle, or until the library is + * terminated. + * + * @thread_safety This function must only be called from the main thread. + * + * @sa @ref window_title + * @sa @ref glfwSetWindowTitle + * + * @since Added in version 3.4. + * + * @ingroup window + */ +GLFWAPI const char* glfwGetWindowTitle(GLFWwindow* window); + /*! @brief Sets the title of the specified window. * * This function sets the window title, encoded as UTF-8, of the specified @@ -3248,6 +3354,7 @@ GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value); * @thread_safety This function must only be called from the main thread. * * @sa @ref window_title + * @sa @ref glfwGetWindowTitle * * @since Added in version 1.0. * @glfw3 Added window handle parameter. @@ -3287,8 +3394,9 @@ GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title); * @remark @macos Regular windows do not have icons on macOS. This function * will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as * the application bundle's icon. For more information on bundles, see the - * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/) - * in the Mac Developer Library. + * [Bundle Programming Guide][bundle-guide] in the Mac Developer Library. + * + * [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/ * * @remark @wayland There is no existing protocol to change an icon, the * window will thus inherit the one defined in the application's desktop file. @@ -3512,9 +3620,6 @@ GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * - * @remark @wayland A full screen window will not attempt to change the mode, - * no matter what the requested size. - * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_size @@ -3846,11 +3951,11 @@ GLFWAPI void glfwHideWindow(GLFWwindow* window); * * @param[in] window The window to give input focus. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks). + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_ERROR. * - * @remark @wayland It is not possible for an application to set the input - * focus. This function will emit @ref GLFW_FEATURE_UNAVAILABLE. + * @remark @wayland The compositor will likely ignore focus requests unless + * another window created by the same application already has input focus. * * @thread_safety This function must only be called from the main thread. * @@ -3955,9 +4060,6 @@ GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window); * @remark @wayland The desired window position is ignored, as there is no way * for an application to set this property. * - * @remark @wayland Setting the window to full screen will not attempt to - * change the mode, no matter what the requested size or refresh rate. - * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_monitor @@ -4030,11 +4132,15 @@ GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib); * @param[in] value `GLFW_TRUE` or `GLFW_FALSE`. * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. + * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref + * GLFW_FEATURE_UNAVAILABLE (see remarks). * * @remark Calling @ref glfwGetWindowAttrib will always return the latest * value, even if that value is ignored by the current mode of the window. * + * @remark @wayland The [GLFW_FLOATING](@ref GLFW_FLOATING_attrib) window attribute is + * not supported. Setting this will emit @ref GLFW_FEATURE_UNAVAILABLE. + * * @thread_safety This function must only be called from the main thread. * * @sa @ref window_attribs @@ -4709,8 +4815,8 @@ GLFWAPI int glfwRawMouseMotionSupported(void); * @param[in] scancode The scancode of the key to query. * @return The UTF-8 encoded, layout-specific name of the key, or `NULL`. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_INVALID_VALUE, @ref GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. * * @remark The contents of the returned string may change when a keyboard * layout change event is received. @@ -4732,15 +4838,18 @@ GLFWAPI const char* glfwGetKeyName(int key, int scancode); * * This function returns the platform-specific scancode of the specified key. * - * If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this - * method will return `-1`. + * If the specified [key token](@ref keys) corresponds to a physical key not + * supported on the current platform then this method will return `-1`. + * Calling this function with anything other than a key token will return `-1` + * and generate a @ref GLFW_INVALID_ENUM error. * - * @param[in] key Any [named key](@ref keys). - * @return The platform-specific scancode for the key, or `-1` if an - * [error](@ref error_handling) occurred. + * @param[in] key Any [key token](@ref keys). + * @return The platform-specific scancode for the key, or `-1` if the key is + * not supported on the current platform or an [error](@ref error_handling) + * occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_INVALID_ENUM. * * @thread_safety This function may be called from any thread. * @@ -4881,11 +4990,11 @@ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); * @param[in] ypos The desired y-coordinate, relative to the top edge of the * content area. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks). * * @remark @wayland This function will only work when the cursor mode is - * `GLFW_CURSOR_DISABLED`, otherwise it will do nothing. + * `GLFW_CURSOR_DISABLED`, otherwise it will emit @ref GLFW_FEATURE_UNAVAILABLE. * * @thread_safety This function must only be called from the main thread. * @@ -5049,9 +5158,9 @@ GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor); * [character callback](@ref glfwSetCharCallback) instead. * * When a window loses input focus, it will generate synthetic key release - * events for all pressed keys. You can tell these events from user-generated - * events by the fact that the synthetic ones are generated after the focus - * loss event has been processed, i.e. after the + * events for all pressed keys with associated key tokens. You can tell these + * events from user-generated events by the fact that the synthetic ones are + * generated after the focus loss event has been processed, i.e. after the * [window focus callback](@ref glfwSetWindowFocusCallback) has been called. * * The scancode of a key is specific to that platform or sometimes even to that @@ -5332,8 +5441,6 @@ GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun ca * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. * - * @remark @wayland File drop is currently unimplemented. - * * @thread_safety This function must only be called from the main thread. * * @sa @ref path_drop @@ -5800,6 +5907,11 @@ GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref * GLFW_PLATFORM_ERROR. * + * @remark @win32 The clipboard on Windows has a single global lock for reading and + * writing. GLFW tries to acquire it a few times, which is almost always enough. If it + * cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns. + * It is safe to try this multiple times. + * * @pointer_lifetime The specified string is copied before this function * returns. * @@ -5828,6 +5940,11 @@ GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string); * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref * GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. * + * @remark @win32 The clipboard on Windows has a single global lock for reading and + * writing. GLFW tries to acquire it a few times, which is almost always enough. If it + * cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns. + * It is safe to try this multiple times. + * * @pointer_lifetime The returned string is allocated and freed by GLFW. You * should not free it yourself. It is valid until the next call to @ref * glfwGetClipboardString or @ref glfwSetClipboardString, or until the library @@ -5950,12 +6067,15 @@ GLFWAPI uint64_t glfwGetTimerFrequency(void); * thread. * * This function makes the OpenGL or OpenGL ES context of the specified window - * current on the calling thread. A context must only be made current on - * a single thread at a time and each thread can have only a single current - * context at a time. + * current on the calling thread. It can also detach the current context from + * the calling thread without making a new one current by passing in `NULL`. * - * When moving a context between threads, you must make it non-current on the - * old thread before making it current on the new one. + * A context must only be made current on a single thread at a time and each + * thread can have only a single current context at a time. Making a context + * current detaches any previously current context on the calling thread. + * + * When moving a context between threads, you must detach it (make it + * non-current) on the old thread before making it current on the new one. * * By default, making a context non-current implicitly forces a pipeline flush. * On machines that support `GL_KHR_context_flush_control`, you can control @@ -5970,6 +6090,10 @@ GLFWAPI uint64_t glfwGetTimerFrequency(void); * @param[in] window The window whose context to make current, or `NULL` to * detach the current context. * + * @remarks If the previously current context was created via a different + * context creation API than the one passed to this function, GLFW will still + * detach the previous one from its API before making the new one current. + * * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR. * diff --git a/src/external/glfw/include/GLFW/glfw3native.h b/src/external/glfw/include/GLFW/glfw3native.h index 171abe36a..92f0d3244 100644 --- a/src/external/glfw/include/GLFW/glfw3native.h +++ b/src/external/glfw/include/GLFW/glfw3native.h @@ -169,7 +169,8 @@ extern "C" { * of the specified monitor, or `NULL` if an [error](@ref error_handling) * occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -186,7 +187,8 @@ GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor); * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -202,7 +204,8 @@ GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor); * @return The `HWND` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @remark The `HDC` associated with the window can be queried with the * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc) @@ -228,8 +231,8 @@ GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window); * @return The `HGLRC` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_PLATFORM_UNAVAILABLE and @ref GLFW_NO_WINDOW_CONTEXT. * * @remark The `HDC` associated with the window can be queried with the * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc) @@ -255,7 +258,8 @@ GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window); * @return The `CGDirectDisplayID` of the specified monitor, or * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -271,7 +275,8 @@ GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor); * @return The `NSWindow` of the specified window, or `nil` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -281,6 +286,23 @@ GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor); * @ingroup native */ GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window); + +/*! @brief Returns the `NSView` of the specified window. + * + * @return The `NSView` of the specified window, or `nil` if an + * [error](@ref error_handling) occurred. + * + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. + * + * @thread_safety This function may be called from any thread. Access is not + * synchronized. + * + * @since Added in version 3.4. + * + * @ingroup native + */ +GLFWAPI id glfwGetCocoaView(GLFWwindow* window); #endif #if defined(GLFW_EXPOSE_NATIVE_NSGL) @@ -289,8 +311,8 @@ GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window); * @return The `NSOpenGLContext` of the specified window, or `nil` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_PLATFORM_UNAVAILABLE and @ref GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -308,7 +330,8 @@ GLFWAPI id glfwGetNSGLContext(GLFWwindow* window); * @return The `Display` used by GLFW, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -324,7 +347,8 @@ GLFWAPI Display* glfwGetX11Display(void); * @return The `RRCrtc` of the specified monitor, or `None` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -340,7 +364,8 @@ GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor); * @return The `RROutput` of the specified monitor, or `None` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -356,7 +381,8 @@ GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor); * @return The `Window` of the specified window, or `None` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -371,8 +397,8 @@ GLFWAPI Window glfwGetX11Window(GLFWwindow* window); * * @param[in] string A UTF-8 encoded string. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_PLATFORM_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The specified string is copied before this function * returns. @@ -397,8 +423,8 @@ GLFWAPI void glfwSetX11SelectionString(const char* string); * @return The contents of the selection as a UTF-8 encoded string, or `NULL` * if an [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_PLATFORM_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. * * @pointer_lifetime The returned string is allocated and freed by GLFW. You * should not free it yourself. It is valid until the next call to @ref @@ -424,8 +450,8 @@ GLFWAPI const char* glfwGetX11SelectionString(void); * @return The `GLXContext` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -441,8 +467,8 @@ GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window); * @return The `GLXWindow` of the specified window, or `None` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref + * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -460,7 +486,8 @@ GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window); * @return The `struct wl_display*` used by GLFW, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -476,7 +503,8 @@ GLFWAPI struct wl_display* glfwGetWaylandDisplay(void); * @return The `struct wl_output*` of the specified monitor, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -492,7 +520,8 @@ GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor); * @return The main `struct wl_surface*` of the specified window, or `NULL` if * an [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_PLATFORM_UNAVAILABLE. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -529,8 +558,8 @@ GLFWAPI EGLDisplay glfwGetEGLDisplay(void); * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -546,8 +575,8 @@ GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window); * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -572,8 +601,8 @@ GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window); * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -596,8 +625,8 @@ GLFWAPI int glfwGetOSMesaColorBuffer(GLFWwindow* window, int* width, int* height * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. @@ -613,8 +642,8 @@ GLFWAPI int glfwGetOSMesaDepthBuffer(GLFWwindow* window, int* width, int* height * @return The `OSMesaContext` of the specified window, or `NULL` if an * [error](@ref error_handling) occurred. * - * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref - * GLFW_NOT_INITIALIZED. + * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref + * GLFW_NO_WINDOW_CONTEXT. * * @thread_safety This function may be called from any thread. Access is not * synchronized. diff --git a/src/external/glfw/src/CMakeLists.txt b/src/external/glfw/src/CMakeLists.txt index 01f191c97..1057a6f98 100644 --- a/src/external/glfw/src/CMakeLists.txt +++ b/src/external/glfw/src/CMakeLists.txt @@ -72,47 +72,38 @@ if (GLFW_BUILD_WAYLAND) endif() find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner) + if (NOT WAYLAND_SCANNER_EXECUTABLE) + message(FATAL_ERROR "Failed to find wayland-scanner") + endif() - include(FindPkgConfig) - pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols>=1.15) - pkg_get_variable(WAYLAND_PROTOCOLS_BASE wayland-protocols pkgdatadir) - pkg_get_variable(WAYLAND_CLIENT_PKGDATADIR wayland-client pkgdatadir) + macro(generate_wayland_protocol protocol_file) + set(protocol_path "${GLFW_SOURCE_DIR}/deps/wayland/${protocol_file}") - macro(wayland_generate protocol_file output_file) - add_custom_command(OUTPUT "${output_file}.h" - COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" client-header "${protocol_file}" "${output_file}.h" - DEPENDS "${protocol_file}" + string(REGEX REPLACE "\\.xml$" "-client-protocol.h" header_file ${protocol_file}) + string(REGEX REPLACE "\\.xml$" "-client-protocol-code.h" code_file ${protocol_file}) + + add_custom_command(OUTPUT ${header_file} + COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" client-header "${protocol_path}" ${header_file} + DEPENDS "${protocol_path}" VERBATIM) - add_custom_command(OUTPUT "${output_file}-code.h" - COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" private-code "${protocol_file}" "${output_file}-code.h" - DEPENDS "${protocol_file}" + add_custom_command(OUTPUT ${code_file} + COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" private-code "${protocol_path}" ${code_file} + DEPENDS "${protocol_path}" VERBATIM) - target_sources(glfw PRIVATE "${output_file}.h" "${output_file}-code.h") + target_sources(glfw PRIVATE ${header_file} ${code_file}) endmacro() - wayland_generate( - "${WAYLAND_CLIENT_PKGDATADIR}/wayland.xml" - "${GLFW_BINARY_DIR}/src/wayland-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml" - "${GLFW_BINARY_DIR}/src/wayland-xdg-shell-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml" - "${GLFW_BINARY_DIR}/src/wayland-xdg-decoration-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/stable/viewporter/viewporter.xml" - "${GLFW_BINARY_DIR}/src/wayland-viewporter-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/unstable/relative-pointer/relative-pointer-unstable-v1.xml" - "${GLFW_BINARY_DIR}/src/wayland-relative-pointer-unstable-v1-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml" - "${GLFW_BINARY_DIR}/src/wayland-pointer-constraints-unstable-v1-client-protocol") - wayland_generate( - "${WAYLAND_PROTOCOLS_BASE}/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml" - "${GLFW_BINARY_DIR}/src/wayland-idle-inhibit-unstable-v1-client-protocol") + generate_wayland_protocol("wayland.xml") + generate_wayland_protocol("viewporter.xml") + generate_wayland_protocol("xdg-shell.xml") + generate_wayland_protocol("idle-inhibit-unstable-v1.xml") + generate_wayland_protocol("pointer-constraints-unstable-v1.xml") + generate_wayland_protocol("relative-pointer-unstable-v1.xml") + generate_wayland_protocol("fractional-scale-v1.xml") + generate_wayland_protocol("xdg-activation-v1.xml") + generate_wayland_protocol("xdg-decoration-unstable-v1.xml") endif() if (WIN32 AND GLFW_BUILD_SHARED_LIBRARY) @@ -126,6 +117,7 @@ if (UNIX AND GLFW_BUILD_SHARED_LIBRARY) else() set(GLFW_LIB_NAME glfw3) endif() +set(GLFW_LIB_NAME_SUFFIX "") set_target_properties(glfw PROPERTIES OUTPUT_NAME ${GLFW_LIB_NAME} @@ -166,6 +158,8 @@ if (GLFW_BUILD_COCOA) endif() if (GLFW_BUILD_WAYLAND) + include(FindPkgConfig) + pkg_check_modules(Wayland REQUIRED wayland-client>=0.2.7 wayland-cursor>=0.2.7 @@ -245,17 +239,6 @@ if (UNIX AND NOT APPLE) endif() endif() -# Make GCC warn about declarations that VS 2010 and 2012 won't accept for all -# source files that VS will build (Clang ignores this because we set -std=c99) -if (CMAKE_C_COMPILER_ID STREQUAL "GNU") - set_source_files_properties(context.c init.c input.c monitor.c platform.c vulkan.c - window.c null_init.c null_joystick.c null_monitor.c - null_window.c win32_init.c win32_joystick.c win32_module.c - win32_monitor.c win32_time.c win32_thread.c win32_window.c - wgl_context.c egl_context.c osmesa_context.c PROPERTIES - COMPILE_FLAGS -Wdeclaration-after-statement) -endif() - if (WIN32) if (GLFW_USE_HYBRID_HPG) target_compile_definitions(glfw PRIVATE _GLFW_USE_HYBRID_HPG) @@ -300,25 +283,9 @@ if (MSVC OR CMAKE_C_SIMULATE_ID STREQUAL "MSVC") target_compile_definitions(glfw PRIVATE _CRT_SECURE_NO_WARNINGS) endif() -# Workaround for VS 2008 not shipping with stdint.h -if (MSVC90) - target_include_directories(glfw PUBLIC "${GLFW_SOURCE_DIR}/deps/vs2008") -endif() - -# Check for the DirectX 9 SDK as it is not included with VS 2008 -if (MSVC90) - include(CheckIncludeFile) - check_include_file(dinput.h DINPUT_H_FOUND) - if (NOT DINPUT_H_FOUND) - message(FATAL_ERROR "DirectX 9 headers not found; install DirectX 9 SDK") - endif() -endif() - # Workaround for -std=c99 on Linux disabling _DEFAULT_SOURCE (POSIX 2008 and more) -if (GLFW_BUILD_X11 OR GLFW_BUILD_WAYLAND) - if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - target_compile_definitions(glfw PRIVATE _DEFAULT_SOURCE) - endif() +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_compile_definitions(glfw PRIVATE _DEFAULT_SOURCE) endif() if (GLFW_BUILD_SHARED_LIBRARY) @@ -337,6 +304,7 @@ if (GLFW_BUILD_SHARED_LIBRARY) # Add a suffix to the import library to avoid naming conflicts set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.lib") endif() + set (GLFW_LIB_NAME_SUFFIX "dll") target_compile_definitions(glfw INTERFACE GLFW_DLL) endif() diff --git a/src/external/glfw/src/cocoa_init.m b/src/external/glfw/src/cocoa_init.m index aa369f9c8..e75a55190 100644 --- a/src/external/glfw/src/cocoa_init.m +++ b/src/external/glfw/src/cocoa_init.m @@ -23,10 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" + +#if defined(_GLFW_COCOA) + #include // For MAXPATHLEN // Needed for _NSGetProgname @@ -492,78 +493,78 @@ GLFWbool _glfwConnectCocoa(int platformID, _GLFWplatform* platform) { const _GLFWplatform cocoa = { - GLFW_PLATFORM_COCOA, - _glfwInitCocoa, - _glfwTerminateCocoa, - _glfwGetCursorPosCocoa, - _glfwSetCursorPosCocoa, - _glfwSetCursorModeCocoa, - _glfwSetRawMouseMotionCocoa, - _glfwRawMouseMotionSupportedCocoa, - _glfwCreateCursorCocoa, - _glfwCreateStandardCursorCocoa, - _glfwDestroyCursorCocoa, - _glfwSetCursorCocoa, - _glfwGetScancodeNameCocoa, - _glfwGetKeyScancodeCocoa, - _glfwSetClipboardStringCocoa, - _glfwGetClipboardStringCocoa, - _glfwInitJoysticksCocoa, - _glfwTerminateJoysticksCocoa, - _glfwPollJoystickCocoa, - _glfwGetMappingNameCocoa, - _glfwUpdateGamepadGUIDCocoa, - _glfwFreeMonitorCocoa, - _glfwGetMonitorPosCocoa, - _glfwGetMonitorContentScaleCocoa, - _glfwGetMonitorWorkareaCocoa, - _glfwGetVideoModesCocoa, - _glfwGetVideoModeCocoa, - _glfwGetGammaRampCocoa, - _glfwSetGammaRampCocoa, - _glfwCreateWindowCocoa, - _glfwDestroyWindowCocoa, - _glfwSetWindowTitleCocoa, - _glfwSetWindowIconCocoa, - _glfwGetWindowPosCocoa, - _glfwSetWindowPosCocoa, - _glfwGetWindowSizeCocoa, - _glfwSetWindowSizeCocoa, - _glfwSetWindowSizeLimitsCocoa, - _glfwSetWindowAspectRatioCocoa, - _glfwGetFramebufferSizeCocoa, - _glfwGetWindowFrameSizeCocoa, - _glfwGetWindowContentScaleCocoa, - _glfwIconifyWindowCocoa, - _glfwRestoreWindowCocoa, - _glfwMaximizeWindowCocoa, - _glfwShowWindowCocoa, - _glfwHideWindowCocoa, - _glfwRequestWindowAttentionCocoa, - _glfwFocusWindowCocoa, - _glfwSetWindowMonitorCocoa, - _glfwWindowFocusedCocoa, - _glfwWindowIconifiedCocoa, - _glfwWindowVisibleCocoa, - _glfwWindowMaximizedCocoa, - _glfwWindowHoveredCocoa, - _glfwFramebufferTransparentCocoa, - _glfwGetWindowOpacityCocoa, - _glfwSetWindowResizableCocoa, - _glfwSetWindowDecoratedCocoa, - _glfwSetWindowFloatingCocoa, - _glfwSetWindowOpacityCocoa, - _glfwSetWindowMousePassthroughCocoa, - _glfwPollEventsCocoa, - _glfwWaitEventsCocoa, - _glfwWaitEventsTimeoutCocoa, - _glfwPostEmptyEventCocoa, - _glfwGetEGLPlatformCocoa, - _glfwGetEGLNativeDisplayCocoa, - _glfwGetEGLNativeWindowCocoa, - _glfwGetRequiredInstanceExtensionsCocoa, - _glfwGetPhysicalDevicePresentationSupportCocoa, - _glfwCreateWindowSurfaceCocoa, + .platformID = GLFW_PLATFORM_COCOA, + .init = _glfwInitCocoa, + .terminate = _glfwTerminateCocoa, + .getCursorPos = _glfwGetCursorPosCocoa, + .setCursorPos = _glfwSetCursorPosCocoa, + .setCursorMode = _glfwSetCursorModeCocoa, + .setRawMouseMotion = _glfwSetRawMouseMotionCocoa, + .rawMouseMotionSupported = _glfwRawMouseMotionSupportedCocoa, + .createCursor = _glfwCreateCursorCocoa, + .createStandardCursor = _glfwCreateStandardCursorCocoa, + .destroyCursor = _glfwDestroyCursorCocoa, + .setCursor = _glfwSetCursorCocoa, + .getScancodeName = _glfwGetScancodeNameCocoa, + .getKeyScancode = _glfwGetKeyScancodeCocoa, + .setClipboardString = _glfwSetClipboardStringCocoa, + .getClipboardString = _glfwGetClipboardStringCocoa, + .initJoysticks = _glfwInitJoysticksCocoa, + .terminateJoysticks = _glfwTerminateJoysticksCocoa, + .pollJoystick = _glfwPollJoystickCocoa, + .getMappingName = _glfwGetMappingNameCocoa, + .updateGamepadGUID = _glfwUpdateGamepadGUIDCocoa, + .freeMonitor = _glfwFreeMonitorCocoa, + .getMonitorPos = _glfwGetMonitorPosCocoa, + .getMonitorContentScale = _glfwGetMonitorContentScaleCocoa, + .getMonitorWorkarea = _glfwGetMonitorWorkareaCocoa, + .getVideoModes = _glfwGetVideoModesCocoa, + .getVideoMode = _glfwGetVideoModeCocoa, + .getGammaRamp = _glfwGetGammaRampCocoa, + .setGammaRamp = _glfwSetGammaRampCocoa, + .createWindow = _glfwCreateWindowCocoa, + .destroyWindow = _glfwDestroyWindowCocoa, + .setWindowTitle = _glfwSetWindowTitleCocoa, + .setWindowIcon = _glfwSetWindowIconCocoa, + .getWindowPos = _glfwGetWindowPosCocoa, + .setWindowPos = _glfwSetWindowPosCocoa, + .getWindowSize = _glfwGetWindowSizeCocoa, + .setWindowSize = _glfwSetWindowSizeCocoa, + .setWindowSizeLimits = _glfwSetWindowSizeLimitsCocoa, + .setWindowAspectRatio = _glfwSetWindowAspectRatioCocoa, + .getFramebufferSize = _glfwGetFramebufferSizeCocoa, + .getWindowFrameSize = _glfwGetWindowFrameSizeCocoa, + .getWindowContentScale = _glfwGetWindowContentScaleCocoa, + .iconifyWindow = _glfwIconifyWindowCocoa, + .restoreWindow = _glfwRestoreWindowCocoa, + .maximizeWindow = _glfwMaximizeWindowCocoa, + .showWindow = _glfwShowWindowCocoa, + .hideWindow = _glfwHideWindowCocoa, + .requestWindowAttention = _glfwRequestWindowAttentionCocoa, + .focusWindow = _glfwFocusWindowCocoa, + .setWindowMonitor = _glfwSetWindowMonitorCocoa, + .windowFocused = _glfwWindowFocusedCocoa, + .windowIconified = _glfwWindowIconifiedCocoa, + .windowVisible = _glfwWindowVisibleCocoa, + .windowMaximized = _glfwWindowMaximizedCocoa, + .windowHovered = _glfwWindowHoveredCocoa, + .framebufferTransparent = _glfwFramebufferTransparentCocoa, + .getWindowOpacity = _glfwGetWindowOpacityCocoa, + .setWindowResizable = _glfwSetWindowResizableCocoa, + .setWindowDecorated = _glfwSetWindowDecoratedCocoa, + .setWindowFloating = _glfwSetWindowFloatingCocoa, + .setWindowOpacity = _glfwSetWindowOpacityCocoa, + .setWindowMousePassthrough = _glfwSetWindowMousePassthroughCocoa, + .pollEvents = _glfwPollEventsCocoa, + .waitEvents = _glfwWaitEventsCocoa, + .waitEventsTimeout = _glfwWaitEventsTimeoutCocoa, + .postEmptyEvent = _glfwPostEmptyEventCocoa, + .getEGLPlatform = _glfwGetEGLPlatformCocoa, + .getEGLNativeDisplay = _glfwGetEGLNativeDisplayCocoa, + .getEGLNativeWindow = _glfwGetEGLNativeWindowCocoa, + .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsCocoa, + .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportCocoa, + .createWindowSurface = _glfwCreateWindowSurfaceCocoa }; *platform = cocoa; @@ -690,3 +691,5 @@ void _glfwTerminateCocoa(void) } // autoreleasepool } +#endif // _GLFW_COCOA + diff --git a/src/external/glfw/src/cocoa_joystick.h b/src/external/glfw/src/cocoa_joystick.h index fc7ba7a22..2f46dfcbe 100644 --- a/src/external/glfw/src/cocoa_joystick.h +++ b/src/external/glfw/src/cocoa_joystick.h @@ -31,8 +31,6 @@ #define GLFW_COCOA_JOYSTICK_STATE _GLFWjoystickNS ns; #define GLFW_COCOA_LIBRARY_JOYSTICK_STATE -#define GLFW_BUILD_COCOA_MAPPINGS - // Cocoa-specific per-joystick data // typedef struct _GLFWjoystickNS diff --git a/src/external/glfw/src/cocoa_joystick.m b/src/external/glfw/src/cocoa_joystick.m index ebcf5fdb9..d5de47939 100644 --- a/src/external/glfw/src/cocoa_joystick.m +++ b/src/external/glfw/src/cocoa_joystick.m @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_COCOA) + #include #include #include @@ -134,6 +134,14 @@ static void matchCallback(void* context, return; } + CFArrayRef elements = + IOHIDDeviceCopyMatchingElements(device, NULL, kIOHIDOptionsTypeNone); + + // It is reportedly possible for this to fail on macOS 13 Ventura + // if the application does not have input monitoring permissions + if (!elements) + return; + axes = CFArrayCreateMutable(NULL, 0, NULL); buttons = CFArrayCreateMutable(NULL, 0, NULL); hats = CFArrayCreateMutable(NULL, 0, NULL); @@ -177,9 +185,6 @@ static void matchCallback(void* context, name[8], name[9], name[10]); } - CFArrayRef elements = - IOHIDDeviceCopyMatchingElements(device, NULL, kIOHIDOptionsTypeNone); - for (CFIndex i = 0; i < CFArrayGetCount(elements); i++) { IOHIDElementRef native = (IOHIDElementRef) @@ -476,3 +481,5 @@ void _glfwUpdateGamepadGUIDCocoa(char* guid) } } +#endif // _GLFW_COCOA + diff --git a/src/external/glfw/src/cocoa_monitor.m b/src/external/glfw/src/cocoa_monitor.m index 64d9eb2c7..641d5f0b8 100644 --- a/src/external/glfw/src/cocoa_monitor.m +++ b/src/external/glfw/src/cocoa_monitor.m @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_COCOA) + #include #include #include @@ -549,13 +549,20 @@ GLFWvidmode* _glfwGetVideoModesCocoa(_GLFWmonitor* monitor, int* count) } // autoreleasepool } -void _glfwGetVideoModeCocoa(_GLFWmonitor* monitor, GLFWvidmode *mode) +GLFWbool _glfwGetVideoModeCocoa(_GLFWmonitor* monitor, GLFWvidmode *mode) { @autoreleasepool { CGDisplayModeRef native = CGDisplayCopyDisplayMode(monitor->ns.displayID); + if (!native) + { + _glfwInputError(GLFW_PLATFORM_ERROR, "Cocoa: Failed to query display mode"); + return GLFW_FALSE; + } + *mode = vidmodeFromCGDisplayMode(native, monitor->ns.fallbackRefreshRate); CGDisplayModeRelease(native); + return GLFW_TRUE; } // autoreleasepool } @@ -622,6 +629,15 @@ GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(kCGNullDirectDisplay); + + if (_glfw.platform.platformID != GLFW_PLATFORM_COCOA) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "Cocoa: Platform not initialized"); + return kCGNullDirectDisplay; + } + return monitor->ns.displayID; } +#endif // _GLFW_COCOA + diff --git a/src/external/glfw/src/cocoa_platform.h b/src/external/glfw/src/cocoa_platform.h index 9f7d191db..399145542 100644 --- a/src/external/glfw/src/cocoa_platform.h +++ b/src/external/glfw/src/cocoa_platform.h @@ -145,7 +145,7 @@ typedef struct _GLFWwindowNS GLFWbool maximized; GLFWbool occluded; - GLFWbool retina; + GLFWbool scaleFramebuffer; // Cached window properties to filter out duplicate events int width, height; @@ -281,7 +281,7 @@ void _glfwGetMonitorPosCocoa(_GLFWmonitor* monitor, int* xpos, int* ypos); void _glfwGetMonitorContentScaleCocoa(_GLFWmonitor* monitor, float* xscale, float* yscale); void _glfwGetMonitorWorkareaCocoa(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); GLFWvidmode* _glfwGetVideoModesCocoa(_GLFWmonitor* monitor, int* count); -void _glfwGetVideoModeCocoa(_GLFWmonitor* monitor, GLFWvidmode* mode); +GLFWbool _glfwGetVideoModeCocoa(_GLFWmonitor* monitor, GLFWvidmode* mode); GLFWbool _glfwGetGammaRampCocoa(_GLFWmonitor* monitor, GLFWgammaramp* ramp); void _glfwSetGammaRampCocoa(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); diff --git a/src/external/glfw/src/cocoa_time.c b/src/external/glfw/src/cocoa_time.c index c2bf8edaa..d56f145ff 100644 --- a/src/external/glfw/src/cocoa_time.c +++ b/src/external/glfw/src/cocoa_time.c @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_COCOA_TIMER) + #include @@ -53,3 +53,5 @@ uint64_t _glfwPlatformGetTimerFrequency(void) return _glfw.timer.ns.frequency; } +#endif // GLFW_BUILD_COCOA_TIMER + diff --git a/src/external/glfw/src/cocoa_window.m b/src/external/glfw/src/cocoa_window.m index daac39b3b..0dcf0a38d 100644 --- a/src/external/glfw/src/cocoa_window.m +++ b/src/external/glfw/src/cocoa_window.m @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_COCOA) + #include #include @@ -309,10 +309,15 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)windowDidChangeOcclusionState:(NSNotification* )notification { - if ([window->ns.object occlusionState] & NSWindowOcclusionStateVisible) - window->ns.occluded = GLFW_FALSE; - else - window->ns.occluded = GLFW_TRUE; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1090 + if ([window->ns.object respondsToSelector:@selector(occlusionState)]) + { + if ([window->ns.object occlusionState] & NSWindowOcclusionStateVisible) + window->ns.occluded = GLFW_FALSE; + else + window->ns.occluded = GLFW_TRUE; + } +#endif } @end @@ -508,7 +513,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; if (xscale != window->ns.xscale || yscale != window->ns.yscale) { - if (window->ns.retina && window->ns.layer) + if (window->ns.scaleFramebuffer && window->ns.layer) [window->ns.layer setContentsScale:[window->ns.object backingScaleFactor]]; window->ns.xscale = xscale; @@ -867,7 +872,7 @@ static GLFWbool createNativeWindow(_GLFWwindow* window, [window->ns.object setFrameAutosaveName:@(wndconfig->ns.frameName)]; window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window]; - window->ns.retina = wndconfig->ns.retina; + window->ns.scaleFramebuffer = wndconfig->scaleFramebuffer; if (fbconfig->transparent) { @@ -1277,7 +1282,7 @@ void _glfwSetWindowMonitorCocoa(_GLFWwindow* window, if (window->monitor) { - styleMask &= ~(NSWindowStyleMaskTitled | NSWindowStyleMaskClosable); + styleMask &= ~(NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable); styleMask |= NSWindowStyleMaskBorderless; } else @@ -1652,14 +1657,15 @@ const char* _glfwGetScancodeNameCocoa(int scancode) { @autoreleasepool { - if (scancode < 0 || scancode > 0xff || - _glfw.ns.keycodes[scancode] == GLFW_KEY_UNKNOWN) + if (scancode < 0 || scancode > 0xff) { _glfwInputError(GLFW_INVALID_VALUE, "Invalid scancode %i", scancode); return NULL; } const int key = _glfw.ns.keycodes[scancode]; + if (key == GLFW_KEY_UNKNOWN) + return NULL; UInt32 deadKeyState = 0; UniChar characters[4]; @@ -1963,7 +1969,7 @@ VkResult _glfwCreateWindowSurfaceCocoa(VkInstance instance, return VK_ERROR_EXTENSION_NOT_PRESENT; } - if (window->ns.retina) + if (window->ns.scaleFramebuffer) [window->ns.layer setContentsScale:[window->ns.object backingScaleFactor]]; [window->ns.view setLayer:window->ns.layer]; @@ -2041,9 +2047,26 @@ GLFWAPI id glfwGetCocoaWindow(GLFWwindow* handle) { _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "Cocoa: Platform not initialized"); - return NULL; + return nil; } return window->ns.object; } +GLFWAPI id glfwGetCocoaView(GLFWwindow* handle) +{ + _GLFWwindow* window = (_GLFWwindow*) handle; + _GLFW_REQUIRE_INIT_OR_RETURN(nil); + + if (_glfw.platform.platformID != GLFW_PLATFORM_COCOA) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, + "Cocoa: Platform not initialized"); + return nil; + } + + return window->ns.view; +} + +#endif // _GLFW_COCOA + diff --git a/src/external/glfw/src/context.c b/src/external/glfw/src/context.c index 33b399c9b..cc1fac4f3 100644 --- a/src/external/glfw/src/context.c +++ b/src/external/glfw/src/context.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" @@ -363,6 +361,8 @@ GLFWbool _glfwRefreshContextAttribs(_GLFWwindow* window, previous = _glfwPlatformGetTls(&_glfw.contextSlot); glfwMakeContextCurrent((GLFWwindow*) window); + if (_glfwPlatformGetTls(&_glfw.contextSlot) != window) + return GLFW_FALSE; window->context.GetIntegerv = (PFNGLGETINTEGERVPROC) window->context.getProcAddress("glGetIntegerv"); diff --git a/src/external/glfw/src/egl_context.c b/src/external/glfw/src/egl_context.c index bc5f3e600..ef65dd350 100644 --- a/src/external/glfw/src/egl_context.c +++ b/src/external/glfw/src/egl_context.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" @@ -88,13 +86,30 @@ static int getEGLConfigAttrib(EGLConfig config, int attrib) // Return the EGLConfig most closely matching the specified hints // static GLFWbool chooseEGLConfig(const _GLFWctxconfig* ctxconfig, - const _GLFWfbconfig* desired, + const _GLFWfbconfig* fbconfig, EGLConfig* result) { EGLConfig* nativeConfigs; _GLFWfbconfig* usableConfigs; const _GLFWfbconfig* closest; - int i, nativeCount, usableCount; + int i, nativeCount, usableCount, apiBit; + GLFWbool wrongApiAvailable = GLFW_FALSE; + + if (ctxconfig->client == GLFW_OPENGL_ES_API) + { + if (ctxconfig->major == 1) + apiBit = EGL_OPENGL_ES_BIT; + else + apiBit = EGL_OPENGL_ES2_BIT; + } + else + apiBit = EGL_OPENGL_BIT; + + if (fbconfig->stereo) + { + _glfwInputError(GLFW_FORMAT_UNAVAILABLE, "EGL: Stereo rendering not supported"); + return GLFW_FALSE; + } eglGetConfigs(_glfw.egl.display, NULL, 0, &nativeCount); if (!nativeCount) @@ -132,7 +147,7 @@ static GLFWbool chooseEGLConfig(const _GLFWctxconfig* ctxconfig, if (!vi.visualid) continue; - if (desired->transparent) + if (fbconfig->transparent) { int count; XVisualInfo* vis = @@ -146,23 +161,10 @@ static GLFWbool chooseEGLConfig(const _GLFWctxconfig* ctxconfig, } #endif // _GLFW_X11 - if (ctxconfig->client == GLFW_OPENGL_ES_API) + if (!(getEGLConfigAttrib(n, EGL_RENDERABLE_TYPE) & apiBit)) { - if (ctxconfig->major == 1) - { - if (!(getEGLConfigAttrib(n, EGL_RENDERABLE_TYPE) & EGL_OPENGL_ES_BIT)) - continue; - } - else - { - if (!(getEGLConfigAttrib(n, EGL_RENDERABLE_TYPE) & EGL_OPENGL_ES2_BIT)) - continue; - } - } - else if (ctxconfig->client == GLFW_OPENGL_API) - { - if (!(getEGLConfigAttrib(n, EGL_RENDERABLE_TYPE) & EGL_OPENGL_BIT)) - continue; + wrongApiAvailable = GLFW_TRUE; + continue; } u->redBits = getEGLConfigAttrib(n, EGL_RED_SIZE); @@ -182,22 +184,51 @@ static GLFWbool chooseEGLConfig(const _GLFWctxconfig* ctxconfig, // with an alpha channel to ensure the buffer is opaque if (!_glfw.egl.EXT_present_opaque) { - if (!desired->transparent && u->alphaBits > 0) + if (!fbconfig->transparent && u->alphaBits > 0) continue; } } #endif // _GLFW_WAYLAND u->samples = getEGLConfigAttrib(n, EGL_SAMPLES); - u->doublebuffer = desired->doublebuffer; + u->doublebuffer = fbconfig->doublebuffer; u->handle = (uintptr_t) n; usableCount++; } - closest = _glfwChooseFBConfig(desired, usableConfigs, usableCount); + closest = _glfwChooseFBConfig(fbconfig, usableConfigs, usableCount); if (closest) *result = (EGLConfig) closest->handle; + else + { + if (wrongApiAvailable) + { + if (ctxconfig->client == GLFW_OPENGL_ES_API) + { + if (ctxconfig->major == 1) + { + _glfwInputError(GLFW_API_UNAVAILABLE, + "EGL: Failed to find support for OpenGL ES 1.x"); + } + else + { + _glfwInputError(GLFW_API_UNAVAILABLE, + "EGL: Failed to find support for OpenGL ES 2 or later"); + } + } + else + { + _glfwInputError(GLFW_API_UNAVAILABLE, + "EGL: Failed to find support for OpenGL"); + } + } + else + { + _glfwInputError(GLFW_FORMAT_UNAVAILABLE, + "EGL: Failed to find a suitable EGLConfig"); + } + } _glfw_free(nativeConfigs); _glfw_free(usableConfigs); @@ -278,6 +309,7 @@ static int extensionSupportedEGL(const char* extension) static GLFWglproc getProcAddressEGL(const char* procname) { _GLFWwindow* window = _glfwPlatformGetTls(&_glfw.contextSlot); + assert(window != NULL); if (window->context.egl.client) { @@ -550,11 +582,7 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window, share = ctxconfig->share->context.egl.handle; if (!chooseEGLConfig(ctxconfig, fbconfig, &config)) - { - _glfwInputError(GLFW_FORMAT_UNAVAILABLE, - "EGL: Failed to find a suitable EGLConfig"); return GLFW_FALSE; - } if (ctxconfig->client == GLFW_OPENGL_ES_API) { @@ -611,18 +639,18 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window, flags |= EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR; } - if (ctxconfig->noerror) - { - if (_glfw.egl.KHR_create_context_no_error) - SET_ATTRIB(EGL_CONTEXT_OPENGL_NO_ERROR_KHR, GLFW_TRUE); - } - if (ctxconfig->major != 1 || ctxconfig->minor != 0) { SET_ATTRIB(EGL_CONTEXT_MAJOR_VERSION_KHR, ctxconfig->major); SET_ATTRIB(EGL_CONTEXT_MINOR_VERSION_KHR, ctxconfig->minor); } + if (ctxconfig->noerror) + { + if (_glfw.egl.KHR_create_context_no_error) + SET_ATTRIB(EGL_CONTEXT_OPENGL_NO_ERROR_KHR, GLFW_TRUE); + } + if (mask) SET_ATTRIB(EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, mask); @@ -674,8 +702,11 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window, if (!fbconfig->doublebuffer) SET_ATTRIB(EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER); - if (_glfw.egl.EXT_present_opaque) - SET_ATTRIB(EGL_PRESENT_OPAQUE_EXT, !fbconfig->transparent); + if (_glfw.platform.platformID == GLFW_PLATFORM_WAYLAND) + { + if (_glfw.egl.EXT_present_opaque) + SET_ATTRIB(EGL_PRESENT_OPAQUE_EXT, !fbconfig->transparent); + } SET_ATTRIB(EGL_NONE, EGL_NONE); @@ -815,11 +846,7 @@ GLFWbool _glfwChooseVisualEGL(const _GLFWwndconfig* wndconfig, const long vimask = VisualScreenMask | VisualIDMask; if (!chooseEGLConfig(ctxconfig, fbconfig, &native)) - { - _glfwInputError(GLFW_FORMAT_UNAVAILABLE, - "EGL: Failed to find a suitable EGLConfig"); return GLFW_FALSE; - } eglGetConfigAttrib(_glfw.egl.display, native, EGL_NATIVE_VISUAL_ID, &visualID); diff --git a/src/external/glfw/src/glx_context.c b/src/external/glfw/src/glx_context.c index 3c38807f3..7082682be 100644 --- a/src/external/glfw/src/glx_context.c +++ b/src/external/glfw/src/glx_context.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_X11) + #include #include #include @@ -190,6 +190,7 @@ static void swapBuffersGLX(_GLFWwindow* window) static void swapIntervalGLX(int interval) { _GLFWwindow* window = _glfwPlatformGetTls(&_glfw.contextSlot); + assert(window != NULL); if (_glfw.glx.EXT_swap_control) { @@ -714,3 +715,5 @@ GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* handle) return window->context.glx.window; } +#endif // _GLFW_X11 + diff --git a/src/external/glfw/src/init.c b/src/external/glfw/src/init.c index d07a492ec..532264e16 100644 --- a/src/external/glfw/src/init.c +++ b/src/external/glfw/src/init.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" @@ -51,16 +49,22 @@ static GLFWerrorfun _glfwErrorCallback; static GLFWallocator _glfwInitAllocator; static _GLFWinitconfig _glfwInitHints = { - GLFW_TRUE, // hat buttons - GLFW_ANGLE_PLATFORM_TYPE_NONE, // ANGLE backend - GLFW_ANY_PLATFORM, // preferred platform - NULL, // vkGetInstanceProcAddr function + .hatButtons = GLFW_TRUE, + .angleType = GLFW_ANGLE_PLATFORM_TYPE_NONE, + .platformID = GLFW_ANY_PLATFORM, + .vulkanLoader = NULL, + .ns = { - GLFW_TRUE, // macOS menu bar - GLFW_TRUE // macOS bundle chdir + .menubar = GLFW_TRUE, + .chdir = GLFW_TRUE }, + .x11 = { - GLFW_TRUE, // X11 XCB Vulkan surface + .xcbVulkanSurface = GLFW_TRUE, + }, + .wl = + { + .libdecorMode = GLFW_WAYLAND_PREFER_LIBDECOR }, }; @@ -242,30 +246,6 @@ int _glfw_max(int a, int b) return a > b ? a : b; } -float _glfw_fminf(float a, float b) -{ - if (a != a) - return b; - else if (b != b) - return a; - else if (a < b) - return a; - else - return b; -} - -float _glfw_fmaxf(float a, float b) -{ - if (a != a) - return b; - else if (b != b) - return a; - else if (a > b) - return a; - else - return b; -} - void* _glfw_calloc(size_t count, size_t size) { if (count && size) @@ -479,6 +459,9 @@ GLFWAPI void glfwInitHint(int hint, int value) case GLFW_X11_XCB_VULKAN_SURFACE: _glfwInitHints.x11.xcbVulkanSurface = value; return; + case GLFW_WAYLAND_LIBDECOR: + _glfwInitHints.wl.libdecorMode = value; + return; } _glfwInputError(GLFW_INVALID_ENUM, diff --git a/src/external/glfw/src/input.c b/src/external/glfw/src/input.c index 36128e10c..7b3b34028 100644 --- a/src/external/glfw/src/input.c +++ b/src/external/glfw/src/input.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" #include "mappings.h" @@ -462,10 +460,11 @@ void _glfwInputJoystickHat(_GLFWjoystick* js, int hat, char value) assert(hat >= 0); assert(hat < js->hatCount); - // Valid hat values only use the least significant nibble and have at most two bits - // set, which can be considered adjacent plus an arbitrary rotation within the nibble + // Valid hat values only use the least significant nibble assert((value & 0xf0) == 0); - assert((value & ((value << 2) | (value >> 2))) == 0); + // Valid hat values do not have both bits of an axis set + assert((value & GLFW_HAT_LEFT) == 0 || (value & GLFW_HAT_RIGHT) == 0); + assert((value & GLFW_HAT_UP) == 0 || (value & GLFW_HAT_DOWN) == 0); base = js->buttonCount + hat * 4; @@ -701,6 +700,12 @@ GLFWAPI const char* glfwGetKeyName(int key, int scancode) if (key != GLFW_KEY_UNKNOWN) { + if (key < GLFW_KEY_SPACE || key > GLFW_KEY_LAST) + { + _glfwInputError(GLFW_INVALID_ENUM, "Invalid key %i", key); + return NULL; + } + if (key != GLFW_KEY_KP_EQUAL && (key < GLFW_KEY_KP_0 || key > GLFW_KEY_KP_ADD) && (key < GLFW_KEY_APOSTROPHE || key > GLFW_KEY_WORLD_2)) @@ -716,12 +721,12 @@ GLFWAPI const char* glfwGetKeyName(int key, int scancode) GLFWAPI int glfwGetKeyScancode(int key) { - _GLFW_REQUIRE_INIT_OR_RETURN(-1); + _GLFW_REQUIRE_INIT_OR_RETURN(0); if (key < GLFW_KEY_SPACE || key > GLFW_KEY_LAST) { _glfwInputError(GLFW_INVALID_ENUM, "Invalid key %i", key); - return GLFW_RELEASE; + return -1; } return _glfw.platform.getKeyScancode(key); @@ -1433,7 +1438,7 @@ GLFWAPI int glfwGetGamepadState(int jid, GLFWgamepadstate* state) if (e->type == _GLFW_JOYSTICK_AXIS) { const float value = js->axes[e->index] * e->axisScale + e->axisOffset; - state->axes[i] = _glfw_fminf(_glfw_fmaxf(value, -1.f), 1.f); + state->axes[i] = fminf(fmaxf(value, -1.f), 1.f); } else if (e->type == _GLFW_JOYSTICK_HATBIT) { diff --git a/src/external/glfw/src/internal.h b/src/external/glfw/src/internal.h index 5aa22f595..887335935 100644 --- a/src/external/glfw/src/internal.h +++ b/src/external/glfw/src/internal.h @@ -108,12 +108,6 @@ typedef const GLubyte* (APIENTRY * PFNGLGETSTRINGPROC)(GLenum); typedef void (APIENTRY * PFNGLGETINTEGERVPROC)(GLenum,GLint*); typedef const GLubyte* (APIENTRY * PFNGLGETSTRINGIPROC)(GLenum,GLuint); -#if defined(_GLFW_WIN32) - #define EGLAPIENTRY __stdcall -#else - #define EGLAPIENTRY -#endif - #define EGL_SUCCESS 0x3000 #define EGL_NOT_INITIALIZED 0x3001 #define EGL_BAD_ACCESS 0x3002 @@ -200,22 +194,22 @@ typedef void* EGLNativeDisplayType; typedef void* EGLNativeWindowType; // EGL function pointer typedefs -typedef EGLBoolean (EGLAPIENTRY * PFN_eglGetConfigAttrib)(EGLDisplay,EGLConfig,EGLint,EGLint*); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglGetConfigs)(EGLDisplay,EGLConfig*,EGLint,EGLint*); -typedef EGLDisplay (EGLAPIENTRY * PFN_eglGetDisplay)(EGLNativeDisplayType); -typedef EGLint (EGLAPIENTRY * PFN_eglGetError)(void); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglInitialize)(EGLDisplay,EGLint*,EGLint*); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglTerminate)(EGLDisplay); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglBindAPI)(EGLenum); -typedef EGLContext (EGLAPIENTRY * PFN_eglCreateContext)(EGLDisplay,EGLConfig,EGLContext,const EGLint*); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglDestroySurface)(EGLDisplay,EGLSurface); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglDestroyContext)(EGLDisplay,EGLContext); -typedef EGLSurface (EGLAPIENTRY * PFN_eglCreateWindowSurface)(EGLDisplay,EGLConfig,EGLNativeWindowType,const EGLint*); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglMakeCurrent)(EGLDisplay,EGLSurface,EGLSurface,EGLContext); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglSwapBuffers)(EGLDisplay,EGLSurface); -typedef EGLBoolean (EGLAPIENTRY * PFN_eglSwapInterval)(EGLDisplay,EGLint); -typedef const char* (EGLAPIENTRY * PFN_eglQueryString)(EGLDisplay,EGLint); -typedef GLFWglproc (EGLAPIENTRY * PFN_eglGetProcAddress)(const char*); +typedef EGLBoolean (APIENTRY * PFN_eglGetConfigAttrib)(EGLDisplay,EGLConfig,EGLint,EGLint*); +typedef EGLBoolean (APIENTRY * PFN_eglGetConfigs)(EGLDisplay,EGLConfig*,EGLint,EGLint*); +typedef EGLDisplay (APIENTRY * PFN_eglGetDisplay)(EGLNativeDisplayType); +typedef EGLint (APIENTRY * PFN_eglGetError)(void); +typedef EGLBoolean (APIENTRY * PFN_eglInitialize)(EGLDisplay,EGLint*,EGLint*); +typedef EGLBoolean (APIENTRY * PFN_eglTerminate)(EGLDisplay); +typedef EGLBoolean (APIENTRY * PFN_eglBindAPI)(EGLenum); +typedef EGLContext (APIENTRY * PFN_eglCreateContext)(EGLDisplay,EGLConfig,EGLContext,const EGLint*); +typedef EGLBoolean (APIENTRY * PFN_eglDestroySurface)(EGLDisplay,EGLSurface); +typedef EGLBoolean (APIENTRY * PFN_eglDestroyContext)(EGLDisplay,EGLContext); +typedef EGLSurface (APIENTRY * PFN_eglCreateWindowSurface)(EGLDisplay,EGLConfig,EGLNativeWindowType,const EGLint*); +typedef EGLBoolean (APIENTRY * PFN_eglMakeCurrent)(EGLDisplay,EGLSurface,EGLSurface,EGLContext); +typedef EGLBoolean (APIENTRY * PFN_eglSwapBuffers)(EGLDisplay,EGLSurface); +typedef EGLBoolean (APIENTRY * PFN_eglSwapInterval)(EGLDisplay,EGLint); +typedef const char* (APIENTRY * PFN_eglQueryString)(EGLDisplay,EGLint); +typedef GLFWglproc (APIENTRY * PFN_eglGetProcAddress)(const char*); #define eglGetConfigAttrib _glfw.egl.GetConfigAttrib #define eglGetConfigs _glfw.egl.GetConfigs #define eglGetDisplay _glfw.egl.GetDisplay @@ -233,8 +227,8 @@ typedef GLFWglproc (EGLAPIENTRY * PFN_eglGetProcAddress)(const char*); #define eglQueryString _glfw.egl.QueryString #define eglGetProcAddress _glfw.egl.GetProcAddress -typedef EGLDisplay (EGLAPIENTRY * PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum,void*,const EGLint*); -typedef EGLSurface (EGLAPIENTRY * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay,EGLConfig,void*,const EGLint*); +typedef EGLDisplay (APIENTRY * PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum,void*,const EGLint*); +typedef EGLSurface (APIENTRY * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay,EGLConfig,void*,const EGLint*); #define eglGetPlatformDisplayEXT _glfw.egl.GetPlatformDisplayEXT #define eglCreatePlatformWindowSurfaceEXT _glfw.egl.CreatePlatformWindowSurfaceEXT @@ -330,12 +324,8 @@ typedef VkResult (APIENTRY * PFN_vkEnumerateInstanceExtensionProperties)(const c #include "platform.h" -// Constructs a version number string from the public header macros -#define _GLFW_CONCAT_VERSION(m, n, r) #m "." #n "." #r -#define _GLFW_MAKE_VERSION(m, n, r) _GLFW_CONCAT_VERSION(m, n, r) -#define _GLFW_VERSION_NUMBER _GLFW_MAKE_VERSION(GLFW_VERSION_MAJOR, \ - GLFW_VERSION_MINOR, \ - GLFW_VERSION_REVISION) +#define GLFW_NATIVE_INCLUDE_NONE +#include "../include/GLFW/glfw3native.h" // Checks for whether the library has been initialized #define _GLFW_REQUIRE_INIT() \ @@ -386,6 +376,9 @@ struct _GLFWinitconfig struct { GLFWbool xcbVulkanSurface; } x11; + struct { + int libdecorMode; + } wl; }; // Window configuration @@ -412,8 +405,8 @@ struct _GLFWwndconfig GLFWbool focusOnShow; GLFWbool mousePassthrough; GLFWbool scaleToMonitor; + GLFWbool scaleFramebuffer; struct { - GLFWbool retina; char frameName[256]; } ns; struct { @@ -422,6 +415,7 @@ struct _GLFWwndconfig } x11; struct { GLFWbool keymenu; + GLFWbool showDefault; } win32; struct { char appId[256]; @@ -541,6 +535,7 @@ struct _GLFWwindow GLFWvidmode videoMode; _GLFWmonitor* monitor; _GLFWcursor* cursor; + char* title; int minwidth, minheight; int maxwidth, maxheight; @@ -705,7 +700,7 @@ struct _GLFWplatform void (*getMonitorContentScale)(_GLFWmonitor*,float*,float*); void (*getMonitorWorkarea)(_GLFWmonitor*,int*,int*,int*,int*); GLFWvidmode* (*getVideoModes)(_GLFWmonitor*,int*); - void (*getVideoMode)(_GLFWmonitor*,GLFWvidmode*); + GLFWbool (*getVideoMode)(_GLFWmonitor*,GLFWvidmode*); GLFWbool (*getGammaRamp)(_GLFWmonitor*,GLFWgammaramp*); void (*setGammaRamp)(_GLFWmonitor*,const GLFWgammaramp*); // window @@ -1007,8 +1002,6 @@ char** _glfwParseUriList(char* text, int* count); char* _glfw_strdup(const char* source); int _glfw_min(int a, int b); int _glfw_max(int a, int b); -float _glfw_fminf(float a, float b); -float _glfw_fmaxf(float a, float b); void* _glfw_calloc(size_t count, size_t size); void* _glfw_realloc(void* pointer, size_t size); diff --git a/src/external/glfw/src/linux_joystick.c b/src/external/glfw/src/linux_joystick.c index 366bda2df..07d41d37a 100644 --- a/src/external/glfw/src/linux_joystick.c +++ b/src/external/glfw/src/linux_joystick.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_LINUX_JOYSTICK) + #include #include #include @@ -135,7 +135,7 @@ static GLFWbool openJoystickDevice(const char* path) } _GLFWjoystickLinux linjs = {0}; - linjs.fd = open(path, O_RDONLY | O_NONBLOCK); + linjs.fd = open(path, O_RDONLY | O_NONBLOCK | O_CLOEXEC); if (linjs.fd == -1) return GLFW_FALSE; @@ -324,7 +324,8 @@ GLFWbool _glfwInitJoysticksLinux(void) // Continue without device connection notifications if inotify fails - if (regcomp(&_glfw.linjs.regex, "^event[0-9]\\+$", 0) != 0) + _glfw.linjs.regexCompiled = (regcomp(&_glfw.linjs.regex, "^event[0-9]\\+$", 0) == 0); + if (!_glfw.linjs.regexCompiled) { _glfwInputError(GLFW_PLATFORM_ERROR, "Linux: Failed to compile regex"); return GLFW_FALSE; @@ -376,8 +377,10 @@ void _glfwTerminateJoysticksLinux(void) inotify_rm_watch(_glfw.linjs.inotify, _glfw.linjs.watch); close(_glfw.linjs.inotify); - regfree(&_glfw.linjs.regex); } + + if (_glfw.linjs.regexCompiled) + regfree(&_glfw.linjs.regex); } GLFWbool _glfwPollJoystickLinux(_GLFWjoystick* js, int mode) @@ -429,3 +432,5 @@ void _glfwUpdateGamepadGUIDLinux(char* guid) { } +#endif // GLFW_BUILD_LINUX_JOYSTICK + diff --git a/src/external/glfw/src/linux_joystick.h b/src/external/glfw/src/linux_joystick.h index f898b2b9f..64462b04f 100644 --- a/src/external/glfw/src/linux_joystick.h +++ b/src/external/glfw/src/linux_joystick.h @@ -31,8 +31,6 @@ #define GLFW_LINUX_JOYSTICK_STATE _GLFWjoystickLinux linjs; #define GLFW_LINUX_LIBRARY_JOYSTICK_STATE _GLFWlibraryLinux linjs; -#define GLFW_BUILD_LINUX_MAPPINGS - // Linux-specific joystick data // typedef struct _GLFWjoystickLinux @@ -52,6 +50,7 @@ typedef struct _GLFWlibraryLinux int inotify; int watch; regex_t regex; + GLFWbool regexCompiled; GLFWbool dropped; } _GLFWlibraryLinux; diff --git a/src/external/glfw/src/mappings.h b/src/external/glfw/src/mappings.h index f3a778baa..270fa4cd8 100644 --- a/src/external/glfw/src/mappings.h +++ b/src/external/glfw/src/mappings.h @@ -60,82 +60,54 @@ const char* _glfwDefaultMappings[] = { -#if defined(GLFW_BUILD_WIN32_MAPPINGS) -"03000000300f00000a01000000000000,3 In 1 Conversion Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows,", -"03000000fa2d00000100000000000000,3dRudder Foot Motion Controller,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows,", -"03000000d0160000040d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows,", -"03000000d0160000050d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows,", -"03000000d0160000060d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows,", -"03000000d0160000070d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows,", -"03000000d0160000600a000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows,", -"03000000c82d00000031000000000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00000531000000000000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00000951000000000000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows,", -"03000000008000000210000000000000,8BitDo F30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"030000003512000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000c82d00001028000000000000,8BitDo F30 Arcade Joystick,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000801000000900000000000000,8BitDo F30 Arcade Stick,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", +#if defined(_GLFW_WIN32) +"03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows,", +"03000000c82d00002038000000000000,8bitdo,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000951000000000000,8BitDo Dogbone Modkit,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Windows,", +"03000000c82d000011ab000000000000,8BitDo F30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00001038000000000000,8BitDo F30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00001251000000000000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00001151000000000000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000150000000000000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000151000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00005106000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,guide:b2,leftshoulder:b8,lefttrigger:b9,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c82d00005106000000000000,8BitDo M30 Gamepad,a:b1,b:b0,back:b10,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000151000000000000,8BitDo M30 ModKit,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,", "03000000c82d00000310000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00000451000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows,", "03000000c82d00002028000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00008010000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d0000e002000000000000,8BitDo N30,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b6,platform:Windows,", +"03000000c82d00000451000000000000,8BitDo N30 Modkit,a:b1,b:b0,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,start:b11,platform:Windows,", "03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000290000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows,", -"03000000c82d00003038000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows,", -"030000003512000012ab000000000000,8BitDo NES30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Windows,", -"03000000c82d000012ab000000000000,8BitDo NES30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000022000000090000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000203800000900000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00002038000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000751000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00000851000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", +"03000000022000000090000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", +"03000000203800000900000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000360000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000361000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000660000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000131000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000231000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000331000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000431000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00002867000000000000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b10,x:b3,y:b4,platform:Windows,", +"03000000c82d00002867000000000000,8BitDo S30 Modkit,a:b0,b:b1,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b8,lefttrigger:b9,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows,", "03000000c82d00000130000000000000,8BitDo SF30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000060000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000061000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", -"03000000102800000900000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00003028000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"030000003512000020ab000000000000,8BitDo SN30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000351000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a2,rightshoulder:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000060000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000061000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", +"03000000102800000900000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00003028000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d000020ab000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00004028000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00006228000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00000021000000000000,8BitDo SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c82d00000351000000000000,8BitDo SN30 Modkit,a:b1,b:b0,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000121000000000000,8BitDo SN30 Pro for Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "03000000c82d00000260000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00000261000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", -"03000000c82d00001330000000000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000a00500003232000000000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c82d00001890000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", +"03000000c82d00000031000000000000,8BitDo Wireless Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c82d00001890000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,", "03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,", -"030000008f0e00001200000000000000,Acme GA02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", -"03000000c01100000355000000000000,Acrux,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000fa190000f0ff000000000000,Acteck AGJ 3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000d1180000402c000000000000,ADT1,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a3,rightx:a2,righty:a5,x:b3,y:b4,platform:Windows,", +"03000000a00500003232000000000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,", +"03000000a30c00002700000000000000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", +"03000000a30c00002800000000000000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", +"030000008f0e00001200000000000000,Acme GA-02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", +"03000000c01100000355000011010000,ACRUX USB GAME PAD,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000fa190000f0ff000000000000,Acteck AGJ-3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"030000006f0e00001413000000000000,Afterglow,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000341a00003608000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00000263000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00001101000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", @@ -143,670 +115,310 @@ const char* _glfwDefaultMappings[] = "030000006f0e00001402000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00001901000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00001a01000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00001301000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e00001302000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e00001304000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e00001413000000000000,Afterglow Xbox Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00003901000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ab1200000103000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000000f9000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000100000008200000000000000,Akishop Customs PS360,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000007c1800000006000000000000,Alienware Dual Compatible PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", +"03000000d62000001d57000000000000,Airflo PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000491900001904000000000000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows,", "03000000710100001904000000000000,Amazon Luna Controller,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b8,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b4,rightstick:b7,rightx:a3,righty:a4,start:b6,x:b3,y:b2,platform:Windows,", -"03000000830500000160000000000000,Arcade,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b4,platform:Windows,", -"03000000120c0000100e000000000000,Armor 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000490b00004406000000000000,ASCII Seamic Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"03000000869800002500000000000000,Astro C40 TR PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a30c00002700000000000000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000a30c00002800000000000000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000050b00000579000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000050b00000679000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000e4150000103f000000000000,Batarang,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000d6200000e557000000000000,Batarang PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000ef0500000300000000000000,AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows,", +"03000000d6200000e557000000000000,Batarang,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000c01100001352000000000000,Battalife Joystick,a:b6,b:b7,back:b2,leftshoulder:b0,leftx:a0,lefty:a1,rightshoulder:b1,start:b3,x:b4,y:b5,platform:Windows,", "030000006f0e00003201000000000000,Battlefield 4 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ad1b000001f9000000000000,BB 070,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "03000000d62000002a79000000000000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000bc2000005250000000000000,Beitong G3,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a3,righty:a4,start:b15,x:b3,y:b4,platform:Windows,", -"030000000d0500000208000000000000,Belkin Nostromo N40,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", "03000000bc2000006012000000000000,Betop 2126F,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000bc2000000055000000000000,Betop BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000bc2000000055000000000000,Betop BFM Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "03000000bc2000006312000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000bc2000006321000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000bc2000006321000000000000,BETOP CONTROLLER,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000bc2000006412000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000c01100000555000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000c01100000655000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000790000000700000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", "03000000808300000300000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", -"030000006f0e00006401000000000000,BF One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000300f00000202000000000000,Bigben,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a5,righty:a2,start:b7,x:b2,y:b3,platform:Windows,", -"030000006b1400000209000000000000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006b1400000055000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "030000006b1400000103000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,", -"03000000120c0000200e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000210e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f10e000000000000,Brook PS2 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000310c000000000000,Brook Super Converter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000d81d00000b00000000000000,Buffalo BSGP1601 Series,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows,", -"030000005b1c00002400000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows,", -"030000005b1c00002500000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows,", -"030000006d04000042c2000000000000,ChillStream,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"03000000120c0000210e000000000000,Brook Mars,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"0300000066f700000500000000000000,BrutalLegendTest,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", +"03000000d81d00000b00000000000000,BUFFALO BSGP1601 Series ,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows,", "03000000e82000006058000000000000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000457500000401000000000000,Cobra,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000b0400003365000000000000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Windows,", -"030000004c050000c505000000000000,CronusMax Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000d814000007cd000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000d8140000cefa000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000005e0400008e02000000000000,Controller (XBOX 360 For Windows),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"030000005e040000a102000000000000,Controller (Xbox 360 Wireless Receiver for Windows),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"030000005e040000ff02000000000000,Controller (Xbox One For Windows) - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"030000005e040000ea02000000000000,Controller (Xbox One For Windows) - Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows,", -"030000003807000002cb000000000000,Cyborg,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000a306000022f6000000000000,Cyborg V.3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000f806000000a3000000000000,DA Leader,a:b7,b:b6,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b8,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:b3,rightx:a2,righty:a3,start:b12,x:b4,y:b5,platform:Windows,", -"030000001a1c00000001000000000000,Datel Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", "03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000791d00000103000000000000,Dual Box Wii,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000c0160000e105000000000000,Dual Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"030000004f040000070f000000000000,Dual Power,a:b8,b:b9,back:b4,dpdown:b1,dpleft:b2,dpright:b3,dpup:b0,leftshoulder:b13,leftstick:b6,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b12,rightstick:b7,righttrigger:b15,start:b5,x:b10,y:b11,platform:Windows,", -"030000004f04000012b3000000000000,Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"030000004f04000020b3000000000000,Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"03000000bd12000002e0000000000000,Dual Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows,", -"03000000ff1100003133000000000000,DualForce,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b1,platform:Windows,", +"030000007d0400000840000000000000,Destroyer Tiltpad,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows,", +"03000000791d00000103000000000000,Dual Box WII,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000bd12000002e0000000000000,Dual USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows,", "030000008f0e00000910000000000000,DualShock 2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows,", -"03000000317300000100000000000000,DualShock 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"030000006f0e00003001000000000000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000fc0400000250000000000000,Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"030000006e0500000a20000000000000,Elecom DUX60 MMO,a:b2,b:b3,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b14,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b15,righttrigger:b13,rightx:a3,righty:a4,start:b20,x:b0,y:b1,platform:Windows,", +"030000006f0e00003001000000000000,EA SPORTS PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000b80500000410000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,", "03000000b80500000610000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,", -"030000006e0500000520000000000000,Elecom P301U PlayStation Controller Adapter,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", -"03000000411200004450000000000000,Elecom U1012,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", -"030000006e0500000320000000000000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", -"030000006e0500000e20000000000000,Elecom U3912T,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", -"030000006e0500000f20000000000000,Elecom U4013S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", -"030000006e0500001320000000000000,Elecom U4113,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006e0500001020000000000000,Elecom U4113S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows,", -"030000006e0500000720000000000000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,", -"030000007d0400000640000000000000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Windows,", "03000000120c0000f61c000000000000,Elite,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000430b00000300000000000000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000242f000000b7000000000000,ESM 9110,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows,", -"03000000101c0000181c000000000000,Essential,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b4,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", "030000008f0e00000f31000000000000,EXEQ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,", -"03000000341a00000108000000000000,EXEQ RF Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"030000006f0e00008401000000000000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00008001000000000000,Faceoff Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000021000000090000000000000,FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,", -"0300000011040000c600000000000000,FC801,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000852100000201000000000000,FF GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ad1b000028f0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b00002ef0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000038f0000000000000,Fightpad TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows,", -"03000000f806000001a3000000000000,Firestorm,a:b9,b:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b10,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b12,x:b8,y:b4,platform:Windows,", -"03000000b50700000399000000000000,Firestorm 2,a:b2,b:b4,back:b10,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,righttrigger:b9,start:b11,x:b3,y:b5,platform:Windows,", -"03000000b50700001302000000000000,Firestorm D3,a:b0,b:b2,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,x:b1,y:b3,platform:Windows,", -"03000000b40400001024000000000000,Flydigi Apex,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000151900004000000000000000,Flydigi Vader 2,a:b11,b:b10,back:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,leftstick:b1,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b0,righttrigger:b4,rightx:a3,righty:a4,start:b2,x:b9,y:b8,platform:Windows,", -"03000000b40400001124000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b4,paddle2:b5,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b2,y:b3,platform:Windows,", -"03000000b40400001224000000000000,Flydigi Vader 2 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,paddle3:b17,paddle4:b18,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows,", -"030000008305000000a0000000000000,G08XU,a:b0,b:b1,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b5,x:b2,y:b3,platform:Windows,", +"03000000341a00000108000000000000,EXEQ RF USB Gamepad 8206,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"030000006f0e00008401000000000000,Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000006f0e00008001000000000000,Faceoff Wired Pro Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000852100000201000000000000,FF-GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008500000000000000,Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008400000000000000,Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008700000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008800000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,", +"030000000d0f00002700000000000000,FIGHTING STICK V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"78696e70757403000000000000000000,Fightstick TES,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows,", +"03000000790000002201000000000000,Game Controller for PC,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "0300000066f700000100000000000000,Game VIB Joystick,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows,", -"03000000260900002625000000000000,GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows,", -"03000000341a000005f7000000000000,GameCube Controller,a:b2,b:b3,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b1,y:b0,platform:Windows,", -"03000000430b00000500000000000000,GameCube Controller,a:b0,b:b2,dpdown:b10,dpleft:b8,dpright:b9,dpup:b11,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a3,rightx:a5,righty:a2,start:b7,x:b1,y:b3,platform:Windows,", -"03000000790000004718000000000000,GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", -"03000000790000004618000000000000,GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", -"030000008f0e00000d31000000000000,Gamepad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ac0500003d03000000000000,GameSir G3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000ac0500005b05000000000000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000ac0500002d02000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000ac0500004d04000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"030000004c0e00001035000000000000,Gamester,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000000d0f00001110000000000000,GameStick Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"0300000047530000616d000000000000,GameStop,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000260900002625000000000000,Gamecube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows,", +"03000000790000004618000000000000,GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", +"030000008f0e00000d31000000000000,GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000280400000140000000000000,GamePad Pro USB,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"03000000ac0500003d03000000000000,GameSir,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000ac0500004d04000000000000,GameSir,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000ffff00000000000000000000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "03000000c01100000140000000000000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000b62500000100000000000000,Gametel GT004 01,a:b3,b:b0,dpdown:b10,dpleft:b9,dpright:b8,dpup:b11,leftshoulder:b4,rightshoulder:b5,start:b7,x:b1,y:b2,platform:Windows,", -"030000008f0e00001411000000000000,Gamo2 Divaller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000a857000000000000,Gator Claw,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000c9110000f055000000000000,GC100XF,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"030000009b2800003200000000000000,GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,", +"030000009b2800006000000000000000,GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,", "030000008305000009a0000000000000,Genius,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "030000008305000031b0000000000000,Genius Maxfire Blaze 3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "03000000451300000010000000000000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "030000005c1a00003330000000000000,Genius MaxFire Grandias 12V,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", -"03000000300f00000b01000000000000,GGE909 Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000f0250000c283000000000000,Gioteck PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000300f00000b01000000000000,GGE909 Recoil Pad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", +"03000000f0250000c283000000000000,Gioteck,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000f025000021c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000f025000031c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000f0250000c383000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000f0250000c483000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"030000004f04000026b3000000000000,GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"0300000079000000d418000000000000,GPD Win,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c6240000025b000000000000,GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000007d0400000840000000000000,Gravis Destroyer Tilt,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows,", -"030000007d0400000540000000000000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"03000000280400000140000000000000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a3,dpup:-a4,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000008f0e00000610000000000000,GreenAsia,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a5,righty:a2,start:b11,x:b3,y:b0,platform:Windows,", -"03000000ac0500006b05000000000000,GT2a,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", +"03000000f0250000c383000000000000,Gioteck VX2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000f0250000c483000000000000,Gioteck VX2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"030000007d0400000540000000000000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", "03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00004900000000000000,Hatsune Miku Sho PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000001008000001e1000000000000,Havit HV G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows,", -"030000000d0f00000c00000000000000,HEXT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000d81400000862000000000000,HitBox Edition Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", -"03000000632500002605000000000000,HJD X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"030000000d0f00000a00000000000000,Hori DOA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f00008500000000000000,Hori Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00002500000000000000,Hori Fighting Commander 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00004900000000000000,Hatsune Miku Sho Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000001008000001e1000000000000,Havit HV-G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows,", +"03000000d81400000862000000000000,HitBox Edition Cthulhu+,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", +"03000000632500002605000000000000,HJD-X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "030000000d0f00002d00000000000000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00008400000000000000,Hori Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00005100000000000000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00008600000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f0000ba00000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f00008800000000000000,Hori Fighting Stick mini 4 (PS3),a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,", -"030000000d0f00008700000000000000,Hori Fighting Stick mini 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00001000000000000000,Hori Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00003200000000000000,Hori Fightstick 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000c000000000000000,Hori Fightstick 4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f00000d00000000000000,Hori Fightstick EX2,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000000d0f00003701000000000000,Hori Fightstick Mini,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Windows,", -"030000000d0f00004000000000000000,Hori Fightstick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00002100000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00002700000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000a000000000000000,Hori Grip TAC4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b13,x:b0,y:b3,platform:Windows,", -"030000000d0f0000a500000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000a600000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00000101000000000000,Hori Mini Hatsune Miku FT,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00005f00000000000000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00005e00000000000000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00004000000000000000,Hori Fighting Stick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", "030000000d0f00005400000000000000,Hori Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000000d0f00000900000000000000,Hori Pad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000000d0f00004d00000000000000,Hori Pad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00003801000000000000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Windows,", -"030000000d0f00009200000000000000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00002301000000000000,Hori PS4 Controller Light,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"030000000d0f00001100000000000000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00002600000000000000,Hori Real Arcade Pro 3P,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00004b00000000000000,Hori Real Arcade Pro 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00008a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00008b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006f00000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00007000000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00003d00000000000000,Hori Real Arcade Pro N3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b4,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b6,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000ae00000000000000,Hori Real Arcade Pro N4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f00008c00000000000000,Hori Real Arcade Pro P4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f0000aa00000000000000,Hori Real Arcade Pro S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000d800000000000000,Hori Real Arcade Pro S,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows,", -"030000000d0f00002200000000000000,Hori Real Arcade Pro V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00005b00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00005c00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000af00000000000000,Hori Real Arcade Pro VHS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00001b00000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000002f5000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Windows,", +"030000000d0f00009200000000000000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00001600000000007803,HORI Real Arcade Pro EX-SE (Xbox 360),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows,", "030000000d0f00009c00000000000000,Hori TAC Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000c900000000000000,Hori Taiko Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000000d0f0000c100000000000000,Horipad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006400000000000000,Horipad 3TP,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00001300000000000000,Horipad 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00006e00000000000000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00006600000000000000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "030000000d0f00005500000000000000,Horipad 4 FPS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006e00000000000000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006600000000000000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00004200000000000000,Horipad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ad1b000001f5000000000000,Horipad EXT2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f0000ee00000000000000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f00006700000000000000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000000d0f0000dc00000000000000,Horipad Switch,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"030000000d0f0000ee00000000000000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000250900000017000000000000,HRAP2 on PS/SS/N64 Joypad to USB BOX,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows,", "030000008f0e00001330000000000000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Windows,", -"03000000790000004e95000000000000,Hyperkin N64 Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Windows,", -"03000000d81d00000e00000000000000,iBuffalo AC02 Arcade Joystick,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,rightx:a2,righty:a5,start:b8,x:b4,y:b5,platform:Windows,", -"03000000d81d00000f00000000000000,iBuffalo BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000d81d00001000000000000000,iBuffalo BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"030000005c0a00000285000000000000,iDroidCon,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b6,platform:Windows,", -"03000000696400006964000000000000,iDroidCon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000d81d00000f00000000000000,iBUFFALO BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000d81d00001000000000000000,iBUFFALO BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000830500006020000000000000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Windows,", "03000000b50700001403000000000000,Impact Black,a:b2,b:b3,back:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", -"030000006f0e00002401000000000000,Injustice Fightstick PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"03000000830500005130000000000000,InterAct ActionPad,a:b0,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"03000000ef0500000300000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows,", -"03000000fd0500000230000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows,", -"03000000fd0500000030000000000000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows,", -"03000000fd0500003902000000000000,InterAct Hammerhead,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,rightshoulder:b7,rightstick:b5,righttrigger:b9,start:b10,x:b0,y:b1,platform:Windows,", -"03000000fd0500002a26000000000000,InterAct Hammerhead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows,", -"03000000fd0500002f26000000000000,InterAct Hammerhead FX,a:b4,b:b5,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b1,y:b2,platform:Windows,", -"03000000fd0500005302000000000000,InterAct ProPad,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows,", -"03000000ac0500002c02000000000000,Ipega Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000491900000204000000000000,Ipega PG9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000491900000304000000000000,Ipega PG9087,+righty:+a5,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows,", +"030000006f0e00002401000000000000,INJUSTICE FightStick PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"03000000ac0500002c02000000000000,IPEGA,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000491900000204000000000000,Ipega PG-9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000491900000304000000000000,Ipega PG-9087 - Bluetooth Gamepad,+righty:+a5,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows,", +"030000006e0500000a20000000000000,JC-DUX60 ELECOM MMO Gamepad,a:b2,b:b3,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b14,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b15,righttrigger:b13,rightx:a3,righty:a4,start:b20,x:b0,y:b1,platform:Windows,", +"030000006e0500000520000000000000,JC-P301U,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", +"030000006e0500000320000000000000,JC-U3613M (DInput),a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows,", +"030000006e0500000720000000000000,JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,", "030000007e0500000620000000000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows,", +"030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows,", "030000007e0500000720000000000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,", -"03000000250900000017000000000000,Joypad Adapter,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows,", -"03000000bd12000003c0000000000000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ff1100004033000000000000,JPD FFB,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a2,start:b15,x:b3,y:b0,platform:Windows,", -"03000000242f00002d00000000000000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"03000000242f00008a00000000000000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,", -"03000000c4100000c082000000000000,KADE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000828200000180000000000000,Keio,a:b4,b:b5,back:b8,leftshoulder:b2,lefttrigger:b3,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b1,platform:Windows,", +"030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,", +"03000000bd12000003c0000010010000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000bd12000003c0000000000000,JY-P70UR,a:b1,b:b0,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b4,x:b3,y:b2,platform:Windows,", +"03000000242f00002d00000000000000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000242f00008a00000000000000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,", "03000000790000000200000000000000,King PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", -"03000000bd12000001e0000000000000,Leadership,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"030000006f0e00000103000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e00000104000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000008f0e00001300000000000000,Logic3,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006d040000d2ca000000000000,Logitech Cordless Precision,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006d04000011c2000000000000,Logitech Cordless Wingman,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b2,righttrigger:b7,rightx:a3,righty:a4,x:b4,platform:Windows,", "030000006d04000016c2000000000000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d0400001dc2000000000000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d0400001ec2000000000000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006d04000019c2000000000000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006d0400001ac2000000000000,Logitech Precision,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d04000009c2000000000000,Logitech WingMan,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows,", -"030000006d0400000bc2000000000000,Logitech WingMan Action Pad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:a5~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:a2~,start:b8,x:b3,y:b4,platform:Windows,", +"030000006d04000018c2000000000000,Logitech F510 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000006d04000019c2000000000000,Logitech F710 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000006d0400001ac2000000000000,Logitech Precision Gamepad,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", "030000006d0400000ac2000000000000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows,", -"03000000380700005645000000000000,Lynx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000222200006000000000000000,Macally,a:b1,b:b2,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700003888000000000000,Mad Catz Arcade Fightstick TE S Plus PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008532000000000000,Mad Catz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700006352000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700006652000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700005032000000000000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700005082000000000000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008031000000000000,Mad Catz FightStick Alpha PS3 ,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000003807000038b7000000000000,Mad Catz Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700008433000000000000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008483000000000000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008134000000000000,Mad Catz Fightstick TE2 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008184000000000000,Mad Catz Fightstick TE2 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700006252000000000000,Mad Catz Micro CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008232000000000000,Mad Catz PlayStation Brawlpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700008731000000000000,Mad Catz PlayStation Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000003807000056a8000000000000,Mad Catz PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700001888000000000000,Mad Catz SFIV Fightstick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000380700008081000000000000,Mad Catz SFV Arcade Fightstick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700001847000000000000,Mad Catz Street Fighter 4 Xbox 360 FightStick,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows,", +"03000000380700006652000000000000,Mad Catz C.T.R.L.R,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700005032000000000000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700005082000000000000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700008433000000000000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700008483000000000000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700008134000000000000,Mad Catz FightStick TE2+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700008184000000000000,Mad Catz FightStick TE2+ PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700006252000000000000,Mad Catz Micro C.T.R.L.R,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", "03000000380700008034000000000000,Mad Catz TE2 PS3 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000380700008084000000000000,Mad Catz TE2 PS4 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700008532000000000000,Madcatz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700003888000000000000,Madcatz Arcade Fightstick TE S+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000380700001888000000000000,MadCatz SFIV FightStick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000380700008081000000000000,MADCATZ SFV Arcade FightStick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "030000002a0600001024000000000000,Matricom,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows,", "030000009f000000adbb000000000000,MaxJoypad Virtual Controller,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000250900000128000000000000,Mayflash Arcade Stick,a:b1,b:b2,back:b8,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b5,y:b6,platform:Windows,", -"03000000242f00003700000000000000,Mayflash F101,a:b1,b:b2,back:b8,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"03000000790000003018000000000000,Mayflash F300 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"03000000242f00003900000000000000,Mayflash F300 Elite Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000790000004418000000000000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", -"03000000790000004318000000000000,Mayflash GameCube Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", +"03000000790000004318000000000000,Mayflash GameCube Controller Adapter,a:b1,b:b2,back:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b0,leftshoulder:b4,leftstick:b0,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", "03000000242f00007300000000000000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,", "0300000079000000d218000000000000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000d620000010a7000000000000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000008f0e00001030000000000000,Mayflash Sega Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,rightshoulder:b2,righttrigger:b7,start:b9,x:b3,y:b4,platform:Windows,", -"0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,", -"03000000790000000318000000000000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,", -"03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000790000002418000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b2,start:b9,x:b3,y:b4,platform:Windows,", -"0300000079000000ae18000000000000,Mega Drive Controller,a:b0,b:b1,back:b7,dpdown:b14,dpleft:b15,dpright:b13,dpup:b2,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"03000000c0160000990a000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,righttrigger:b2,start:b3,platform:Windows,", -"030000005e0400002800000000000000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Windows,", -"030000005e0400000300000000000000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows,", -"030000005e0400000700000000000000,Microsoft SideWinder,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"030000005e0400000e00000000000000,Microsoft SideWinder Freestyle Pro,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows,", -"030000005e0400002700000000000000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Windows,", -"03000000280d00000202000000000000,Miller Lite Cantroller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b5,x:b2,y:b3,platform:Windows,", -"03000000ad1b000023f0000000000000,MLG,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a6,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000ad1b00003ef0000000000000,MLG Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700006382000000000000,MLG PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ffff00000000000000000000,Mocute M053,a:b3,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b11,leftstick:b7,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b6,righttrigger:b4,rightx:a3,righty:a4,start:b8,x:b1,y:b0,platform:Windows,", -"03000000d6200000e589000000000000,Moga 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000d62000007162000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000d6200000ad0d000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c62400002a89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c62400002b89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c62400001a89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c62400001b89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"030000008f0e00001030000000000000,Mayflash USB Adapter for original Sega Saturn controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,rightshoulder:b2,righttrigger:b7,start:b9,x:b3,y:b4,platform:Windows,", +"0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,", +"03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000790000002418000000000000,Mega Drive,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b2,start:b9,x:b3,y:b4,platform:Windows,", +"03000000380700006382000000000000,MLG GamePad PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000c62400002a89000000000000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c62400002b89000000000000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c62400001a89000000000000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000c62400001b89000000000000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "03000000efbe0000edfe000000000000,Monect Virtual Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", "03000000250900006688000000000000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000091200004488000000000000,MUSIA PlayStation 2 Input Display,a:b0,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b7,righttrigger:b11,rightx:a2,righty:a3,start:b5,x:b1,y:b3,platform:Windows,", -"03000000f70600000100000000000000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Windows,", -"030000006b140000010c000000000000,Nacon GC 400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"030000006b1400001106000000000000,Nacon Revolution 3 PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000006b140000100d000000000000,Nacon Revolution Infinity PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006b140000080d000000000000,Nacon Revolution Unlimited Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000bd12000001c0000000000000,Nebular,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000eb0300000000000000000000,NeGcon Adapter,a:a2,b:b13,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,lefttrigger:a4,leftx:a1,righttrigger:b11,start:b3,x:a3,y:b12,platform:Windows,", -"0300000038070000efbe000000000000,NEO SE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"0300000092120000474e000000000000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Windows,", -"03000000921200004b46000000000000,NES 2 port Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Windows,", -"03000000000f00000100000000000000,NES Controller,a:b1,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows,", -"03000000921200004346000000000000,NES Controller,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows,", -"03000000790000004518000000000000,NEXILUX GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", +"030000006b140000010c000000000000,NACON GC-400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000921200004b46000000000000,NES 2-port Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Windows,", +"03000000790000004518000000000000,NEXILUX GAMECUBE Controller Adapter,platform:Windows,a:b1,b:b0,x:b2,y:b3,start:b9,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a5,righty:a2,lefttrigger:a3,righttrigger:a4,", "030000001008000001e5000000000000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Windows,", -"03000000050b00000045000000000000,Nexus,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Windows,", "03000000152000000182000000000000,NGDS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", -"030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000bd12000015d0000000000000,Nintendo Retrolink USB Super SNES Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,", +"030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "030000000d0500000308000000000000,Nostromo N45,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Windows,", -"030000007e0500001920000000000000,NSO N64 Controller,+rightx:b8,+righty:b2,-rightx:b3,-righty:b7,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Windows,", -"030000007e0500001720000000000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Windows,", -"03000000550900001472000000000000,NVIDIA Controller,a:b11,b:b10,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b5,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b4,righttrigger:a5,rightx:a3,righty:a6,start:b3,x:b9,y:b8,platform:Windows,", -"03000000550900001072000000000000,NVIDIA Shield,a:b9,b:b8,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b2,righttrigger:a4,rightx:a2,righty:a5,start:b0,x:b7,y:b6,platform:Windows,", -"030000005509000000b4000000000000,NVIDIA Virtual,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000120c00000288000000000000,Nyko Air Flo Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000004b120000014d000000000000,Nyko Airflo,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a3,leftstick:a0,lefttrigger:b6,rightshoulder:b5,rightstick:a2,righttrigger:b7,start:b9,x:b2,y:b3,platform:Windows,", -"03000000d62000001d57000000000000,Nyko Airflo PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000791d00000900000000000000,Nyko Playpad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000782300000a10000000000000,Onlive Controller,a:b15,b:b14,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b11,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b13,y:b12,platform:Windows,", -"030000000d0f00000401000000000000,Onyx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000008916000001fd000000000000,Onza CE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a3,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000008916000000fd000000000000,Onza TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"03000000550900001472000000000000,NVIDIA Controller v01.04,a:b11,b:b10,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b5,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b4,righttrigger:a5,rightx:a3,righty:a6,start:b3,x:b9,y:b8,platform:Windows,", +"030000004b120000014d000000000000,NYKO AIRFLO,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a3,leftstick:a0,lefttrigger:b6,rightshoulder:b5,rightstick:a2,righttrigger:b7,start:b9,x:b2,y:b3,platform:Windows,", +"03000000d620000013a7000000000000,NSW wired controller,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,", +"03000000782300000a10000000000000,Onlive Wireless Controller,a:b15,b:b14,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b11,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b13,y:b12,platform:Windows,", "03000000d62000006d57000000000000,OPP PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006b14000001a1000000000000,Orange Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows,", -"03000000362800000100000000000000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows,", -"03000000120c0000f60e000000000000,P4 Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", -"03000000790000002201000000000000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"030000006f0e00008501000000000000,PDP Fightpad Pro,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b0,platform:Windows,", -"030000006f0e00000901000000000000,PDP Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000008f0e00004100000000000000,PlaySega,a:b1,b:b0,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b4,y:b3,platform:Windows,", -"03000000e30500009605000000000000,PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", +"03000000362800000100000000000000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows,", +"03000000120c0000f60e000000000000,P4 Wired Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,", +"030000006f0e00000901000000000000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", "030000004c050000da0c000000000000,PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000632500002306000000000000,PlayStation Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows,", -"03000000f0250000c183000000000000,PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000d9040000160f000000000000,PlayStation Controller Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", "030000004c0500003713000000000000,PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", "03000000d62000006dca000000000000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"0300000062060000d570000000000000,PowerA PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000d620000013a7000000000000,PowerA Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d04000084ca000000000000,Precision,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", "03000000d62000009557000000000000,Pro Elite PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000c62400001a53000000000000,Pro Ex Mini,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "03000000d62000009f31000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000d6200000c757000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000110e000000000000,Pro5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000632500002306000000000000,PS Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows,", +"03000000e30500009605000000000000,PS to USB convert cable,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000100800000100000000000000,PS1 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", "030000008f0e00007530000000000000,PS1 Controller,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b1,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000100800000300000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000250900000088000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000250900006888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b6,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000250900008888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000666600006706000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Windows,", "030000006b1400000303000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", "030000009d0d00001330000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000151a00006222000000000000,PS2 Dual Plus Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000120a00000100000000000000,PS3 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000120c00001307000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c00001cf1000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f90e000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000250900000118000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000250900000218000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000250900000500000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows,", "030000004c0500006802000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b10,lefttrigger:a3~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:a4~,rightx:a2,righty:a5,start:b8,x:b3,y:b0,platform:Windows,", -"030000004f1f00000800000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", "03000000632500007505000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,", -"03000000888800000804000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,leftshoulder:b10,leftstick:b1,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows,", -"030000008f0e00000300000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,", "030000008f0e00001431000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000ba2200002010000000000000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Windows,", -"03000000120c00000807000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000111e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000121e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000130e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000150e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000180e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000181e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000191e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c00001e0e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000a957000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000aa57000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f21c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f31c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f41c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f51c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120c0000f70e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000120e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000160e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000001a1e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000003807000056a8000000000000,PS3 RF pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000100000008200000000000000,PS360+ v1.66,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:h0.4,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", "030000004c050000a00b000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows,", +"030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "030000004c050000cc09000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000004c050000e60c000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows,", -"03000000830500005020000000000000,PSX,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Windows,", -"03000000300f00000111000000000000,Qanba 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00000211000000000000,Qanba 2P,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000300f00000011000000000000,Qanba Arcade Stick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows,", -"03000000300f00001611000000000000,Qanba Arcade Stick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,", -"03000000222c00000025000000000000,Qanba Dragon Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000222c00000020000000000000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00001211000000000000,Qanba Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00001210000000000000,Qanba Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,", -"03000000341a00000104000000000000,Qanba Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows,", -"03000000222c00000223000000000000,Qanba Obsidian Arcade Stick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000222c00000023000000000000,Qanba Obsidian Arcade Stick PS4,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000008a2400006682000000000000,R1 Mobile Controller,a:b3,b:b1,back:b7,leftx:a0,lefty:a1,start:b6,x:b4,y:b0,platform:Windows,", -"03000000086700006626000000000000,RadioShack,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000ff1100004733000000000000,Ramox FPS Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows,", -"030000009b2800002300000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows,", -"030000009b2800006900000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows,", -"030000009b2800000800000000000000,Raphnet Dreamcast Adapter,a:b2,b:b1,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,lefttrigger:a2,leftx:a0,righttrigger:a3,righty:a1,start:b3,x:b10,y:b9,platform:Windows,", -"030000009b2800003200000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,", -"030000009b2800006000000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows,", -"030000009b2800001800000000000000,Raphnet Jaguar Adapter,a:b2,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b10,start:b3,x:b11,y:b12,platform:Windows,", -"030000009b2800000200000000000000,Raphnet NES Adapter,a:b7,b:b6,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b4,platform:Windows,", -"030000009b2800004400000000000000,Raphnet PS1 and PS2 Adapter,a:b1,b:b2,back:b5,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b9,rightx:a3,righty:a4,start:b4,x:b0,y:b3,platform:Windows,", -"030000009b2800004300000000000000,Raphnet Saturn,a:b0,b:b1,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows,", -"030000009b2800000500000000000000,Raphnet Saturn Adapter 2.0,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,", -"030000009b2800000300000000000000,Raphnet SNES Adapter,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows,", -"030000009b2800005600000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows,", -"030000009b2800005700000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows,", -"030000009b2800001e00000000000000,Raphnet Vectrex Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a1,lefty:a2,x:b2,y:b3,platform:Windows,", -"030000009b2800002b00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows,", -"030000009b2800002c00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows,", +"030000004c050000e60c000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000ff000000cb01000000000000,PSP,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", +"03000000300f00000011000000000000,QanBa Arcade JoyStick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows,", +"03000000300f00001611000000000000,QanBa Arcade JoyStick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,", +"03000000222c00000020000000000000,QANBA DRONE ARCADE JOYSTICK,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows,", +"03000000300f00001210000000000000,QanBa Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,", +"03000000341a00000104000000000000,QanBa Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows,", +"03000000222c00000223000000000000,Qanba Obsidian Arcade Joystick PS3 Mode,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000222c00000023000000000000,Qanba Obsidian Arcade Joystick PS4 Mode,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000321500000003000000000000,Razer Hydra,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000321500000204000000000000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000104000000000000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000010000000000000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000321500000204000000000000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000321500000104000000000000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000321500000507000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "03000000321500000707000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000321500000710000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000a10000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000410000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000910000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000321500000011000000000000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000321500000011000000000000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000321500000009000000000000,Razer Serval,+lefty:+a2,-lefty:-a1,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,leftx:a0,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000921200004547000000000000,Retro Bit Sega Genesis Controller Adapter,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b6,x:b3,y:b4,platform:Windows,", -"03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000830500006020000000000000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows,", -"03000000bd12000013d0000000000000,Retrolink Sega Saturn Classic Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,lefttrigger:b6,rightshoulder:b2,righttrigger:b7,start:b8,x:b3,y:b4,platform:Windows,", -"03000000bd12000015d0000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,", -"0300000000f000000300000000000000,RetroUSB RetroPad,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,", -"0300000000f00000f100000000000000,RetroUSB Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,", -"03000000830500000960000000000000,Revenger,a:b0,b:b1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b5,platform:Windows,", +"030000000d0f00001100000000000000,REAL ARCADE PRO.3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00006a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00006b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00008b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00007000000000000000,REAL ARCADE PRO.4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00002200000000000000,REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00005b00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000000d0f00005c00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000790000001100000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,", +"03000000bd12000013d0000000000000,Retrolink USB SEGA Saturn Classic,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,lefttrigger:b6,rightshoulder:b2,righttrigger:b7,start:b8,x:b3,y:b4,platform:Windows,", +"0300000000f000000300000000000000,RetroUSB.com RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,", +"0300000000f00000f100000000000000,RetroUSB.com Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,", "030000006b140000010d000000000000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000006b140000020d000000000000,Revolution Pro Controller 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000006b140000020d000000000000,Revolution Pro Controller 2(1/2),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "030000006b140000130d000000000000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00001f01000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e00004601000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c6240000fefa000000000000,Rock Candy Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00008701000000000000,Rock Candy Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000050b0000e318000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"03000000050b0000e518000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"03000000050b00005819000000000000,ROG Chakram Core,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"03000000050b0000181a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"03000000050b00001a1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"03000000050b00001c1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,", -"030000004f04000001d0000000000000,Rumble Force,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"030000008916000000fe000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c6240000045d000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", +"030000004f04000003d0000000000000,run'n'drive,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:a3,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:a4,rightstick:b11,righttrigger:b5,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000a30600001af5000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a306000023f6000000000000,Saitek Cyborg V.1 Game,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00001201000000000000,Saitek Dual Analog,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", +"03000000a306000023f6000000000000,Saitek Cyborg V.1 Game pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", +"03000000300f00001201000000000000,Saitek Dual Analog Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", "03000000a30600000701000000000000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Windows,", -"03000000a30600000cff000000000000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b0,y:b1,platform:Windows,", -"03000000a30600000d5f000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows,", -"03000000a30600000dff000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b8,x:b0,y:b3,platform:Windows,", +"03000000a30600000cff000000000000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b0,y:b1,platform:Windows,", "03000000a30600000c04000000000000,Saitek P2900,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a306000018f5000000000000,Saitek P3200,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00001001000000000000,Saitek P480 Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", -"03000000a30600000901000000000000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b5,rightx:a3,righty:a2,x:b0,y:b1,platform:Windows,", +"03000000300f00001001000000000000,Saitek P480 Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", "03000000a30600000b04000000000000,Saitek P990,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a30600002106000000000000,Saitek PS1000 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a306000020f6000000000000,Saitek PS2700 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", -"03000000300f00001101000000000000,Saitek Rumble,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", -"03000000e804000000a0000000000000,Samsung EIGP20,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000c01100000252000000000000,Sanwa Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"03000000c01100004350000000000000,Sanwa Micro Grip P3,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,x:b3,y:b2,platform:Windows,", -"03000000411200004550000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a1,righty:a2,start:b9,x:b1,y:b3,platform:Windows,", -"03000000c01100004150000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"03000000c01100004450000000000000,Sanwa Online Grip,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b14,x:b3,y:b4,platform:Windows,", -"03000000730700000401000000000000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows,", -"03000000830500006120000000000000,Sanwa Smart Grip II,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,x:b1,y:b3,platform:Windows,", -"03000000c01100000051000000000000,Satechi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"030000004f04000028b3000000000000,Score A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000952e00002577000000000000,Scuf PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000a30c00002500000000000000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Windows,", -"03000000a30c00002400000000000000,Sega Mega Drive Mini 6B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", -"0300000000050000289b000000000000,Sega Saturn Adapter,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,", -"0300000000f000000800000000000000,Sega Saturn Controller,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b7,righttrigger:b3,start:b0,x:b5,y:b6,platform:Windows,", -"03000000730700000601000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,", -"03000000b40400000a01000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows,", -"030000003b07000004a1000000000000,SFX,a:b0,b:b2,back:b7,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Windows,", -"03000000f82100001900000000000000,Shogun Bros Chameleon X1,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000120c00001c1e000000000000,SnakeByte 4S PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"0300000003040000c197000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows,", -"0300000081170000960a000000000000,SNES Controller,a:b4,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b5,y:b1,platform:Windows,", -"03000000811700009d0a000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows,", -"030000008b2800000300000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows,", -"03000000921200004653000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows,", -"03000000ff000000cb01000000000000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000341a00000208000000000000,Speedlink 6555,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows,", -"03000000341a00000908000000000000,Speedlink 6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000380700001722000000000000,Speedlink Competition Pro,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,x:b2,y:b3,platform:Windows,", -"030000008f0e00000800000000000000,Speedlink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows,", +"03000000a30600002106000000000000,Saitek PS1000,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", +"03000000a306000020f6000000000000,Saitek PS2700,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,", +"03000000300f00001101000000000000,Saitek Rumble Pad,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", +"03000000730700000401000000000000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Windows,", +"0300000000050000289b000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,", +"030000009b2800000500000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000a30c00002500000000000000,Sega Genesis Mini 3B controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Windows,", +"03000000a30c00002400000000000000,Sega Mega Drive Mini 6B controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows,", +"03000000341a00000208000000000000,SL-6555-SBK,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows,", +"03000000341a00000908000000000000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"030000008f0e00000800000000000000,SpeedLink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000c01100000591000000000000,Speedlink Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000d11800000094000000000000,Stadia Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b11,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows,", -"03000000de280000fc11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000de280000ff11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000120c0000160e000000000000,Steel Play Metaltech PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "03000000110100001914000000000000,SteelSeries,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", "03000000381000001214000000000000,SteelSeries Free,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows,", "03000000110100003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "03000000381000001814000000000000,SteelSeries Stratus XL,a:b0,b:b1,back:b18,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b19,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b2,y:b3,platform:Windows,", -"03000000790000001c18000000000000,STK 7024X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000380700003847000000000000,Street Fighter Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows,", -"030000001f08000001e4000000000000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000790000000418000000000000,Super Famicom Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000341200001300000000000000,Super Racer,a:b2,b:b3,back:b8,leftshoulder:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b7,x:b0,y:b1,platform:Windows,", -"03000000d620000011a7000000000000,Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000000d0f0000f600000000000000,Switch Hori Pad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000457500002211000000000000,Szmy Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000004f0400000ab1000000000000,T16000M,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b10,x:b2,y:b3,platform:Windows,", -"030000000d0f00007b00000000000000,TAC GEAR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000e40a00000207000000000000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Windows,", -"03000000d814000001a0000000000000,TE Kitty,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000790000001c18000000000000,STK-7024X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000ff1100003133000000000000,SVEN X-PAD,a:b2,b:b3,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a4,start:b5,x:b0,y:b1,platform:Windows,", +"03000000d620000011a7000000000000,Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000457500002211000000000000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000004f04000007d0000000000000,T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"030000004f0400000ab1000000000000,T.16000M,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b10,x:b2,y:b3,platform:Windows,", "03000000fa1900000706000000000000,Team 5,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000b50700001203000000000000,Techmobility X6-38V,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", -"03000000ba2200000701000000000000,Technology Innovation PS2 Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b2,platform:Windows,", -"03000000c61100001000000000000000,Tencent Xianyou Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows,", -"03000000790000002601000000000000,TGZ,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,", "030000004f04000015b3000000000000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"030000004f04000023b3000000000000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000004f0400000ed0000000000000,ThrustMaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000004f04000008d0000000000000,ThrustMaster Ferrari 150 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000004f04000023b3000000000000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"030000004f0400000ed0000000000000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Windows,", -"030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", -"030000004f04000003d0000000000000,ThrustMaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:a3,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:a4,rightstick:b11,righttrigger:b5,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000004f04000009d0000000000000,ThrustMaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"030000006d04000088ca000000000000,Thunderpad,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000666600000288000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"03000000666600000488000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"030000004f04000007d0000000000000,TMini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000571d00002100000000000000,Tomee NES Controller Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Windows,", -"03000000571d00002000000000000000,Tomee SNES Controller Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", +"030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,", +"03000000666600000488000000000000,TigerGame PS/PS2 Game Controller Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", "03000000d62000006000000000000000,Tournament PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", -"03000000c01100000055000000000000,Tronsmart,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "030000005f140000c501000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000b80500000210000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "030000004f04000087b6000000000000,TWCS Throttle,dpdown:b8,dpleft:b9,dpright:b7,dpup:b6,leftstick:b5,lefttrigger:-a5,leftx:a0,lefty:a1,righttrigger:+a5,platform:Windows,", -"03000000411200000450000000000000,Twin Shock,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows,", -"03000000d90400000200000000000000,TwinShock PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000151900005678000000000000,Uniplay U6,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b10,x:b3,y:b4,platform:Windows,", +"03000000d90400000200000000000000,TwinShock PS2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", +"030000006e0500001320000000000000,U4113,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000101c0000171c000000000000,uRage Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", -"030000000b0400003065000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000242f00006e00000000000000,USB Controller,a:b1,b:b4,back:b10,leftshoulder:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b3,platform:Windows,", -"03000000300f00000701000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000341a00002308000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000666600000188000000000000,USB Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,", -"030000006b1400000203000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000790000000a00000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", -"03000000b404000081c6000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,", -"03000000b50700001503000000000000,USB Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b0,y:b1,platform:Windows,", -"03000000bd12000012d0000000000000,USB Controller,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ff1100004133000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000632500002305000000000000,USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000300f00000701000000000000,USB 4-Axis 12-Button Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", +"03000000341a00002308000000000000,USB gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"030000005509000000b4000000000000,USB gamepad,a:b10,b:b11,back:b5,dpdown:b1,dpleft:b2,dpright:b3,dpup:b0,guide:b14,leftshoulder:b8,leftstick:b6,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b7,righttrigger:a5,rightx:a2,righty:a3,start:b4,x:b12,y:b13,platform:Windows,", +"030000006b1400000203000000000000,USB gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000790000000a00000000000000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,", +"03000000f0250000c183000000000000,USB gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", +"03000000ff1100004133000000000000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", +"03000000632500002305000000000000,USB Vibration Joystick (BM),a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", "03000000790000001a18000000000000,Venom,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,", "03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00000302000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", -"030000006f0e00000702000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000006f0e00000302000000000000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", +"030000006f0e00000702000000000000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,", "0300000034120000adbe000000000000,vJoy Device,a:b0,b:b1,back:b15,dpdown:b6,dpleft:b7,dpright:b8,dpup:b5,guide:b16,leftshoulder:b9,leftstick:b13,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b14,righttrigger:b12,rightx:a3,righty:a4,start:b4,x:b2,y:b3,platform:Windows,", -"03000000120c0000ab57000000000000,Warrior Joypad JS083,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"030000007e0500003003000000000000,Wii U Pro,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,leftshoulder:b6,leftstick:b11,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b12,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,", -"0300000032150000030a000000000000,Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"0300000032150000140a000000000000,Wolverine,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000002e160000efbe000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700001647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700002045000000000000,Xbox 360 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", -"03000000380700002644000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a5,start:b8,x:b2,y:b3,platform:Windows,", -"03000000380700002647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000003807000026b7000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700003647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a7,righty:a5,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400001907000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400009102000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000000fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000001fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b000016f0000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000ad1b00008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c62400000053000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c6240000fdfa000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700002847000000000000,Xbox 360 Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000a102000000000000,Xbox 360 Wireless Receiver,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000120c00000a88000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000120c00001088000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2~,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5~,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000002a0600002000000000000000,Xbox Controller,a:b0,b:b1,back:b13,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b5,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b15,righttrigger:b7,rightx:a2,righty:a5,start:b12,x:b2,y:b3,platform:Windows,", -"03000000300f00008888000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:b13,dpleft:b10,dpright:b11,dpup:b12,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000380700001645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000380700002645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000380700003645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"03000000380700008645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400000202000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000005e0400008502000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400008702000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000005e0400008902000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b8,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b9,righttrigger:b4,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows,", -"030000000d0f00006300000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e0400000c0b000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000fd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000005e040000ff02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e0000a802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000006f0e0000c802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"03000000c62400003a54000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "030000005e040000130b000000000000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", "03000000341a00000608000000000000,Xeox,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"03000000450c00002043000000000000,Xeox SL6556BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", -"030000006f0e00000300000000000000,XGear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows,", -"03000000172700004431000000000000,Xiaomi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", -"03000000172700003350000000000000,Xiaomi XMGP01YM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000bc2000005060000000000000,Xiaomi XMGP01YM,+lefty:+a2,+righty:+a5,-lefty:-a1,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows,", +"03000000450c00002043000000000000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,", +"03000000ac0500005b05000000000000,Xiaoji Gamesir-G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,", +"03000000172700004431000000000000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,", "03000000786901006e70000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,", -"030000007d0400000340000000000000,Xterminator Digital Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:-a4,lefttrigger:+a4,leftx:a0,lefty:a1,paddle1:b7,paddle2:b6,rightshoulder:b5,rightstick:b9,righttrigger:b2,rightx:a3,righty:a5,start:b8,x:b3,y:b4,platform:Windows,", -"03000000790000004f18000000000000,ZDT Android Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", -"03000000120c00000500000000000000,Zeroplus Adapter,a:b2,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows,", -"03000000120c0000101e000000000000,Zeroplus P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", +"03000000790000004f18000000000000,ZD-T Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,", +"03000000120c0000101e000000000000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,", "78696e70757401000000000000000000,XInput Gamepad (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757402000000000000000000,XInput Wheel (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757403000000000000000000,XInput Arcade Stick (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", @@ -814,281 +426,198 @@ const char* _glfwDefaultMappings[] = "78696e70757405000000000000000000,XInput Dance Pad (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757406000000000000000000,XInput Guitar (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757408000000000000000000,XInput Drum Kit (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", -#endif // GLFW_BUILD_WIN32_MAPPINGS +#endif // _GLFW_WIN32 -#if defined(GLFW_BUILD_COCOA_MAPPINGS) -"030000008f0e00000300000009010000,2 In 1 Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000c82d00000031000001000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00000531000000020000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X,", +#if defined(_GLFW_COCOA) +"030000008f0e00000300000009010000,2In1 USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000c82d00000090000001000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00001251000000020000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00001151000000020000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000a30c00002400000006020000,8BitDo M30,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,guide:b9,leftshoulder:b6,lefttrigger:b5,rightshoulder:b4,righttrigger:b7,start:b8,x:b3,y:b0,platform:Mac OS X,", -"03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", "03000000c82d00000650000001000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00005106000000010000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,lefttrigger:a5,rightshoulder:b7,righttrigger:a4,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X,", +"03000000c82d00005106000000010000,8BitDo M30 Gamepad,a:b1,b:b0,back:b10,guide:b2,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00001590000001000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"030000003512000012ab000001000000,8BitDo NES30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d000012ab000001000000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00002028000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000022000000090000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000190000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000660000000020000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000131000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000231000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000331000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000431000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Mac OS X,", -"03000000102800000900000000000000,8BitDo SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00001290000001000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000c82d00004028000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"030000003512000012ab000001000000,8BitDo NES30 Gamepad,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000022000000090000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000c82d00000190000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000102800000900000000000000,8Bitdo SFC30 GamePad Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000c82d00001290000001000000,8BitDo SN30 Gamepad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000c82d00004028000000010000,8Bitdo SN30 GamePad,a:b1,b:b0,x:b4,y:b3,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,platform:Mac OS X,", "03000000c82d00000160000001000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00000260000001000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000a00500003232000009010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000c82d00000031000001000000,8BitDo Wireless Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", "03000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a31,start:b11,x:b4,y:b3,platform:Mac OS X,", -"03000000491900001904000001010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Mac OS X,", -"03000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X,", -"03000000a30c00002700000003030000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", +"03000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000a00500003232000009010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000a30c00002700000003030000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000a30c00002800000003030000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", -"03000000050b00000579000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b42,paddle1:b9,paddle2:b11,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X,", -"03000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b23,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X,", +"03000000ef0500000300000000020000,AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Mac OS X,", +"03000000491900001904000001010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Mac OS X,", +"03000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X,", "03000000c62400001a89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X,", "03000000c62400001b89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", "03000000d62000002a79000000010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000120c0000200e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000120c0000210e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000120c0000200e000000010000,Brook Mars,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000120c0000210e000000010000,Brook Mars,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000d8140000cecf000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X,", -"03000000a306000022f6000001030000,Cyborg V3 Rumble Pad PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000791d00000103000009010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", -"030000006e0500000720000010020000,Elecom JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Mac OS X,", -"030000006f0e00008401000003010000,Faceoff Premiere Wired Pro Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000151900004000000001000000,Flydigi Vader 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", -"03000000b40400001124000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b4,paddle2:b5,paddle3:b17,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b2,y:b3,platform:Mac OS X,", +"03000000a306000022f6000001030000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000790000004618000000010000,GameCube Controller Adapter,a:b4,b:b0,dpdown:b56,dpleft:b60,dpright:b52,dpup:b48,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X,", -"03000000ad1b000001f9000000000000,Gamestop BB070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"03000000ad1b000001f9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", "0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", "03000000c01100000140000000010000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000006f0e00000102000000000000,GameStop Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000007d0400000540000001010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000280400000140000000020000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000008f0e00000300000007010000,GreenAsia Joystick,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Mac OS X,", +"030000006f0e00000102000000000000,GameStop Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000007d0400000540000001010000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000280400000140000000020000,Gravis Gamepad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000008f0e00000300000007010000,GreenAsia Inc. USB Joystick,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Mac OS X,", "030000000d0f00002d00000000100000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00005f00000000010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00005e00000000010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00008400000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00008500000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00008800000000010000,Hori Fighting Stick mini 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00008700000000010000,Hori Fighting Stick mini 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00004d00000000000000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00003801000008010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Mac OS X,", -"030000000d0f00009200000000010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00006e00000000010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00006600000000010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f00006600000000000000,Horipad FPS Plus 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000000d0f0000ee00000000010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00005f00000000010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00005e00000000010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00005f00000000000000,HORI Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00005e00000000000000,HORI Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00004d00000000000000,HORI Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00009200000000010000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00006e00000000010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00006600000000010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f00006600000000000000,HORIPAD FPS PLUS 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000000d0f0000ee00000000010000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000008f0e00001330000011010000,HuiJia SNES Controller,a:b4,b:b2,back:b16,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b12,rightshoulder:b14,start:b18,x:b6,y:b0,platform:Mac OS X,", -"03000000790000004e95000000010000,Hyperkin N64 Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Mac OS X,", -"03000000830500006020000000000000,iBuffalo Gamepad,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,", -"03000000ef0500000300000000020000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Mac OS X,", -"03000000fd0500000030000010010000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Mac OS X,", +"03000000830500006020000000010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,", +"03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,", "030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Mac OS X,", "030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Mac OS X,", -"03000000242f00002d00000007010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", -"030000006d04000019c2000000000000,Logitech Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000242f00002d00000007010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", "030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000006d04000016c2000000000000,Logitech F310,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000006d04000016c2000000000000,Logitech F310 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000006d04000018c2000000000000,Logitech F510 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000006d04000019c2000005030000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000006d04000018c2000000010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000380700005032000000010000,Mad Catz PS3 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000380700008433000000010000,Mad Catz PS3 Fightstick TE S+,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000380700005082000000010000,Mad Catz PS4 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000380700008483000000010000,Mad Catz PS4 Fightstick TE S+,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000790000000600000007010000,Marvo GT-004,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000790000004318000000010000,Mayflash GameCube Adapter,a:b4,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X,", +"030000006d0400001fc2000000000000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000006d04000018c2000000010000,Logitech RumblePad 2 USB,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000006d04000019c2000000000000,Logitech Wireless Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000380700005032000000010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000380700005082000000010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000380700008433000000010000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000380700008483000000010000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000790000000600000007010000,Marvo GT-004,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Mac OS X,", "03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000242f00007300000000020000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Mac OS X,", "0300000079000000d218000026010000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000d620000010a7000003010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X,", -"03000000790000000318000000010000,Mayflash Wii DolphinBar,a:b8,b:b12,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b44,leftshoulder:b16,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b4,platform:Mac OS X,", -"03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,", -"03000000790000000018000000010000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,", -"030000005e0400002800000002010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Mac OS X,", -"030000005e0400002700000001010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Mac OS X,", -"03000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X,", -"03000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c62400002b89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000632500007505000000020000,NeoGeo mini PAD Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b2,y:b3,platform:Mac OS X,", +"0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X,", +"03000000790000000018000000010000,Mayflash Wii U Pro Controller Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,", +"03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,", +"03000000d8140000cecf000000000000,MC Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000005e0400002700000001010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,leftx:a0,lefty:a1,righttrigger:b5,x:b2,y:b3,platform:Mac OS X,", +"03000000d62000007162000001000000,Moga Pro 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X,", +"03000000c62400002a89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000c62400002b89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000632500007505000000020000,NEOGEO mini PAD Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b2,y:b3,platform:Mac OS X,", "03000000921200004b46000003020000,NES 2-port Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Mac OS X,", "030000001008000001e5000006010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000d620000011a7000000020000,Nintendo Switch Core Plus Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000d620000011a7000010050000,Nintendo Switch PowerA Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000d620000011a7000000020000,Nintendo Switch Core (Plus) Wired Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000d620000011a7000010050000,Nintendo Switch PowerA Wired Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", "030000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", -"030000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Mac OS X,", -"030000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Mac OS X,", -"03000000550900001472000025050000,NVIDIA Controller,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Mac OS X,", -"030000006f0e00000901000002010000,PDP Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000008f0e00000300000000000000,Piranha Xtreme PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X,", -"030000004c050000da0c000000010000,PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", +"03000000550900001472000025050000,NVIDIA Controller v01.04,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Mac OS X,", +"030000006f0e00000901000002010000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X,", +"030000004c050000da0c000000010000,Playstation Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "030000004c0500003713000000010000,PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000d62000006dca000000010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000100800000300000006010000,PS2 Adapter,a:b2,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", "030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X,", "030000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X,", -"030000004c0500006802000072050000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X,", "030000004c050000a00b000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,", -"050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,", -"03000000222c00000225000000010000,Qanba Dragon Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000222c00000020000000010000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000321500000204000000010000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000321500000104000000010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000321500000010000000010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000321500000204000000010000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000321500000104000000010000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000321500000010000000010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000321500000507000001010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000321500000011000000010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000321500000011000000010000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000321500000009000000020000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X,", "030000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X,", "0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000632500008005000000010000,Redgear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", -"030000000d0f0000c100000072050000,Retro Bit Sega Genesis 6B Controller,a:b2,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b8,rightshoulder:b6,righttrigger:b7,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000921200004547000000020000,Retro Bit Sega Genesis Controller Adapter,a:b0,b:b2,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,lefttrigger:b14,rightshoulder:b10,righttrigger:b4,start:b12,x:b6,y:b8,platform:Mac OS X,", -"03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000790000001100000005010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000830500006020000000010000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Mac OS X,", +"03000000790000001100000000000000,Retrolink Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a3,lefty:a4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000790000001100000006010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000006b140000130d000000010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000c6240000fefa000000000000,Rock Candy PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Mac OS X,", -"03000000a30c00002500000006020000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Mac OS X,", +"03000000c6240000fefa000000000000,Rock Candy Gamepad for PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Mac OS X,", "03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X,", -"03000000b40400000a01000000000000,Sega Saturn,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X,", -"030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", +"03000000b40400000a01000000000000,Sega Saturn USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X,", +"030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,", "0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X,", -"030000004c050000a00b000000000000,Sony DualShock 4 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000004c050000e60c000000010000,Sony DualSense,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000004c050000a00b000000000000,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "03000000d11800000094000000010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X,", "030000005e0400008e02000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,", +"03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Mac OS X,", "03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,", "03000000381000002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,", -"05000000484944204465766963650000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X,", "050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X,", -"050000004e696d6275732b008b000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X,", -"05000000556e6b6e6f776e2048494400,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X,", -"03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", "03000000110100001714000000000000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X,", "03000000110100001714000020010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X,", -"030000000d0f0000f600000000010000,Switch Hori Pad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,", -"03000000457500002211000000010000,SZMY Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000457500002211000000010000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X,", -"030000004f0400000ed0000000020000,ThrustMaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000004f0400000ed0000000020000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", "030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X,", -"03000000571d00002100000021000000,Tomee NES Controller Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Mac OS X,", -"03000000bd12000015d0000000010000,Tomee Retro Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000bd12000015d0000000000000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", -"03000000571d00002000000021000000,Tomee SNES Controller Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Mac OS X,", -"030000005f140000c501000000020000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", +"03000000bd12000015d0000000000000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", +"03000000bd12000015d0000000010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,", "03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X,", -"030000006f0e00000302000025040000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", -"030000006f0e00000702000003060000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000006f0e00000302000025040000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"030000006f0e00000702000003060000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000791d00000103000009010000,Wii Classic Controller,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,", "050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X,", "050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X,", -"030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000006f0e00000104000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"03000000c6240000045d000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e0400008e02000000000000,X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000006f0e00000104000000000000,Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"03000000c6240000045d000000000000,Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", "030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000050b000003090000,Xbox Elite Controller Series 2,a:b0,b:b1,back:b31,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b53,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000130b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000200b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", -"030000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000c62400003a54000000000000,Xbox One PowerA Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000050b000003090000,Xbox Elite Wireless Controller Series 2,a:b0,b:b1,back:b31,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b53,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000c62400003a54000000000000,Xbox One PowerA Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000d102000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000dd02000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000e302000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", "030000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", "030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"030000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X,", -"03000000120c0000100e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -"03000000120c0000101e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", -#endif // GLFW_BUILD_COCOA_MAPPINGS +"030000005e040000e002000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000e002000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000ea02000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,", +"030000005e040000fd02000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X,", +"03000000120c0000100e000000010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +"03000000120c0000101e000000010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,", +#endif // _GLFW_COCOA -#if defined(GLFW_BUILD_LINUX_MAPPINGS) -"030000005e0400008e02000020010000,8BitDo Adapter,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000c82d00000031000011010000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux,", -"03000000021000000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +#if defined(GLFW_BUILD_LINUX_JOYSTICK) "03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00001251000011010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00001151000011010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c82d00000650000011010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b11,x:b3,y:b4,platform:Linux,", +"05000000c82d00001038000000010000,8Bitdo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "05000000c82d00005106000000010000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux,", "03000000c82d00001590000011010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "05000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000008000000210000011010000,8BitDo NES30,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", "03000000c82d00000310000011010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux,", "05000000c82d00008010000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux,", -"03000000022000000090000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000190000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00002038000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c82d00000660000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000131000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000231000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000331000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00000431000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Linux,", +"03000000022000000090000011010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +"05000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +"05000000c82d00002038000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +"03000000c82d00000190000011010000,8Bitdo NES30 Pro 8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "05000000c82d00000060000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00000061000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"030000003512000012ab000010010000,8BitDo SFC30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux,", -"030000003512000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c82d000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"05000000102800000900000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00003028000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"05000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +"05000000c82d00000061000000010000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", +"03000000c82d000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", +"030000003512000012ab000010010000,8Bitdo SFC30 GamePad,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux,", +"05000000102800000900000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", +"05000000c82d00003028000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", "03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux,", "03000000c82d00000160000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux,", @@ -1097,272 +626,219 @@ const char* _glfwDefaultMappings[] = "05000000c82d00006228000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "03000000c82d00000260000011010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", "05000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"05000000202800000900000000010000,8BitDo SNES30,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"05000000a00500003232000001000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,", -"05000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c82d00001890000011010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", -"050000005e040000e002000030110000,8BitDo Zero 2,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,", +"05000000202800000900000000010000,8BitDo SNES30 Gamepad,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", +"03000000c82d00000031000011010000,8BitDo Wireless Adapter (DInput),a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000005e0400008e02000020010000,8BitDo Wireless Adapter (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c82d00001890000011010000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,", "05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,", -"03000000c01100000355000011010000,Acrux Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"050000005e040000e002000030110000,8BitDo Zero 2 (XInput),a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,", +"05000000a00500003232000001000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,", +"05000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,", +"03000000c01100000355000011010000,ACRUX USB GAME PAD,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000006f0e00001302000000010000,Afterglow,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006f0e00003901000020060000,Afterglow Controller for Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000006f0e00003901000000430000,Afterglow Prismatic Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e00003901000013020000,Afterglow Prismatic Controller 048-007-NA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e00001302000000010000,Afterglow Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e00003901000020060000,Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000100000008200000011010000,Akishop Customs PS360,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000007c1800000006000010010000,Alienware Dual Compatible Game PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Linux,", -"05000000491900000204000021000000,Amazon Fire Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b17,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000006f0e00003901000013020000,Afterglow Prismatic Wired Controller 048-007-NA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000100000008200000011010000,Akishop Customs PS360+ v1.66,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000007c1800000006000010010000,Alienware Dual Compatible Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Linux,", +"05000000491900000204000021000000,Amazon Fire Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b17,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "03000000491900001904000011010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux,", "05000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", "03000000790000003018000011010000,Arcade Fightstick F300,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"03000000a30c00002700000011010000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", +"03000000a30c00002700000011010000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", "03000000a30c00002800000011010000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", "05000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux,", "05000000050b00000045000040000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux,", -"03000000050b00000579000011010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b36,paddle1:b52,paddle2:b53,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b21,paddle1:b22,paddle2:b23,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000503200000110000000000000,Atari Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux,", -"03000000503200000110000011010000,Atari Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux,", -"05000000503200000110000000000000,Atari Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux,", -"05000000503200000110000044010000,Atari Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux,", -"05000000503200000110000046010000,Atari Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux,", -"03000000503200000210000000000000,Atari Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux,", -"03000000503200000210000011010000,Atari Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", -"05000000503200000210000000000000,Atari Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", -"05000000503200000210000045010000,Atari Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", -"05000000503200000210000046010000,Atari Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", -"05000000503200000210000047010000,Atari VCS Modern Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:-a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux,", -"03000000c62400001b89000011010000,BDA MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"03000000503200000110000000000000,Atari Classic Controller,a:b0,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,x:b1,platform:Linux,", +"05000000503200000110000000000000,Atari Classic Controller,a:b0,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,x:b1,platform:Linux,", +"03000000503200000210000000000000,Atari Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", +"05000000503200000210000000000000,Atari Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,", +"03000000120c00000500000010010000,AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux,", +"03000000ef0500000300000000010000,AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux,", +"03000000c62400001b89000011010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "03000000d62000002a79000011010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000c21100000791000011010000,Be1 GC101 Controller 1.03,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000c31100000791000011010000,Be1 GC101 Controller 1.03,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"030000005e0400008e02000003030000,Be1 GC101 Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c21100000791000011010000,Be1 GC101 Controller 1.03 mode,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000c31100000791000011010000,Be1 GC101 GAMEPAD 1.03 mode,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000005e0400008e02000003030000,Be1 GC101 Xbox 360 Controller mode,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "05000000bc2000000055000001000000,BETOP AX1 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000bc2000006412000011010000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b30,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000006b1400000209000011010000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000666600006706000000010000,Boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux,", -"03000000120c0000200e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000120c0000210e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000666600006706000000010000,boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux,", +"03000000120c0000200e000011010000,Brook Mars,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000120c0000210e000011010000,Brook Mars,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "03000000120c0000f70e000011010000,Brook Universal Fighting Board,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"03000000ffff0000ffff000000010000,Chinese-made Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", "03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", "030000000b0400003365000000010000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Linux,", "03000000260900008888000000010000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Linux,", -"03000000a306000022f6000011010000,Cyborg V3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", -"03000000791d00000103000010010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000a306000022f6000011010000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", +"03000000b40400000a01000000010000,CYPRESS USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux,", +"03000000790000000600000010010000,DragonRise Inc. Generic USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux,", +"030000004f04000004b3000010010000,Dual Power 2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", "030000006f0e00003001000001010000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000c11100000191000011010000,EasySMX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000242f00009100000000010000,EasySMX ESM-9101,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006e0500000320000010010000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux,", -"030000006e0500000720000010010000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux,", -"030000007d0400000640000010010000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Linux,", -"03000000430b00000300000000010000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", -"03000000b40400001124000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000151900004000000001000000,Flydigi Vader 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"03000000ac0500005b05000010010000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000341a000005f7000010010000,GameCube {HuiJia USB box},a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,", "03000000bc2000000055000011010000,GameSir G3w,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000558500001b06000010010000,GameSir G4 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000ac0500002d0200001b010000,GameSir G4s,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b33,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000bc2000005656000011010000,GameSir T4w,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", "030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000008f0e00000800000010010000,Gasia PlayStation Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000008f0e00000800000010010000,Gasia Co. Ltd PS(R) Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000006f0e00001304000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000451300000010000010010000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"03000000f0250000c183000010010000,Goodbetterbest Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000f0250000c183000010010000,Goodbetterbest Ltd USB Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "0300000079000000d418000000010000,GPD Win 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000007d0400000540000000010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"03000000280400000140000000010000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000008f0e00000610000000010000,GreenAsia Electronics Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux,", -"030000008f0e00001200000010010000,GreenAsia Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", +"030000007d0400000540000000010000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"03000000280400000140000000010000,Gravis GamePad Pro USB ,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000008f0e00000610000000010000,GreenAsia Electronics 4Axes 12Keys GamePad ,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux,", +"030000008f0e00001200000010010000,GreenAsia Inc. USB Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", "0500000047532067616d657061640000,GS gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", "03000000f0250000c383000010010000,GT VX2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"06000000adde0000efbe000002010000,Hidromancer Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000d81400000862000011010000,HitBox PS3 PC Analog Mode,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux,", -"03000000c9110000f055000011010000,HJC Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"03000000632500002605000010010000,HJDX,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"030000000d0f00000d00000000010000,Hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux,", -"030000000d0f00006d00000020010000,Hori EDGE 301,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:+a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000000d0f00005f00000011010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00005e00000011010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00005001000009040000,Hori Fighting Commander OCTA Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000000d0f00008500000010010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00008600000002010000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"030000000d0f00008800000011010000,Hori Fighting Stick mini 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00008700000011010000,Hori Fighting Stick mini 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,rightstick:b11,righttrigger:a4,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00001000000011010000,Hori Fightstick 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"03000000ad1b000003f5000033050000,Hori Fightstick VX,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b8,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,", -"030000000d0f00004d00000011010000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"06000000adde0000efbe000002010000,Hidromancer Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000d81400000862000011010000,HitBox (PS3/PC) Analog Mode,a:b1,b:b2,back:b8,guide:b9,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux,", +"03000000c9110000f055000011010000,HJC Game GAMEPAD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"03000000632500002605000010010000,HJD-X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000000d0f00000d00000000010000,hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftx:b4,lefty:b5,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux,", +"030000000d0f00001000000011010000,HORI CO. LTD. FIGHTING STICK 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f0000c100000011010000,HORI CO. LTD. HORIPAD S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00006a00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00006b00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00002200000011010000,HORI CO. LTD. REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00008500000010010000,HORI Fighting Commander,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00008600000002010000,Hori Fighting Commander,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"030000000d0f00005f00000011010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00005e00000011010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000000d0f00003801000011010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Linux,", -"030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f0000aa00000011010000,Hori Real Arcade Pro,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000000d0f00001100000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00002200000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00006a00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00006b00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00001600000000010000,Hori Real Arcade Pro EXSE,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,", -"030000000d0f00006e00000011010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00006600000011010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f0000ee00000011010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000000d0f00006700000001010000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000000d0f0000c100000011010000,Horipad S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"050000000d0f0000f600000001000000,Horipad Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"03000000341a000005f7000010010000,HuiJia GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f0000aa00000011010000,HORI Real Arcade Pro,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000000d0f0000d800000072056800,HORI Real Arcade Pro S,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", +"030000000d0f00001600000000010000,Hori Real Arcade Pro.EX-SE (Xbox 360),a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,", +"030000000d0f00006e00000011010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00006600000011010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f0000ee00000011010000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000000d0f00006700000001010000,HORIPAD ONE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000008f0e00001330000010010000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Linux,", "03000000242e00008816000001010000,Hyperkin X91,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000830500006020000010010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux,", -"050000006964726f69643a636f6e0000,idroidcon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000b50700001503000010010000,Impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", -"03000000d80400008200000003000000,IMS PCU0,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b5,x:b3,y:b2,platform:Linux,", -"03000000120c00000500000010010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux,", -"03000000ef0500000300000000010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux,", -"03000000fd0500000030000000010000,InterAct GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Linux,", -"03000000fd0500002a26000000010000,InterAct HammerHead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux,", -"0500000049190000020400001b010000,Ipega PG 9069,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b161,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000632500007505000011010000,Ipega PG 9099,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"0500000049190000030400001b010000,Ipega PG9099,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000491900000204000000000000,Ipega PG9118,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000300f00001001000010010000,Jess Tech Dual Analog Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", -"03000000300f00000b01000010010000,Jess Tech GGE909 PC Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", -"03000000ba2200002010000001010000,Jess Technology Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", +"050000006964726f69643a636f6e0000,idroid:con,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000b50700001503000010010000,impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", +"03000000d80400008200000003000000,IMS PCU#0 Gamepad Interface,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b5,x:b3,y:b2,platform:Linux,", +"03000000fd0500000030000000010000,InterAct GoPad I-73000 (Fighting Game Layout),a:b3,b:b4,back:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b7,x:b0,y:b1,platform:Linux,", +"0500000049190000020400001b010000,Ipega PG-9069 - Bluetooth Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b161,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"03000000632500007505000011010000,Ipega PG-9099 - Bluetooth Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000006e0500000320000010010000,JC-U3613M - DirectInput Mode,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux,", +"03000000300f00001001000010010000,Jess Tech Dual Analog Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", +"03000000300f00000b01000010010000,Jess Tech GGE909 PC Recoil Pad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", +"03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", "030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux,", "050000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux,", "030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux,", "050000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux,", "03000000bd12000003c0000010010000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000242f00002d00000011010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000242f00008a00000011010000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux,", +"03000000242f00002d00000011010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000242f00008a00000011010000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux,", "030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006d040000d1ca000000000000,Logitech Chillstream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006d04000016c2000011010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000006d0400001dc2000014400000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006d0400001ec2000019200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006d0400001ec2000020200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006d04000019c2000011010000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000006d0400001fc2000005030000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006d0400001dc2000014400000,Logitech F310 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006d0400001ec2000019200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006d0400001ec2000020200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006d04000019c2000011010000,Logitech F710 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000006d0400001fc2000005030000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006d0400000ac2000010010000,Logitech Inc. WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Linux,", "030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b10,rightx:a3,righty:a4,start:b8,x:b3,y:b4,platform:Linux,", -"030000006d0400000ac2000010010000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Linux,", -"05000000380700006652000025010000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700008532000010010000,Mad Catz Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700005032000011010000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700005082000011010000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"050000004d4f435554452d3035305800,M54-PC,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"05000000380700006652000025010000,Mad Catz C.T.R.L.R ,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700005032000011010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700005082000011010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux,", -"03000000380700008034000011010000,Mad Catz Fightstick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700008084000011010000,Mad Catz Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700008433000011010000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700008483000011010000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700001888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700003888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000380700001647000010040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000380700003847000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"03000000380700008034000011010000,Mad Catz fightstick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700008084000011010000,Mad Catz fightstick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700008433000011010000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700008483000011010000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700001647000010040000,Mad Catz Wired Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000380700003847000090040000,Mad Catz Wired Xbox 360 Controller (SFIV),a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", "03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000380700001888000010010000,MadCatz PC USB Wired Stick 8818,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000380700003888000010010000,MadCatz PC USB Wired Stick 8838,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000242f0000f700000001010000,Magic-S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000120c00000500000000010000,Manta Dualshock 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", -"03000000790000004318000010010000,Mayflash GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", "03000000790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", +"03000000790000004318000010010000,Mayflash GameCube Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,", "03000000242f00007300000011010000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux,", "0300000079000000d218000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "03000000d620000010a7000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000242f0000f700000001010000,Mayflash Magic S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"0300000025090000e803000001010000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", -"03000000790000000318000011010000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux,", -"03000000b50700001203000010010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", -"03000000780000000600000010010000,Microntek Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", -"030000005e0400002800000000010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Linux,", +"0300000025090000e803000001010000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", +"03000000780000000600000010010000,Microntek USB Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", "030000005e0400000e00000000010000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux,", -"030000005e0400000700000000010000,Microsoft SideWinder Gamepad,a:b0,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux,", -"030000005e0400002700000000010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Linux,", -"030000005e0400008502000000010000,Microsoft Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", -"030000005e0400008e02000001000000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.1,dpleft:h0.2,dpright:h0.8,dpup:h0.4,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000004010000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000056210000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000062230000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000120b00000b050000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000d102000001010000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000d102000003020000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"060000005e040000120b000009050000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000dd02000003020000,Microsoft Xbox One 2015,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000e302000003020000,Microsoft Xbox One Elite,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000000b000008040000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000005e040000050b000003090000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"030000005e040000ea02000008040000,Microsoft Xbox One S,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008902000021010000,Microsoft Xbox pad v2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", +"030000005e0400008e02000004010000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400008e02000062230000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"050000005e040000050b000003090000,Microsoft X-Box One Elite 2 pad,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000005e040000e302000003020000,Microsoft X-Box One Elite pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000d102000001010000,Microsoft X-Box One pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000dd02000003020000,Microsoft X-Box One pad (Firmware 2015),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000d102000003020000,Microsoft X-Box One pad v2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400008502000000010000,Microsoft X-Box pad (Japan),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", +"030000005e0400008902000021010000,Microsoft X-Box pad v2 (US),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", +"030000005e040000000b000008040000,Microsoft Xbox One Elite 2 pad - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000ea02000008040000,Microsoft Xbox One S pad - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c62400001a53000000010000,Mini PE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000030000000300000002000000,Miroof,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux,", -"050000004d4f435554452d3035335800,Mocute 053X,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"050000004d4f435554452d3035305800,Mocute 054X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000d6200000e589000001000000,Moga 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", +"05000000d6200000e589000001000000,Moga 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", "05000000d6200000ad0d000001000000,Moga Pro,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", -"05000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", -"03000000c62400002b89000011010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000c62400001a89000000010000,MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000250900006688000000010000,MP8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,", -"030000005e0400008e02000010020000,MSI GC20 V2,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006b1400000906000014010000,Nacon Asymmetric Wireless PS4 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006b140000010c000010010000,Nacon GC 400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"03000000853200000706000012010000,Nacon GC-100,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"05000000d62000007162000001000000,Moga Pro 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,", +"03000000c62400002b89000011010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"05000000c62400002a89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"05000000c62400001a89000000010000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"03000000250900006688000000010000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,", +"030000006b140000010c000010010000,NACON GC-400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", "030000000d0f00000900000010010000,Natec Genesis P44,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000004f1f00000800000011010000,NeoGeo PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"0300000092120000474e000000010000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Linux,", -"03000000790000004518000010010000,Nexilux GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", +"03000000790000004518000010010000,NEXILUX GAMECUBE Controller Adapter,a:b1,b:b0,x:b2,y:b3,start:b9,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a5,righty:a2,lefttrigger:a3,righttrigger:a4,platform:Linux,", "030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Linux,", "060000007e0500003713000000000000,Nintendo 3DS,a:b0,b:b1,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", +"060000007e0500000820000000000000,Nintendo Combined Joy-Cons (joycond),a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", "030000007e0500003703000000016800,Nintendo GameCube Controller,a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,platform:Linux,", "03000000790000004618000010010000,Nintendo GameCube Controller Adapter,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b2,y:b3,platform:Linux,", -"060000007e0500000620000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", -"060000007e0500000820000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", -"050000004c69632050726f20436f6e00,Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"050000007e0500000620000001800000,Nintendo Switch Left Joy-Con,a:b16,b:b15,back:b4,leftshoulder:b6,leftstick:b12,leftx:a1,lefty:a0~,rightshoulder:b8,start:b9,x:b14,y:b17,platform:Linux,", -"03000000d620000013a7000011010000,Nintendo Switch PowerA Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000d620000011a7000011010000,Nintendo Switch PowerA Core Plus Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000007e0500000920000011810000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", -"050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"050000007e0500000920000001800000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", -"050000007e0500000720000001800000,Nintendo Switch Right Joy-Con,a:b1,b:b2,back:b9,leftshoulder:b4,leftstick:b10,leftx:a1~,lefty:a0,rightshoulder:b6,start:b8,x:b0,y:b3,platform:Linux,", -"05000000010000000100000003000000,Nintendo Wii Remote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"050000007e0500003003000001000000,Nintendo Wii U Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", -"030000000d0500000308000010010000,Nostromo n45 Dual Analog,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux,", -"050000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Linux,", -"050000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", +"050000007e0500000620000001800000,Nintendo Switch Left Joy-Con,a:b9,b:b8,back:b5,leftshoulder:b2,leftstick:b6,leftx:a1,lefty:a0~,rightshoulder:b4,start:b0,x:b7,y:b10,platform:Linux,", +"030000007e0500000920000011810000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", +"050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"050000007e0500000920000001800000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,", +"050000007e0500000720000001800000,Nintendo Switch Right Joy-Con,a:b1,b:b2,back:b9,leftshoulder:b4,leftstick:b10,leftx:a1~,lefty:a0~,rightshoulder:b6,start:b8,x:b0,y:b3,platform:Linux,", +"050000007e0500001720000001000000,Nintendo Switch SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux,", +"050000007e0500003003000001000000,Nintendo Wii Remote Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", +"05000000010000000100000003000000,Nintendo Wiimote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"030000000d0500000308000010010000,Nostromo n45 Dual Analog Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux,", "03000000550900001072000011010000,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", "03000000550900001472000011010000,NVIDIA Controller v01.04,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux,", "05000000550900001472000001000000,NVIDIA Controller v01.04,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux,", "03000000451300000830000010010000,NYKO CORE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"19000000010000000100000001010000,ODROID Go 2,a:b1,b:b0,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,guide:b10,leftshoulder:b4,leftstick:b12,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b14,start:b15,x:b2,y:b3,platform:Linux,", -"19000000010000000200000011000000,ODROID Go 2,a:b1,b:b0,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b12,leftshoulder:b4,leftstick:b14,lefttrigger:b13,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b16,start:b17,x:b2,y:b3,platform:Linux,", +"19000000010000000100000001010000,odroidgo2_joypad,a:b1,b:b0,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,guide:b10,leftshoulder:b4,leftstick:b12,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b14,start:b15,x:b2,y:b3,platform:Linux,", +"19000000010000000200000011000000,odroidgo2_joypad_v11,a:b1,b:b0,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b12,leftshoulder:b4,leftstick:b14,lefttrigger:b13,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b16,start:b17,x:b2,y:b3,platform:Linux,", +"030000005e0400000202000000010000,Old Xbox pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", "03000000c0160000dc27000001010000,OnyxSoft Dual JoyDivision,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b6,x:b2,y:b3,platform:Linux,", -"05000000362800000100000002010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,", -"05000000362800000100000003010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,", -"05000000362800000100000004010000,OUYA Controller,a:b0,b:b3,back:b14,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,start:b16,x:b1,y:b2,platform:Linux,", -"03000000830500005020000010010000,Padix Rockfire PlayStation Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux,", -"03000000790000001c18000011010000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000ff1100003133000010010000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000006f0e0000b802000001010000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e0000b802000013020000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,", +"05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,", +"03000000830500005020000010010000,Padix Co. Ltd. Rockfire PSX/USB Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux,", +"03000000790000001c18000011010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000ff1100003133000010010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000006f0e0000b802000001010000,PDP AFTERGLOW Wired Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006f0e0000b802000013020000,PDP AFTERGLOW Wired Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e0000d702000006640000,PDP Black Camo Wired Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b13,dpup:b14,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000006f0e00008001000011010000,PDP CO. LTD. Faceoff Wired Pro Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006f0e00003101000000010000,PDP EA Sports Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e00008001000011010000,PDP Faceoff Nintendo Switch Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000006f0e00008501000011010000,PDP Nintendo Switch Fightpad Pro,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000006f0e00002801000011010000,PDP PS3 Rock Candy Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000006f0e00008701000011010000,PDP Rock Nintendo Switch Candy Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000006f0e00000901000011010000,PDP Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000006f0e0000a802000023020000,PDP Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"030000006f0e0000a702000023020000,PDP Xbox One Raven Black,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000004c050000da0c000011010000,PlayStation Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", -"03000000d9040000160f000000010000,PlayStation Controller Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", +"030000006f0e00008701000011010000,PDP Rock Candy Wired Controller for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000006f0e00000901000011010000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000006f0e0000a802000023020000,PDP Wired Controller for Xbox One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"030000006f0e00008501000011010000,PDP Wired Fight Pad Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"0500000049190000030400001b010000,PG-9099,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"05000000491900000204000000000000,PG-9118,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000004c050000da0c000011010000,Playstation Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", "030000004c0500003713000011010000,PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", "03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000c62400003a54000001010000,PowerA 1428124-01,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000d62000000140000001010000,PowerA Fusion Pro 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000c62400001a53000000010000,PowerA Mini Pro Ex,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000d62000006dca000011010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000c62400001a58000001010000,PowerA Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000d62000000220000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux,", -"03000000d62000000228000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000c62400001a54000001010000,PowerA Xbox One Mini Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000d62000000240000001010000,PowerA Xbox One Spectra Infinity,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000d62000000228000001010000,PowerA Wired Controller for Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c62400001a58000001010000,PowerA Xbox One Cabled,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c62400001a54000001010000,PowerA Xbox One Mini Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,", "03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", @@ -1370,7 +846,6 @@ const char* _glfwDefaultMappings[] = "030000004c0500006802000010810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", "030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,", "030000004c0500006802000011810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", -"030000005f1400003102000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", "030000006f0e00001402000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", "030000008f0e00000300000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", "050000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,", @@ -1393,174 +868,134 @@ const char* _glfwDefaultMappings[] = "050000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", "050000004c050000cc09000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", -"030000004c050000e60c000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux,", -"030000004c050000e60c000011810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", -"050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux,", -"050000004c050000e60c000000810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", -"03000000300f00001211000011010000,Qanba Arcade Joystick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux,", -"03000000222c00000225000011010000,Qanba Dragon Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000222c00000025000011010000,Qanba Dragon Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000300f00001210000010010000,Qanba Joystick Plus,a:b0,b:b1,back:b8,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,start:b9,x:b2,y:b3,platform:Linux,", -"03000000222c00000223000011010000,Qanba Obsidian Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000222c00000023000011010000,Qanba Obsidian Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000009b2800000300000001010000,Raphnet 4nes4snes,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux,", -"030000009b2800004200000001010000,Raphnet Dual NES Adapter,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Linux,", -"030000009b2800003200000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,", -"030000009b2800006000000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,", +"030000004c050000e60c000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000ff000000cb01000010010000,PSP,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,", +"03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux,", +"030000009b2800004200000001010000,Raphnet Technologies Dual NES to USB v2.0,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Linux,", +"030000009b2800003200000001010000,Raphnet Technologies GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,", +"030000009b2800006000000001010000,Raphnet Technologies GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux,", +"030000009b2800000300000001010000,raphnet.net 4nes4snes v1.5,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux,", "030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000008916000000fd000024010000,Razer Onza Tournament Edition,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000321500000204000011010000,Razer Panthera PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000321500000104000011010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000321500000810000011010000,Razer Panthera PS4 Evo Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000321500000010000011010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000321500000204000011010000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"03000000321500000104000011010000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000321500000810000011010000,Razer Panthera Evo Arcade Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000321500000010000011010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "03000000321500000507000000010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"05000000321500000a10000001000000,Razer Raiju Tournament Edition,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000321500000011000011010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000321500000011000011010000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "030000008916000000fe000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000c6240000045d000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000c6240000045d000025010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000321500000009000011010000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", "050000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", "0300000032150000030a000001010000,Razer Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000790000001100000010010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000790000001100000010010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,", "0300000081170000990a000001010000,Retronic Adapter,a:b0,leftx:a0,lefty:a1,platform:Linux,", "0300000000f000000300000000010000,RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,", -"00000000526574726f53746f6e653200,RetroStone 2 Controller,a:b1,b:b0,back:b10,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,righttrigger:b9,start:b11,x:b4,y:b3,platform:Linux,", "030000006b140000010d000011010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "030000006b140000130d000011010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "030000006f0e00001f01000000010000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000c6240000fefa000000010000,Rock Candy Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000a306000023f6000011010000,Saitek Cyborg V1 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", +"03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", "03000000a30600001005000000010000,Saitek P150,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b2,righttrigger:b5,x:b3,y:b4,platform:Linux,", "03000000a30600000701000000010000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Linux,", -"03000000a30600000cff000010010000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b0,y:b1,platform:Linux,", -"03000000a30600000c04000011010000,Saitek P2900,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux,", -"03000000a306000018f5000010010000,Saitek P3200 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", +"03000000a30600000cff000010010000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b0,y:b1,platform:Linux,", +"03000000a30600000c04000011010000,Saitek P2900 Wireless Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux,", "03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,", "03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux,", -"03000000a30600000b04000000010000,Saitek P990 Dual Analog,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux,", -"03000000a306000020f6000011010000,Saitek PS2700 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", +"03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux,", +"03000000a306000018f5000010010000,Saitek PLC Saitek P3200 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", +"03000000a306000020f6000011010000,Saitek PS2700 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,", "03000000d81d00000e00000010010000,Savior,a:b0,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b9,x:b4,y:b5,platform:Linux,", -"03000000a30c00002500000011010000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Linux,", -"03000000790000001100000011010000,Sega Saturn,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Linux,", -"03000000790000002201000011010000,Sega Saturn,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,", -"03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux,", -"030000001f08000001e4000010010000,SFC Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,", -"03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000f025000021c1000010010000,Shanwan Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000632500007505000010010000,Shanwan PS3 PC,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000bc2000000055000010010000,Shanwan PS3 PC ,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"050000004c050000cc09000001000000,Sony DualShock 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000ff000000cb01000010010000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,", -"03000000250900000500000000010000,Sony PS2 pad with SmartJoy Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,", -"030000005e0400008e02000073050000,Speedlink Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000020200000,SpeedLink Xeox Pro Analog,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000f025000021c1000010010000,ShanWan Gioteck PS3 Wired Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000632500007505000010010000,SHANWAN PS3/PC Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000bc2000000055000010010000,ShanWan PS3/PC Wired GamePad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000005f140000c501000010010000,SHANWAN Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000632500002305000010010000,ShanWan USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"03000000341a00000908000010010000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"030000004c050000e60c000011810000,Sony DualSense,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", +"050000004c050000e60c000000810000,Sony DualSense ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,", +"03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,", +"030000005e0400008e02000073050000,Speedlink TORID Wireless Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400008e02000020200000,SpeedLink XEOX Pro Analog Gamepad pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000d11800000094000011010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", "03000000de2800000112000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", -"03000000de2800000112000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:+a5,dpleft:-a4,dpright:+a4,dpup:-a5,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux,", "03000000de2800000211000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", -"03000000de2800000211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux,", +"03000000de2800000211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux,", "03000000de2800004211000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", -"03000000de2800004211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux,", +"03000000de2800004211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux,", "03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "05000000de2800000212000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", "05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", "05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,", -"03000000de2800000512000010010000,Steam Deck,a:b3,b:b4,back:b11,dpdown:b17,dpleft:b18,dpright:b19,dpup:b16,guide:b13,leftshoulder:b7,leftstick:b14,lefttrigger:a9,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b15,righttrigger:a8,rightx:a2,righty:a3,start:b12,x:b5,y:b6,platform:Linux,", "03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b10,guide:b11,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Linux,", "03000000381000003014000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000381000003114000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "0500000011010000311400001b010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b32,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000ad1b000038f0000090040000,Street Fighter IV Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000003b07000004a1000000010000,Suncom SFX Plus,a:b0,b:b2,back:b7,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux,", +"03000000ad1b000038f0000090040000,Street Fighter IV FightStick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000003b07000004a1000000010000,Suncom SFX Plus for USB,a:b0,b:b2,back:b7,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux,", "03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,", -"0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,", -"030000008f0e00000d31000010010000,SZMY Power 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000457500002211000010010000,SZMY Power Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"030000008f0e00001431000010010000,SZMY Power PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"03000000ba2200000701000001010000,Technology Innovation PS2 Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Linux,", -"030000004f04000015b3000001010000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", +"0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,", +"03000000457500002211000010010000,SZMY-POWER CO. LTD. GAMEPAD,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"030000008f0e00000d31000010010000,SZMY-POWER CO. LTD. GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000008f0e00001431000010010000,SZMY-POWER CO. LTD. PS3 gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", "030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", -"030000004f04000020b3000010010000,Thrustmaster Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", -"030000004f04000023b3000000010000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000004f0400000ed0000011010000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f0400000ed0000011010000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", "03000000b50700000399000000010000,Thrustmaster Firestorm Digital 2,a:b2,b:b4,back:b11,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b0,righttrigger:b9,start:b1,x:b3,y:b5,platform:Linux,", "030000004f04000003b3000010010000,Thrustmaster Firestorm Dual Analog 2,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b9,rightx:a2,righty:a3,x:b1,y:b3,platform:Linux,", "030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux,", -"030000004f04000004b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", -"030000004f04000026b3000002040000,Thrustmaster GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000c6240000025b000002020000,Thrustmaster GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000004f04000008d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"030000004f04000009d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000004f04000007d0000000010000,Thrustmaster T Mini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", -"030000004f04000012b3000010010000,Thrustmaster Vibrating Gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", -"03000000571d00002000000010010000,Tomee SNES Adapter,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,", -"03000000bd12000015d0000010010000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,", -"03000000d814000007cd000011010000,Toodles 2008 Chimp PC PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,", +"030000004f04000026b3000002040000,Thrustmaster Gamepad GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000c6240000025b000002020000,Thrustmaster GPX Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f04000007d0000000010000,Thrustmaster T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,", +"030000004f04000012b3000010010000,Thrustmaster vibrating gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,", +"03000000bd12000015d0000010010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,", +"03000000d814000007cd000011010000,Toodles 2008 Chimp PC/PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,", "030000005e0400008e02000070050000,Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "03000000c01100000591000011010000,Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000680a00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux,", -"03000000780300000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux,", -"03000000e00d00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux,", -"03000000f00600000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux,", -"030000005f140000c501000010010000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", -"03000000100800000100000010010000,Twin PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", +"03000000100800000100000010010000,Twin USB PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", "03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,", "03000000790000000600000007010000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux,", -"03000000790000001100000000010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux,", -"030000006f0e00000302000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"030000006f0e00000702000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", -"05000000ac0500003232000001000000,VR Box Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", -"0000000058626f782033363020576900,Xbox 360 Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux,", -"030000005e0400001907000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000014010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400009102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000a102000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000a102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400008e02000000010000,Xbox 360 EasySMX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000a102000014010000,Xbox 360 Receiver,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400000202000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", -"030000006f0e00001304000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"03000000ffff0000ffff000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,", -"0000000058626f782047616d65706100,Xbox Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e0400000a0b000005040000,Xbox One Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,", -"030000005e040000120b000009050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000790000001100000000010000,USB Gamepad1,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux,", +"030000006f0e00000302000011010000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"030000006f0e00000702000011010000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,", +"05000000ac0500003232000001000000,VR-BOX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,", +"03000000791d00000103000010010000,Wii Classic Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"050000000d0f0000f600000001000000,Wireless HORIPAD Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000a102000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000a102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"0000000058626f782033363020576900,Xbox 360 Wireless Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux,", +"030000005e040000a102000014010000,Xbox 360 Wireless Receiver (XBOX),a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"0000000058626f782047616d65706100,Xbox Gamepad (userspace driver),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,", "030000005e040000d102000002010000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000ea02000001030000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "050000005e040000fd02000030110000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"060000005e040000120b000007050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000005e040000e302000002090000,Xbox One Elite,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"050000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"060000005e040000ea0200000b050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"060000005e040000ea0200000d050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e040000ea02000000000000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"050000005e040000e002000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"050000005e040000fd02000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", +"030000005e040000ea02000001030000,Xbox One Wireless Controller (Model 1708),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000005e040000120b000001050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000120b000005050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", "030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "050000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", "050000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"050000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"050000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"060000005e040000120b00000b050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"030000005e040000120b000007050000,Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", -"050000005e040000130b000011050000,Xbox Series X Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"050000005e040000130b000007050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"050000005e040000200b000013050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,", -"03000000450c00002043000010010000,XEOX SL6556 BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", -"05000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,", -"03000000c0160000e105000001010000,XinMo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux,", -"03000000120c0000100e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -"03000000120c0000101e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", -#endif // GLFW_BUILD_LINUX_MAPPINGS +"030000005e040000120b000005050000,XBox Series pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"030000005e0400008e02000000010000,xbox360 Wireless EasySMX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,", +"03000000450c00002043000010010000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,", +"03000000ac0500005b05000010010000,Xiaoji Gamesir-G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,", +"05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,", +"03000000c0160000e105000001010000,Xin-Mo Xin-Mo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux,", +"03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +"03000000120c0000101e000011010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,", +#endif // GLFW_BUILD_LINUX_JOYSTICK }; diff --git a/src/external/glfw/src/mappings.h.in b/src/external/glfw/src/mappings.h.in index f2604390a..ed623680f 100644 --- a/src/external/glfw/src/mappings.h.in +++ b/src/external/glfw/src/mappings.h.in @@ -60,7 +60,7 @@ const char* _glfwDefaultMappings[] = { -#if defined(GLFW_BUILD_WIN32_MAPPINGS) +#if defined(_GLFW_WIN32) @GLFW_WIN32_MAPPINGS@ "78696e70757401000000000000000000,XInput Gamepad (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757402000000000000000000,XInput Wheel (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", @@ -69,14 +69,14 @@ const char* _glfwDefaultMappings[] = "78696e70757405000000000000000000,XInput Dance Pad (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757406000000000000000000,XInput Guitar (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", "78696e70757408000000000000000000,XInput Drum Kit (GLFW),platform:Windows,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8,", -#endif // GLFW_BUILD_WIN32_MAPPINGS +#endif // _GLFW_WIN32 -#if defined(GLFW_BUILD_COCOA_MAPPINGS) +#if defined(_GLFW_COCOA) @GLFW_COCOA_MAPPINGS@ -#endif // GLFW_BUILD_COCOA_MAPPINGS +#endif // _GLFW_COCOA -#if defined(GLFW_BUILD_LINUX_MAPPINGS) +#if defined(GLFW_BUILD_LINUX_JOYSTICK) @GLFW_LINUX_MAPPINGS@ -#endif // GLFW_BUILD_LINUX_MAPPINGS +#endif // GLFW_BUILD_LINUX_JOYSTICK }; diff --git a/src/external/glfw/src/monitor.c b/src/external/glfw/src/monitor.c index 6429493bf..efc286d50 100644 --- a/src/external/glfw/src/monitor.c +++ b/src/external/glfw/src/monitor.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" @@ -452,7 +450,9 @@ GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* handle) _GLFW_REQUIRE_INIT_OR_RETURN(NULL); - _glfw.platform.getVideoMode(monitor, &monitor->currentMode); + if (!_glfw.platform.getVideoMode(monitor, &monitor->currentMode)) + return NULL; + return &monitor->currentMode; } @@ -489,7 +489,7 @@ GLFWAPI void glfwSetGamma(GLFWmonitor* handle, float gamma) // Apply gamma curve value = powf(value, 1.f / gamma) * 65535.f + 0.5f; // Clamp to value range - value = _glfw_fminf(value, 65535.f); + value = fminf(value, 65535.f); values[i] = (unsigned short) value; } diff --git a/src/external/glfw/src/nsgl_context.m b/src/external/glfw/src/nsgl_context.m index fc1f75210..daa8367a8 100644 --- a/src/external/glfw/src/nsgl_context.m +++ b/src/external/glfw/src/nsgl_context.m @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_COCOA) + #include #include @@ -81,11 +81,10 @@ static void swapIntervalNSGL(int interval) @autoreleasepool { _GLFWwindow* window = _glfwPlatformGetTls(&_glfw.contextSlot); - if (window) - { - [window->context.nsgl.object setValues:&interval - forParameter:NSOpenGLContextParameterSwapInterval]; - } + assert(window != NULL); + + [window->context.nsgl.object setValues:&interval + forParameter:NSOpenGLContextParameterSwapInterval]; } // autoreleasepool } @@ -162,7 +161,7 @@ GLFWbool _glfwCreateContextNSGL(_GLFWwindow* window, if (ctxconfig->client == GLFW_OPENGL_ES_API) { _glfwInputError(GLFW_API_UNAVAILABLE, - "NSGL: OpenGL ES is not available on macOS"); + "NSGL: OpenGL ES is not available via NSGL"); return GLFW_FALSE; } @@ -176,6 +175,13 @@ GLFWbool _glfwCreateContextNSGL(_GLFWwindow* window, } } + if (ctxconfig->major >= 3 && ctxconfig->profile == GLFW_OPENGL_COMPAT_PROFILE) + { + _glfwInputError(GLFW_VERSION_UNAVAILABLE, + "NSGL: The compatibility profile is not available on macOS"); + return GLFW_FALSE; + } + // Context robustness modes (GL_KHR_robustness) are not yet supported by // macOS but are not a hard constraint, so ignore and continue @@ -334,7 +340,7 @@ GLFWbool _glfwCreateContextNSGL(_GLFWwindow* window, forParameter:NSOpenGLContextParameterSurfaceOpacity]; } - [window->ns.view setWantsBestResolutionOpenGLSurface:window->ns.retina]; + [window->ns.view setWantsBestResolutionOpenGLSurface:window->ns.scaleFramebuffer]; [window->context.nsgl.object setView:window->ns.view]; @@ -374,3 +380,5 @@ GLFWAPI id glfwGetNSGLContext(GLFWwindow* handle) return window->context.nsgl.object; } +#endif // _GLFW_COCOA + diff --git a/src/external/glfw/src/null_init.c b/src/external/glfw/src/null_init.c index de4b28f35..88940fcde 100644 --- a/src/external/glfw/src/null_init.c +++ b/src/external/glfw/src/null_init.c @@ -24,12 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" #include +#include ////////////////////////////////////////////////////////////////////////// @@ -40,78 +39,78 @@ GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform) { const _GLFWplatform null = { - GLFW_PLATFORM_NULL, - _glfwInitNull, - _glfwTerminateNull, - _glfwGetCursorPosNull, - _glfwSetCursorPosNull, - _glfwSetCursorModeNull, - _glfwSetRawMouseMotionNull, - _glfwRawMouseMotionSupportedNull, - _glfwCreateCursorNull, - _glfwCreateStandardCursorNull, - _glfwDestroyCursorNull, - _glfwSetCursorNull, - _glfwGetScancodeNameNull, - _glfwGetKeyScancodeNull, - _glfwSetClipboardStringNull, - _glfwGetClipboardStringNull, - _glfwInitJoysticksNull, - _glfwTerminateJoysticksNull, - _glfwPollJoystickNull, - _glfwGetMappingNameNull, - _glfwUpdateGamepadGUIDNull, - _glfwFreeMonitorNull, - _glfwGetMonitorPosNull, - _glfwGetMonitorContentScaleNull, - _glfwGetMonitorWorkareaNull, - _glfwGetVideoModesNull, - _glfwGetVideoModeNull, - _glfwGetGammaRampNull, - _glfwSetGammaRampNull, - _glfwCreateWindowNull, - _glfwDestroyWindowNull, - _glfwSetWindowTitleNull, - _glfwSetWindowIconNull, - _glfwGetWindowPosNull, - _glfwSetWindowPosNull, - _glfwGetWindowSizeNull, - _glfwSetWindowSizeNull, - _glfwSetWindowSizeLimitsNull, - _glfwSetWindowAspectRatioNull, - _glfwGetFramebufferSizeNull, - _glfwGetWindowFrameSizeNull, - _glfwGetWindowContentScaleNull, - _glfwIconifyWindowNull, - _glfwRestoreWindowNull, - _glfwMaximizeWindowNull, - _glfwShowWindowNull, - _glfwHideWindowNull, - _glfwRequestWindowAttentionNull, - _glfwFocusWindowNull, - _glfwSetWindowMonitorNull, - _glfwWindowFocusedNull, - _glfwWindowIconifiedNull, - _glfwWindowVisibleNull, - _glfwWindowMaximizedNull, - _glfwWindowHoveredNull, - _glfwFramebufferTransparentNull, - _glfwGetWindowOpacityNull, - _glfwSetWindowResizableNull, - _glfwSetWindowDecoratedNull, - _glfwSetWindowFloatingNull, - _glfwSetWindowOpacityNull, - _glfwSetWindowMousePassthroughNull, - _glfwPollEventsNull, - _glfwWaitEventsNull, - _glfwWaitEventsTimeoutNull, - _glfwPostEmptyEventNull, - _glfwGetEGLPlatformNull, - _glfwGetEGLNativeDisplayNull, - _glfwGetEGLNativeWindowNull, - _glfwGetRequiredInstanceExtensionsNull, - _glfwGetPhysicalDevicePresentationSupportNull, - _glfwCreateWindowSurfaceNull, + .platformID = GLFW_PLATFORM_NULL, + .init = _glfwInitNull, + .terminate = _glfwTerminateNull, + .getCursorPos = _glfwGetCursorPosNull, + .setCursorPos = _glfwSetCursorPosNull, + .setCursorMode = _glfwSetCursorModeNull, + .setRawMouseMotion = _glfwSetRawMouseMotionNull, + .rawMouseMotionSupported = _glfwRawMouseMotionSupportedNull, + .createCursor = _glfwCreateCursorNull, + .createStandardCursor = _glfwCreateStandardCursorNull, + .destroyCursor = _glfwDestroyCursorNull, + .setCursor = _glfwSetCursorNull, + .getScancodeName = _glfwGetScancodeNameNull, + .getKeyScancode = _glfwGetKeyScancodeNull, + .setClipboardString = _glfwSetClipboardStringNull, + .getClipboardString = _glfwGetClipboardStringNull, + .initJoysticks = _glfwInitJoysticksNull, + .terminateJoysticks = _glfwTerminateJoysticksNull, + .pollJoystick = _glfwPollJoystickNull, + .getMappingName = _glfwGetMappingNameNull, + .updateGamepadGUID = _glfwUpdateGamepadGUIDNull, + .freeMonitor = _glfwFreeMonitorNull, + .getMonitorPos = _glfwGetMonitorPosNull, + .getMonitorContentScale = _glfwGetMonitorContentScaleNull, + .getMonitorWorkarea = _glfwGetMonitorWorkareaNull, + .getVideoModes = _glfwGetVideoModesNull, + .getVideoMode = _glfwGetVideoModeNull, + .getGammaRamp = _glfwGetGammaRampNull, + .setGammaRamp = _glfwSetGammaRampNull, + .createWindow = _glfwCreateWindowNull, + .destroyWindow = _glfwDestroyWindowNull, + .setWindowTitle = _glfwSetWindowTitleNull, + .setWindowIcon = _glfwSetWindowIconNull, + .getWindowPos = _glfwGetWindowPosNull, + .setWindowPos = _glfwSetWindowPosNull, + .getWindowSize = _glfwGetWindowSizeNull, + .setWindowSize = _glfwSetWindowSizeNull, + .setWindowSizeLimits = _glfwSetWindowSizeLimitsNull, + .setWindowAspectRatio = _glfwSetWindowAspectRatioNull, + .getFramebufferSize = _glfwGetFramebufferSizeNull, + .getWindowFrameSize = _glfwGetWindowFrameSizeNull, + .getWindowContentScale = _glfwGetWindowContentScaleNull, + .iconifyWindow = _glfwIconifyWindowNull, + .restoreWindow = _glfwRestoreWindowNull, + .maximizeWindow = _glfwMaximizeWindowNull, + .showWindow = _glfwShowWindowNull, + .hideWindow = _glfwHideWindowNull, + .requestWindowAttention = _glfwRequestWindowAttentionNull, + .focusWindow = _glfwFocusWindowNull, + .setWindowMonitor = _glfwSetWindowMonitorNull, + .windowFocused = _glfwWindowFocusedNull, + .windowIconified = _glfwWindowIconifiedNull, + .windowVisible = _glfwWindowVisibleNull, + .windowMaximized = _glfwWindowMaximizedNull, + .windowHovered = _glfwWindowHoveredNull, + .framebufferTransparent = _glfwFramebufferTransparentNull, + .getWindowOpacity = _glfwGetWindowOpacityNull, + .setWindowResizable = _glfwSetWindowResizableNull, + .setWindowDecorated = _glfwSetWindowDecoratedNull, + .setWindowFloating = _glfwSetWindowFloatingNull, + .setWindowOpacity = _glfwSetWindowOpacityNull, + .setWindowMousePassthrough = _glfwSetWindowMousePassthroughNull, + .pollEvents = _glfwPollEventsNull, + .waitEvents = _glfwWaitEventsNull, + .waitEventsTimeout = _glfwWaitEventsTimeoutNull, + .postEmptyEvent = _glfwPostEmptyEventNull, + .getEGLPlatform = _glfwGetEGLPlatformNull, + .getEGLNativeDisplay = _glfwGetEGLNativeDisplayNull, + .getEGLNativeWindow = _glfwGetEGLNativeWindowNull, + .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsNull, + .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportNull, + .createWindowSurface = _glfwCreateWindowSurfaceNull }; *platform = null; @@ -120,6 +119,138 @@ GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform) int _glfwInitNull(void) { + int scancode; + + memset(_glfw.null.keycodes, -1, sizeof(_glfw.null.keycodes)); + memset(_glfw.null.scancodes, -1, sizeof(_glfw.null.scancodes)); + + _glfw.null.keycodes[GLFW_NULL_SC_SPACE] = GLFW_KEY_SPACE; + _glfw.null.keycodes[GLFW_NULL_SC_APOSTROPHE] = GLFW_KEY_APOSTROPHE; + _glfw.null.keycodes[GLFW_NULL_SC_COMMA] = GLFW_KEY_COMMA; + _glfw.null.keycodes[GLFW_NULL_SC_MINUS] = GLFW_KEY_MINUS; + _glfw.null.keycodes[GLFW_NULL_SC_PERIOD] = GLFW_KEY_PERIOD; + _glfw.null.keycodes[GLFW_NULL_SC_SLASH] = GLFW_KEY_SLASH; + _glfw.null.keycodes[GLFW_NULL_SC_0] = GLFW_KEY_0; + _glfw.null.keycodes[GLFW_NULL_SC_1] = GLFW_KEY_1; + _glfw.null.keycodes[GLFW_NULL_SC_2] = GLFW_KEY_2; + _glfw.null.keycodes[GLFW_NULL_SC_3] = GLFW_KEY_3; + _glfw.null.keycodes[GLFW_NULL_SC_4] = GLFW_KEY_4; + _glfw.null.keycodes[GLFW_NULL_SC_5] = GLFW_KEY_5; + _glfw.null.keycodes[GLFW_NULL_SC_6] = GLFW_KEY_6; + _glfw.null.keycodes[GLFW_NULL_SC_7] = GLFW_KEY_7; + _glfw.null.keycodes[GLFW_NULL_SC_8] = GLFW_KEY_8; + _glfw.null.keycodes[GLFW_NULL_SC_9] = GLFW_KEY_9; + _glfw.null.keycodes[GLFW_NULL_SC_SEMICOLON] = GLFW_KEY_SEMICOLON; + _glfw.null.keycodes[GLFW_NULL_SC_EQUAL] = GLFW_KEY_EQUAL; + _glfw.null.keycodes[GLFW_NULL_SC_A] = GLFW_KEY_A; + _glfw.null.keycodes[GLFW_NULL_SC_B] = GLFW_KEY_B; + _glfw.null.keycodes[GLFW_NULL_SC_C] = GLFW_KEY_C; + _glfw.null.keycodes[GLFW_NULL_SC_D] = GLFW_KEY_D; + _glfw.null.keycodes[GLFW_NULL_SC_E] = GLFW_KEY_E; + _glfw.null.keycodes[GLFW_NULL_SC_F] = GLFW_KEY_F; + _glfw.null.keycodes[GLFW_NULL_SC_G] = GLFW_KEY_G; + _glfw.null.keycodes[GLFW_NULL_SC_H] = GLFW_KEY_H; + _glfw.null.keycodes[GLFW_NULL_SC_I] = GLFW_KEY_I; + _glfw.null.keycodes[GLFW_NULL_SC_J] = GLFW_KEY_J; + _glfw.null.keycodes[GLFW_NULL_SC_K] = GLFW_KEY_K; + _glfw.null.keycodes[GLFW_NULL_SC_L] = GLFW_KEY_L; + _glfw.null.keycodes[GLFW_NULL_SC_M] = GLFW_KEY_M; + _glfw.null.keycodes[GLFW_NULL_SC_N] = GLFW_KEY_N; + _glfw.null.keycodes[GLFW_NULL_SC_O] = GLFW_KEY_O; + _glfw.null.keycodes[GLFW_NULL_SC_P] = GLFW_KEY_P; + _glfw.null.keycodes[GLFW_NULL_SC_Q] = GLFW_KEY_Q; + _glfw.null.keycodes[GLFW_NULL_SC_R] = GLFW_KEY_R; + _glfw.null.keycodes[GLFW_NULL_SC_S] = GLFW_KEY_S; + _glfw.null.keycodes[GLFW_NULL_SC_T] = GLFW_KEY_T; + _glfw.null.keycodes[GLFW_NULL_SC_U] = GLFW_KEY_U; + _glfw.null.keycodes[GLFW_NULL_SC_V] = GLFW_KEY_V; + _glfw.null.keycodes[GLFW_NULL_SC_W] = GLFW_KEY_W; + _glfw.null.keycodes[GLFW_NULL_SC_X] = GLFW_KEY_X; + _glfw.null.keycodes[GLFW_NULL_SC_Y] = GLFW_KEY_Y; + _glfw.null.keycodes[GLFW_NULL_SC_Z] = GLFW_KEY_Z; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT_BRACKET] = GLFW_KEY_LEFT_BRACKET; + _glfw.null.keycodes[GLFW_NULL_SC_BACKSLASH] = GLFW_KEY_BACKSLASH; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_BRACKET] = GLFW_KEY_RIGHT_BRACKET; + _glfw.null.keycodes[GLFW_NULL_SC_GRAVE_ACCENT] = GLFW_KEY_GRAVE_ACCENT; + _glfw.null.keycodes[GLFW_NULL_SC_WORLD_1] = GLFW_KEY_WORLD_1; + _glfw.null.keycodes[GLFW_NULL_SC_WORLD_2] = GLFW_KEY_WORLD_2; + _glfw.null.keycodes[GLFW_NULL_SC_ESCAPE] = GLFW_KEY_ESCAPE; + _glfw.null.keycodes[GLFW_NULL_SC_ENTER] = GLFW_KEY_ENTER; + _glfw.null.keycodes[GLFW_NULL_SC_TAB] = GLFW_KEY_TAB; + _glfw.null.keycodes[GLFW_NULL_SC_BACKSPACE] = GLFW_KEY_BACKSPACE; + _glfw.null.keycodes[GLFW_NULL_SC_INSERT] = GLFW_KEY_INSERT; + _glfw.null.keycodes[GLFW_NULL_SC_DELETE] = GLFW_KEY_DELETE; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT] = GLFW_KEY_RIGHT; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT] = GLFW_KEY_LEFT; + _glfw.null.keycodes[GLFW_NULL_SC_DOWN] = GLFW_KEY_DOWN; + _glfw.null.keycodes[GLFW_NULL_SC_UP] = GLFW_KEY_UP; + _glfw.null.keycodes[GLFW_NULL_SC_PAGE_UP] = GLFW_KEY_PAGE_UP; + _glfw.null.keycodes[GLFW_NULL_SC_PAGE_DOWN] = GLFW_KEY_PAGE_DOWN; + _glfw.null.keycodes[GLFW_NULL_SC_HOME] = GLFW_KEY_HOME; + _glfw.null.keycodes[GLFW_NULL_SC_END] = GLFW_KEY_END; + _glfw.null.keycodes[GLFW_NULL_SC_CAPS_LOCK] = GLFW_KEY_CAPS_LOCK; + _glfw.null.keycodes[GLFW_NULL_SC_SCROLL_LOCK] = GLFW_KEY_SCROLL_LOCK; + _glfw.null.keycodes[GLFW_NULL_SC_NUM_LOCK] = GLFW_KEY_NUM_LOCK; + _glfw.null.keycodes[GLFW_NULL_SC_PRINT_SCREEN] = GLFW_KEY_PRINT_SCREEN; + _glfw.null.keycodes[GLFW_NULL_SC_PAUSE] = GLFW_KEY_PAUSE; + _glfw.null.keycodes[GLFW_NULL_SC_F1] = GLFW_KEY_F1; + _glfw.null.keycodes[GLFW_NULL_SC_F2] = GLFW_KEY_F2; + _glfw.null.keycodes[GLFW_NULL_SC_F3] = GLFW_KEY_F3; + _glfw.null.keycodes[GLFW_NULL_SC_F4] = GLFW_KEY_F4; + _glfw.null.keycodes[GLFW_NULL_SC_F5] = GLFW_KEY_F5; + _glfw.null.keycodes[GLFW_NULL_SC_F6] = GLFW_KEY_F6; + _glfw.null.keycodes[GLFW_NULL_SC_F7] = GLFW_KEY_F7; + _glfw.null.keycodes[GLFW_NULL_SC_F8] = GLFW_KEY_F8; + _glfw.null.keycodes[GLFW_NULL_SC_F9] = GLFW_KEY_F9; + _glfw.null.keycodes[GLFW_NULL_SC_F10] = GLFW_KEY_F10; + _glfw.null.keycodes[GLFW_NULL_SC_F11] = GLFW_KEY_F11; + _glfw.null.keycodes[GLFW_NULL_SC_F12] = GLFW_KEY_F12; + _glfw.null.keycodes[GLFW_NULL_SC_F13] = GLFW_KEY_F13; + _glfw.null.keycodes[GLFW_NULL_SC_F14] = GLFW_KEY_F14; + _glfw.null.keycodes[GLFW_NULL_SC_F15] = GLFW_KEY_F15; + _glfw.null.keycodes[GLFW_NULL_SC_F16] = GLFW_KEY_F16; + _glfw.null.keycodes[GLFW_NULL_SC_F17] = GLFW_KEY_F17; + _glfw.null.keycodes[GLFW_NULL_SC_F18] = GLFW_KEY_F18; + _glfw.null.keycodes[GLFW_NULL_SC_F19] = GLFW_KEY_F19; + _glfw.null.keycodes[GLFW_NULL_SC_F20] = GLFW_KEY_F20; + _glfw.null.keycodes[GLFW_NULL_SC_F21] = GLFW_KEY_F21; + _glfw.null.keycodes[GLFW_NULL_SC_F22] = GLFW_KEY_F22; + _glfw.null.keycodes[GLFW_NULL_SC_F23] = GLFW_KEY_F23; + _glfw.null.keycodes[GLFW_NULL_SC_F24] = GLFW_KEY_F24; + _glfw.null.keycodes[GLFW_NULL_SC_F25] = GLFW_KEY_F25; + _glfw.null.keycodes[GLFW_NULL_SC_KP_0] = GLFW_KEY_KP_0; + _glfw.null.keycodes[GLFW_NULL_SC_KP_1] = GLFW_KEY_KP_1; + _glfw.null.keycodes[GLFW_NULL_SC_KP_2] = GLFW_KEY_KP_2; + _glfw.null.keycodes[GLFW_NULL_SC_KP_3] = GLFW_KEY_KP_3; + _glfw.null.keycodes[GLFW_NULL_SC_KP_4] = GLFW_KEY_KP_4; + _glfw.null.keycodes[GLFW_NULL_SC_KP_5] = GLFW_KEY_KP_5; + _glfw.null.keycodes[GLFW_NULL_SC_KP_6] = GLFW_KEY_KP_6; + _glfw.null.keycodes[GLFW_NULL_SC_KP_7] = GLFW_KEY_KP_7; + _glfw.null.keycodes[GLFW_NULL_SC_KP_8] = GLFW_KEY_KP_8; + _glfw.null.keycodes[GLFW_NULL_SC_KP_9] = GLFW_KEY_KP_9; + _glfw.null.keycodes[GLFW_NULL_SC_KP_DECIMAL] = GLFW_KEY_KP_DECIMAL; + _glfw.null.keycodes[GLFW_NULL_SC_KP_DIVIDE] = GLFW_KEY_KP_DIVIDE; + _glfw.null.keycodes[GLFW_NULL_SC_KP_MULTIPLY] = GLFW_KEY_KP_MULTIPLY; + _glfw.null.keycodes[GLFW_NULL_SC_KP_SUBTRACT] = GLFW_KEY_KP_SUBTRACT; + _glfw.null.keycodes[GLFW_NULL_SC_KP_ADD] = GLFW_KEY_KP_ADD; + _glfw.null.keycodes[GLFW_NULL_SC_KP_ENTER] = GLFW_KEY_KP_ENTER; + _glfw.null.keycodes[GLFW_NULL_SC_KP_EQUAL] = GLFW_KEY_KP_EQUAL; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT_SHIFT] = GLFW_KEY_LEFT_SHIFT; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT_CONTROL] = GLFW_KEY_LEFT_CONTROL; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT_ALT] = GLFW_KEY_LEFT_ALT; + _glfw.null.keycodes[GLFW_NULL_SC_LEFT_SUPER] = GLFW_KEY_LEFT_SUPER; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_SHIFT] = GLFW_KEY_RIGHT_SHIFT; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_CONTROL] = GLFW_KEY_RIGHT_CONTROL; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_ALT] = GLFW_KEY_RIGHT_ALT; + _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_SUPER] = GLFW_KEY_RIGHT_SUPER; + _glfw.null.keycodes[GLFW_NULL_SC_MENU] = GLFW_KEY_MENU; + + for (scancode = GLFW_NULL_SC_FIRST; scancode < GLFW_NULL_SC_LAST; scancode++) + { + if (_glfw.null.keycodes[scancode] > 0) + _glfw.null.scancodes[_glfw.null.keycodes[scancode]] = scancode; + } + _glfwPollMonitorsNull(); return GLFW_TRUE; } diff --git a/src/external/glfw/src/null_joystick.c b/src/external/glfw/src/null_joystick.c index 1fe50721b..ec1f6b554 100644 --- a/src/external/glfw/src/null_joystick.c +++ b/src/external/glfw/src/null_joystick.c @@ -23,8 +23,6 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" diff --git a/src/external/glfw/src/null_monitor.c b/src/external/glfw/src/null_monitor.c index 63a1cd205..d818f4528 100644 --- a/src/external/glfw/src/null_monitor.c +++ b/src/external/glfw/src/null_monitor.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" @@ -111,9 +109,10 @@ GLFWvidmode* _glfwGetVideoModesNull(_GLFWmonitor* monitor, int* found) return mode; } -void _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode) +GLFWbool _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode) { *mode = getVideoMode(); + return GLFW_TRUE; } GLFWbool _glfwGetGammaRampNull(_GLFWmonitor* monitor, GLFWgammaramp* ramp) @@ -130,7 +129,7 @@ GLFWbool _glfwGetGammaRampNull(_GLFWmonitor* monitor, GLFWgammaramp* ramp) float value; value = i / (float) (monitor->null.ramp.size - 1); value = powf(value, 1.f / gamma) * 65535.f + 0.5f; - value = _glfw_fminf(value, 65535.f); + value = fminf(value, 65535.f); monitor->null.ramp.red[i] = (unsigned short) value; monitor->null.ramp.green[i] = (unsigned short) value; diff --git a/src/external/glfw/src/null_platform.h b/src/external/glfw/src/null_platform.h index b646acb30..4843a76a1 100644 --- a/src/external/glfw/src/null_platform.h +++ b/src/external/glfw/src/null_platform.h @@ -33,6 +33,128 @@ #define GLFW_NULL_CURSOR_STATE #define GLFW_NULL_LIBRARY_CONTEXT_STATE +#define GLFW_NULL_SC_FIRST GLFW_NULL_SC_SPACE +#define GLFW_NULL_SC_SPACE 1 +#define GLFW_NULL_SC_APOSTROPHE 2 +#define GLFW_NULL_SC_COMMA 3 +#define GLFW_NULL_SC_MINUS 4 +#define GLFW_NULL_SC_PERIOD 5 +#define GLFW_NULL_SC_SLASH 6 +#define GLFW_NULL_SC_0 7 +#define GLFW_NULL_SC_1 8 +#define GLFW_NULL_SC_2 9 +#define GLFW_NULL_SC_3 10 +#define GLFW_NULL_SC_4 11 +#define GLFW_NULL_SC_5 12 +#define GLFW_NULL_SC_6 13 +#define GLFW_NULL_SC_7 14 +#define GLFW_NULL_SC_8 15 +#define GLFW_NULL_SC_9 16 +#define GLFW_NULL_SC_SEMICOLON 17 +#define GLFW_NULL_SC_EQUAL 18 +#define GLFW_NULL_SC_LEFT_BRACKET 19 +#define GLFW_NULL_SC_BACKSLASH 20 +#define GLFW_NULL_SC_RIGHT_BRACKET 21 +#define GLFW_NULL_SC_GRAVE_ACCENT 22 +#define GLFW_NULL_SC_WORLD_1 23 +#define GLFW_NULL_SC_WORLD_2 24 +#define GLFW_NULL_SC_ESCAPE 25 +#define GLFW_NULL_SC_ENTER 26 +#define GLFW_NULL_SC_TAB 27 +#define GLFW_NULL_SC_BACKSPACE 28 +#define GLFW_NULL_SC_INSERT 29 +#define GLFW_NULL_SC_DELETE 30 +#define GLFW_NULL_SC_RIGHT 31 +#define GLFW_NULL_SC_LEFT 32 +#define GLFW_NULL_SC_DOWN 33 +#define GLFW_NULL_SC_UP 34 +#define GLFW_NULL_SC_PAGE_UP 35 +#define GLFW_NULL_SC_PAGE_DOWN 36 +#define GLFW_NULL_SC_HOME 37 +#define GLFW_NULL_SC_END 38 +#define GLFW_NULL_SC_CAPS_LOCK 39 +#define GLFW_NULL_SC_SCROLL_LOCK 40 +#define GLFW_NULL_SC_NUM_LOCK 41 +#define GLFW_NULL_SC_PRINT_SCREEN 42 +#define GLFW_NULL_SC_PAUSE 43 +#define GLFW_NULL_SC_A 44 +#define GLFW_NULL_SC_B 45 +#define GLFW_NULL_SC_C 46 +#define GLFW_NULL_SC_D 47 +#define GLFW_NULL_SC_E 48 +#define GLFW_NULL_SC_F 49 +#define GLFW_NULL_SC_G 50 +#define GLFW_NULL_SC_H 51 +#define GLFW_NULL_SC_I 52 +#define GLFW_NULL_SC_J 53 +#define GLFW_NULL_SC_K 54 +#define GLFW_NULL_SC_L 55 +#define GLFW_NULL_SC_M 56 +#define GLFW_NULL_SC_N 57 +#define GLFW_NULL_SC_O 58 +#define GLFW_NULL_SC_P 59 +#define GLFW_NULL_SC_Q 60 +#define GLFW_NULL_SC_R 61 +#define GLFW_NULL_SC_S 62 +#define GLFW_NULL_SC_T 63 +#define GLFW_NULL_SC_U 64 +#define GLFW_NULL_SC_V 65 +#define GLFW_NULL_SC_W 66 +#define GLFW_NULL_SC_X 67 +#define GLFW_NULL_SC_Y 68 +#define GLFW_NULL_SC_Z 69 +#define GLFW_NULL_SC_F1 70 +#define GLFW_NULL_SC_F2 71 +#define GLFW_NULL_SC_F3 72 +#define GLFW_NULL_SC_F4 73 +#define GLFW_NULL_SC_F5 74 +#define GLFW_NULL_SC_F6 75 +#define GLFW_NULL_SC_F7 76 +#define GLFW_NULL_SC_F8 77 +#define GLFW_NULL_SC_F9 78 +#define GLFW_NULL_SC_F10 79 +#define GLFW_NULL_SC_F11 80 +#define GLFW_NULL_SC_F12 81 +#define GLFW_NULL_SC_F13 82 +#define GLFW_NULL_SC_F14 83 +#define GLFW_NULL_SC_F15 84 +#define GLFW_NULL_SC_F16 85 +#define GLFW_NULL_SC_F17 86 +#define GLFW_NULL_SC_F18 87 +#define GLFW_NULL_SC_F19 88 +#define GLFW_NULL_SC_F20 89 +#define GLFW_NULL_SC_F21 90 +#define GLFW_NULL_SC_F22 91 +#define GLFW_NULL_SC_F23 92 +#define GLFW_NULL_SC_F24 93 +#define GLFW_NULL_SC_F25 94 +#define GLFW_NULL_SC_KP_0 95 +#define GLFW_NULL_SC_KP_1 96 +#define GLFW_NULL_SC_KP_2 97 +#define GLFW_NULL_SC_KP_3 98 +#define GLFW_NULL_SC_KP_4 99 +#define GLFW_NULL_SC_KP_5 100 +#define GLFW_NULL_SC_KP_6 101 +#define GLFW_NULL_SC_KP_7 102 +#define GLFW_NULL_SC_KP_8 103 +#define GLFW_NULL_SC_KP_9 104 +#define GLFW_NULL_SC_KP_DECIMAL 105 +#define GLFW_NULL_SC_KP_DIVIDE 106 +#define GLFW_NULL_SC_KP_MULTIPLY 107 +#define GLFW_NULL_SC_KP_SUBTRACT 108 +#define GLFW_NULL_SC_KP_ADD 109 +#define GLFW_NULL_SC_KP_ENTER 110 +#define GLFW_NULL_SC_KP_EQUAL 111 +#define GLFW_NULL_SC_LEFT_SHIFT 112 +#define GLFW_NULL_SC_LEFT_CONTROL 113 +#define GLFW_NULL_SC_LEFT_ALT 114 +#define GLFW_NULL_SC_LEFT_SUPER 115 +#define GLFW_NULL_SC_RIGHT_SHIFT 116 +#define GLFW_NULL_SC_RIGHT_CONTROL 117 +#define GLFW_NULL_SC_RIGHT_ALT 118 +#define GLFW_NULL_SC_RIGHT_SUPER 119 +#define GLFW_NULL_SC_MENU 120 +#define GLFW_NULL_SC_LAST GLFW_NULL_SC_MENU // Null-specific per-window data // @@ -42,7 +164,6 @@ typedef struct _GLFWwindowNull int ypos; int width; int height; - char* title; GLFWbool visible; GLFWbool iconified; GLFWbool maximized; @@ -68,6 +189,8 @@ typedef struct _GLFWlibraryNull int ycursor; char* clipboardString; _GLFWwindow* focusedWindow; + uint16_t keycodes[GLFW_NULL_SC_LAST + 1]; + uint8_t scancodes[GLFW_KEY_LAST + 1]; } _GLFWlibraryNull; void _glfwPollMonitorsNull(void); @@ -81,7 +204,7 @@ void _glfwGetMonitorPosNull(_GLFWmonitor* monitor, int* xpos, int* ypos); void _glfwGetMonitorContentScaleNull(_GLFWmonitor* monitor, float* xscale, float* yscale); void _glfwGetMonitorWorkareaNull(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); GLFWvidmode* _glfwGetVideoModesNull(_GLFWmonitor* monitor, int* found); -void _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode); +GLFWbool _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode); GLFWbool _glfwGetGammaRampNull(_GLFWmonitor* monitor, GLFWgammaramp* ramp); void _glfwSetGammaRampNull(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); @@ -115,7 +238,6 @@ void _glfwSetRawMouseMotionNull(_GLFWwindow *window, GLFWbool enabled); GLFWbool _glfwRawMouseMotionSupportedNull(void); void _glfwShowWindowNull(_GLFWwindow* window); void _glfwRequestWindowAttentionNull(_GLFWwindow* window); -void _glfwRequestWindowAttentionNull(_GLFWwindow* window); void _glfwHideWindowNull(_GLFWwindow* window); void _glfwFocusWindowNull(_GLFWwindow* window); GLFWbool _glfwWindowFocusedNull(_GLFWwindow* window); diff --git a/src/external/glfw/src/null_window.c b/src/external/glfw/src/null_window.c index 5cdf3e236..1db08114f 100644 --- a/src/external/glfw/src/null_window.c +++ b/src/external/glfw/src/null_window.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" @@ -260,8 +258,9 @@ void _glfwSetWindowSizeNull(_GLFWwindow* window, int width, int height) { window->null.width = width; window->null.height = height; - _glfwInputWindowSize(window, width, height); _glfwInputFramebufferSize(window, width, height); + _glfwInputWindowDamage(window); + _glfwInputWindowSize(window, width, height); } } @@ -568,7 +567,7 @@ EGLNativeWindowType _glfwGetEGLNativeWindowNull(_GLFWwindow* window) const char* _glfwGetScancodeNameNull(int scancode) { - if (scancode < GLFW_KEY_SPACE || scancode > GLFW_KEY_LAST) + if (scancode < GLFW_NULL_SC_FIRST || scancode > GLFW_NULL_SC_LAST) { _glfwInputError(GLFW_INVALID_VALUE, "Invalid scancode %i", scancode); return NULL; @@ -576,117 +575,117 @@ const char* _glfwGetScancodeNameNull(int scancode) switch (scancode) { - case GLFW_KEY_APOSTROPHE: + case GLFW_NULL_SC_APOSTROPHE: return "'"; - case GLFW_KEY_COMMA: + case GLFW_NULL_SC_COMMA: return ","; - case GLFW_KEY_MINUS: - case GLFW_KEY_KP_SUBTRACT: + case GLFW_NULL_SC_MINUS: + case GLFW_NULL_SC_KP_SUBTRACT: return "-"; - case GLFW_KEY_PERIOD: - case GLFW_KEY_KP_DECIMAL: + case GLFW_NULL_SC_PERIOD: + case GLFW_NULL_SC_KP_DECIMAL: return "."; - case GLFW_KEY_SLASH: - case GLFW_KEY_KP_DIVIDE: + case GLFW_NULL_SC_SLASH: + case GLFW_NULL_SC_KP_DIVIDE: return "/"; - case GLFW_KEY_SEMICOLON: + case GLFW_NULL_SC_SEMICOLON: return ";"; - case GLFW_KEY_EQUAL: - case GLFW_KEY_KP_EQUAL: + case GLFW_NULL_SC_EQUAL: + case GLFW_NULL_SC_KP_EQUAL: return "="; - case GLFW_KEY_LEFT_BRACKET: + case GLFW_NULL_SC_LEFT_BRACKET: return "["; - case GLFW_KEY_RIGHT_BRACKET: + case GLFW_NULL_SC_RIGHT_BRACKET: return "]"; - case GLFW_KEY_KP_MULTIPLY: + case GLFW_NULL_SC_KP_MULTIPLY: return "*"; - case GLFW_KEY_KP_ADD: + case GLFW_NULL_SC_KP_ADD: return "+"; - case GLFW_KEY_BACKSLASH: - case GLFW_KEY_WORLD_1: - case GLFW_KEY_WORLD_2: + case GLFW_NULL_SC_BACKSLASH: + case GLFW_NULL_SC_WORLD_1: + case GLFW_NULL_SC_WORLD_2: return "\\"; - case GLFW_KEY_0: - case GLFW_KEY_KP_0: + case GLFW_NULL_SC_0: + case GLFW_NULL_SC_KP_0: return "0"; - case GLFW_KEY_1: - case GLFW_KEY_KP_1: + case GLFW_NULL_SC_1: + case GLFW_NULL_SC_KP_1: return "1"; - case GLFW_KEY_2: - case GLFW_KEY_KP_2: + case GLFW_NULL_SC_2: + case GLFW_NULL_SC_KP_2: return "2"; - case GLFW_KEY_3: - case GLFW_KEY_KP_3: + case GLFW_NULL_SC_3: + case GLFW_NULL_SC_KP_3: return "3"; - case GLFW_KEY_4: - case GLFW_KEY_KP_4: + case GLFW_NULL_SC_4: + case GLFW_NULL_SC_KP_4: return "4"; - case GLFW_KEY_5: - case GLFW_KEY_KP_5: + case GLFW_NULL_SC_5: + case GLFW_NULL_SC_KP_5: return "5"; - case GLFW_KEY_6: - case GLFW_KEY_KP_6: + case GLFW_NULL_SC_6: + case GLFW_NULL_SC_KP_6: return "6"; - case GLFW_KEY_7: - case GLFW_KEY_KP_7: + case GLFW_NULL_SC_7: + case GLFW_NULL_SC_KP_7: return "7"; - case GLFW_KEY_8: - case GLFW_KEY_KP_8: + case GLFW_NULL_SC_8: + case GLFW_NULL_SC_KP_8: return "8"; - case GLFW_KEY_9: - case GLFW_KEY_KP_9: + case GLFW_NULL_SC_9: + case GLFW_NULL_SC_KP_9: return "9"; - case GLFW_KEY_A: + case GLFW_NULL_SC_A: return "a"; - case GLFW_KEY_B: + case GLFW_NULL_SC_B: return "b"; - case GLFW_KEY_C: + case GLFW_NULL_SC_C: return "c"; - case GLFW_KEY_D: + case GLFW_NULL_SC_D: return "d"; - case GLFW_KEY_E: + case GLFW_NULL_SC_E: return "e"; - case GLFW_KEY_F: + case GLFW_NULL_SC_F: return "f"; - case GLFW_KEY_G: + case GLFW_NULL_SC_G: return "g"; - case GLFW_KEY_H: + case GLFW_NULL_SC_H: return "h"; - case GLFW_KEY_I: + case GLFW_NULL_SC_I: return "i"; - case GLFW_KEY_J: + case GLFW_NULL_SC_J: return "j"; - case GLFW_KEY_K: + case GLFW_NULL_SC_K: return "k"; - case GLFW_KEY_L: + case GLFW_NULL_SC_L: return "l"; - case GLFW_KEY_M: + case GLFW_NULL_SC_M: return "m"; - case GLFW_KEY_N: + case GLFW_NULL_SC_N: return "n"; - case GLFW_KEY_O: + case GLFW_NULL_SC_O: return "o"; - case GLFW_KEY_P: + case GLFW_NULL_SC_P: return "p"; - case GLFW_KEY_Q: + case GLFW_NULL_SC_Q: return "q"; - case GLFW_KEY_R: + case GLFW_NULL_SC_R: return "r"; - case GLFW_KEY_S: + case GLFW_NULL_SC_S: return "s"; - case GLFW_KEY_T: + case GLFW_NULL_SC_T: return "t"; - case GLFW_KEY_U: + case GLFW_NULL_SC_U: return "u"; - case GLFW_KEY_V: + case GLFW_NULL_SC_V: return "v"; - case GLFW_KEY_W: + case GLFW_NULL_SC_W: return "w"; - case GLFW_KEY_X: + case GLFW_NULL_SC_X: return "x"; - case GLFW_KEY_Y: + case GLFW_NULL_SC_Y: return "y"; - case GLFW_KEY_Z: + case GLFW_NULL_SC_Z: return "z"; } @@ -695,7 +694,7 @@ const char* _glfwGetScancodeNameNull(int scancode) int _glfwGetKeyScancodeNull(int key) { - return key; + return _glfw.null.scancodes[key]; } void _glfwGetRequiredInstanceExtensionsNull(char** extensions) diff --git a/src/external/glfw/src/osmesa_context.c b/src/external/glfw/src/osmesa_context.c index 38adabbc0..2f12adf2b 100644 --- a/src/external/glfw/src/osmesa_context.c +++ b/src/external/glfw/src/osmesa_context.c @@ -24,16 +24,13 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== + +#include "internal.h" #include #include #include -#include "internal.h" - - static void makeContextCurrentOSMesa(_GLFWwindow* window) { if (window) diff --git a/src/external/glfw/src/platform.c b/src/external/glfw/src/platform.c index 24b6ac9bb..af1b0f446 100644 --- a/src/external/glfw/src/platform.c +++ b/src/external/glfw/src/platform.c @@ -24,11 +24,16 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#include +#include + +// These construct a string literal from individual numeric constants +#define _GLFW_CONCAT_VERSION(m, n, r) #m "." #n "." #r +#define _GLFW_MAKE_VERSION(m, n, r) _GLFW_CONCAT_VERSION(m, n, r) + ////////////////////////////////////////////////////////////////////////// ////// GLFW internal API ////// ////////////////////////////////////////////////////////////////////////// @@ -45,12 +50,12 @@ static const struct #if defined(_GLFW_COCOA) { GLFW_PLATFORM_COCOA, _glfwConnectCocoa }, #endif -#if defined(_GLFW_X11) - { GLFW_PLATFORM_X11, _glfwConnectX11 }, -#endif #if defined(_GLFW_WAYLAND) { GLFW_PLATFORM_WAYLAND, _glfwConnectWayland }, #endif +#if defined(_GLFW_X11) + { GLFW_PLATFORM_X11, _glfwConnectX11 }, +#endif }; GLFWbool _glfwSelectPlatform(int desiredID, _GLFWplatform* platform) @@ -71,13 +76,29 @@ GLFWbool _glfwSelectPlatform(int desiredID, _GLFWplatform* platform) // Only allow the Null platform if specifically requested if (desiredID == GLFW_PLATFORM_NULL) - return GLFW_FALSE; //_glfwConnectNull(desiredID, platform); // @raysan5 + return _glfwConnectNull(desiredID, platform); else if (count == 0) { _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "This binary only supports the Null platform"); return GLFW_FALSE; } +#if defined(_GLFW_WAYLAND) && defined(_GLFW_X11) + if (desiredID == GLFW_ANY_PLATFORM) + { + const char* const session = getenv("XDG_SESSION_TYPE"); + if (session) + { + // Only follow XDG_SESSION_TYPE if it is set correctly and the + // environment looks plausble; otherwise fall back to detection + if (strcmp(session, "wayland") == 0 && getenv("WAYLAND_DISPLAY")) + desiredID = GLFW_PLATFORM_WAYLAND; + else if (strcmp(session, "x11") == 0 && getenv("DISPLAY")) + desiredID = GLFW_PLATFORM_X11; + } + } +#endif + if (desiredID == GLFW_ANY_PLATFORM) { // If there is exactly one platform available for auto-selection, let it emit the @@ -146,7 +167,9 @@ GLFWAPI int glfwPlatformSupported(int platformID) GLFWAPI const char* glfwGetVersionString(void) { - return _GLFW_VERSION_NUMBER + return _GLFW_MAKE_VERSION(GLFW_VERSION_MAJOR, + GLFW_VERSION_MINOR, + GLFW_VERSION_REVISION) #if defined(_GLFW_WIN32) " Win32 WGL" #endif diff --git a/src/external/glfw/src/platform.h b/src/external/glfw/src/platform.h index 0c593676c..75652dcc5 100644 --- a/src/external/glfw/src/platform.h +++ b/src/external/glfw/src/platform.h @@ -25,10 +25,26 @@ // //======================================================================== +#if defined(GLFW_BUILD_WIN32_TIMER) || \ + defined(GLFW_BUILD_WIN32_MODULE) || \ + defined(GLFW_BUILD_WIN32_THREAD) || \ + defined(GLFW_BUILD_COCOA_TIMER) || \ + defined(GLFW_BUILD_POSIX_TIMER) || \ + defined(GLFW_BUILD_POSIX_MODULE) || \ + defined(GLFW_BUILD_POSIX_THREAD) || \ + defined(GLFW_BUILD_POSIX_POLL) || \ + defined(GLFW_BUILD_LINUX_JOYSTICK) + #error "You must not define these; define zero or more _GLFW_ macros instead" +#endif + #include "null_platform.h" +#define GLFW_EXPOSE_NATIVE_EGL +#define GLFW_EXPOSE_NATIVE_OSMESA #if defined(_GLFW_WIN32) #include "win32_platform.h" + #define GLFW_EXPOSE_NATIVE_WIN32 + #define GLFW_EXPOSE_NATIVE_WGL #else #define GLFW_WIN32_WINDOW_STATE #define GLFW_WIN32_MONITOR_STATE @@ -40,6 +56,8 @@ #if defined(_GLFW_COCOA) #include "cocoa_platform.h" + #define GLFW_EXPOSE_NATIVE_COCOA + #define GLFW_EXPOSE_NATIVE_NSGL #else #define GLFW_COCOA_WINDOW_STATE #define GLFW_COCOA_MONITOR_STATE @@ -51,6 +69,7 @@ #if defined(_GLFW_WAYLAND) #include "wl_platform.h" + #define GLFW_EXPOSE_NATIVE_WAYLAND #else #define GLFW_WAYLAND_WINDOW_STATE #define GLFW_WAYLAND_MONITOR_STATE @@ -60,6 +79,8 @@ #if defined(_GLFW_X11) #include "x11_platform.h" + #define GLFW_EXPOSE_NATIVE_X11 + #define GLFW_EXPOSE_NATIVE_GLX #else #define GLFW_X11_WINDOW_STATE #define GLFW_X11_MONITOR_STATE @@ -86,6 +107,10 @@ #endif #if (defined(_GLFW_X11) || defined(_GLFW_WAYLAND)) && defined(__linux__) + #define GLFW_BUILD_LINUX_JOYSTICK +#endif + +#if defined(GLFW_BUILD_LINUX_JOYSTICK) #include "linux_joystick.h" #else #define GLFW_LINUX_JOYSTICK_STATE @@ -141,23 +166,47 @@ GLFW_GLX_LIBRARY_CONTEXT_STATE #if defined(_WIN32) + #define GLFW_BUILD_WIN32_THREAD +#else + #define GLFW_BUILD_POSIX_THREAD +#endif + +#if defined(GLFW_BUILD_WIN32_THREAD) #include "win32_thread.h" #define GLFW_PLATFORM_TLS_STATE GLFW_WIN32_TLS_STATE #define GLFW_PLATFORM_MUTEX_STATE GLFW_WIN32_MUTEX_STATE -#else +#elif defined(GLFW_BUILD_POSIX_THREAD) #include "posix_thread.h" #define GLFW_PLATFORM_TLS_STATE GLFW_POSIX_TLS_STATE #define GLFW_PLATFORM_MUTEX_STATE GLFW_POSIX_MUTEX_STATE #endif #if defined(_WIN32) + #define GLFW_BUILD_WIN32_TIMER +#elif defined(__APPLE__) + #define GLFW_BUILD_COCOA_TIMER +#else + #define GLFW_BUILD_POSIX_TIMER +#endif + +#if defined(GLFW_BUILD_WIN32_TIMER) #include "win32_time.h" #define GLFW_PLATFORM_LIBRARY_TIMER_STATE GLFW_WIN32_LIBRARY_TIMER_STATE -#elif defined(__APPLE__) +#elif defined(GLFW_BUILD_COCOA_TIMER) #include "cocoa_time.h" #define GLFW_PLATFORM_LIBRARY_TIMER_STATE GLFW_COCOA_LIBRARY_TIMER_STATE -#else +#elif defined(GLFW_BUILD_POSIX_TIMER) #include "posix_time.h" #define GLFW_PLATFORM_LIBRARY_TIMER_STATE GLFW_POSIX_LIBRARY_TIMER_STATE #endif +#if defined(_WIN32) + #define GLFW_BUILD_WIN32_MODULE +#else + #define GLFW_BUILD_POSIX_MODULE +#endif + +#if defined(_GLFW_WAYLAND) || defined(_GLFW_X11) + #define GLFW_BUILD_POSIX_POLL +#endif + diff --git a/src/external/glfw/src/posix_module.c b/src/external/glfw/src/posix_module.c index 7079e5b45..7d81c6724 100644 --- a/src/external/glfw/src/posix_module.c +++ b/src/external/glfw/src/posix_module.c @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_POSIX_MODULE) + #include ////////////////////////////////////////////////////////////////////////// @@ -49,3 +49,5 @@ GLFWproc _glfwPlatformGetModuleSymbol(void* module, const char* name) return dlsym(module, name); } +#endif // GLFW_BUILD_POSIX_MODULE + diff --git a/src/external/glfw/src/posix_poll.c b/src/external/glfw/src/posix_poll.c index 676a8a510..b53e36e80 100644 --- a/src/external/glfw/src/posix_poll.c +++ b/src/external/glfw/src/posix_poll.c @@ -23,13 +23,13 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #define _GNU_SOURCE #include "internal.h" +#if defined(GLFW_BUILD_POSIX_POLL) + #include #include #include @@ -79,3 +79,5 @@ GLFWbool _glfwPollPOSIX(struct pollfd* fds, nfds_t count, double* timeout) } } +#endif // GLFW_BUILD_POSIX_POLL + diff --git a/src/external/glfw/src/posix_poll.h b/src/external/glfw/src/posix_poll.h index 1effd1cd3..4bdd2448d 100644 --- a/src/external/glfw/src/posix_poll.h +++ b/src/external/glfw/src/posix_poll.h @@ -23,8 +23,6 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include diff --git a/src/external/glfw/src/posix_thread.c b/src/external/glfw/src/posix_thread.c index 023614578..3c355a53a 100644 --- a/src/external/glfw/src/posix_thread.c +++ b/src/external/glfw/src/posix_thread.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_POSIX_THREAD) + #include #include @@ -103,3 +103,5 @@ void _glfwPlatformUnlockMutex(_GLFWmutex* mutex) pthread_mutex_unlock(&mutex->posix.handle); } +#endif // GLFW_BUILD_POSIX_THREAD + diff --git a/src/external/glfw/src/posix_time.c b/src/external/glfw/src/posix_time.c index f134be47e..a17240847 100644 --- a/src/external/glfw/src/posix_time.c +++ b/src/external/glfw/src/posix_time.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_POSIX_TIMER) + #include #include @@ -61,3 +61,5 @@ uint64_t _glfwPlatformGetTimerFrequency(void) return _glfw.timer.posix.frequency; } +#endif // GLFW_BUILD_POSIX_TIMER + diff --git a/src/external/glfw/src/vulkan.c b/src/external/glfw/src/vulkan.c index 64a4650fc..d9fabdea4 100644 --- a/src/external/glfw/src/vulkan.c +++ b/src/external/glfw/src/vulkan.c @@ -24,8 +24,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" diff --git a/src/external/glfw/src/wgl_context.c b/src/external/glfw/src/wgl_context.c index 4a5e77a81..8a23ffc41 100644 --- a/src/external/glfw/src/wgl_context.c +++ b/src/external/glfw/src/wgl_context.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(_GLFW_WIN32) + #include #include @@ -115,6 +115,23 @@ static int choosePixelFormatWGL(_GLFWwindow* window, if (_glfw.wgl.EXT_colorspace) ADD_ATTRIB(WGL_COLORSPACE_EXT); } + + // NOTE: In a Parallels VM WGL_ARB_pixel_format returns fewer pixel formats than + // DescribePixelFormat, violating the guarantees of the extension spec + // HACK: Iterate through the minimum of both counts + + const int attrib = WGL_NUMBER_PIXEL_FORMATS_ARB; + int extensionCount; + + if (!wglGetPixelFormatAttribivARB(window->context.wgl.dc, + 1, 0, 1, &attrib, &extensionCount)) + { + _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, + "WGL: Failed to retrieve pixel format attribute"); + return 0; + } + + nativeCount = _glfw_min(nativeCount, extensionCount); } usableConfigs = _glfw_calloc(nativeCount, sizeof(_GLFWfbconfig)); @@ -330,6 +347,7 @@ static void swapBuffersWGL(_GLFWwindow* window) static void swapIntervalWGL(int interval) { _GLFWwindow* window = _glfwPlatformGetTls(&_glfw.contextSlot); + assert(window != NULL); window->context.wgl.interval = interval; @@ -776,3 +794,5 @@ GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* handle) return window->context.wgl.handle; } +#endif // _GLFW_WIN32 + diff --git a/src/external/glfw/src/win32_init.c b/src/external/glfw/src/win32_init.c index 8704150c5..824e383ce 100644 --- a/src/external/glfw/src/win32_init.c +++ b/src/external/glfw/src/win32_init.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(_GLFW_WIN32) + #include static const GUID _glfw_GUID_DEVINTERFACE_HID = @@ -382,7 +382,7 @@ static GLFWbool createHelperWindow(void) if (!_glfw.win32.helperWindowClass) { _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, - "WIn32: Failed to register helper window class"); + "Win32: Failed to register helper window class"); return GLFW_FALSE; } @@ -430,7 +430,6 @@ static GLFWbool createHelperWindow(void) return GLFW_TRUE; } - ////////////////////////////////////////////////////////////////////////// ////// GLFW internal API ////// ////////////////////////////////////////////////////////////////////////// @@ -603,78 +602,78 @@ GLFWbool _glfwConnectWin32(int platformID, _GLFWplatform* platform) { const _GLFWplatform win32 = { - GLFW_PLATFORM_WIN32, - _glfwInitWin32, - _glfwTerminateWin32, - _glfwGetCursorPosWin32, - _glfwSetCursorPosWin32, - _glfwSetCursorModeWin32, - _glfwSetRawMouseMotionWin32, - _glfwRawMouseMotionSupportedWin32, - _glfwCreateCursorWin32, - _glfwCreateStandardCursorWin32, - _glfwDestroyCursorWin32, - _glfwSetCursorWin32, - _glfwGetScancodeNameWin32, - _glfwGetKeyScancodeWin32, - _glfwSetClipboardStringWin32, - _glfwGetClipboardStringWin32, - _glfwInitJoysticksWin32, - _glfwTerminateJoysticksWin32, - _glfwPollJoystickWin32, - _glfwGetMappingNameWin32, - _glfwUpdateGamepadGUIDWin32, - _glfwFreeMonitorWin32, - _glfwGetMonitorPosWin32, - _glfwGetMonitorContentScaleWin32, - _glfwGetMonitorWorkareaWin32, - _glfwGetVideoModesWin32, - _glfwGetVideoModeWin32, - _glfwGetGammaRampWin32, - _glfwSetGammaRampWin32, - _glfwCreateWindowWin32, - _glfwDestroyWindowWin32, - _glfwSetWindowTitleWin32, - _glfwSetWindowIconWin32, - _glfwGetWindowPosWin32, - _glfwSetWindowPosWin32, - _glfwGetWindowSizeWin32, - _glfwSetWindowSizeWin32, - _glfwSetWindowSizeLimitsWin32, - _glfwSetWindowAspectRatioWin32, - _glfwGetFramebufferSizeWin32, - _glfwGetWindowFrameSizeWin32, - _glfwGetWindowContentScaleWin32, - _glfwIconifyWindowWin32, - _glfwRestoreWindowWin32, - _glfwMaximizeWindowWin32, - _glfwShowWindowWin32, - _glfwHideWindowWin32, - _glfwRequestWindowAttentionWin32, - _glfwFocusWindowWin32, - _glfwSetWindowMonitorWin32, - _glfwWindowFocusedWin32, - _glfwWindowIconifiedWin32, - _glfwWindowVisibleWin32, - _glfwWindowMaximizedWin32, - _glfwWindowHoveredWin32, - _glfwFramebufferTransparentWin32, - _glfwGetWindowOpacityWin32, - _glfwSetWindowResizableWin32, - _glfwSetWindowDecoratedWin32, - _glfwSetWindowFloatingWin32, - _glfwSetWindowOpacityWin32, - _glfwSetWindowMousePassthroughWin32, - _glfwPollEventsWin32, - _glfwWaitEventsWin32, - _glfwWaitEventsTimeoutWin32, - _glfwPostEmptyEventWin32, - _glfwGetEGLPlatformWin32, - _glfwGetEGLNativeDisplayWin32, - _glfwGetEGLNativeWindowWin32, - _glfwGetRequiredInstanceExtensionsWin32, - _glfwGetPhysicalDevicePresentationSupportWin32, - _glfwCreateWindowSurfaceWin32, + .platformID = GLFW_PLATFORM_WIN32, + .init = _glfwInitWin32, + .terminate = _glfwTerminateWin32, + .getCursorPos = _glfwGetCursorPosWin32, + .setCursorPos = _glfwSetCursorPosWin32, + .setCursorMode = _glfwSetCursorModeWin32, + .setRawMouseMotion = _glfwSetRawMouseMotionWin32, + .rawMouseMotionSupported = _glfwRawMouseMotionSupportedWin32, + .createCursor = _glfwCreateCursorWin32, + .createStandardCursor = _glfwCreateStandardCursorWin32, + .destroyCursor = _glfwDestroyCursorWin32, + .setCursor = _glfwSetCursorWin32, + .getScancodeName = _glfwGetScancodeNameWin32, + .getKeyScancode = _glfwGetKeyScancodeWin32, + .setClipboardString = _glfwSetClipboardStringWin32, + .getClipboardString = _glfwGetClipboardStringWin32, + .initJoysticks = _glfwInitJoysticksWin32, + .terminateJoysticks = _glfwTerminateJoysticksWin32, + .pollJoystick = _glfwPollJoystickWin32, + .getMappingName = _glfwGetMappingNameWin32, + .updateGamepadGUID = _glfwUpdateGamepadGUIDWin32, + .freeMonitor = _glfwFreeMonitorWin32, + .getMonitorPos = _glfwGetMonitorPosWin32, + .getMonitorContentScale = _glfwGetMonitorContentScaleWin32, + .getMonitorWorkarea = _glfwGetMonitorWorkareaWin32, + .getVideoModes = _glfwGetVideoModesWin32, + .getVideoMode = _glfwGetVideoModeWin32, + .getGammaRamp = _glfwGetGammaRampWin32, + .setGammaRamp = _glfwSetGammaRampWin32, + .createWindow = _glfwCreateWindowWin32, + .destroyWindow = _glfwDestroyWindowWin32, + .setWindowTitle = _glfwSetWindowTitleWin32, + .setWindowIcon = _glfwSetWindowIconWin32, + .getWindowPos = _glfwGetWindowPosWin32, + .setWindowPos = _glfwSetWindowPosWin32, + .getWindowSize = _glfwGetWindowSizeWin32, + .setWindowSize = _glfwSetWindowSizeWin32, + .setWindowSizeLimits = _glfwSetWindowSizeLimitsWin32, + .setWindowAspectRatio = _glfwSetWindowAspectRatioWin32, + .getFramebufferSize = _glfwGetFramebufferSizeWin32, + .getWindowFrameSize = _glfwGetWindowFrameSizeWin32, + .getWindowContentScale = _glfwGetWindowContentScaleWin32, + .iconifyWindow = _glfwIconifyWindowWin32, + .restoreWindow = _glfwRestoreWindowWin32, + .maximizeWindow = _glfwMaximizeWindowWin32, + .showWindow = _glfwShowWindowWin32, + .hideWindow = _glfwHideWindowWin32, + .requestWindowAttention = _glfwRequestWindowAttentionWin32, + .focusWindow = _glfwFocusWindowWin32, + .setWindowMonitor = _glfwSetWindowMonitorWin32, + .windowFocused = _glfwWindowFocusedWin32, + .windowIconified = _glfwWindowIconifiedWin32, + .windowVisible = _glfwWindowVisibleWin32, + .windowMaximized = _glfwWindowMaximizedWin32, + .windowHovered = _glfwWindowHoveredWin32, + .framebufferTransparent = _glfwFramebufferTransparentWin32, + .getWindowOpacity = _glfwGetWindowOpacityWin32, + .setWindowResizable = _glfwSetWindowResizableWin32, + .setWindowDecorated = _glfwSetWindowDecoratedWin32, + .setWindowFloating = _glfwSetWindowFloatingWin32, + .setWindowOpacity = _glfwSetWindowOpacityWin32, + .setWindowMousePassthrough = _glfwSetWindowMousePassthroughWin32, + .pollEvents = _glfwPollEventsWin32, + .waitEvents = _glfwWaitEventsWin32, + .waitEventsTimeout = _glfwWaitEventsTimeoutWin32, + .postEmptyEvent = _glfwPostEmptyEventWin32, + .getEGLPlatform = _glfwGetEGLPlatformWin32, + .getEGLNativeDisplay = _glfwGetEGLNativeDisplayWin32, + .getEGLNativeWindow = _glfwGetEGLNativeWindowWin32, + .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsWin32, + .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportWin32, + .createWindowSurface = _glfwCreateWindowSurfaceWin32 }; *platform = win32; @@ -705,6 +704,9 @@ int _glfwInitWin32(void) void _glfwTerminateWin32(void) { + if (_glfw.win32.blankCursor) + DestroyIcon((HICON) _glfw.win32.blankCursor); + if (_glfw.win32.deviceNotificationHandle) UnregisterDeviceNotification(_glfw.win32.deviceNotificationHandle); @@ -725,3 +727,5 @@ void _glfwTerminateWin32(void) freeLibraries(); } +#endif // _GLFW_WIN32 + diff --git a/src/external/glfw/src/win32_joystick.c b/src/external/glfw/src/win32_joystick.c index 3a28943b0..59389a902 100644 --- a/src/external/glfw/src/win32_joystick.c +++ b/src/external/glfw/src/win32_joystick.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(_GLFW_WIN32) + #include #include @@ -734,6 +734,13 @@ GLFWbool _glfwPollJoystickWin32(_GLFWjoystick* js, int mode) if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) dpad |= GLFW_HAT_LEFT; + // Treat invalid combinations as neither being pressed + // while preserving what data can be preserved + if ((dpad & GLFW_HAT_RIGHT) && (dpad & GLFW_HAT_LEFT)) + dpad &= ~(GLFW_HAT_RIGHT | GLFW_HAT_LEFT); + if ((dpad & GLFW_HAT_UP) && (dpad & GLFW_HAT_DOWN)) + dpad &= ~(GLFW_HAT_UP | GLFW_HAT_DOWN); + _glfwInputJoystickHat(js, 0, dpad); } @@ -756,3 +763,5 @@ void _glfwUpdateGamepadGUIDWin32(char* guid) } } +#endif // _GLFW_WIN32 + diff --git a/src/external/glfw/src/win32_joystick.h b/src/external/glfw/src/win32_joystick.h index d7c2bb6f7..9ab6438b5 100644 --- a/src/external/glfw/src/win32_joystick.h +++ b/src/external/glfw/src/win32_joystick.h @@ -27,8 +27,6 @@ #define GLFW_WIN32_JOYSTICK_STATE _GLFWjoystickWin32 win32; #define GLFW_WIN32_LIBRARY_JOYSTICK_STATE -#define GLFW_BUILD_WIN32_MAPPINGS - // Joystick element (axis, button or slider) // typedef struct _GLFWjoyobjectWin32 diff --git a/src/external/glfw/src/win32_module.c b/src/external/glfw/src/win32_module.c index 35bdd71d5..47c8dff6d 100644 --- a/src/external/glfw/src/win32_module.c +++ b/src/external/glfw/src/win32_module.c @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_WIN32_MODULE) + ////////////////////////////////////////////////////////////////////////// ////// GLFW platform API ////// ////////////////////////////////////////////////////////////////////////// @@ -47,3 +47,5 @@ GLFWproc _glfwPlatformGetModuleSymbol(void* module, const char* name) return (GLFWproc) GetProcAddress((HMODULE) module, name); } +#endif // GLFW_BUILD_WIN32_MODULE + diff --git a/src/external/glfw/src/win32_monitor.c b/src/external/glfw/src/win32_monitor.c index 57b44af3e..87c85b94d 100644 --- a/src/external/glfw/src/win32_monitor.c +++ b/src/external/glfw/src/win32_monitor.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(_GLFW_WIN32) + #include #include #include @@ -470,13 +470,17 @@ GLFWvidmode* _glfwGetVideoModesWin32(_GLFWmonitor* monitor, int* count) return result; } -void _glfwGetVideoModeWin32(_GLFWmonitor* monitor, GLFWvidmode* mode) +GLFWbool _glfwGetVideoModeWin32(_GLFWmonitor* monitor, GLFWvidmode* mode) { DEVMODEW dm; ZeroMemory(&dm, sizeof(dm)); dm.dmSize = sizeof(dm); - EnumDisplaySettingsW(monitor->win32.adapterName, ENUM_CURRENT_SETTINGS, &dm); + if (!EnumDisplaySettingsW(monitor->win32.adapterName, ENUM_CURRENT_SETTINGS, &dm)) + { + _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to query display settings"); + return GLFW_FALSE; + } mode->width = dm.dmPelsWidth; mode->height = dm.dmPelsHeight; @@ -485,6 +489,8 @@ void _glfwGetVideoModeWin32(_GLFWmonitor* monitor, GLFWvidmode* mode) &mode->redBits, &mode->greenBits, &mode->blueBits); + + return GLFW_TRUE; } GLFWbool _glfwGetGammaRampWin32(_GLFWmonitor* monitor, GLFWgammaramp* ramp) @@ -535,6 +541,13 @@ GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(NULL); + + if (_glfw.platform.platformID != GLFW_PLATFORM_WIN32) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "Win32: Platform not initialized"); + return NULL; + } + return monitor->win32.publicAdapterName; } @@ -542,6 +555,15 @@ GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(NULL); + + if (_glfw.platform.platformID != GLFW_PLATFORM_WIN32) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "Win32: Platform not initialized"); + return NULL; + } + return monitor->win32.publicDisplayName; } +#endif // _GLFW_WIN32 + diff --git a/src/external/glfw/src/win32_platform.h b/src/external/glfw/src/win32_platform.h index 82b34bb9d..7e3d8845c 100644 --- a/src/external/glfw/src/win32_platform.h +++ b/src/external/glfw/src/win32_platform.h @@ -424,6 +424,7 @@ typedef struct _GLFWwindowWin32 GLFWbool transparent; GLFWbool scaleToMonitor; GLFWbool keymenu; + GLFWbool showDefault; // Cached size used to filter out duplicate events int width, height; @@ -457,6 +458,8 @@ typedef struct _GLFWlibraryWin32 RAWINPUT* rawInput; int rawInputSize; UINT mouseTrailSize; + // The cursor handle to use to hide the cursor (NULL or a transparent cursor) + HCURSOR blankCursor; struct { HINSTANCE instance; @@ -606,7 +609,7 @@ void _glfwGetMonitorPosWin32(_GLFWmonitor* monitor, int* xpos, int* ypos); void _glfwGetMonitorContentScaleWin32(_GLFWmonitor* monitor, float* xscale, float* yscale); void _glfwGetMonitorWorkareaWin32(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); GLFWvidmode* _glfwGetVideoModesWin32(_GLFWmonitor* monitor, int* count); -void _glfwGetVideoModeWin32(_GLFWmonitor* monitor, GLFWvidmode* mode); +GLFWbool _glfwGetVideoModeWin32(_GLFWmonitor* monitor, GLFWvidmode* mode); GLFWbool _glfwGetGammaRampWin32(_GLFWmonitor* monitor, GLFWgammaramp* ramp); void _glfwSetGammaRampWin32(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); diff --git a/src/external/glfw/src/win32_thread.c b/src/external/glfw/src/win32_thread.c index 35b8f99eb..212e666c2 100644 --- a/src/external/glfw/src/win32_thread.c +++ b/src/external/glfw/src/win32_thread.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_WIN32_THREAD) + #include @@ -96,3 +96,5 @@ void _glfwPlatformUnlockMutex(_GLFWmutex* mutex) LeaveCriticalSection(&mutex->win32.section); } +#endif // GLFW_BUILD_WIN32_THREAD + diff --git a/src/external/glfw/src/win32_thread.h b/src/external/glfw/src/win32_thread.h index 4b5a696f8..dd5948f07 100644 --- a/src/external/glfw/src/win32_thread.h +++ b/src/external/glfw/src/win32_thread.h @@ -25,6 +25,11 @@ // //======================================================================== +// This is a workaround for the fact that glfw3.h needs to export APIENTRY (for +// example to allow applications to correctly declare a GL_KHR_debug callback) +// but windows.h assumes no one will define APIENTRY before it does +#undef APIENTRY + #include #define GLFW_WIN32_TLS_STATE _GLFWtlsWin32 win32; diff --git a/src/external/glfw/src/win32_time.c b/src/external/glfw/src/win32_time.c index a1c641419..a38e15ddd 100644 --- a/src/external/glfw/src/win32_time.c +++ b/src/external/glfw/src/win32_time.c @@ -24,11 +24,10 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(GLFW_BUILD_WIN32_TIMER) ////////////////////////////////////////////////////////////////////////// ////// GLFW platform API ////// @@ -51,3 +50,5 @@ uint64_t _glfwPlatformGetTimerFrequency(void) return _glfw.timer.win32.frequency; } +#endif // GLFW_BUILD_WIN32_TIMER + diff --git a/src/external/glfw/src/win32_time.h b/src/external/glfw/src/win32_time.h index da5afa41e..ef57a5a6e 100644 --- a/src/external/glfw/src/win32_time.h +++ b/src/external/glfw/src/win32_time.h @@ -25,6 +25,11 @@ // //======================================================================== +// This is a workaround for the fact that glfw3.h needs to export APIENTRY (for +// example to allow applications to correctly declare a GL_KHR_debug callback) +// but windows.h assumes no one will define APIENTRY before it does +#undef APIENTRY + #include #define GLFW_WIN32_LIBRARY_TIMER_STATE _GLFWtimerWin32 win32; diff --git a/src/external/glfw/src/win32_window.c b/src/external/glfw/src/win32_window.c index 69fb64228..e6a9496cd 100644 --- a/src/external/glfw/src/win32_window.c +++ b/src/external/glfw/src/win32_window.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" +#if defined(_GLFW_WIN32) + #include #include #include @@ -184,53 +184,38 @@ static HICON createIcon(const GLFWimage* image, int xhot, int yhot, GLFWbool ico return handle; } -// Translate content area size to full window size according to styles and DPI -// -static void getFullWindowSize(DWORD style, DWORD exStyle, - int contentWidth, int contentHeight, - int* fullWidth, int* fullHeight, - UINT dpi) -{ - RECT rect = { 0, 0, contentWidth, contentHeight }; - - if (_glfwIsWindows10Version1607OrGreaterWin32()) - AdjustWindowRectExForDpi(&rect, style, FALSE, exStyle, dpi); - else - AdjustWindowRectEx(&rect, style, FALSE, exStyle); - - *fullWidth = rect.right - rect.left; - *fullHeight = rect.bottom - rect.top; -} - // Enforce the content area aspect ratio based on which edge is being dragged // static void applyAspectRatio(_GLFWwindow* window, int edge, RECT* area) { - int xoff, yoff; - UINT dpi = USER_DEFAULT_SCREEN_DPI; + RECT frame = {0}; const float ratio = (float) window->numer / (float) window->denom; + const DWORD style = getWindowStyle(window); + const DWORD exStyle = getWindowExStyle(window); if (_glfwIsWindows10Version1607OrGreaterWin32()) - dpi = GetDpiForWindow(window->win32.handle); - - getFullWindowSize(getWindowStyle(window), getWindowExStyle(window), - 0, 0, &xoff, &yoff, dpi); + { + AdjustWindowRectExForDpi(&frame, style, FALSE, exStyle, + GetDpiForWindow(window->win32.handle)); + } + else + AdjustWindowRectEx(&frame, style, FALSE, exStyle); if (edge == WMSZ_LEFT || edge == WMSZ_BOTTOMLEFT || edge == WMSZ_RIGHT || edge == WMSZ_BOTTOMRIGHT) { - area->bottom = area->top + yoff + - (int) ((area->right - area->left - xoff) / ratio); + area->bottom = area->top + (frame.bottom - frame.top) + + (int) (((area->right - area->left) - (frame.right - frame.left)) / ratio); } else if (edge == WMSZ_TOPLEFT || edge == WMSZ_TOPRIGHT) { - area->top = area->bottom - yoff - - (int) ((area->right - area->left - xoff) / ratio); + area->top = area->bottom - (frame.bottom - frame.top) - + (int) (((area->right - area->left) - (frame.right - frame.left)) / ratio); } else if (edge == WMSZ_TOP || edge == WMSZ_BOTTOM) { - area->right = area->left + xoff + - (int) ((area->bottom - area->top - yoff) * ratio); + area->right = area->left + (frame.right - frame.left) + + (int) (((area->bottom - area->top) - (frame.bottom - frame.top)) * ratio); } } @@ -247,7 +232,12 @@ static void updateCursorImage(_GLFWwindow* window) SetCursor(LoadCursorW(NULL, IDC_ARROW)); } else - SetCursor(NULL); + { + // NOTE: Via Remote Desktop, setting the cursor to NULL does not hide it. + // HACK: When running locally, it is set to NULL, but when connected via Remote + // Desktop, this is a transparent cursor. + SetCursor(_glfw.win32.blankCursor); + } } // Sets the cursor clip rect to the window content area @@ -939,8 +929,28 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l data = _glfw.win32.rawInput; if (data->data.mouse.usFlags & MOUSE_MOVE_ABSOLUTE) { - dx = data->data.mouse.lLastX - window->win32.lastCursorPosX; - dy = data->data.mouse.lLastY - window->win32.lastCursorPosY; + POINT pos = {0}; + int width, height; + + if (data->data.mouse.usFlags & MOUSE_VIRTUAL_DESKTOP) + { + pos.x += GetSystemMetrics(SM_XVIRTUALSCREEN); + pos.y += GetSystemMetrics(SM_YVIRTUALSCREEN); + width = GetSystemMetrics(SM_CXVIRTUALSCREEN); + height = GetSystemMetrics(SM_CYVIRTUALSCREEN); + } + else + { + width = GetSystemMetrics(SM_CXSCREEN); + height = GetSystemMetrics(SM_CYSCREEN); + } + + pos.x += (int) ((data->data.mouse.lLastX / 65535.f) * width); + pos.y += (int) ((data->data.mouse.lLastY / 65535.f) * height); + ScreenToClient(window->win32.handle, &pos); + + dx = pos.x - window->win32.lastCursorPosX; + dy = pos.y - window->win32.lastCursorPosY; } else { @@ -1080,31 +1090,34 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l case WM_GETMINMAXINFO: { - int xoff, yoff; - UINT dpi = USER_DEFAULT_SCREEN_DPI; + RECT frame = {0}; MINMAXINFO* mmi = (MINMAXINFO*) lParam; + const DWORD style = getWindowStyle(window); + const DWORD exStyle = getWindowExStyle(window); if (window->monitor) break; if (_glfwIsWindows10Version1607OrGreaterWin32()) - dpi = GetDpiForWindow(window->win32.handle); - - getFullWindowSize(getWindowStyle(window), getWindowExStyle(window), - 0, 0, &xoff, &yoff, dpi); + { + AdjustWindowRectExForDpi(&frame, style, FALSE, exStyle, + GetDpiForWindow(window->win32.handle)); + } + else + AdjustWindowRectEx(&frame, style, FALSE, exStyle); if (window->minwidth != GLFW_DONT_CARE && window->minheight != GLFW_DONT_CARE) { - mmi->ptMinTrackSize.x = window->minwidth + xoff; - mmi->ptMinTrackSize.y = window->minheight + yoff; + mmi->ptMinTrackSize.x = window->minwidth + frame.right - frame.left; + mmi->ptMinTrackSize.y = window->minheight + frame.bottom - frame.top; } if (window->maxwidth != GLFW_DONT_CARE && window->maxheight != GLFW_DONT_CARE) { - mmi->ptMaxTrackSize.x = window->maxwidth + xoff; - mmi->ptMaxTrackSize.y = window->maxheight + yoff; + mmi->ptMaxTrackSize.x = window->maxwidth + frame.right - frame.left; + mmi->ptMaxTrackSize.y = window->maxheight + frame.bottom - frame.top; } if (!window->decorated) @@ -1263,7 +1276,7 @@ static int createNativeWindow(_GLFWwindow* window, const _GLFWwndconfig* wndconfig, const _GLFWfbconfig* fbconfig) { - int xpos, ypos, fullWidth, fullHeight; + int frameX, frameY, frameWidth, frameHeight; WCHAR* wideTitle; DWORD style = getWindowStyle(window); DWORD exStyle = getWindowExStyle(window); @@ -1301,6 +1314,34 @@ static int createNativeWindow(_GLFWwindow* window, } } + if (GetSystemMetrics(SM_REMOTESESSION)) + { + // NOTE: On Remote Desktop, setting the cursor to NULL does not hide it + // HACK: Create a transparent cursor and always set that instead of NULL + // When not on Remote Desktop, this handle is NULL and normal hiding is used + if (!_glfw.win32.blankCursor) + { + const int cursorWidth = GetSystemMetrics(SM_CXCURSOR); + const int cursorHeight = GetSystemMetrics(SM_CYCURSOR); + + unsigned char* cursorPixels = _glfw_calloc(cursorWidth * cursorHeight, 4); + if (!cursorPixels) + return GLFW_FALSE; + + // NOTE: Windows checks whether the image is fully transparent and if so + // just ignores the alpha channel and makes the whole cursor opaque + // HACK: Make one pixel slightly less transparent + cursorPixels[3] = 1; + + const GLFWimage cursorImage = { cursorWidth, cursorHeight, cursorPixels }; + _glfw.win32.blankCursor = createIcon(&cursorImage, 0, 0, FALSE); + _glfw_free(cursorPixels); + + if (!_glfw.win32.blankCursor) + return GLFW_FALSE; + } + } + if (window->monitor) { MONITORINFO mi = { sizeof(mi) }; @@ -1309,10 +1350,10 @@ static int createNativeWindow(_GLFWwindow* window, // NOTE: This window placement is temporary and approximate, as the // correct position and size cannot be known until the monitor // video mode has been picked in _glfwSetVideoModeWin32 - xpos = mi.rcMonitor.left; - ypos = mi.rcMonitor.top; - fullWidth = mi.rcMonitor.right - mi.rcMonitor.left; - fullHeight = mi.rcMonitor.bottom - mi.rcMonitor.top; + frameX = mi.rcMonitor.left; + frameY = mi.rcMonitor.top; + frameWidth = mi.rcMonitor.right - mi.rcMonitor.left; + frameHeight = mi.rcMonitor.bottom - mi.rcMonitor.top; } else { @@ -1326,17 +1367,17 @@ static int createNativeWindow(_GLFWwindow* window, if (wndconfig->xpos == GLFW_ANY_POSITION && wndconfig->ypos == GLFW_ANY_POSITION) { - xpos = CW_USEDEFAULT; - ypos = CW_USEDEFAULT; + frameX = CW_USEDEFAULT; + frameY = CW_USEDEFAULT; } else { - xpos = wndconfig->xpos + rect.left; - ypos = wndconfig->ypos + rect.top; + frameX = wndconfig->xpos + rect.left; + frameY = wndconfig->ypos + rect.top; } - fullWidth = rect.right - rect.left; - fullHeight = rect.bottom - rect.top; + frameWidth = rect.right - rect.left; + frameHeight = rect.bottom - rect.top; } wideTitle = _glfwCreateWideStringFromUTF8Win32(wndconfig->title); @@ -1347,8 +1388,8 @@ static int createNativeWindow(_GLFWwindow* window, MAKEINTATOM(_glfw.win32.mainWindowClass), wideTitle, style, - xpos, ypos, - fullWidth, fullHeight, + frameX, frameY, + frameWidth, frameHeight, NULL, // No parent window NULL, // No window menu _glfw.win32.instance, @@ -1377,6 +1418,7 @@ static int createNativeWindow(_GLFWwindow* window, window->win32.scaleToMonitor = wndconfig->scaleToMonitor; window->win32.keymenu = wndconfig->win32.keymenu; + window->win32.showDefault = wndconfig->win32.showDefault; if (!window->monitor) { @@ -1759,7 +1801,23 @@ void _glfwMaximizeWindowWin32(_GLFWwindow* window) void _glfwShowWindowWin32(_GLFWwindow* window) { - ShowWindow(window->win32.handle, SW_SHOWNA); + int showCommand = SW_SHOWNA; + + if (window->win32.showDefault) + { + // NOTE: GLFW windows currently do not seem to match the Windows 10 definition of + // a main window, so even SW_SHOWDEFAULT does nothing + // This definition is undocumented and can change (source: Raymond Chen) + // HACK: Apply the STARTUPINFO show command manually if available + STARTUPINFOW si = { sizeof(si) }; + GetStartupInfoW(&si); + if (si.dwFlags & STARTF_USESHOWWINDOW) + showCommand = si.wShowWindow; + + window->win32.showDefault = GLFW_FALSE; + } + + ShowWindow(window->win32.handle, showCommand); } void _glfwHideWindowWin32(_GLFWwindow* window) @@ -2114,6 +2172,7 @@ void _glfwPollEventsWin32(void) // NOTE: Re-center the cursor only if it has moved since the last call, // to avoid breaking glfwWaitEvents with WM_MOUSEMOVE + // The re-center is required in order to prevent the mouse cursor stopping at the edges of the screen. if (window->win32.lastCursorPosX != width / 2 || window->win32.lastCursorPosY != height / 2) { @@ -2131,7 +2190,7 @@ void _glfwWaitEventsWin32(void) void _glfwWaitEventsTimeoutWin32(double timeout) { - MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLEVENTS); + MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLINPUT); _glfwPollEventsWin32(); } @@ -2209,14 +2268,17 @@ void _glfwSetCursorModeWin32(_GLFWwindow* window, int mode) const char* _glfwGetScancodeNameWin32(int scancode) { - if (scancode < 0 || scancode > (KF_EXTENDED | 0xff) || - _glfw.win32.keycodes[scancode] == GLFW_KEY_UNKNOWN) + if (scancode < 0 || scancode > (KF_EXTENDED | 0xff)) { _glfwInputError(GLFW_INVALID_VALUE, "Invalid scancode %i", scancode); return NULL; } - return _glfw.win32.keynames[_glfw.win32.keycodes[scancode]]; + const int key = _glfw.win32.keycodes[scancode]; + if (key == GLFW_KEY_UNKNOWN) + return NULL; + + return _glfw.win32.keynames[key]; } int _glfwGetKeyScancodeWin32(int key) @@ -2303,7 +2365,7 @@ void _glfwSetCursorWin32(_GLFWwindow* window, _GLFWcursor* cursor) void _glfwSetClipboardStringWin32(const char* string) { - int characterCount; + int characterCount, tries = 0; HANDLE object; WCHAR* buffer; @@ -2331,12 +2393,20 @@ void _glfwSetClipboardStringWin32(const char* string) MultiByteToWideChar(CP_UTF8, 0, string, -1, buffer, characterCount); GlobalUnlock(object); - if (!OpenClipboard(_glfw.win32.helperWindowHandle)) + // NOTE: Retry clipboard opening a few times as some other application may have it + // open and also the Windows Clipboard History reads it after each update + while (!OpenClipboard(_glfw.win32.helperWindowHandle)) { - _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, - "Win32: Failed to open clipboard"); - GlobalFree(object); - return; + Sleep(1); + tries++; + + if (tries == 3) + { + _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, + "Win32: Failed to open clipboard"); + GlobalFree(object); + return; + } } EmptyClipboard(); @@ -2348,12 +2418,21 @@ const char* _glfwGetClipboardStringWin32(void) { HANDLE object; WCHAR* buffer; + int tries = 0; - if (!OpenClipboard(_glfw.win32.helperWindowHandle)) + // NOTE: Retry clipboard opening a few times as some other application may have it + // open and also the Windows Clipboard History reads it after each update + while (!OpenClipboard(_glfw.win32.helperWindowHandle)) { - _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, - "Win32: Failed to open clipboard"); - return NULL; + Sleep(1); + tries++; + + if (tries == 3) + { + _glfwInputErrorWin32(GLFW_PLATFORM_ERROR, + "Win32: Failed to open clipboard"); + return NULL; + } } object = GetClipboardData(CF_UNICODETEXT); @@ -2510,3 +2589,5 @@ GLFWAPI HWND glfwGetWin32Window(GLFWwindow* handle) return window->win32.handle; } +#endif // _GLFW_WIN32 + diff --git a/src/external/glfw/src/window.c b/src/external/glfw/src/window.c index 1c8519ff7..1463d1694 100644 --- a/src/external/glfw/src/window.c +++ b/src/external/glfw/src/window.c @@ -25,8 +25,6 @@ // distribution. // //======================================================================== -// Please use C89 style variable declarations in this file because VS 2010 -//======================================================================== #include "internal.h" @@ -244,6 +242,7 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, window->maxheight = GLFW_DONT_CARE; window->numer = GLFW_DONT_CARE; window->denom = GLFW_DONT_CARE; + window->title = _glfw_strdup(title); if (!_glfw.platform.createWindow(window, &wndconfig, &ctxconfig, &fbconfig)) { @@ -276,6 +275,7 @@ void glfwDefaultWindowHints(void) _glfw.hints.window.focusOnShow = GLFW_TRUE; _glfw.hints.window.xpos = GLFW_ANY_POSITION; _glfw.hints.window.ypos = GLFW_ANY_POSITION; + _glfw.hints.window.scaleFramebuffer = GLFW_TRUE; // The default is 24 bits of color, 24 bits of depth and 8 bits of stencil, // double buffered @@ -290,9 +290,6 @@ void glfwDefaultWindowHints(void) // The default is to select the highest available refresh rate _glfw.hints.refreshRate = GLFW_DONT_CARE; - - // The default is to use full Retina resolution framebuffers - _glfw.hints.window.ns.retina = GLFW_TRUE; } GLFWAPI void glfwWindowHint(int hint, int value) @@ -376,18 +373,22 @@ GLFWAPI void glfwWindowHint(int hint, int value) case GLFW_POSITION_Y: _glfw.hints.window.ypos = value; return; - case GLFW_COCOA_RETINA_FRAMEBUFFER: - _glfw.hints.window.ns.retina = value ? GLFW_TRUE : GLFW_FALSE; - return; case GLFW_WIN32_KEYBOARD_MENU: _glfw.hints.window.win32.keymenu = value ? GLFW_TRUE : GLFW_FALSE; return; + case GLFW_WIN32_SHOWDEFAULT: + _glfw.hints.window.win32.showDefault = value ? GLFW_TRUE : GLFW_FALSE; + return; case GLFW_COCOA_GRAPHICS_SWITCHING: _glfw.hints.context.nsgl.offline = value ? GLFW_TRUE : GLFW_FALSE; return; case GLFW_SCALE_TO_MONITOR: _glfw.hints.window.scaleToMonitor = value ? GLFW_TRUE : GLFW_FALSE; return; + case GLFW_SCALE_FRAMEBUFFER: + case GLFW_COCOA_RETINA_FRAMEBUFFER: + _glfw.hints.window.scaleFramebuffer = value ? GLFW_TRUE : GLFW_FALSE; + return; case GLFW_CENTER_CURSOR: _glfw.hints.window.centerCursor = value ? GLFW_TRUE : GLFW_FALSE; return; @@ -494,6 +495,7 @@ GLFWAPI void glfwDestroyWindow(GLFWwindow* handle) *prev = window->next; } + _glfw_free(window->title); _glfw_free(window); } @@ -515,6 +517,16 @@ GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* handle, int value) window->shouldClose = value; } +GLFWAPI const char* glfwGetWindowTitle(GLFWwindow* handle) +{ + _GLFWwindow* window = (_GLFWwindow*) handle; + assert(window != NULL); + + _GLFW_REQUIRE_INIT_OR_RETURN(NULL); + + return window->title; +} + GLFWAPI void glfwSetWindowTitle(GLFWwindow* handle, const char* title) { _GLFWwindow* window = (_GLFWwindow*) handle; @@ -522,7 +534,12 @@ GLFWAPI void glfwSetWindowTitle(GLFWwindow* handle, const char* title) assert(title != NULL); _GLFW_REQUIRE_INIT(); + + char* prev = window->title; + window->title = _glfw_strdup(title); + _glfw.platform.setWindowTitle(window, title); + _glfw_free(prev); } GLFWAPI void glfwSetWindowIcon(GLFWwindow* handle, @@ -742,7 +759,7 @@ GLFWAPI float glfwGetWindowOpacity(GLFWwindow* handle) _GLFWwindow* window = (_GLFWwindow*) handle; assert(window != NULL); - _GLFW_REQUIRE_INIT_OR_RETURN(1.f); + _GLFW_REQUIRE_INIT_OR_RETURN(0.f); return _glfw.platform.getWindowOpacity(window); } diff --git a/src/external/glfw/src/wl_init.c b/src/external/glfw/src/wl_init.c index 8cbcc6e8e..3aff476d3 100644 --- a/src/external/glfw/src/wl_init.c +++ b/src/external/glfw/src/wl_init.c @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_WAYLAND) + #include #include #include @@ -38,14 +38,17 @@ #include #include #include +#include #include "wayland-client-protocol.h" -#include "wayland-xdg-shell-client-protocol.h" -#include "wayland-xdg-decoration-client-protocol.h" -#include "wayland-viewporter-client-protocol.h" -#include "wayland-relative-pointer-unstable-v1-client-protocol.h" -#include "wayland-pointer-constraints-unstable-v1-client-protocol.h" -#include "wayland-idle-inhibit-unstable-v1-client-protocol.h" +#include "xdg-shell-client-protocol.h" +#include "xdg-decoration-unstable-v1-client-protocol.h" +#include "viewporter-client-protocol.h" +#include "relative-pointer-unstable-v1-client-protocol.h" +#include "pointer-constraints-unstable-v1-client-protocol.h" +#include "fractional-scale-v1-client-protocol.h" +#include "xdg-activation-v1-client-protocol.h" +#include "idle-inhibit-unstable-v1-client-protocol.h" // NOTE: Versions of wayland-scanner prior to 1.17.91 named every global array of // wl_interface pointers 'types', making it impossible to combine several unmodified @@ -57,27 +60,35 @@ #undef types #define types _glfw_xdg_shell_types -#include "wayland-xdg-shell-client-protocol-code.h" +#include "xdg-shell-client-protocol-code.h" #undef types #define types _glfw_xdg_decoration_types -#include "wayland-xdg-decoration-client-protocol-code.h" +#include "xdg-decoration-unstable-v1-client-protocol-code.h" #undef types #define types _glfw_viewporter_types -#include "wayland-viewporter-client-protocol-code.h" +#include "viewporter-client-protocol-code.h" #undef types #define types _glfw_relative_pointer_types -#include "wayland-relative-pointer-unstable-v1-client-protocol-code.h" +#include "relative-pointer-unstable-v1-client-protocol-code.h" #undef types #define types _glfw_pointer_constraints_types -#include "wayland-pointer-constraints-unstable-v1-client-protocol-code.h" +#include "pointer-constraints-unstable-v1-client-protocol-code.h" +#undef types + +#define types _glfw_fractional_scale_types +#include "fractional-scale-v1-client-protocol-code.h" +#undef types + +#define types _glfw_xdg_activation_types +#include "xdg-activation-v1-client-protocol-code.h" #undef types #define types _glfw_idle_inhibit_types -#include "wayland-idle-inhibit-unstable-v1-client-protocol-code.h" +#include "idle-inhibit-unstable-v1-client-protocol-code.h" #undef types static void wmBaseHandlePing(void* userData, @@ -100,10 +111,9 @@ static void registryHandleGlobal(void* userData, { if (strcmp(interface, "wl_compositor") == 0) { - _glfw.wl.compositorVersion = _glfw_min(3, version); _glfw.wl.compositor = wl_registry_bind(registry, name, &wl_compositor_interface, - _glfw.wl.compositorVersion); + _glfw_min(3, version)); } else if (strcmp(interface, "wl_subcompositor") == 0) { @@ -123,10 +133,9 @@ static void registryHandleGlobal(void* userData, { if (!_glfw.wl.seat) { - _glfw.wl.seatVersion = _glfw_min(4, version); _glfw.wl.seat = wl_registry_bind(registry, name, &wl_seat_interface, - _glfw.wl.seatVersion); + _glfw_min(4, version)); _glfwAddSeatListenerWayland(_glfw.wl.seat); } } @@ -178,6 +187,20 @@ static void registryHandleGlobal(void* userData, &zwp_idle_inhibit_manager_v1_interface, 1); } + else if (strcmp(interface, "xdg_activation_v1") == 0) + { + _glfw.wl.activationManager = + wl_registry_bind(registry, name, + &xdg_activation_v1_interface, + 1); + } + else if (strcmp(interface, "wp_fractional_scale_manager_v1") == 0) + { + _glfw.wl.fractionalScaleManager = + wl_registry_bind(registry, name, + &wp_fractional_scale_manager_v1_interface, + 1); + } } static void registryHandleGlobalRemove(void* userData, @@ -202,6 +225,36 @@ static const struct wl_registry_listener registryListener = registryHandleGlobalRemove }; +void libdecorHandleError(struct libdecor* context, + enum libdecor_error error, + const char* message) +{ + _glfwInputError(GLFW_PLATFORM_ERROR, + "Wayland: libdecor error %u: %s", + error, message); +} + +static const struct libdecor_interface libdecorInterface = +{ + libdecorHandleError +}; + +static void libdecorReadyCallback(void* userData, + struct wl_callback* callback, + uint32_t time) +{ + _glfw.wl.libdecor.ready = GLFW_TRUE; + + assert(_glfw.wl.libdecor.callback == callback); + wl_callback_destroy(_glfw.wl.libdecor.callback); + _glfw.wl.libdecor.callback = NULL; +} + +static const struct wl_callback_listener libdecorReadyListener = +{ + libdecorReadyCallback +}; + // Create key code translation tables // static void createKeyTables(void) @@ -337,7 +390,7 @@ static void createKeyTables(void) static GLFWbool loadCursorTheme(void) { - int cursorSize = 32; + int cursorSize = 16; const char* sizeString = getenv("XCURSOR_SIZE"); if (sizeString) @@ -376,86 +429,86 @@ GLFWbool _glfwConnectWayland(int platformID, _GLFWplatform* platform) { const _GLFWplatform wayland = { - GLFW_PLATFORM_WAYLAND, - _glfwInitWayland, - _glfwTerminateWayland, - _glfwGetCursorPosWayland, - _glfwSetCursorPosWayland, - _glfwSetCursorModeWayland, - _glfwSetRawMouseMotionWayland, - _glfwRawMouseMotionSupportedWayland, - _glfwCreateCursorWayland, - _glfwCreateStandardCursorWayland, - _glfwDestroyCursorWayland, - _glfwSetCursorWayland, - _glfwGetScancodeNameWayland, - _glfwGetKeyScancodeWayland, - _glfwSetClipboardStringWayland, - _glfwGetClipboardStringWayland, -#if defined(__linux__) - _glfwInitJoysticksLinux, - _glfwTerminateJoysticksLinux, - _glfwPollJoystickLinux, - _glfwGetMappingNameLinux, - _glfwUpdateGamepadGUIDLinux, + .platformID = GLFW_PLATFORM_WAYLAND, + .init = _glfwInitWayland, + .terminate = _glfwTerminateWayland, + .getCursorPos = _glfwGetCursorPosWayland, + .setCursorPos = _glfwSetCursorPosWayland, + .setCursorMode = _glfwSetCursorModeWayland, + .setRawMouseMotion = _glfwSetRawMouseMotionWayland, + .rawMouseMotionSupported = _glfwRawMouseMotionSupportedWayland, + .createCursor = _glfwCreateCursorWayland, + .createStandardCursor = _glfwCreateStandardCursorWayland, + .destroyCursor = _glfwDestroyCursorWayland, + .setCursor = _glfwSetCursorWayland, + .getScancodeName = _glfwGetScancodeNameWayland, + .getKeyScancode = _glfwGetKeyScancodeWayland, + .setClipboardString = _glfwSetClipboardStringWayland, + .getClipboardString = _glfwGetClipboardStringWayland, +#if defined(GLFW_BUILD_LINUX_JOYSTICK) + .initJoysticks = _glfwInitJoysticksLinux, + .terminateJoysticks = _glfwTerminateJoysticksLinux, + .pollJoystick = _glfwPollJoystickLinux, + .getMappingName = _glfwGetMappingNameLinux, + .updateGamepadGUID = _glfwUpdateGamepadGUIDLinux, #else - _glfwInitJoysticksNull, - _glfwTerminateJoysticksNull, - _glfwPollJoystickNull, - _glfwGetMappingNameNull, - _glfwUpdateGamepadGUIDNull, + .initJoysticks = _glfwInitJoysticksNull, + .terminateJoysticks = _glfwTerminateJoysticksNull, + .pollJoystick = _glfwPollJoystickNull, + .getMappingName = _glfwGetMappingNameNull, + .updateGamepadGUID = _glfwUpdateGamepadGUIDNull, #endif - _glfwFreeMonitorWayland, - _glfwGetMonitorPosWayland, - _glfwGetMonitorContentScaleWayland, - _glfwGetMonitorWorkareaWayland, - _glfwGetVideoModesWayland, - _glfwGetVideoModeWayland, - _glfwGetGammaRampWayland, - _glfwSetGammaRampWayland, - _glfwCreateWindowWayland, - _glfwDestroyWindowWayland, - _glfwSetWindowTitleWayland, - _glfwSetWindowIconWayland, - _glfwGetWindowPosWayland, - _glfwSetWindowPosWayland, - _glfwGetWindowSizeWayland, - _glfwSetWindowSizeWayland, - _glfwSetWindowSizeLimitsWayland, - _glfwSetWindowAspectRatioWayland, - _glfwGetFramebufferSizeWayland, - _glfwGetWindowFrameSizeWayland, - _glfwGetWindowContentScaleWayland, - _glfwIconifyWindowWayland, - _glfwRestoreWindowWayland, - _glfwMaximizeWindowWayland, - _glfwShowWindowWayland, - _glfwHideWindowWayland, - _glfwRequestWindowAttentionWayland, - _glfwFocusWindowWayland, - _glfwSetWindowMonitorWayland, - _glfwWindowFocusedWayland, - _glfwWindowIconifiedWayland, - _glfwWindowVisibleWayland, - _glfwWindowMaximizedWayland, - _glfwWindowHoveredWayland, - _glfwFramebufferTransparentWayland, - _glfwGetWindowOpacityWayland, - _glfwSetWindowResizableWayland, - _glfwSetWindowDecoratedWayland, - _glfwSetWindowFloatingWayland, - _glfwSetWindowOpacityWayland, - _glfwSetWindowMousePassthroughWayland, - _glfwPollEventsWayland, - _glfwWaitEventsWayland, - _glfwWaitEventsTimeoutWayland, - _glfwPostEmptyEventWayland, - _glfwGetEGLPlatformWayland, - _glfwGetEGLNativeDisplayWayland, - _glfwGetEGLNativeWindowWayland, - _glfwGetRequiredInstanceExtensionsWayland, - _glfwGetPhysicalDevicePresentationSupportWayland, - _glfwCreateWindowSurfaceWayland, + .freeMonitor = _glfwFreeMonitorWayland, + .getMonitorPos = _glfwGetMonitorPosWayland, + .getMonitorContentScale = _glfwGetMonitorContentScaleWayland, + .getMonitorWorkarea = _glfwGetMonitorWorkareaWayland, + .getVideoModes = _glfwGetVideoModesWayland, + .getVideoMode = _glfwGetVideoModeWayland, + .getGammaRamp = _glfwGetGammaRampWayland, + .setGammaRamp = _glfwSetGammaRampWayland, + .createWindow = _glfwCreateWindowWayland, + .destroyWindow = _glfwDestroyWindowWayland, + .setWindowTitle = _glfwSetWindowTitleWayland, + .setWindowIcon = _glfwSetWindowIconWayland, + .getWindowPos = _glfwGetWindowPosWayland, + .setWindowPos = _glfwSetWindowPosWayland, + .getWindowSize = _glfwGetWindowSizeWayland, + .setWindowSize = _glfwSetWindowSizeWayland, + .setWindowSizeLimits = _glfwSetWindowSizeLimitsWayland, + .setWindowAspectRatio = _glfwSetWindowAspectRatioWayland, + .getFramebufferSize = _glfwGetFramebufferSizeWayland, + .getWindowFrameSize = _glfwGetWindowFrameSizeWayland, + .getWindowContentScale = _glfwGetWindowContentScaleWayland, + .iconifyWindow = _glfwIconifyWindowWayland, + .restoreWindow = _glfwRestoreWindowWayland, + .maximizeWindow = _glfwMaximizeWindowWayland, + .showWindow = _glfwShowWindowWayland, + .hideWindow = _glfwHideWindowWayland, + .requestWindowAttention = _glfwRequestWindowAttentionWayland, + .focusWindow = _glfwFocusWindowWayland, + .setWindowMonitor = _glfwSetWindowMonitorWayland, + .windowFocused = _glfwWindowFocusedWayland, + .windowIconified = _glfwWindowIconifiedWayland, + .windowVisible = _glfwWindowVisibleWayland, + .windowMaximized = _glfwWindowMaximizedWayland, + .windowHovered = _glfwWindowHoveredWayland, + .framebufferTransparent = _glfwFramebufferTransparentWayland, + .getWindowOpacity = _glfwGetWindowOpacityWayland, + .setWindowResizable = _glfwSetWindowResizableWayland, + .setWindowDecorated = _glfwSetWindowDecoratedWayland, + .setWindowFloating = _glfwSetWindowFloatingWayland, + .setWindowOpacity = _glfwSetWindowOpacityWayland, + .setWindowMousePassthrough = _glfwSetWindowMousePassthroughWayland, + .pollEvents = _glfwPollEventsWayland, + .waitEvents = _glfwWaitEventsWayland, + .waitEventsTimeout = _glfwWaitEventsTimeoutWayland, + .postEmptyEvent = _glfwPostEmptyEventWayland, + .getEGLPlatform = _glfwGetEGLPlatformWayland, + .getEGLNativeDisplay = _glfwGetEGLNativeDisplayWayland, + .getEGLNativeWindow = _glfwGetEGLNativeWindowWayland, + .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsWayland, + .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportWayland, + .createWindowSurface = _glfwCreateWindowSurfaceWayland }; void* module = _glfwPlatformLoadModule("libwayland-client.so.0"); @@ -507,6 +560,8 @@ int _glfwInitWayland(void) _glfw.wl.keyRepeatTimerfd = -1; _glfw.wl.cursorTimerfd = -1; + _glfw.wl.tag = glfwGetVersionString(); + _glfw.wl.client.display_flush = (PFN_wl_display_flush) _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_display_flush"); _glfw.wl.client.display_cancel_read = (PFN_wl_display_cancel_read) @@ -537,6 +592,10 @@ int _glfwInitWayland(void) _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_proxy_get_user_data"); _glfw.wl.client.proxy_set_user_data = (PFN_wl_proxy_set_user_data) _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_proxy_set_user_data"); + _glfw.wl.client.proxy_get_tag = (PFN_wl_proxy_get_tag) + _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_proxy_get_tag"); + _glfw.wl.client.proxy_set_tag = (PFN_wl_proxy_set_tag) + _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_proxy_set_tag"); _glfw.wl.client.proxy_get_version = (PFN_wl_proxy_get_version) _glfwPlatformGetModuleSymbol(_glfw.wl.client.handle, "wl_proxy_get_version"); _glfw.wl.client.proxy_marshal_flags = (PFN_wl_proxy_marshal_flags) @@ -556,7 +615,9 @@ int _glfwInitWayland(void) !_glfw.wl.client.proxy_marshal_constructor || !_glfw.wl.client.proxy_marshal_constructor_versioned || !_glfw.wl.client.proxy_get_user_data || - !_glfw.wl.client.proxy_set_user_data) + !_glfw.wl.client.proxy_set_user_data || + !_glfw.wl.client.proxy_get_tag || + !_glfw.wl.client.proxy_set_tag) { _glfwInputError(GLFW_PLATFORM_ERROR, "Wayland: Failed to load libwayland-client entry point"); @@ -644,6 +705,119 @@ int _glfwInitWayland(void) _glfw.wl.xkb.compose_state_get_one_sym = (PFN_xkb_compose_state_get_one_sym) _glfwPlatformGetModuleSymbol(_glfw.wl.xkb.handle, "xkb_compose_state_get_one_sym"); + if (!_glfw.wl.xkb.context_new || + !_glfw.wl.xkb.context_unref || + !_glfw.wl.xkb.keymap_new_from_string || + !_glfw.wl.xkb.keymap_unref || + !_glfw.wl.xkb.keymap_mod_get_index || + !_glfw.wl.xkb.keymap_key_repeats || + !_glfw.wl.xkb.keymap_key_get_syms_by_level || + !_glfw.wl.xkb.state_new || + !_glfw.wl.xkb.state_unref || + !_glfw.wl.xkb.state_key_get_syms || + !_glfw.wl.xkb.state_update_mask || + !_glfw.wl.xkb.state_key_get_layout || + !_glfw.wl.xkb.state_mod_index_is_active || + !_glfw.wl.xkb.compose_table_new_from_locale || + !_glfw.wl.xkb.compose_table_unref || + !_glfw.wl.xkb.compose_state_new || + !_glfw.wl.xkb.compose_state_unref || + !_glfw.wl.xkb.compose_state_feed || + !_glfw.wl.xkb.compose_state_get_status || + !_glfw.wl.xkb.compose_state_get_one_sym) + { + _glfwInputError(GLFW_PLATFORM_ERROR, + "Wayland: Failed to load all entry points from libxkbcommon"); + return GLFW_FALSE; + } + + if (_glfw.hints.init.wl.libdecorMode == GLFW_WAYLAND_PREFER_LIBDECOR) + _glfw.wl.libdecor.handle = _glfwPlatformLoadModule("libdecor-0.so.0"); + + if (_glfw.wl.libdecor.handle) + { + _glfw.wl.libdecor.libdecor_new_ = (PFN_libdecor_new) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_new"); + _glfw.wl.libdecor.libdecor_unref_ = (PFN_libdecor_unref) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_unref"); + _glfw.wl.libdecor.libdecor_get_fd_ = (PFN_libdecor_get_fd) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_get_fd"); + _glfw.wl.libdecor.libdecor_dispatch_ = (PFN_libdecor_dispatch) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_dispatch"); + _glfw.wl.libdecor.libdecor_decorate_ = (PFN_libdecor_decorate) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_decorate"); + _glfw.wl.libdecor.libdecor_frame_unref_ = (PFN_libdecor_frame_unref) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_unref"); + _glfw.wl.libdecor.libdecor_frame_set_app_id_ = (PFN_libdecor_frame_set_app_id) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_app_id"); + _glfw.wl.libdecor.libdecor_frame_set_title_ = (PFN_libdecor_frame_set_title) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_title"); + _glfw.wl.libdecor.libdecor_frame_set_minimized_ = (PFN_libdecor_frame_set_minimized) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_minimized"); + _glfw.wl.libdecor.libdecor_frame_set_fullscreen_ = (PFN_libdecor_frame_set_fullscreen) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_fullscreen"); + _glfw.wl.libdecor.libdecor_frame_unset_fullscreen_ = (PFN_libdecor_frame_unset_fullscreen) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_unset_fullscreen"); + _glfw.wl.libdecor.libdecor_frame_map_ = (PFN_libdecor_frame_map) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_map"); + _glfw.wl.libdecor.libdecor_frame_commit_ = (PFN_libdecor_frame_commit) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_commit"); + _glfw.wl.libdecor.libdecor_frame_set_min_content_size_ = (PFN_libdecor_frame_set_min_content_size) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_min_content_size"); + _glfw.wl.libdecor.libdecor_frame_set_max_content_size_ = (PFN_libdecor_frame_set_max_content_size) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_max_content_size"); + _glfw.wl.libdecor.libdecor_frame_set_maximized_ = (PFN_libdecor_frame_set_maximized) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_maximized"); + _glfw.wl.libdecor.libdecor_frame_unset_maximized_ = (PFN_libdecor_frame_unset_maximized) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_unset_maximized"); + _glfw.wl.libdecor.libdecor_frame_set_capabilities_ = (PFN_libdecor_frame_set_capabilities) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_capabilities"); + _glfw.wl.libdecor.libdecor_frame_unset_capabilities_ = (PFN_libdecor_frame_unset_capabilities) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_unset_capabilities"); + _glfw.wl.libdecor.libdecor_frame_set_visibility_ = (PFN_libdecor_frame_set_visibility) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_set_visibility"); + _glfw.wl.libdecor.libdecor_frame_get_xdg_toplevel_ = (PFN_libdecor_frame_get_xdg_toplevel) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_frame_get_xdg_toplevel"); + _glfw.wl.libdecor.libdecor_configuration_get_content_size_ = (PFN_libdecor_configuration_get_content_size) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_configuration_get_content_size"); + _glfw.wl.libdecor.libdecor_configuration_get_window_state_ = (PFN_libdecor_configuration_get_window_state) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_configuration_get_window_state"); + _glfw.wl.libdecor.libdecor_state_new_ = (PFN_libdecor_state_new) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_state_new"); + _glfw.wl.libdecor.libdecor_state_free_ = (PFN_libdecor_state_free) + _glfwPlatformGetModuleSymbol(_glfw.wl.libdecor.handle, "libdecor_state_free"); + + if (!_glfw.wl.libdecor.libdecor_new_ || + !_glfw.wl.libdecor.libdecor_unref_ || + !_glfw.wl.libdecor.libdecor_get_fd_ || + !_glfw.wl.libdecor.libdecor_dispatch_ || + !_glfw.wl.libdecor.libdecor_decorate_ || + !_glfw.wl.libdecor.libdecor_frame_unref_ || + !_glfw.wl.libdecor.libdecor_frame_set_app_id_ || + !_glfw.wl.libdecor.libdecor_frame_set_title_ || + !_glfw.wl.libdecor.libdecor_frame_set_minimized_ || + !_glfw.wl.libdecor.libdecor_frame_set_fullscreen_ || + !_glfw.wl.libdecor.libdecor_frame_unset_fullscreen_ || + !_glfw.wl.libdecor.libdecor_frame_map_ || + !_glfw.wl.libdecor.libdecor_frame_commit_ || + !_glfw.wl.libdecor.libdecor_frame_set_min_content_size_ || + !_glfw.wl.libdecor.libdecor_frame_set_max_content_size_ || + !_glfw.wl.libdecor.libdecor_frame_set_maximized_ || + !_glfw.wl.libdecor.libdecor_frame_unset_maximized_ || + !_glfw.wl.libdecor.libdecor_frame_set_capabilities_ || + !_glfw.wl.libdecor.libdecor_frame_unset_capabilities_ || + !_glfw.wl.libdecor.libdecor_frame_set_visibility_ || + !_glfw.wl.libdecor.libdecor_frame_get_xdg_toplevel_ || + !_glfw.wl.libdecor.libdecor_configuration_get_content_size_ || + !_glfw.wl.libdecor.libdecor_configuration_get_window_state_ || + !_glfw.wl.libdecor.libdecor_state_new_ || + !_glfw.wl.libdecor.libdecor_state_free_) + { + _glfwPlatformFreeModule(_glfw.wl.libdecor.handle); + memset(&_glfw.wl.libdecor, 0, sizeof(_glfw.wl.libdecor)); + } + } + _glfw.wl.registry = wl_display_get_registry(_glfw.wl.display); wl_registry_add_listener(_glfw.wl.registry, ®istryListener, NULL); @@ -663,13 +837,27 @@ int _glfwInitWayland(void) // Sync so we got all initial output events wl_display_roundtrip(_glfw.wl.display); -#ifdef WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION - if (_glfw.wl.seatVersion >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) + if (_glfw.wl.libdecor.handle) + { + _glfw.wl.libdecor.context = libdecor_new(_glfw.wl.display, &libdecorInterface); + if (_glfw.wl.libdecor.context) + { + // Perform an initial dispatch and flush to get the init started + libdecor_dispatch(_glfw.wl.libdecor.context, 0); + + // Create sync point to "know" when libdecor is ready for use + _glfw.wl.libdecor.callback = wl_display_sync(_glfw.wl.display); + wl_callback_add_listener(_glfw.wl.libdecor.callback, + &libdecorReadyListener, + NULL); + } + } + + if (wl_seat_get_version(_glfw.wl.seat) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION) { _glfw.wl.keyRepeatTimerfd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC | TFD_NONBLOCK); } -#endif if (!_glfw.wl.wmBase) { @@ -704,6 +892,22 @@ void _glfwTerminateWayland(void) _glfwTerminateEGL(); _glfwTerminateOSMesa(); + if (_glfw.wl.libdecor.context) + { + // Allow libdecor to finish receiving all its requested globals + // and ensure the associated sync callback object is destroyed + while (!_glfw.wl.libdecor.ready) + _glfwWaitEventsWayland(); + + libdecor_unref(_glfw.wl.libdecor.context); + } + + if (_glfw.wl.libdecor.handle) + { + _glfwPlatformFreeModule(_glfw.wl.libdecor.handle); + _glfw.wl.libdecor.handle = NULL; + } + if (_glfw.wl.egl.handle) { _glfwPlatformFreeModule(_glfw.wl.egl.handle); @@ -775,6 +979,10 @@ void _glfwTerminateWayland(void) zwp_pointer_constraints_v1_destroy(_glfw.wl.pointerConstraints); if (_glfw.wl.idleInhibitManager) zwp_idle_inhibit_manager_v1_destroy(_glfw.wl.idleInhibitManager); + if (_glfw.wl.activationManager) + xdg_activation_v1_destroy(_glfw.wl.activationManager); + if (_glfw.wl.fractionalScaleManager) + wp_fractional_scale_manager_v1_destroy(_glfw.wl.fractionalScaleManager); if (_glfw.wl.registry) wl_registry_destroy(_glfw.wl.registry); if (_glfw.wl.display) @@ -791,3 +999,5 @@ void _glfwTerminateWayland(void) _glfw_free(_glfw.wl.clipboardString); } +#endif // _GLFW_WAYLAND + diff --git a/src/external/glfw/src/wl_monitor.c b/src/external/glfw/src/wl_monitor.c index 336681fdc..df30313ae 100644 --- a/src/external/glfw/src/wl_monitor.c +++ b/src/external/glfw/src/wl_monitor.c @@ -23,11 +23,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_WAYLAND) + #include #include #include @@ -116,19 +116,18 @@ static void outputHandleScale(void* userData, for (_GLFWwindow* window = _glfw.windowListHead; window; window = window->next) { - for (int i = 0; i < window->wl.monitorsCount; i++) + for (size_t i = 0; i < window->wl.outputScaleCount; i++) { - if (window->wl.monitors[i] == monitor) + if (window->wl.outputScales[i].output == monitor->wl.output) { - _glfwUpdateContentScaleWayland(window); + window->wl.outputScales[i].factor = monitor->wl.scale; + _glfwUpdateBufferScaleFromOutputsWayland(window); break; } } } } -#ifdef WL_OUTPUT_NAME_SINCE_VERSION - void outputHandleName(void* userData, struct wl_output* wl_output, const char* name) { struct _GLFWmonitor* monitor = userData; @@ -142,18 +141,14 @@ void outputHandleDescription(void* userData, { } -#endif // WL_OUTPUT_NAME_SINCE_VERSION - static const struct wl_output_listener outputListener = { outputHandleGeometry, outputHandleMode, outputHandleDone, outputHandleScale, -#ifdef WL_OUTPUT_NAME_SINCE_VERSION outputHandleName, outputHandleDescription, -#endif }; @@ -170,11 +165,7 @@ void _glfwAddOutputWayland(uint32_t name, uint32_t version) return; } -#ifdef WL_OUTPUT_NAME_SINCE_VERSION version = _glfw_min(version, WL_OUTPUT_NAME_SINCE_VERSION); -#else - version = 2; -#endif struct wl_output* output = wl_registry_bind(_glfw.wl.registry, name, @@ -189,6 +180,7 @@ void _glfwAddOutputWayland(uint32_t name, uint32_t version) monitor->wl.output = output; monitor->wl.name = name; + wl_proxy_set_tag((struct wl_proxy*) output, &_glfw.wl.tag); wl_output_add_listener(output, &outputListener, monitor); } @@ -240,9 +232,10 @@ GLFWvidmode* _glfwGetVideoModesWayland(_GLFWmonitor* monitor, int* found) return monitor->modes; } -void _glfwGetVideoModeWayland(_GLFWmonitor* monitor, GLFWvidmode* mode) +GLFWbool _glfwGetVideoModeWayland(_GLFWmonitor* monitor, GLFWvidmode* mode) { *mode = monitor->modes[monitor->wl.currentMode]; + return GLFW_TRUE; } GLFWbool _glfwGetGammaRampWayland(_GLFWmonitor* monitor, GLFWgammaramp* ramp) @@ -267,6 +260,15 @@ GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(NULL); + + if (_glfw.platform.platformID != GLFW_PLATFORM_WAYLAND) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "Wayland: Platform not initialized"); + return NULL; + } + return monitor->wl.output; } +#endif // _GLFW_WAYLAND + diff --git a/src/external/glfw/src/wl_platform.h b/src/external/glfw/src/wl_platform.h index 238e1ed40..149cd241b 100644 --- a/src/external/glfw/src/wl_platform.h +++ b/src/external/glfw/src/wl_platform.h @@ -28,6 +28,8 @@ #include #include +#include + typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; typedef struct VkWaylandSurfaceCreateInfoKHR @@ -61,6 +63,8 @@ typedef struct wl_proxy* (* PFN_wl_proxy_marshal_constructor)(struct wl_proxy*,u typedef struct wl_proxy* (* PFN_wl_proxy_marshal_constructor_versioned)(struct wl_proxy*,uint32_t,const struct wl_interface*,uint32_t,...); typedef void* (* PFN_wl_proxy_get_user_data)(struct wl_proxy*); typedef void (* PFN_wl_proxy_set_user_data)(struct wl_proxy*,void*); +typedef void (* PFN_wl_proxy_set_tag)(struct wl_proxy*,const char*const*); +typedef const char* const* (* PFN_wl_proxy_get_tag)(struct wl_proxy*); typedef uint32_t (* PFN_wl_proxy_get_version)(struct wl_proxy*); typedef struct wl_proxy* (* PFN_wl_proxy_marshal_flags)(struct wl_proxy*,uint32_t,const struct wl_interface*,uint32_t,uint32_t,...); #define wl_display_flush _glfw.wl.client.display_flush @@ -78,10 +82,13 @@ typedef struct wl_proxy* (* PFN_wl_proxy_marshal_flags)(struct wl_proxy*,uint32_ #define wl_proxy_marshal_constructor_versioned _glfw.wl.client.proxy_marshal_constructor_versioned #define wl_proxy_get_user_data _glfw.wl.client.proxy_get_user_data #define wl_proxy_set_user_data _glfw.wl.client.proxy_set_user_data +#define wl_proxy_get_tag _glfw.wl.client.proxy_get_tag +#define wl_proxy_set_tag _glfw.wl.client.proxy_set_tag #define wl_proxy_get_version _glfw.wl.client.proxy_get_version #define wl_proxy_marshal_flags _glfw.wl.client.proxy_marshal_flags struct wl_shm; +struct wl_output; #define wl_display_interface _glfw_wl_display_interface #define wl_subcompositor_interface _glfw_wl_subcompositor_interface @@ -122,6 +129,10 @@ struct wl_shm; #define xdg_surface_interface _glfw_xdg_surface_interface #define xdg_toplevel_interface _glfw_xdg_toplevel_interface #define xdg_wm_base_interface _glfw_xdg_wm_base_interface +#define xdg_activation_v1_interface _glfw_xdg_activation_v1_interface +#define xdg_activation_token_v1_interface _glfw_xdg_activation_token_v1_interface +#define wl_surface_interface _glfw_wl_surface_interface +#define wp_fractional_scale_v1_interface _glfw_wp_fractional_scale_v1_interface #define GLFW_WAYLAND_WINDOW_STATE _GLFWwindowWayland wl; #define GLFW_WAYLAND_LIBRARY_WINDOW_STATE _GLFWlibraryWayland wl; @@ -198,21 +209,128 @@ typedef xkb_keysym_t (* PFN_xkb_compose_state_get_one_sym)(struct xkb_compose_st #define xkb_compose_state_get_status _glfw.wl.xkb.compose_state_get_status #define xkb_compose_state_get_one_sym _glfw.wl.xkb.compose_state_get_one_sym -typedef enum _GLFWdecorationSideWayland -{ - mainWindow, - topDecoration, - leftDecoration, - rightDecoration, - bottomDecoration, -} _GLFWdecorationSideWayland; +struct libdecor; +struct libdecor_frame; +struct libdecor_state; +struct libdecor_configuration; -typedef struct _GLFWdecorationWayland +enum libdecor_error +{ + LIBDECOR_ERROR_COMPOSITOR_INCOMPATIBLE, + LIBDECOR_ERROR_INVALID_FRAME_CONFIGURATION, +}; + +enum libdecor_window_state +{ + LIBDECOR_WINDOW_STATE_NONE = 0, + LIBDECOR_WINDOW_STATE_ACTIVE = 1, + LIBDECOR_WINDOW_STATE_MAXIMIZED = 2, + LIBDECOR_WINDOW_STATE_FULLSCREEN = 4, + LIBDECOR_WINDOW_STATE_TILED_LEFT = 8, + LIBDECOR_WINDOW_STATE_TILED_RIGHT = 16, + LIBDECOR_WINDOW_STATE_TILED_TOP = 32, + LIBDECOR_WINDOW_STATE_TILED_BOTTOM = 64 +}; + +enum libdecor_capabilities +{ + LIBDECOR_ACTION_MOVE = 1, + LIBDECOR_ACTION_RESIZE = 2, + LIBDECOR_ACTION_MINIMIZE = 4, + LIBDECOR_ACTION_FULLSCREEN = 8, + LIBDECOR_ACTION_CLOSE = 16 +}; + +struct libdecor_interface +{ + void (* error)(struct libdecor*,enum libdecor_error,const char*); + void (* reserved0)(void); + void (* reserved1)(void); + void (* reserved2)(void); + void (* reserved3)(void); + void (* reserved4)(void); + void (* reserved5)(void); + void (* reserved6)(void); + void (* reserved7)(void); + void (* reserved8)(void); + void (* reserved9)(void); +}; + +struct libdecor_frame_interface +{ + void (* configure)(struct libdecor_frame*,struct libdecor_configuration*,void*); + void (* close)(struct libdecor_frame*,void*); + void (* commit)(struct libdecor_frame*,void*); + void (* dismiss_popup)(struct libdecor_frame*,const char*,void*); + void (* reserved0)(void); + void (* reserved1)(void); + void (* reserved2)(void); + void (* reserved3)(void); + void (* reserved4)(void); + void (* reserved5)(void); + void (* reserved6)(void); + void (* reserved7)(void); + void (* reserved8)(void); + void (* reserved9)(void); +}; + +typedef struct libdecor* (* PFN_libdecor_new)(struct wl_display*,const struct libdecor_interface*); +typedef void (* PFN_libdecor_unref)(struct libdecor*); +typedef int (* PFN_libdecor_get_fd)(struct libdecor*); +typedef int (* PFN_libdecor_dispatch)(struct libdecor*,int); +typedef struct libdecor_frame* (* PFN_libdecor_decorate)(struct libdecor*,struct wl_surface*,const struct libdecor_frame_interface*,void*); +typedef void (* PFN_libdecor_frame_unref)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_set_app_id)(struct libdecor_frame*,const char*); +typedef void (* PFN_libdecor_frame_set_title)(struct libdecor_frame*,const char*); +typedef void (* PFN_libdecor_frame_set_minimized)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_set_fullscreen)(struct libdecor_frame*,struct wl_output*); +typedef void (* PFN_libdecor_frame_unset_fullscreen)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_map)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_commit)(struct libdecor_frame*,struct libdecor_state*,struct libdecor_configuration*); +typedef void (* PFN_libdecor_frame_set_min_content_size)(struct libdecor_frame*,int,int); +typedef void (* PFN_libdecor_frame_set_max_content_size)(struct libdecor_frame*,int,int); +typedef void (* PFN_libdecor_frame_set_maximized)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_unset_maximized)(struct libdecor_frame*); +typedef void (* PFN_libdecor_frame_set_capabilities)(struct libdecor_frame*,enum libdecor_capabilities); +typedef void (* PFN_libdecor_frame_unset_capabilities)(struct libdecor_frame*,enum libdecor_capabilities); +typedef void (* PFN_libdecor_frame_set_visibility)(struct libdecor_frame*,bool visible); +typedef struct xdg_toplevel* (* PFN_libdecor_frame_get_xdg_toplevel)(struct libdecor_frame*); +typedef bool (* PFN_libdecor_configuration_get_content_size)(struct libdecor_configuration*,struct libdecor_frame*,int*,int*); +typedef bool (* PFN_libdecor_configuration_get_window_state)(struct libdecor_configuration*,enum libdecor_window_state*); +typedef struct libdecor_state* (* PFN_libdecor_state_new)(int,int); +typedef void (* PFN_libdecor_state_free)(struct libdecor_state*); +#define libdecor_new _glfw.wl.libdecor.libdecor_new_ +#define libdecor_unref _glfw.wl.libdecor.libdecor_unref_ +#define libdecor_get_fd _glfw.wl.libdecor.libdecor_get_fd_ +#define libdecor_dispatch _glfw.wl.libdecor.libdecor_dispatch_ +#define libdecor_decorate _glfw.wl.libdecor.libdecor_decorate_ +#define libdecor_frame_unref _glfw.wl.libdecor.libdecor_frame_unref_ +#define libdecor_frame_set_app_id _glfw.wl.libdecor.libdecor_frame_set_app_id_ +#define libdecor_frame_set_title _glfw.wl.libdecor.libdecor_frame_set_title_ +#define libdecor_frame_set_minimized _glfw.wl.libdecor.libdecor_frame_set_minimized_ +#define libdecor_frame_set_fullscreen _glfw.wl.libdecor.libdecor_frame_set_fullscreen_ +#define libdecor_frame_unset_fullscreen _glfw.wl.libdecor.libdecor_frame_unset_fullscreen_ +#define libdecor_frame_map _glfw.wl.libdecor.libdecor_frame_map_ +#define libdecor_frame_commit _glfw.wl.libdecor.libdecor_frame_commit_ +#define libdecor_frame_set_min_content_size _glfw.wl.libdecor.libdecor_frame_set_min_content_size_ +#define libdecor_frame_set_max_content_size _glfw.wl.libdecor.libdecor_frame_set_max_content_size_ +#define libdecor_frame_set_maximized _glfw.wl.libdecor.libdecor_frame_set_maximized_ +#define libdecor_frame_unset_maximized _glfw.wl.libdecor.libdecor_frame_unset_maximized_ +#define libdecor_frame_set_capabilities _glfw.wl.libdecor.libdecor_frame_set_capabilities_ +#define libdecor_frame_unset_capabilities _glfw.wl.libdecor.libdecor_frame_unset_capabilities_ +#define libdecor_frame_set_visibility _glfw.wl.libdecor.libdecor_frame_set_visibility_ +#define libdecor_frame_get_xdg_toplevel _glfw.wl.libdecor.libdecor_frame_get_xdg_toplevel_ +#define libdecor_configuration_get_content_size _glfw.wl.libdecor.libdecor_configuration_get_content_size_ +#define libdecor_configuration_get_window_state _glfw.wl.libdecor.libdecor_configuration_get_window_state_ +#define libdecor_state_new _glfw.wl.libdecor.libdecor_state_new_ +#define libdecor_state_free _glfw.wl.libdecor.libdecor_state_free_ + +typedef struct _GLFWfallbackEdgeWayland { struct wl_surface* surface; struct wl_subsurface* subsurface; struct wp_viewport* viewport; -} _GLFWdecorationWayland; +} _GLFWfallbackEdgeWayland; typedef struct _GLFWofferWayland { @@ -221,17 +339,25 @@ typedef struct _GLFWofferWayland GLFWbool text_uri_list; } _GLFWofferWayland; +typedef struct _GLFWscaleWayland +{ + struct wl_output* output; + int32_t factor; +} _GLFWscaleWayland; + // Wayland-specific per-window data // typedef struct _GLFWwindowWayland { int width, height; + int fbWidth, fbHeight; GLFWbool visible; GLFWbool maximized; GLFWbool activated; GLFWbool fullscreen; GLFWbool hovered; GLFWbool transparent; + GLFWbool scaleFramebuffer; struct wl_surface* surface; struct wl_callback* callback; @@ -254,30 +380,39 @@ typedef struct _GLFWwindowWayland uint32_t decorationMode; } xdg; + struct { + struct libdecor_frame* frame; + } libdecor; + _GLFWcursor* currentCursor; double cursorPosX, cursorPosY; - char* title; char* appId; // We need to track the monitors the window spans on to calculate the // optimal scaling factor. - int scale; - _GLFWmonitor** monitors; - int monitorsCount; - int monitorsSize; + int32_t bufferScale; + _GLFWscaleWayland* outputScales; + size_t outputScaleCount; + size_t outputScaleSize; + + struct wp_viewport* scalingViewport; + uint32_t scalingNumerator; + struct wp_fractional_scale_v1* fractionalScale; struct zwp_relative_pointer_v1* relativePointer; struct zwp_locked_pointer_v1* lockedPointer; struct zwp_confined_pointer_v1* confinedPointer; - struct zwp_idle_inhibitor_v1* idleInhibitor; + struct zwp_idle_inhibitor_v1* idleInhibitor; + struct xdg_activation_token_v1* activationToken; struct { - struct wl_buffer* buffer; - _GLFWdecorationWayland top, left, right, bottom; - _GLFWdecorationSideWayland focus; - } decorations; + GLFWbool decorations; + struct wl_buffer* buffer; + _GLFWfallbackEdgeWayland top, left, right, bottom; + struct wl_surface* focus; + } fallback; } _GLFWwindowWayland; // Wayland-specific global data @@ -300,6 +435,8 @@ typedef struct _GLFWlibraryWayland struct zwp_relative_pointer_manager_v1* relativePointerManager; struct zwp_pointer_constraints_v1* pointerConstraints; struct zwp_idle_inhibit_manager_v1* idleInhibitManager; + struct xdg_activation_v1* activationManager; + struct wp_fractional_scale_manager_v1* fractionalScaleManager; _GLFWofferWayland* offers; unsigned int offerCount; @@ -311,8 +448,7 @@ typedef struct _GLFWlibraryWayland _GLFWwindow* dragFocus; uint32_t dragSerial; - int compositorVersion; - int seatVersion; + const char* tag; struct wl_cursor_theme* cursorTheme; struct wl_cursor_theme* cursorThemeHiDPI; @@ -391,6 +527,8 @@ typedef struct _GLFWlibraryWayland PFN_wl_proxy_marshal_constructor_versioned proxy_marshal_constructor_versioned; PFN_wl_proxy_get_user_data proxy_get_user_data; PFN_wl_proxy_set_user_data proxy_set_user_data; + PFN_wl_proxy_get_tag proxy_get_tag; + PFN_wl_proxy_set_tag proxy_set_tag; PFN_wl_proxy_get_version proxy_get_version; PFN_wl_proxy_marshal_flags proxy_marshal_flags; } client; @@ -411,6 +549,38 @@ typedef struct _GLFWlibraryWayland PFN_wl_egl_window_destroy window_destroy; PFN_wl_egl_window_resize window_resize; } egl; + + struct { + void* handle; + struct libdecor* context; + struct wl_callback* callback; + GLFWbool ready; + PFN_libdecor_new libdecor_new_; + PFN_libdecor_unref libdecor_unref_; + PFN_libdecor_get_fd libdecor_get_fd_; + PFN_libdecor_dispatch libdecor_dispatch_; + PFN_libdecor_decorate libdecor_decorate_; + PFN_libdecor_frame_unref libdecor_frame_unref_; + PFN_libdecor_frame_set_app_id libdecor_frame_set_app_id_; + PFN_libdecor_frame_set_title libdecor_frame_set_title_; + PFN_libdecor_frame_set_minimized libdecor_frame_set_minimized_; + PFN_libdecor_frame_set_fullscreen libdecor_frame_set_fullscreen_; + PFN_libdecor_frame_unset_fullscreen libdecor_frame_unset_fullscreen_; + PFN_libdecor_frame_map libdecor_frame_map_; + PFN_libdecor_frame_commit libdecor_frame_commit_; + PFN_libdecor_frame_set_min_content_size libdecor_frame_set_min_content_size_; + PFN_libdecor_frame_set_max_content_size libdecor_frame_set_max_content_size_; + PFN_libdecor_frame_set_maximized libdecor_frame_set_maximized_; + PFN_libdecor_frame_unset_maximized libdecor_frame_unset_maximized_; + PFN_libdecor_frame_set_capabilities libdecor_frame_set_capabilities_; + PFN_libdecor_frame_unset_capabilities libdecor_frame_unset_capabilities_; + PFN_libdecor_frame_set_visibility libdecor_frame_set_visibility_; + PFN_libdecor_frame_get_xdg_toplevel libdecor_frame_get_xdg_toplevel_; + PFN_libdecor_configuration_get_content_size libdecor_configuration_get_content_size_; + PFN_libdecor_configuration_get_window_state libdecor_configuration_get_window_state_; + PFN_libdecor_state_new libdecor_state_new_; + PFN_libdecor_state_free libdecor_state_free_; + } libdecor; } _GLFWlibraryWayland; // Wayland-specific per-monitor data @@ -423,7 +593,7 @@ typedef struct _GLFWmonitorWayland int x; int y; - int scale; + int32_t scale; } _GLFWmonitorWayland; // Wayland-specific per-cursor data @@ -509,12 +679,12 @@ void _glfwGetMonitorPosWayland(_GLFWmonitor* monitor, int* xpos, int* ypos); void _glfwGetMonitorContentScaleWayland(_GLFWmonitor* monitor, float* xscale, float* yscale); void _glfwGetMonitorWorkareaWayland(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); GLFWvidmode* _glfwGetVideoModesWayland(_GLFWmonitor* monitor, int* count); -void _glfwGetVideoModeWayland(_GLFWmonitor* monitor, GLFWvidmode* mode); +GLFWbool _glfwGetVideoModeWayland(_GLFWmonitor* monitor, GLFWvidmode* mode); GLFWbool _glfwGetGammaRampWayland(_GLFWmonitor* monitor, GLFWgammaramp* ramp); void _glfwSetGammaRampWayland(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); void _glfwAddOutputWayland(uint32_t name, uint32_t version); -void _glfwUpdateContentScaleWayland(_GLFWwindow* window); +void _glfwUpdateBufferScaleFromOutputsWayland(_GLFWwindow* window); void _glfwAddSeatListenerWayland(struct wl_seat* seat); void _glfwAddDataDeviceListenerWayland(struct wl_data_device* device); diff --git a/src/external/glfw/src/wl_window.c b/src/external/glfw/src/wl_window.c index 76d5f15bc..5b491ffbb 100644 --- a/src/external/glfw/src/wl_window.c +++ b/src/external/glfw/src/wl_window.c @@ -23,13 +23,13 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #define _GNU_SOURCE #include "internal.h" +#if defined(_GLFW_WAYLAND) + #include #include #include @@ -40,14 +40,17 @@ #include #include #include +#include #include "wayland-client-protocol.h" -#include "wayland-xdg-shell-client-protocol.h" -#include "wayland-xdg-decoration-client-protocol.h" -#include "wayland-viewporter-client-protocol.h" -#include "wayland-relative-pointer-unstable-v1-client-protocol.h" -#include "wayland-pointer-constraints-unstable-v1-client-protocol.h" -#include "wayland-idle-inhibit-unstable-v1-client-protocol.h" +#include "xdg-shell-client-protocol.h" +#include "xdg-decoration-unstable-v1-client-protocol.h" +#include "viewporter-client-protocol.h" +#include "relative-pointer-unstable-v1-client-protocol.h" +#include "pointer-constraints-unstable-v1-client-protocol.h" +#include "xdg-activation-v1-client-protocol.h" +#include "idle-inhibit-unstable-v1-client-protocol.h" +#include "fractional-scale-v1-client-protocol.h" #define GLFW_BORDER_SIZE 4 #define GLFW_CAPTION_HEIGHT 24 @@ -190,26 +193,28 @@ static struct wl_buffer* createShmBuffer(const GLFWimage* image) return buffer; } -static void createFallbackDecoration(_GLFWdecorationWayland* decoration, - struct wl_surface* parent, - struct wl_buffer* buffer, - int x, int y, - int width, int height) +static void createFallbackEdge(_GLFWwindow* window, + _GLFWfallbackEdgeWayland* edge, + struct wl_surface* parent, + struct wl_buffer* buffer, + int x, int y, + int width, int height) { - decoration->surface = wl_compositor_create_surface(_glfw.wl.compositor); - decoration->subsurface = - wl_subcompositor_get_subsurface(_glfw.wl.subcompositor, - decoration->surface, parent); - wl_subsurface_set_position(decoration->subsurface, x, y); - decoration->viewport = wp_viewporter_get_viewport(_glfw.wl.viewporter, - decoration->surface); - wp_viewport_set_destination(decoration->viewport, width, height); - wl_surface_attach(decoration->surface, buffer, 0, 0); + edge->surface = wl_compositor_create_surface(_glfw.wl.compositor); + wl_surface_set_user_data(edge->surface, window); + wl_proxy_set_tag((struct wl_proxy*) edge->surface, &_glfw.wl.tag); + edge->subsurface = wl_subcompositor_get_subsurface(_glfw.wl.subcompositor, + edge->surface, parent); + wl_subsurface_set_position(edge->subsurface, x, y); + edge->viewport = wp_viewporter_get_viewport(_glfw.wl.viewporter, + edge->surface); + wp_viewport_set_destination(edge->viewport, width, height); + wl_surface_attach(edge->surface, buffer, 0, 0); struct wl_region* region = wl_compositor_create_region(_glfw.wl.compositor); wl_region_add(region, 0, 0, width, height); - wl_surface_set_opaque_region(decoration->surface, region); - wl_surface_commit(decoration->surface); + wl_surface_set_opaque_region(edge->surface, region); + wl_surface_commit(edge->surface); wl_region_destroy(region); } @@ -221,48 +226,53 @@ static void createFallbackDecorations(_GLFWwindow* window) if (!_glfw.wl.viewporter) return; - if (!window->wl.decorations.buffer) - window->wl.decorations.buffer = createShmBuffer(&image); - if (!window->wl.decorations.buffer) + if (!window->wl.fallback.buffer) + window->wl.fallback.buffer = createShmBuffer(&image); + if (!window->wl.fallback.buffer) return; - createFallbackDecoration(&window->wl.decorations.top, window->wl.surface, - window->wl.decorations.buffer, - 0, -GLFW_CAPTION_HEIGHT, - window->wl.width, GLFW_CAPTION_HEIGHT); - createFallbackDecoration(&window->wl.decorations.left, window->wl.surface, - window->wl.decorations.buffer, - -GLFW_BORDER_SIZE, -GLFW_CAPTION_HEIGHT, - GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); - createFallbackDecoration(&window->wl.decorations.right, window->wl.surface, - window->wl.decorations.buffer, - window->wl.width, -GLFW_CAPTION_HEIGHT, - GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); - createFallbackDecoration(&window->wl.decorations.bottom, window->wl.surface, - window->wl.decorations.buffer, - -GLFW_BORDER_SIZE, window->wl.height, - window->wl.width + GLFW_BORDER_SIZE * 2, GLFW_BORDER_SIZE); + createFallbackEdge(window, &window->wl.fallback.top, window->wl.surface, + window->wl.fallback.buffer, + 0, -GLFW_CAPTION_HEIGHT, + window->wl.width, GLFW_CAPTION_HEIGHT); + createFallbackEdge(window, &window->wl.fallback.left, window->wl.surface, + window->wl.fallback.buffer, + -GLFW_BORDER_SIZE, -GLFW_CAPTION_HEIGHT, + GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); + createFallbackEdge(window, &window->wl.fallback.right, window->wl.surface, + window->wl.fallback.buffer, + window->wl.width, -GLFW_CAPTION_HEIGHT, + GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); + createFallbackEdge(window, &window->wl.fallback.bottom, window->wl.surface, + window->wl.fallback.buffer, + -GLFW_BORDER_SIZE, window->wl.height, + window->wl.width + GLFW_BORDER_SIZE * 2, GLFW_BORDER_SIZE); + + window->wl.fallback.decorations = GLFW_TRUE; } -static void destroyFallbackDecoration(_GLFWdecorationWayland* decoration) +static void destroyFallbackEdge(_GLFWfallbackEdgeWayland* edge) { - if (decoration->subsurface) - wl_subsurface_destroy(decoration->subsurface); - if (decoration->surface) - wl_surface_destroy(decoration->surface); - if (decoration->viewport) - wp_viewport_destroy(decoration->viewport); - decoration->surface = NULL; - decoration->subsurface = NULL; - decoration->viewport = NULL; + if (edge->subsurface) + wl_subsurface_destroy(edge->subsurface); + if (edge->surface) + wl_surface_destroy(edge->surface); + if (edge->viewport) + wp_viewport_destroy(edge->viewport); + + edge->surface = NULL; + edge->subsurface = NULL; + edge->viewport = NULL; } static void destroyFallbackDecorations(_GLFWwindow* window) { - destroyFallbackDecoration(&window->wl.decorations.top); - destroyFallbackDecoration(&window->wl.decorations.left); - destroyFallbackDecoration(&window->wl.decorations.right); - destroyFallbackDecoration(&window->wl.decorations.bottom); + window->wl.fallback.decorations = GLFW_FALSE; + + destroyFallbackEdge(&window->wl.fallback.top); + destroyFallbackEdge(&window->wl.fallback.left); + destroyFallbackEdge(&window->wl.fallback.right); + destroyFallbackEdge(&window->wl.fallback.bottom); } static void xdgDecorationHandleConfigure(void* userData, @@ -301,61 +311,114 @@ static void setContentAreaOpaque(_GLFWwindow* window) wl_region_destroy(region); } - -static void resizeWindow(_GLFWwindow* window) +static void resizeFramebuffer(_GLFWwindow* window) { - int scale = window->wl.scale; - int scaledWidth = window->wl.width * scale; - int scaledHeight = window->wl.height * scale; + if (window->wl.fractionalScale) + { + window->wl.fbWidth = (window->wl.width * window->wl.scalingNumerator) / 120; + window->wl.fbHeight = (window->wl.height * window->wl.scalingNumerator) / 120; + } + else + { + window->wl.fbWidth = window->wl.width * window->wl.bufferScale; + window->wl.fbHeight = window->wl.height * window->wl.bufferScale; + } if (window->wl.egl.window) - wl_egl_window_resize(window->wl.egl.window, scaledWidth, scaledHeight, 0, 0); + { + wl_egl_window_resize(window->wl.egl.window, + window->wl.fbWidth, + window->wl.fbHeight, + 0, 0); + } + if (!window->wl.transparent) setContentAreaOpaque(window); - _glfwInputFramebufferSize(window, scaledWidth, scaledHeight); - if (!window->wl.decorations.top.surface) - return; - - wp_viewport_set_destination(window->wl.decorations.top.viewport, - window->wl.width, GLFW_CAPTION_HEIGHT); - wl_surface_commit(window->wl.decorations.top.surface); - - wp_viewport_set_destination(window->wl.decorations.left.viewport, - GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); - wl_surface_commit(window->wl.decorations.left.surface); - - wl_subsurface_set_position(window->wl.decorations.right.subsurface, - window->wl.width, -GLFW_CAPTION_HEIGHT); - wp_viewport_set_destination(window->wl.decorations.right.viewport, - GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT); - wl_surface_commit(window->wl.decorations.right.surface); - - wl_subsurface_set_position(window->wl.decorations.bottom.subsurface, - -GLFW_BORDER_SIZE, window->wl.height); - wp_viewport_set_destination(window->wl.decorations.bottom.viewport, - window->wl.width + GLFW_BORDER_SIZE * 2, GLFW_BORDER_SIZE); - wl_surface_commit(window->wl.decorations.bottom.surface); + _glfwInputFramebufferSize(window, window->wl.fbWidth, window->wl.fbHeight); } -void _glfwUpdateContentScaleWayland(_GLFWwindow* window) +static GLFWbool resizeWindow(_GLFWwindow* window, int width, int height) { - if (_glfw.wl.compositorVersion < WL_SURFACE_SET_BUFFER_SCALE_SINCE_VERSION) + width = _glfw_max(width, 1); + height = _glfw_max(height, 1); + + if (width == window->wl.width && height == window->wl.height) + return GLFW_FALSE; + + window->wl.width = width; + window->wl.height = height; + + resizeFramebuffer(window); + + if (window->wl.scalingViewport) + { + wp_viewport_set_destination(window->wl.scalingViewport, + window->wl.width, + window->wl.height); + } + + if (window->wl.fallback.decorations) + { + wp_viewport_set_destination(window->wl.fallback.top.viewport, + window->wl.width, + GLFW_CAPTION_HEIGHT); + wl_surface_commit(window->wl.fallback.top.surface); + + wp_viewport_set_destination(window->wl.fallback.left.viewport, + GLFW_BORDER_SIZE, + window->wl.height + GLFW_CAPTION_HEIGHT); + wl_surface_commit(window->wl.fallback.left.surface); + + wl_subsurface_set_position(window->wl.fallback.right.subsurface, + window->wl.width, -GLFW_CAPTION_HEIGHT); + wp_viewport_set_destination(window->wl.fallback.right.viewport, + GLFW_BORDER_SIZE, + window->wl.height + GLFW_CAPTION_HEIGHT); + wl_surface_commit(window->wl.fallback.right.surface); + + wl_subsurface_set_position(window->wl.fallback.bottom.subsurface, + -GLFW_BORDER_SIZE, window->wl.height); + wp_viewport_set_destination(window->wl.fallback.bottom.viewport, + window->wl.width + GLFW_BORDER_SIZE * 2, + GLFW_BORDER_SIZE); + wl_surface_commit(window->wl.fallback.bottom.surface); + } + + return GLFW_TRUE; +} + +void _glfwUpdateBufferScaleFromOutputsWayland(_GLFWwindow* window) +{ + if (wl_compositor_get_version(_glfw.wl.compositor) < + WL_SURFACE_SET_BUFFER_SCALE_SINCE_VERSION) + { + return; + } + + if (!window->wl.scaleFramebuffer) + return; + + // When using fractional scaling, the buffer scale should remain at 1 + if (window->wl.fractionalScale) return; // Get the scale factor from the highest scale monitor. - int maxScale = 1; + int32_t maxScale = 1; - for (int i = 0; i < window->wl.monitorsCount; i++) - maxScale = _glfw_max(window->wl.monitors[i]->wl.scale, maxScale); + for (size_t i = 0; i < window->wl.outputScaleCount; i++) + maxScale = _glfw_max(window->wl.outputScales[i].factor, maxScale); // Only change the framebuffer size if the scale changed. - if (window->wl.scale != maxScale) + if (window->wl.bufferScale != maxScale) { - window->wl.scale = maxScale; + window->wl.bufferScale = maxScale; wl_surface_set_buffer_scale(window->wl.surface, maxScale); _glfwInputWindowContentScale(window, maxScale, maxScale); - resizeWindow(window); + resizeFramebuffer(window); + + if (window->wl.visible) + _glfwInputWindowDamage(window); } } @@ -363,40 +426,50 @@ static void surfaceHandleEnter(void* userData, struct wl_surface* surface, struct wl_output* output) { + if (wl_proxy_get_tag((struct wl_proxy*) output) != &_glfw.wl.tag) + return; + _GLFWwindow* window = userData; _GLFWmonitor* monitor = wl_output_get_user_data(output); + if (!window || !monitor) + return; - if (window->wl.monitorsCount + 1 > window->wl.monitorsSize) + if (window->wl.outputScaleCount + 1 > window->wl.outputScaleSize) { - ++window->wl.monitorsSize; - window->wl.monitors = - _glfw_realloc(window->wl.monitors, - window->wl.monitorsSize * sizeof(_GLFWmonitor*)); + window->wl.outputScaleSize++; + window->wl.outputScales = + _glfw_realloc(window->wl.outputScales, + window->wl.outputScaleSize * sizeof(_GLFWscaleWayland)); } - window->wl.monitors[window->wl.monitorsCount++] = monitor; + window->wl.outputScaleCount++; + window->wl.outputScales[window->wl.outputScaleCount - 1] = + (_GLFWscaleWayland) { output, monitor->wl.scale }; - _glfwUpdateContentScaleWayland(window); + _glfwUpdateBufferScaleFromOutputsWayland(window); } static void surfaceHandleLeave(void* userData, struct wl_surface* surface, struct wl_output* output) { + if (wl_proxy_get_tag((struct wl_proxy*) output) != &_glfw.wl.tag) + return; + _GLFWwindow* window = userData; - _GLFWmonitor* monitor = wl_output_get_user_data(output); - GLFWbool found = GLFW_FALSE; - for (int i = 0; i < window->wl.monitorsCount - 1; ++i) + for (size_t i = 0; i < window->wl.outputScaleCount; i++) { - if (monitor == window->wl.monitors[i]) - found = GLFW_TRUE; - if (found) - window->wl.monitors[i] = window->wl.monitors[i + 1]; + if (window->wl.outputScales[i].output == output) + { + window->wl.outputScales[i] = + window->wl.outputScales[window->wl.outputScaleCount - 1]; + window->wl.outputScaleCount--; + break; + } } - window->wl.monitors[--window->wl.monitorsCount] = NULL; - _glfwUpdateContentScaleWayland(window); + _glfwUpdateBufferScaleFromOutputsWayland(window); } static const struct wl_surface_listener surfaceListener = @@ -427,7 +500,12 @@ static void setIdleInhibitor(_GLFWwindow* window, GLFWbool enable) // static void acquireMonitor(_GLFWwindow* window) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + { + libdecor_frame_set_fullscreen(window->wl.libdecor.frame, + window->monitor->wl.output); + } + else if (window->wl.xdg.toplevel) { xdg_toplevel_set_fullscreen(window->wl.xdg.toplevel, window->monitor->wl.output); @@ -435,7 +513,7 @@ static void acquireMonitor(_GLFWwindow* window) setIdleInhibitor(window, GLFW_TRUE); - if (window->wl.decorations.top.surface) + if (window->wl.fallback.decorations) destroyFallbackDecorations(window); } @@ -443,18 +521,40 @@ static void acquireMonitor(_GLFWwindow* window) // static void releaseMonitor(_GLFWwindow* window) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + libdecor_frame_unset_fullscreen(window->wl.libdecor.frame); + else if (window->wl.xdg.toplevel) xdg_toplevel_unset_fullscreen(window->wl.xdg.toplevel); setIdleInhibitor(window, GLFW_FALSE); - if (window->wl.xdg.decorationMode != ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE) + if (!window->wl.libdecor.frame && + window->wl.xdg.decorationMode != ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE) { if (window->decorated) createFallbackDecorations(window); } } +void fractionalScaleHandlePreferredScale(void* userData, + struct wp_fractional_scale_v1* fractionalScale, + uint32_t numerator) +{ + _GLFWwindow* window = userData; + + window->wl.scalingNumerator = numerator; + _glfwInputWindowContentScale(window, numerator / 120.f, numerator / 120.f); + resizeFramebuffer(window); + + if (window->wl.visible) + _glfwInputWindowDamage(window); +} + +const struct wp_fractional_scale_v1_listener fractionalScaleListener = +{ + fractionalScaleHandlePreferredScale, +}; + static void xdgToplevelHandleConfigure(void* userData, struct xdg_toplevel* toplevel, int32_t width, @@ -488,7 +588,7 @@ static void xdgToplevelHandleConfigure(void* userData, if (width && height) { - if (window->wl.decorations.top.surface) + if (window->wl.fallback.decorations) { window->wl.pending.width = _glfw_max(0, width - GLFW_BORDER_SIZE * 2); window->wl.pending.height = @@ -562,13 +662,9 @@ static void xdgSurfaceHandleConfigure(void* userData, } } - if (width != window->wl.width || height != window->wl.height) + if (resizeWindow(window, width, height)) { - window->wl.width = width; - window->wl.height = height; - resizeWindow(window); - - _glfwInputWindowSize(window, width, height); + _glfwInputWindowSize(window, window->wl.width, window->wl.height); if (window->wl.visible) _glfwInputWindowDamage(window); @@ -591,7 +687,232 @@ static const struct xdg_surface_listener xdgSurfaceListener = xdgSurfaceHandleConfigure }; -static GLFWbool createShellObjects(_GLFWwindow* window) +void libdecorFrameHandleConfigure(struct libdecor_frame* frame, + struct libdecor_configuration* config, + void* userData) +{ + _GLFWwindow* window = userData; + int width, height; + + enum libdecor_window_state windowState; + GLFWbool fullscreen, activated, maximized; + + if (libdecor_configuration_get_window_state(config, &windowState)) + { + fullscreen = (windowState & LIBDECOR_WINDOW_STATE_FULLSCREEN) != 0; + activated = (windowState & LIBDECOR_WINDOW_STATE_ACTIVE) != 0; + maximized = (windowState & LIBDECOR_WINDOW_STATE_MAXIMIZED) != 0; + } + else + { + fullscreen = window->wl.fullscreen; + activated = window->wl.activated; + maximized = window->wl.maximized; + } + + if (!libdecor_configuration_get_content_size(config, frame, &width, &height)) + { + width = window->wl.width; + height = window->wl.height; + } + + if (!maximized && !fullscreen) + { + if (window->numer != GLFW_DONT_CARE && window->denom != GLFW_DONT_CARE) + { + const float aspectRatio = (float) width / (float) height; + const float targetRatio = (float) window->numer / (float) window->denom; + if (aspectRatio < targetRatio) + height = width / targetRatio; + else if (aspectRatio > targetRatio) + width = height * targetRatio; + } + } + + struct libdecor_state* frameState = libdecor_state_new(width, height); + libdecor_frame_commit(frame, frameState, config); + libdecor_state_free(frameState); + + if (window->wl.activated != activated) + { + window->wl.activated = activated; + if (!window->wl.activated) + { + if (window->monitor && window->autoIconify) + libdecor_frame_set_minimized(window->wl.libdecor.frame); + } + } + + if (window->wl.maximized != maximized) + { + window->wl.maximized = maximized; + _glfwInputWindowMaximize(window, window->wl.maximized); + } + + window->wl.fullscreen = fullscreen; + + GLFWbool damaged = GLFW_FALSE; + + if (!window->wl.visible) + { + window->wl.visible = GLFW_TRUE; + damaged = GLFW_TRUE; + } + + if (resizeWindow(window, width, height)) + { + _glfwInputWindowSize(window, window->wl.width, window->wl.height); + damaged = GLFW_TRUE; + } + + if (damaged) + _glfwInputWindowDamage(window); + else + wl_surface_commit(window->wl.surface); +} + +void libdecorFrameHandleClose(struct libdecor_frame* frame, void* userData) +{ + _GLFWwindow* window = userData; + _glfwInputWindowCloseRequest(window); +} + +void libdecorFrameHandleCommit(struct libdecor_frame* frame, void* userData) +{ + _GLFWwindow* window = userData; + wl_surface_commit(window->wl.surface); +} + +void libdecorFrameHandleDismissPopup(struct libdecor_frame* frame, + const char* seatName, + void* userData) +{ +} + +static const struct libdecor_frame_interface libdecorFrameInterface = +{ + libdecorFrameHandleConfigure, + libdecorFrameHandleClose, + libdecorFrameHandleCommit, + libdecorFrameHandleDismissPopup +}; + +static GLFWbool createLibdecorFrame(_GLFWwindow* window) +{ + // Allow libdecor to finish initialization of itself and its plugin + while (!_glfw.wl.libdecor.ready) + _glfwWaitEventsWayland(); + + window->wl.libdecor.frame = libdecor_decorate(_glfw.wl.libdecor.context, + window->wl.surface, + &libdecorFrameInterface, + window); + if (!window->wl.libdecor.frame) + { + _glfwInputError(GLFW_PLATFORM_ERROR, + "Wayland: Failed to create libdecor frame"); + return GLFW_FALSE; + } + + struct libdecor_state* frameState = + libdecor_state_new(window->wl.width, window->wl.height); + libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); + libdecor_state_free(frameState); + + if (strlen(window->wl.appId)) + libdecor_frame_set_app_id(window->wl.libdecor.frame, window->wl.appId); + + libdecor_frame_set_title(window->wl.libdecor.frame, window->title); + + if (window->minwidth != GLFW_DONT_CARE && + window->minheight != GLFW_DONT_CARE) + { + libdecor_frame_set_min_content_size(window->wl.libdecor.frame, + window->minwidth, + window->minheight); + } + + if (window->maxwidth != GLFW_DONT_CARE && + window->maxheight != GLFW_DONT_CARE) + { + libdecor_frame_set_max_content_size(window->wl.libdecor.frame, + window->maxwidth, + window->maxheight); + } + + if (!window->resizable) + { + libdecor_frame_unset_capabilities(window->wl.libdecor.frame, + LIBDECOR_ACTION_RESIZE); + } + + if (window->monitor) + { + libdecor_frame_set_fullscreen(window->wl.libdecor.frame, + window->monitor->wl.output); + setIdleInhibitor(window, GLFW_TRUE); + } + else + { + if (window->wl.maximized) + libdecor_frame_set_maximized(window->wl.libdecor.frame); + + if (!window->decorated) + libdecor_frame_set_visibility(window->wl.libdecor.frame, false); + + setIdleInhibitor(window, GLFW_FALSE); + } + + libdecor_frame_map(window->wl.libdecor.frame); + wl_display_roundtrip(_glfw.wl.display); + return GLFW_TRUE; +} + +static void updateXdgSizeLimits(_GLFWwindow* window) +{ + int minwidth, minheight, maxwidth, maxheight; + + if (window->resizable) + { + if (window->minwidth == GLFW_DONT_CARE || window->minheight == GLFW_DONT_CARE) + minwidth = minheight = 0; + else + { + minwidth = window->minwidth; + minheight = window->minheight; + + if (window->wl.fallback.decorations) + { + minwidth += GLFW_BORDER_SIZE * 2; + minheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; + } + } + + if (window->maxwidth == GLFW_DONT_CARE || window->maxheight == GLFW_DONT_CARE) + maxwidth = maxheight = 0; + else + { + maxwidth = window->maxwidth; + maxheight = window->maxheight; + + if (window->wl.fallback.decorations) + { + maxwidth += GLFW_BORDER_SIZE * 2; + maxheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; + } + } + } + else + { + minwidth = maxwidth = window->wl.width; + minheight = maxheight = window->wl.height; + } + + xdg_toplevel_set_min_size(window->wl.xdg.toplevel, minwidth, minheight); + xdg_toplevel_set_max_size(window->wl.xdg.toplevel, maxwidth, maxheight); +} + +static GLFWbool createXdgShellObjects(_GLFWwindow* window) { window->wl.xdg.surface = xdg_wm_base_get_xdg_surface(_glfw.wl.wmBase, window->wl.surface); @@ -617,8 +938,7 @@ static GLFWbool createShellObjects(_GLFWwindow* window) if (window->wl.appId) xdg_toplevel_set_app_id(window->wl.xdg.toplevel, window->wl.appId); - if (window->wl.title) - xdg_toplevel_set_title(window->wl.xdg.toplevel, window->wl.title); + xdg_toplevel_set_title(window->wl.xdg.toplevel, window->title); if (window->monitor) { @@ -631,70 +951,57 @@ static GLFWbool createShellObjects(_GLFWwindow* window) xdg_toplevel_set_maximized(window->wl.xdg.toplevel); setIdleInhibitor(window, GLFW_FALSE); + } - if (_glfw.wl.decorationManager) - { - window->wl.xdg.decoration = - zxdg_decoration_manager_v1_get_toplevel_decoration( - _glfw.wl.decorationManager, window->wl.xdg.toplevel); - zxdg_toplevel_decoration_v1_add_listener(window->wl.xdg.decoration, - &xdgDecorationListener, - window); + if (_glfw.wl.decorationManager) + { + window->wl.xdg.decoration = + zxdg_decoration_manager_v1_get_toplevel_decoration( + _glfw.wl.decorationManager, window->wl.xdg.toplevel); + zxdg_toplevel_decoration_v1_add_listener(window->wl.xdg.decoration, + &xdgDecorationListener, + window); - uint32_t mode; + uint32_t mode; - if (window->decorated) - mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; - else - mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; - - zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode); - } + if (window->decorated) + mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; else - { - if (window->decorated) - createFallbackDecorations(window); - } - } + mode = ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; - if (window->minwidth != GLFW_DONT_CARE && window->minheight != GLFW_DONT_CARE) + zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode); + } + else { - int minwidth = window->minwidth; - int minheight = window->minheight; - - if (window->wl.decorations.top.surface) - { - minwidth += GLFW_BORDER_SIZE * 2; - minheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; - } - - xdg_toplevel_set_min_size(window->wl.xdg.toplevel, minwidth, minheight); + if (window->decorated && !window->monitor) + createFallbackDecorations(window); } - if (window->maxwidth != GLFW_DONT_CARE && window->maxheight != GLFW_DONT_CARE) - { - int maxwidth = window->maxwidth; - int maxheight = window->maxheight; - - if (window->wl.decorations.top.surface) - { - maxwidth += GLFW_BORDER_SIZE * 2; - maxheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; - } - - xdg_toplevel_set_max_size(window->wl.xdg.toplevel, maxwidth, maxheight); - } + updateXdgSizeLimits(window); wl_surface_commit(window->wl.surface); wl_display_roundtrip(_glfw.wl.display); - return GLFW_TRUE; } +static GLFWbool createShellObjects(_GLFWwindow* window) +{ + if (_glfw.wl.libdecor.context) + { + if (createLibdecorFrame(window)) + return GLFW_TRUE; + } + + return createXdgShellObjects(window); +} + static void destroyShellObjects(_GLFWwindow* window) { destroyFallbackDecorations(window); + if (window->wl.libdecor.frame) + libdecor_frame_unref(window->wl.libdecor.frame); + if (window->wl.xdg.decoration) zxdg_toplevel_decoration_v1_destroy(window->wl.xdg.decoration); @@ -704,6 +1011,7 @@ static void destroyShellObjects(_GLFWwindow* window) if (window->wl.xdg.surface) xdg_surface_destroy(window->wl.xdg.surface); + window->wl.libdecor.frame = NULL; window->wl.xdg.decoration = NULL; window->wl.xdg.decorationMode = 0; window->wl.xdg.toplevel = NULL; @@ -721,24 +1029,49 @@ static GLFWbool createNativeSurface(_GLFWwindow* window, return GLFW_FALSE; } + wl_proxy_set_tag((struct wl_proxy*) window->wl.surface, &_glfw.wl.tag); wl_surface_add_listener(window->wl.surface, &surfaceListener, window); - wl_surface_set_user_data(window->wl.surface, window); - window->wl.width = wndconfig->width; window->wl.height = wndconfig->height; - window->wl.scale = 1; - window->wl.title = _glfw_strdup(wndconfig->title); + window->wl.fbWidth = wndconfig->width; + window->wl.fbHeight = wndconfig->height; window->wl.appId = _glfw_strdup(wndconfig->wl.appId); + window->wl.bufferScale = 1; + window->wl.scalingNumerator = 120; + window->wl.scaleFramebuffer = wndconfig->scaleFramebuffer; + window->wl.maximized = wndconfig->maximized; window->wl.transparent = fbconfig->transparent; if (!window->wl.transparent) setContentAreaOpaque(window); + if (_glfw.wl.fractionalScaleManager) + { + if (window->wl.scaleFramebuffer) + { + window->wl.scalingViewport = + wp_viewporter_get_viewport(_glfw.wl.viewporter, window->wl.surface); + + wp_viewport_set_destination(window->wl.scalingViewport, + window->wl.width, + window->wl.height); + + window->wl.fractionalScale = + wp_fractional_scale_manager_v1_get_fractional_scale( + _glfw.wl.fractionalScaleManager, + window->wl.surface); + + wp_fractional_scale_v1_add_listener(window->wl.fractionalScale, + &fractionalScaleListener, + window); + } + } + return GLFW_TRUE; } @@ -756,7 +1089,7 @@ static void setCursorImage(_GLFWwindow* window, buffer = cursorWayland->buffer; else { - if (window->wl.scale > 1 && cursorWayland->cursorHiDPI) + if (window->wl.bufferScale > 1 && cursorWayland->cursorHiDPI) { wlCursor = cursorWayland->cursorHiDPI; scale = 2; @@ -792,7 +1125,7 @@ static void incrementCursorImage(_GLFWwindow* window) { _GLFWcursor* cursor; - if (!window || window->wl.decorations.focus != mainWindow) + if (!window || !window->wl.hovered) return; cursor = window->wl.currentCursor; @@ -871,18 +1204,31 @@ static void inputText(_GLFWwindow* window, uint32_t scancode) static void handleEvents(double* timeout) { +#if defined(GLFW_BUILD_LINUX_JOYSTICK) + if (_glfw.joysticksInitialized) + _glfwDetectJoystickConnectionLinux(); +#endif + GLFWbool event = GLFW_FALSE; + enum { DISPLAY_FD, KEYREPEAT_FD, CURSOR_FD, LIBDECOR_FD }; struct pollfd fds[] = { - { wl_display_get_fd(_glfw.wl.display), POLLIN }, - { _glfw.wl.keyRepeatTimerfd, POLLIN }, - { _glfw.wl.cursorTimerfd, POLLIN }, + [DISPLAY_FD] = { wl_display_get_fd(_glfw.wl.display), POLLIN }, + [KEYREPEAT_FD] = { _glfw.wl.keyRepeatTimerfd, POLLIN }, + [CURSOR_FD] = { _glfw.wl.cursorTimerfd, POLLIN }, + [LIBDECOR_FD] = { -1, POLLIN } }; + if (_glfw.wl.libdecor.context) + fds[LIBDECOR_FD].fd = libdecor_get_fd(_glfw.wl.libdecor.context); + while (!event) { while (wl_display_prepare_read(_glfw.wl.display) != 0) - wl_display_dispatch_pending(_glfw.wl.display); + { + if (wl_display_dispatch_pending(_glfw.wl.display) > 0) + return; + } // If an error other than EAGAIN happens, we have likely been disconnected // from the Wayland session; try to handle that the best we can. @@ -900,13 +1246,13 @@ static void handleEvents(double* timeout) return; } - if (!_glfwPollPOSIX(fds, 3, timeout)) + if (!_glfwPollPOSIX(fds, sizeof(fds) / sizeof(fds[0]), timeout)) { wl_display_cancel_read(_glfw.wl.display); return; } - if (fds[0].revents & POLLIN) + if (fds[DISPLAY_FD].revents & POLLIN) { wl_display_read_events(_glfw.wl.display); if (wl_display_dispatch_pending(_glfw.wl.display) > 0) @@ -915,7 +1261,7 @@ static void handleEvents(double* timeout) else wl_display_cancel_read(_glfw.wl.display); - if (fds[1].revents & POLLIN) + if (fds[KEYREPEAT_FD].revents & POLLIN) { uint64_t repeats; @@ -935,15 +1281,18 @@ static void handleEvents(double* timeout) } } - if (fds[2].revents & POLLIN) + if (fds[CURSOR_FD].revents & POLLIN) { uint64_t repeats; if (read(_glfw.wl.cursorTimerfd, &repeats, sizeof(repeats)) == 8) - { incrementCursorImage(_glfw.wl.pointerFocus); + } + + if (fds[LIBDECOR_FD].revents & POLLIN) + { + if (libdecor_dispatch(_glfw.wl.libdecor.context, 0) > 0) event = GLFW_TRUE; - } } } } @@ -1012,40 +1361,6 @@ static char* readDataOfferAsString(struct wl_data_offer* offer, const char* mime return string; } -static _GLFWwindow* findWindowFromDecorationSurface(struct wl_surface* surface, - _GLFWdecorationSideWayland* which) -{ - _GLFWdecorationSideWayland focus; - _GLFWwindow* window = _glfw.windowListHead; - if (!which) - which = &focus; - while (window) - { - if (surface == window->wl.decorations.top.surface) - { - *which = topDecoration; - break; - } - if (surface == window->wl.decorations.left.surface) - { - *which = leftDecoration; - break; - } - if (surface == window->wl.decorations.right.surface) - { - *which = rightDecoration; - break; - } - if (surface == window->wl.decorations.bottom.surface) - { - *which = bottomDecoration; - break; - } - window = window->next; - } - return window; -} - static void pointerHandleEnter(void* userData, struct wl_pointer* pointer, uint32_t serial, @@ -1057,24 +1372,26 @@ static void pointerHandleEnter(void* userData, if (!surface) return; - _GLFWdecorationSideWayland focus = mainWindow; - _GLFWwindow* window = wl_surface_get_user_data(surface); - if (!window) - { - window = findWindowFromDecorationSurface(surface, &focus); - if (!window) - return; - } + if (wl_proxy_get_tag((struct wl_proxy*) surface) != &_glfw.wl.tag) + return; + + _GLFWwindow* window = wl_surface_get_user_data(surface); - window->wl.decorations.focus = focus; _glfw.wl.serial = serial; _glfw.wl.pointerEnterSerial = serial; _glfw.wl.pointerFocus = window; - window->wl.hovered = GLFW_TRUE; - - _glfwSetCursorWayland(window, window->wl.currentCursor); - _glfwInputCursorEnter(window, GLFW_TRUE); + if (surface == window->wl.surface) + { + window->wl.hovered = GLFW_TRUE; + _glfwSetCursorWayland(window, window->wl.currentCursor); + _glfwInputCursorEnter(window, GLFW_TRUE); + } + else + { + if (window->wl.fallback.decorations) + window->wl.fallback.focus = surface; + } } static void pointerHandleLeave(void* userData, @@ -1082,62 +1399,30 @@ static void pointerHandleLeave(void* userData, uint32_t serial, struct wl_surface* surface) { - _GLFWwindow* window = _glfw.wl.pointerFocus; - - if (!window) + if (!surface) return; - window->wl.hovered = GLFW_FALSE; + if (wl_proxy_get_tag((struct wl_proxy*) surface) != &_glfw.wl.tag) + return; + + _GLFWwindow* window = _glfw.wl.pointerFocus; + if (!window) + return; _glfw.wl.serial = serial; _glfw.wl.pointerFocus = NULL; _glfw.wl.cursorPreviousName = NULL; - _glfwInputCursorEnter(window, GLFW_FALSE); -} -static void setCursor(_GLFWwindow* window, const char* name) -{ - struct wl_buffer* buffer; - struct wl_cursor* cursor; - struct wl_cursor_image* image; - struct wl_surface* surface = _glfw.wl.cursorSurface; - struct wl_cursor_theme* theme = _glfw.wl.cursorTheme; - int scale = 1; - - if (window->wl.scale > 1 && _glfw.wl.cursorThemeHiDPI) + if (window->wl.hovered) { - // We only support up to scale=2 for now, since libwayland-cursor - // requires us to load a different theme for each size. - scale = 2; - theme = _glfw.wl.cursorThemeHiDPI; + window->wl.hovered = GLFW_FALSE; + _glfwInputCursorEnter(window, GLFW_FALSE); } - - cursor = wl_cursor_theme_get_cursor(theme, name); - if (!cursor) + else { - _glfwInputError(GLFW_CURSOR_UNAVAILABLE, - "Wayland: Standard cursor shape unavailable"); - return; + if (window->wl.fallback.decorations) + window->wl.fallback.focus = NULL; } - // TODO: handle animated cursors too. - image = cursor->images[0]; - - if (!image) - return; - - buffer = wl_cursor_image_get_buffer(image); - if (!buffer) - return; - wl_pointer_set_cursor(_glfw.wl.pointer, _glfw.wl.pointerEnterSerial, - surface, - image->hotspot_x / scale, - image->hotspot_y / scale); - wl_surface_set_buffer_scale(surface, scale); - wl_surface_attach(surface, buffer, 0, 0); - wl_surface_damage(surface, 0, 0, - image->width, image->height); - wl_surface_commit(surface); - _glfw.wl.cursorPreviousName = name; } static void pointerHandleMotion(void* userData, @@ -1147,56 +1432,99 @@ static void pointerHandleMotion(void* userData, wl_fixed_t sy) { _GLFWwindow* window = _glfw.wl.pointerFocus; - const char* cursorName = NULL; - double x, y; - if (!window) return; if (window->cursorMode == GLFW_CURSOR_DISABLED) return; - x = wl_fixed_to_double(sx); - y = wl_fixed_to_double(sy); - window->wl.cursorPosX = x; - window->wl.cursorPosY = y; - switch (window->wl.decorations.focus) + const double xpos = wl_fixed_to_double(sx); + const double ypos = wl_fixed_to_double(sy); + window->wl.cursorPosX = xpos; + window->wl.cursorPosY = ypos; + + if (window->wl.hovered) { - case mainWindow: - _glfw.wl.cursorPreviousName = NULL; - _glfwInputCursorPos(window, x, y); - return; - case topDecoration: - if (y < GLFW_BORDER_SIZE) - cursorName = "n-resize"; - else - cursorName = "left_ptr"; - break; - case leftDecoration: - if (y < GLFW_BORDER_SIZE) - cursorName = "nw-resize"; - else - cursorName = "w-resize"; - break; - case rightDecoration: - if (y < GLFW_BORDER_SIZE) - cursorName = "ne-resize"; - else - cursorName = "e-resize"; - break; - case bottomDecoration: - if (x < GLFW_BORDER_SIZE) - cursorName = "sw-resize"; - else if (x > window->wl.width + GLFW_BORDER_SIZE) - cursorName = "se-resize"; - else - cursorName = "s-resize"; - break; - default: - assert(0); + _glfw.wl.cursorPreviousName = NULL; + _glfwInputCursorPos(window, xpos, ypos); + return; + } + + if (window->wl.fallback.decorations) + { + const char* cursorName = "left_ptr"; + + if (window->resizable) + { + if (window->wl.fallback.focus == window->wl.fallback.top.surface) + { + if (ypos < GLFW_BORDER_SIZE) + cursorName = "n-resize"; + } + else if (window->wl.fallback.focus == window->wl.fallback.left.surface) + { + if (ypos < GLFW_BORDER_SIZE) + cursorName = "nw-resize"; + else + cursorName = "w-resize"; + } + else if (window->wl.fallback.focus == window->wl.fallback.right.surface) + { + if (ypos < GLFW_BORDER_SIZE) + cursorName = "ne-resize"; + else + cursorName = "e-resize"; + } + else if (window->wl.fallback.focus == window->wl.fallback.bottom.surface) + { + if (xpos < GLFW_BORDER_SIZE) + cursorName = "sw-resize"; + else if (xpos > window->wl.width + GLFW_BORDER_SIZE) + cursorName = "se-resize"; + else + cursorName = "s-resize"; + } + } + + if (_glfw.wl.cursorPreviousName != cursorName) + { + struct wl_surface* surface = _glfw.wl.cursorSurface; + struct wl_cursor_theme* theme = _glfw.wl.cursorTheme; + int scale = 1; + + if (window->wl.bufferScale > 1 && _glfw.wl.cursorThemeHiDPI) + { + // We only support up to scale=2 for now, since libwayland-cursor + // requires us to load a different theme for each size. + scale = 2; + theme = _glfw.wl.cursorThemeHiDPI; + } + + struct wl_cursor* cursor = wl_cursor_theme_get_cursor(theme, cursorName); + if (!cursor) + return; + + // TODO: handle animated cursors too. + struct wl_cursor_image* image = cursor->images[0]; + if (!image) + return; + + struct wl_buffer* buffer = wl_cursor_image_get_buffer(image); + if (!buffer) + return; + + wl_pointer_set_cursor(_glfw.wl.pointer, _glfw.wl.pointerEnterSerial, + surface, + image->hotspot_x / scale, + image->hotspot_y / scale); + wl_surface_set_buffer_scale(surface, scale); + wl_surface_attach(surface, buffer, 0, 0); + wl_surface_damage(surface, 0, 0, image->width, image->height); + wl_surface_commit(surface); + + _glfw.wl.cursorPreviousName = cursorName; + } } - if (_glfw.wl.cursorPreviousName != cursorName) - setCursor(window, cursorName); } static void pointerHandleButton(void* userData, @@ -1207,81 +1535,74 @@ static void pointerHandleButton(void* userData, uint32_t state) { _GLFWwindow* window = _glfw.wl.pointerFocus; - int glfwButton; - uint32_t edges = XDG_TOPLEVEL_RESIZE_EDGE_NONE; - if (!window) return; - if (button == BTN_LEFT) + + if (window->wl.hovered) { - switch (window->wl.decorations.focus) + _glfw.wl.serial = serial; + + _glfwInputMouseClick(window, + button - BTN_LEFT, + state == WL_POINTER_BUTTON_STATE_PRESSED, + _glfw.wl.xkb.modifiers); + return; + } + + if (window->wl.fallback.decorations) + { + if (button == BTN_LEFT) { - case mainWindow: - break; - case topDecoration: + uint32_t edges = XDG_TOPLEVEL_RESIZE_EDGE_NONE; + + if (window->wl.fallback.focus == window->wl.fallback.top.surface) + { if (window->wl.cursorPosY < GLFW_BORDER_SIZE) edges = XDG_TOPLEVEL_RESIZE_EDGE_TOP; else xdg_toplevel_move(window->wl.xdg.toplevel, _glfw.wl.seat, serial); - break; - case leftDecoration: + } + else if (window->wl.fallback.focus == window->wl.fallback.left.surface) + { if (window->wl.cursorPosY < GLFW_BORDER_SIZE) edges = XDG_TOPLEVEL_RESIZE_EDGE_TOP_LEFT; else edges = XDG_TOPLEVEL_RESIZE_EDGE_LEFT; - break; - case rightDecoration: + } + else if (window->wl.fallback.focus == window->wl.fallback.right.surface) + { if (window->wl.cursorPosY < GLFW_BORDER_SIZE) edges = XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT; else edges = XDG_TOPLEVEL_RESIZE_EDGE_RIGHT; - break; - case bottomDecoration: + } + else if (window->wl.fallback.focus == window->wl.fallback.bottom.surface) + { if (window->wl.cursorPosX < GLFW_BORDER_SIZE) edges = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_LEFT; else if (window->wl.cursorPosX > window->wl.width + GLFW_BORDER_SIZE) edges = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT; else edges = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM; - break; - default: - assert(0); + } + + if (edges != XDG_TOPLEVEL_RESIZE_EDGE_NONE) + { + xdg_toplevel_resize(window->wl.xdg.toplevel, _glfw.wl.seat, + serial, edges); + } } - if (edges != XDG_TOPLEVEL_RESIZE_EDGE_NONE) + else if (button == BTN_RIGHT) { - xdg_toplevel_resize(window->wl.xdg.toplevel, _glfw.wl.seat, - serial, edges); - return; + if (window->wl.xdg.toplevel) + { + xdg_toplevel_show_window_menu(window->wl.xdg.toplevel, + _glfw.wl.seat, serial, + window->wl.cursorPosX, + window->wl.cursorPosY); + } } } - else if (button == BTN_RIGHT) - { - if (window->wl.decorations.focus != mainWindow && window->wl.xdg.toplevel) - { - xdg_toplevel_show_window_menu(window->wl.xdg.toplevel, - _glfw.wl.seat, serial, - window->wl.cursorPosX, - window->wl.cursorPosY); - return; - } - } - - // Don’t pass the button to the user if it was related to a decoration. - if (window->wl.decorations.focus != mainWindow) - return; - - _glfw.wl.serial = serial; - - /* Makes left, right and middle 0, 1 and 2. Overall order follows evdev - * codes. */ - glfwButton = button - BTN_LEFT; - - _glfwInputMouseClick(window, - glfwButton, - state == WL_POINTER_BUTTON_STATE_PRESSED - ? GLFW_PRESS - : GLFW_RELEASE, - _glfw.wl.xkb.modifiers); } static void pointerHandleAxis(void* userData, @@ -1291,24 +1612,14 @@ static void pointerHandleAxis(void* userData, wl_fixed_t value) { _GLFWwindow* window = _glfw.wl.pointerFocus; - double x = 0.0, y = 0.0; - // Wayland scroll events are in pointer motion coordinate space (think two - // finger scroll). The factor 10 is commonly used to convert to "scroll - // step means 1.0. - const double scrollFactor = 1.0 / 10.0; - if (!window) return; - assert(axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL || - axis == WL_POINTER_AXIS_VERTICAL_SCROLL); - + // NOTE: 10 units of motion per mouse wheel step seems to be a common ratio if (axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL) - x = -wl_fixed_to_double(value) * scrollFactor; + _glfwInputScroll(window, -wl_fixed_to_double(value) / 10.0, 0.0); else if (axis == WL_POINTER_AXIS_VERTICAL_SCROLL) - y = -wl_fixed_to_double(value) * scrollFactor; - - _glfwInputScroll(window, x, y); + _glfwInputScroll(window, 0.0, -wl_fixed_to_double(value) / 10.0); } static const struct wl_pointer_listener pointerListener = @@ -1421,13 +1732,12 @@ static void keyboardHandleEnter(void* userData, if (!surface) return; + if (wl_proxy_get_tag((struct wl_proxy*) surface) != &_glfw.wl.tag) + return; + _GLFWwindow* window = wl_surface_get_user_data(surface); - if (!window) - { - window = findWindowFromDecorationSurface(surface, NULL); - if (!window) - return; - } + if (surface != window->wl.surface) + return; _glfw.wl.serial = serial; _glfw.wl.keyboardFocus = window; @@ -1545,7 +1855,6 @@ static void keyboardHandleModifiers(void* userData, } } -#ifdef WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION static void keyboardHandleRepeatInfo(void* userData, struct wl_keyboard* keyboard, int32_t rate, @@ -1557,7 +1866,6 @@ static void keyboardHandleRepeatInfo(void* userData, _glfw.wl.keyRepeatRate = rate; _glfw.wl.keyRepeatDelay = delay; } -#endif static const struct wl_keyboard_listener keyboardListener = { @@ -1566,9 +1874,7 @@ static const struct wl_keyboard_listener keyboardListener = keyboardHandleLeave, keyboardHandleKey, keyboardHandleModifiers, -#ifdef WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION keyboardHandleRepeatInfo, -#endif }; static void seatHandleCapabilities(void* userData, @@ -1638,7 +1944,8 @@ static void dataDeviceHandleDataOffer(void* userData, struct wl_data_offer* offer) { _GLFWofferWayland* offers = - _glfw_realloc(_glfw.wl.offers, _glfw.wl.offerCount + 1); + _glfw_realloc(_glfw.wl.offers, + sizeof(_GLFWofferWayland) * (_glfw.wl.offerCount + 1)); if (!offers) { _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); @@ -1674,9 +1981,12 @@ static void dataDeviceHandleEnter(void* userData, _GLFWwindow* window = NULL; if (surface) - window = wl_surface_get_user_data(surface); + { + if (wl_proxy_get_tag((struct wl_proxy*) surface) == &_glfw.wl.tag) + window = wl_surface_get_user_data(surface); + } - if (window && _glfw.wl.offers[i].text_uri_list) + if (surface == window->wl.surface && _glfw.wl.offers[i].text_uri_list) { _glfw.wl.dragOffer = offer; _glfw.wl.dragFocus = window; @@ -1689,6 +1999,9 @@ static void dataDeviceHandleEnter(void* userData, } } + if (wl_proxy_get_tag((struct wl_proxy*) surface) != &_glfw.wl.tag) + return; + if (_glfw.wl.dragOffer) wl_data_offer_accept(offer, serial, "text/uri-list"); else @@ -1776,6 +2089,25 @@ const struct wl_data_device_listener dataDeviceListener = dataDeviceHandleSelection, }; +static void xdgActivationHandleDone(void* userData, + struct xdg_activation_token_v1* activationToken, + const char* token) +{ + _GLFWwindow* window = userData; + + if (activationToken != window->wl.activationToken) + return; + + xdg_activation_v1_activate(_glfw.wl.activationManager, token, window->wl.surface); + xdg_activation_token_v1_destroy(window->wl.activationToken); + window->wl.activationToken = NULL; +} + +static const struct xdg_activation_token_v1_listener xdgActivationListener = +{ + xdgActivationHandleDone +}; + void _glfwAddSeatListenerWayland(struct wl_seat* seat) { wl_seat_add_listener(seat, &seatListener, NULL); @@ -1805,8 +2137,8 @@ GLFWbool _glfwCreateWindowWayland(_GLFWwindow* window, ctxconfig->source == GLFW_NATIVE_CONTEXT_API) { window->wl.egl.window = wl_egl_window_create(window->wl.surface, - wndconfig->width, - wndconfig->height); + window->wl.fbWidth, + window->wl.fbHeight); if (!window->wl.egl.window) { _glfwInputError(GLFW_PLATFORM_ERROR, @@ -1851,6 +2183,9 @@ void _glfwDestroyWindowWayland(_GLFWwindow* window) if (window == _glfw.wl.keyboardFocus) _glfw.wl.keyboardFocus = NULL; + if (window->wl.activationToken) + xdg_activation_token_v1_destroy(window->wl.activationToken); + if (window->wl.idleInhibitor) zwp_idle_inhibitor_v1_destroy(window->wl.idleInhibitor); @@ -1868,8 +2203,8 @@ void _glfwDestroyWindowWayland(_GLFWwindow* window) destroyShellObjects(window); - if (window->wl.decorations.buffer) - wl_buffer_destroy(window->wl.decorations.buffer); + if (window->wl.fallback.buffer) + wl_buffer_destroy(window->wl.fallback.buffer); if (window->wl.egl.window) wl_egl_window_destroy(window->wl.egl.window); @@ -1877,18 +2212,15 @@ void _glfwDestroyWindowWayland(_GLFWwindow* window) if (window->wl.surface) wl_surface_destroy(window->wl.surface); - _glfw_free(window->wl.title); _glfw_free(window->wl.appId); - _glfw_free(window->wl.monitors); + _glfw_free(window->wl.outputScales); } void _glfwSetWindowTitleWayland(_GLFWwindow* window, const char* title) { - char* copy = _glfw_strdup(title); - _glfw_free(window->wl.title); - window->wl.title = copy; - - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + libdecor_frame_set_title(window->wl.libdecor.frame, title); + else if (window->wl.xdg.toplevel) xdg_toplevel_set_title(window->wl.xdg.toplevel, title); } @@ -1932,9 +2264,19 @@ void _glfwSetWindowSizeWayland(_GLFWwindow* window, int width, int height) } else { - window->wl.width = width; - window->wl.height = height; - resizeWindow(window); + if (!resizeWindow(window, width, height)) + return; + + if (window->wl.libdecor.frame) + { + struct libdecor_state* frameState = + libdecor_state_new(window->wl.width, window->wl.height); + libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); + libdecor_state_free(frameState); + } + + if (window->wl.visible) + _glfwInputWindowDamage(window); } } @@ -1942,34 +2284,21 @@ void _glfwSetWindowSizeLimitsWayland(_GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) { if (minwidth == GLFW_DONT_CARE || minheight == GLFW_DONT_CARE) minwidth = minheight = 0; - else - { - if (window->wl.decorations.top.surface) - { - minwidth += GLFW_BORDER_SIZE * 2; - minheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; - } - } if (maxwidth == GLFW_DONT_CARE || maxheight == GLFW_DONT_CARE) maxwidth = maxheight = 0; - else - { - if (window->wl.decorations.top.surface) - { - maxwidth += GLFW_BORDER_SIZE * 2; - maxheight += GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE; - } - } - xdg_toplevel_set_min_size(window->wl.xdg.toplevel, minwidth, minheight); - xdg_toplevel_set_max_size(window->wl.xdg.toplevel, maxwidth, maxheight); - wl_surface_commit(window->wl.surface); + libdecor_frame_set_min_content_size(window->wl.libdecor.frame, + minwidth, minheight); + libdecor_frame_set_max_content_size(window->wl.libdecor.frame, + maxwidth, maxheight); } + else if (window->wl.xdg.toplevel) + updateXdgSizeLimits(window); } void _glfwSetWindowAspectRatioWayland(_GLFWwindow* window, int numer, int denom) @@ -1977,33 +2306,48 @@ void _glfwSetWindowAspectRatioWayland(_GLFWwindow* window, int numer, int denom) if (window->wl.maximized || window->wl.fullscreen) return; + int width = window->wl.width, height = window->wl.height; + if (numer != GLFW_DONT_CARE && denom != GLFW_DONT_CARE) { - const float aspectRatio = (float) window->wl.width / (float) window->wl.height; + const float aspectRatio = (float) width / (float) height; const float targetRatio = (float) numer / (float) denom; if (aspectRatio < targetRatio) - window->wl.height = window->wl.width / targetRatio; + height /= targetRatio; else if (aspectRatio > targetRatio) - window->wl.width = window->wl.height * targetRatio; + width *= targetRatio; + } - resizeWindow(window); + if (resizeWindow(window, width, height)) + { + if (window->wl.libdecor.frame) + { + struct libdecor_state* frameState = + libdecor_state_new(window->wl.width, window->wl.height); + libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); + libdecor_state_free(frameState); + } + + _glfwInputWindowSize(window, window->wl.width, window->wl.height); + + if (window->wl.visible) + _glfwInputWindowDamage(window); } } void _glfwGetFramebufferSizeWayland(_GLFWwindow* window, int* width, int* height) { - _glfwGetWindowSizeWayland(window, width, height); if (width) - *width *= window->wl.scale; + *width = window->wl.fbWidth; if (height) - *height *= window->wl.scale; + *height = window->wl.fbHeight; } void _glfwGetWindowFrameSizeWayland(_GLFWwindow* window, int* left, int* top, int* right, int* bottom) { - if (window->decorated && !window->monitor && window->wl.decorations.top.surface) + if (window->wl.fallback.decorations) { if (top) *top = GLFW_CAPTION_HEIGHT; @@ -2019,15 +2363,27 @@ void _glfwGetWindowFrameSizeWayland(_GLFWwindow* window, void _glfwGetWindowContentScaleWayland(_GLFWwindow* window, float* xscale, float* yscale) { - if (xscale) - *xscale = (float) window->wl.scale; - if (yscale) - *yscale = (float) window->wl.scale; + if (window->wl.fractionalScale) + { + if (xscale) + *xscale = (float) window->wl.scalingNumerator / 120.f; + if (yscale) + *yscale = (float) window->wl.scalingNumerator / 120.f; + } + else + { + if (xscale) + *xscale = (float) window->wl.bufferScale; + if (yscale) + *yscale = (float) window->wl.bufferScale; + } } void _glfwIconifyWindowWayland(_GLFWwindow* window) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + libdecor_frame_set_minimized(window->wl.libdecor.frame); + else if (window->wl.xdg.toplevel) xdg_toplevel_set_minimized(window->wl.xdg.toplevel); } @@ -2044,7 +2400,9 @@ void _glfwRestoreWindowWayland(_GLFWwindow* window) if (window->wl.maximized) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + libdecor_frame_unset_maximized(window->wl.libdecor.frame); + else if (window->wl.xdg.toplevel) xdg_toplevel_unset_maximized(window->wl.xdg.toplevel); else window->wl.maximized = GLFW_FALSE; @@ -2054,7 +2412,9 @@ void _glfwRestoreWindowWayland(_GLFWwindow* window) void _glfwMaximizeWindowWayland(_GLFWwindow* window) { - if (window->wl.xdg.toplevel) + if (window->wl.libdecor.frame) + libdecor_frame_set_maximized(window->wl.libdecor.frame); + else if (window->wl.xdg.toplevel) xdg_toplevel_set_maximized(window->wl.xdg.toplevel); else window->wl.maximized = GLFW_TRUE; @@ -2062,7 +2422,7 @@ void _glfwMaximizeWindowWayland(_GLFWwindow* window) void _glfwShowWindowWayland(_GLFWwindow* window) { - if (!window->wl.xdg.toplevel) + if (!window->wl.libdecor.frame && !window->wl.xdg.toplevel) { // NOTE: The XDG surface and role are created here so command-line applications // with off-screen windows do not appear in for example the Unity dock @@ -2084,15 +2444,54 @@ void _glfwHideWindowWayland(_GLFWwindow* window) void _glfwRequestWindowAttentionWayland(_GLFWwindow* window) { - // TODO - _glfwInputError(GLFW_FEATURE_UNIMPLEMENTED, - "Wayland: Window attention request not implemented yet"); + if (!_glfw.wl.activationManager) + return; + + // We're about to overwrite this with a new request + if (window->wl.activationToken) + xdg_activation_token_v1_destroy(window->wl.activationToken); + + window->wl.activationToken = + xdg_activation_v1_get_activation_token(_glfw.wl.activationManager); + xdg_activation_token_v1_add_listener(window->wl.activationToken, + &xdgActivationListener, + window); + + xdg_activation_token_v1_commit(window->wl.activationToken); } void _glfwFocusWindowWayland(_GLFWwindow* window) { - _glfwInputError(GLFW_FEATURE_UNAVAILABLE, - "Wayland: The platform does not support setting the input focus"); + if (!_glfw.wl.activationManager) + return; + + if (window->wl.activationToken) + xdg_activation_token_v1_destroy(window->wl.activationToken); + + window->wl.activationToken = + xdg_activation_v1_get_activation_token(_glfw.wl.activationManager); + xdg_activation_token_v1_add_listener(window->wl.activationToken, + &xdgActivationListener, + window); + + xdg_activation_token_v1_set_serial(window->wl.activationToken, + _glfw.wl.serial, + _glfw.wl.seat); + + _GLFWwindow* requester = _glfw.wl.keyboardFocus; + if (requester) + { + xdg_activation_token_v1_set_surface(window->wl.activationToken, + requester->wl.surface); + + if (requester->wl.appId) + { + xdg_activation_token_v1_set_app_id(window->wl.activationToken, + requester->wl.appId); + } + } + + xdg_activation_token_v1_commit(window->wl.activationToken); } void _glfwSetWindowMonitorWayland(_GLFWwindow* window, @@ -2154,14 +2553,30 @@ GLFWbool _glfwFramebufferTransparentWayland(_GLFWwindow* window) void _glfwSetWindowResizableWayland(_GLFWwindow* window, GLFWbool enabled) { - // TODO - _glfwInputError(GLFW_FEATURE_UNIMPLEMENTED, - "Wayland: Window attribute setting not implemented yet"); + if (window->wl.libdecor.frame) + { + if (enabled) + { + libdecor_frame_set_capabilities(window->wl.libdecor.frame, + LIBDECOR_ACTION_RESIZE); + } + else + { + libdecor_frame_unset_capabilities(window->wl.libdecor.frame, + LIBDECOR_ACTION_RESIZE); + } + } + else if (window->wl.xdg.toplevel) + updateXdgSizeLimits(window); } void _glfwSetWindowDecoratedWayland(_GLFWwindow* window, GLFWbool enabled) { - if (window->wl.xdg.decoration) + if (window->wl.libdecor.frame) + { + libdecor_frame_set_visibility(window->wl.libdecor.frame, enabled); + } + else if (window->wl.xdg.decoration) { uint32_t mode; @@ -2172,7 +2587,7 @@ void _glfwSetWindowDecoratedWayland(_GLFWwindow* window, GLFWbool enabled) zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode); } - else + else if (window->wl.xdg.toplevel) { if (enabled) createFallbackDecorations(window); @@ -2196,7 +2611,7 @@ void _glfwSetWindowMousePassthroughWayland(_GLFWwindow* window, GLFWbool enabled wl_region_destroy(region); } else - wl_surface_set_input_region(window->wl.surface, 0); + wl_surface_set_input_region(window->wl.surface, NULL); } float _glfwGetWindowOpacityWayland(_GLFWwindow* window) @@ -2263,8 +2678,7 @@ void _glfwSetCursorModeWayland(_GLFWwindow* window, int mode) const char* _glfwGetScancodeNameWayland(int scancode) { - if (scancode < 0 || scancode > 255 || - _glfw.wl.keycodes[scancode] == GLFW_KEY_UNKNOWN) + if (scancode < 0 || scancode > 255) { _glfwInputError(GLFW_INVALID_VALUE, "Wayland: Invalid scancode %i", @@ -2273,6 +2687,9 @@ const char* _glfwGetScancodeNameWayland(int scancode) } const int key = _glfw.wl.keycodes[scancode]; + if (key == GLFW_KEY_UNKNOWN) + return NULL; + const xkb_keycode_t keycode = scancode + 8; const xkb_layout_index_t layout = xkb_state_key_get_layout(_glfw.wl.xkb.state, keycode); @@ -2582,7 +2999,7 @@ void _glfwSetCursorWayland(_GLFWwindow* window, _GLFWcursor* cursor) // If we're not in the correct window just save the cursor // the next time the pointer enters the window the cursor will change - if (window != _glfw.wl.pointerFocus || window->wl.decorations.focus != mainWindow) + if (!window->wl.hovered) return; // Update pointer lock to match cursor mode @@ -2887,3 +3304,5 @@ GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* handle) return window->wl.surface; } +#endif // _GLFW_WAYLAND + diff --git a/src/external/glfw/src/x11_init.c b/src/external/glfw/src/x11_init.c index 11aeb9e52..e992f444e 100644 --- a/src/external/glfw/src/x11_init.c +++ b/src/external/glfw/src/x11_init.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_X11) + #include #include #include @@ -1166,86 +1166,86 @@ GLFWbool _glfwConnectX11(int platformID, _GLFWplatform* platform) { const _GLFWplatform x11 = { - GLFW_PLATFORM_X11, - _glfwInitX11, - _glfwTerminateX11, - _glfwGetCursorPosX11, - _glfwSetCursorPosX11, - _glfwSetCursorModeX11, - _glfwSetRawMouseMotionX11, - _glfwRawMouseMotionSupportedX11, - _glfwCreateCursorX11, - _glfwCreateStandardCursorX11, - _glfwDestroyCursorX11, - _glfwSetCursorX11, - _glfwGetScancodeNameX11, - _glfwGetKeyScancodeX11, - _glfwSetClipboardStringX11, - _glfwGetClipboardStringX11, -#if defined(__linux__) - _glfwInitJoysticksLinux, - _glfwTerminateJoysticksLinux, - _glfwPollJoystickLinux, - _glfwGetMappingNameLinux, - _glfwUpdateGamepadGUIDLinux, + .platformID = GLFW_PLATFORM_X11, + .init = _glfwInitX11, + .terminate = _glfwTerminateX11, + .getCursorPos = _glfwGetCursorPosX11, + .setCursorPos = _glfwSetCursorPosX11, + .setCursorMode = _glfwSetCursorModeX11, + .setRawMouseMotion = _glfwSetRawMouseMotionX11, + .rawMouseMotionSupported = _glfwRawMouseMotionSupportedX11, + .createCursor = _glfwCreateCursorX11, + .createStandardCursor = _glfwCreateStandardCursorX11, + .destroyCursor = _glfwDestroyCursorX11, + .setCursor = _glfwSetCursorX11, + .getScancodeName = _glfwGetScancodeNameX11, + .getKeyScancode = _glfwGetKeyScancodeX11, + .setClipboardString = _glfwSetClipboardStringX11, + .getClipboardString = _glfwGetClipboardStringX11, +#if defined(GLFW_BUILD_LINUX_JOYSTICK) + .initJoysticks = _glfwInitJoysticksLinux, + .terminateJoysticks = _glfwTerminateJoysticksLinux, + .pollJoystick = _glfwPollJoystickLinux, + .getMappingName = _glfwGetMappingNameLinux, + .updateGamepadGUID = _glfwUpdateGamepadGUIDLinux, #else - _glfwInitJoysticksNull, - _glfwTerminateJoysticksNull, - _glfwPollJoystickNull, - _glfwGetMappingNameNull, - _glfwUpdateGamepadGUIDNull, + .initJoysticks = _glfwInitJoysticksNull, + .terminateJoysticks = _glfwTerminateJoysticksNull, + .pollJoystick = _glfwPollJoystickNull, + .getMappingName = _glfwGetMappingNameNull, + .updateGamepadGUID = _glfwUpdateGamepadGUIDNull, #endif - _glfwFreeMonitorX11, - _glfwGetMonitorPosX11, - _glfwGetMonitorContentScaleX11, - _glfwGetMonitorWorkareaX11, - _glfwGetVideoModesX11, - _glfwGetVideoModeX11, - _glfwGetGammaRampX11, - _glfwSetGammaRampX11, - _glfwCreateWindowX11, - _glfwDestroyWindowX11, - _glfwSetWindowTitleX11, - _glfwSetWindowIconX11, - _glfwGetWindowPosX11, - _glfwSetWindowPosX11, - _glfwGetWindowSizeX11, - _glfwSetWindowSizeX11, - _glfwSetWindowSizeLimitsX11, - _glfwSetWindowAspectRatioX11, - _glfwGetFramebufferSizeX11, - _glfwGetWindowFrameSizeX11, - _glfwGetWindowContentScaleX11, - _glfwIconifyWindowX11, - _glfwRestoreWindowX11, - _glfwMaximizeWindowX11, - _glfwShowWindowX11, - _glfwHideWindowX11, - _glfwRequestWindowAttentionX11, - _glfwFocusWindowX11, - _glfwSetWindowMonitorX11, - _glfwWindowFocusedX11, - _glfwWindowIconifiedX11, - _glfwWindowVisibleX11, - _glfwWindowMaximizedX11, - _glfwWindowHoveredX11, - _glfwFramebufferTransparentX11, - _glfwGetWindowOpacityX11, - _glfwSetWindowResizableX11, - _glfwSetWindowDecoratedX11, - _glfwSetWindowFloatingX11, - _glfwSetWindowOpacityX11, - _glfwSetWindowMousePassthroughX11, - _glfwPollEventsX11, - _glfwWaitEventsX11, - _glfwWaitEventsTimeoutX11, - _glfwPostEmptyEventX11, - _glfwGetEGLPlatformX11, - _glfwGetEGLNativeDisplayX11, - _glfwGetEGLNativeWindowX11, - _glfwGetRequiredInstanceExtensionsX11, - _glfwGetPhysicalDevicePresentationSupportX11, - _glfwCreateWindowSurfaceX11, + .freeMonitor = _glfwFreeMonitorX11, + .getMonitorPos = _glfwGetMonitorPosX11, + .getMonitorContentScale = _glfwGetMonitorContentScaleX11, + .getMonitorWorkarea = _glfwGetMonitorWorkareaX11, + .getVideoModes = _glfwGetVideoModesX11, + .getVideoMode = _glfwGetVideoModeX11, + .getGammaRamp = _glfwGetGammaRampX11, + .setGammaRamp = _glfwSetGammaRampX11, + .createWindow = _glfwCreateWindowX11, + .destroyWindow = _glfwDestroyWindowX11, + .setWindowTitle = _glfwSetWindowTitleX11, + .setWindowIcon = _glfwSetWindowIconX11, + .getWindowPos = _glfwGetWindowPosX11, + .setWindowPos = _glfwSetWindowPosX11, + .getWindowSize = _glfwGetWindowSizeX11, + .setWindowSize = _glfwSetWindowSizeX11, + .setWindowSizeLimits = _glfwSetWindowSizeLimitsX11, + .setWindowAspectRatio = _glfwSetWindowAspectRatioX11, + .getFramebufferSize = _glfwGetFramebufferSizeX11, + .getWindowFrameSize = _glfwGetWindowFrameSizeX11, + .getWindowContentScale = _glfwGetWindowContentScaleX11, + .iconifyWindow = _glfwIconifyWindowX11, + .restoreWindow = _glfwRestoreWindowX11, + .maximizeWindow = _glfwMaximizeWindowX11, + .showWindow = _glfwShowWindowX11, + .hideWindow = _glfwHideWindowX11, + .requestWindowAttention = _glfwRequestWindowAttentionX11, + .focusWindow = _glfwFocusWindowX11, + .setWindowMonitor = _glfwSetWindowMonitorX11, + .windowFocused = _glfwWindowFocusedX11, + .windowIconified = _glfwWindowIconifiedX11, + .windowVisible = _glfwWindowVisibleX11, + .windowMaximized = _glfwWindowMaximizedX11, + .windowHovered = _glfwWindowHoveredX11, + .framebufferTransparent = _glfwFramebufferTransparentX11, + .getWindowOpacity = _glfwGetWindowOpacityX11, + .setWindowResizable = _glfwSetWindowResizableX11, + .setWindowDecorated = _glfwSetWindowDecoratedX11, + .setWindowFloating = _glfwSetWindowFloatingX11, + .setWindowOpacity = _glfwSetWindowOpacityX11, + .setWindowMousePassthrough = _glfwSetWindowMousePassthroughX11, + .pollEvents = _glfwPollEventsX11, + .waitEvents = _glfwWaitEventsX11, + .waitEventsTimeout = _glfwWaitEventsTimeoutX11, + .postEmptyEvent = _glfwPostEmptyEventX11, + .getEGLPlatform = _glfwGetEGLPlatformX11, + .getEGLNativeDisplay = _glfwGetEGLNativeDisplayX11, + .getEGLNativeWindow = _glfwGetEGLNativeWindowX11, + .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsX11, + .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportX11, + .createWindowSurface = _glfwCreateWindowSurfaceX11 }; // HACK: If the application has left the locale as "C" then both wide @@ -1652,3 +1652,5 @@ void _glfwTerminateX11(void) } } +#endif // _GLFW_X11 + diff --git a/src/external/glfw/src/x11_monitor.c b/src/external/glfw/src/x11_monitor.c index b031c83c0..38af7e0c0 100644 --- a/src/external/glfw/src/x11_monitor.c +++ b/src/external/glfw/src/x11_monitor.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_X11) + #include #include #include @@ -491,24 +491,31 @@ GLFWvidmode* _glfwGetVideoModesX11(_GLFWmonitor* monitor, int* count) return result; } -void _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode) +GLFWbool _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode) { if (_glfw.x11.randr.available && !_glfw.x11.randr.monitorBroken) { XRRScreenResources* sr = XRRGetScreenResourcesCurrent(_glfw.x11.display, _glfw.x11.root); - XRRCrtcInfo* ci = XRRGetCrtcInfo(_glfw.x11.display, sr, monitor->x11.crtc); + const XRRModeInfo* mi = NULL; + XRRCrtcInfo* ci = XRRGetCrtcInfo(_glfw.x11.display, sr, monitor->x11.crtc); if (ci) { - const XRRModeInfo* mi = getModeInfo(sr, ci->mode); - if (mi) // mi can be NULL if the monitor has been disconnected + mi = getModeInfo(sr, ci->mode); + if (mi) *mode = vidmodeFromModeInfo(mi, ci); XRRFreeCrtcInfo(ci); } XRRFreeScreenResources(sr); + + if (!mi) + { + _glfwInputError(GLFW_PLATFORM_ERROR, "X11: Failed to query video mode"); + return GLFW_FALSE; + } } else { @@ -519,6 +526,8 @@ void _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode) _glfwSplitBPP(DefaultDepth(_glfw.x11.display, _glfw.x11.screen), &mode->redBits, &mode->greenBits, &mode->blueBits); } + + return GLFW_TRUE; } GLFWbool _glfwGetGammaRampX11(_GLFWmonitor* monitor, GLFWgammaramp* ramp) @@ -604,6 +613,13 @@ GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(None); + + if (_glfw.platform.platformID != GLFW_PLATFORM_X11) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "X11: Platform not initialized"); + return None; + } + return monitor->x11.crtc; } @@ -611,6 +627,15 @@ GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* handle) { _GLFWmonitor* monitor = (_GLFWmonitor*) handle; _GLFW_REQUIRE_INIT_OR_RETURN(None); + + if (_glfw.platform.platformID != GLFW_PLATFORM_X11) + { + _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "X11: Platform not initialized"); + return None; + } + return monitor->x11.output; } +#endif // _GLFW_X11 + diff --git a/src/external/glfw/src/x11_platform.h b/src/external/glfw/src/x11_platform.h index cdea39574..14e363d14 100644 --- a/src/external/glfw/src/x11_platform.h +++ b/src/external/glfw/src/x11_platform.h @@ -968,7 +968,7 @@ void _glfwGetMonitorPosX11(_GLFWmonitor* monitor, int* xpos, int* ypos); void _glfwGetMonitorContentScaleX11(_GLFWmonitor* monitor, float* xscale, float* yscale); void _glfwGetMonitorWorkareaX11(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); GLFWvidmode* _glfwGetVideoModesX11(_GLFWmonitor* monitor, int* count); -void _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode); +GLFWbool _glfwGetVideoModeX11(_GLFWmonitor* monitor, GLFWvidmode* mode); GLFWbool _glfwGetGammaRampX11(_GLFWmonitor* monitor, GLFWgammaramp* ramp); void _glfwSetGammaRampX11(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); diff --git a/src/external/glfw/src/x11_window.c b/src/external/glfw/src/x11_window.c index 8a689ed10..e0295465a 100644 --- a/src/external/glfw/src/x11_window.c +++ b/src/external/glfw/src/x11_window.c @@ -24,11 +24,11 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_X11) + #include #include @@ -79,24 +79,25 @@ static GLFWbool waitForX11Event(double* timeout) // static GLFWbool waitForAnyEvent(double* timeout) { - nfds_t count = 2; - struct pollfd fds[3] = + enum { XLIB_FD, PIPE_FD, INOTIFY_FD }; + struct pollfd fds[] = { - { ConnectionNumber(_glfw.x11.display), POLLIN }, - { _glfw.x11.emptyEventPipe[0], POLLIN } + [XLIB_FD] = { ConnectionNumber(_glfw.x11.display), POLLIN }, + [PIPE_FD] = { _glfw.x11.emptyEventPipe[0], POLLIN }, + [INOTIFY_FD] = { -1, POLLIN } }; -#if defined(__linux__) +#if defined(GLFW_BUILD_LINUX_JOYSTICK) if (_glfw.joysticksInitialized) - fds[count++] = (struct pollfd) { _glfw.linjs.inotify, POLLIN }; + fds[INOTIFY_FD].fd = _glfw.linjs.inotify; #endif while (!XPending(_glfw.x11.display)) { - if (!_glfwPollPOSIX(fds, count, timeout)) + if (!_glfwPollPOSIX(fds, sizeof(fds) / sizeof(fds[0]), timeout)) return GLFW_FALSE; - for (int i = 1; i < count; i++) + for (int i = 1; i < sizeof(fds) / sizeof(fds[0]); i++) { if (fds[i].revents & POLLIN) return GLFW_TRUE; @@ -1487,6 +1488,9 @@ static void processEvent(XEvent *event) if (event->xconfigure.width != window->x11.width || event->xconfigure.height != window->x11.height) { + window->x11.width = event->xconfigure.width; + window->x11.height = event->xconfigure.height; + _glfwInputFramebufferSize(window, event->xconfigure.width, event->xconfigure.height); @@ -1494,9 +1498,6 @@ static void processEvent(XEvent *event) _glfwInputWindowSize(window, event->xconfigure.width, event->xconfigure.height); - - window->x11.width = event->xconfigure.width; - window->x11.height = event->xconfigure.height; } int xpos = event->xconfigure.x; @@ -1524,9 +1525,10 @@ static void processEvent(XEvent *event) if (xpos != window->x11.xpos || ypos != window->x11.ypos) { - _glfwInputWindowPos(window, xpos, ypos); window->x11.xpos = xpos; window->x11.ypos = ypos; + + _glfwInputWindowPos(window, xpos, ypos); } return; @@ -2781,7 +2783,7 @@ void _glfwPollEventsX11(void) { drainEmptyEvents(); -#if defined(__linux__) +#if defined(GLFW_BUILD_LINUX_JOYSTICK) if (_glfw.joysticksInitialized) _glfwDetectJoystickConnectionLinux(); #endif @@ -2901,14 +2903,16 @@ const char* _glfwGetScancodeNameX11(int scancode) if (!_glfw.x11.xkb.available) return NULL; - if (scancode < 0 || scancode > 0xff || - _glfw.x11.keycodes[scancode] == GLFW_KEY_UNKNOWN) + if (scancode < 0 || scancode > 0xff) { _glfwInputError(GLFW_INVALID_VALUE, "Invalid scancode %i", scancode); return NULL; } const int key = _glfw.x11.keycodes[scancode]; + if (key == GLFW_KEY_UNKNOWN) + return NULL; + const KeySym keysym = XkbKeycodeToKeysym(_glfw.x11.display, scancode, _glfw.x11.xkb.group, 0); if (keysym == NoSymbol) @@ -3349,3 +3353,5 @@ GLFWAPI const char* glfwGetX11SelectionString(void) return getSelectionString(_glfw.x11.PRIMARY); } +#endif // _GLFW_X11 + diff --git a/src/external/glfw/src/xkb_unicode.c b/src/external/glfw/src/xkb_unicode.c index 1b2482cdf..6b8dfcac6 100644 --- a/src/external/glfw/src/xkb_unicode.c +++ b/src/external/glfw/src/xkb_unicode.c @@ -24,11 +24,10 @@ // distribution. // //======================================================================== -// It is fine to use C99 in this file because it will not be built with VS -//======================================================================== #include "internal.h" +#if defined(_GLFW_X11) || defined(_GLFW_WAYLAND) /* * Marcus: This code was originally written by Markus G. Kuhn. @@ -940,3 +939,5 @@ uint32_t _glfwKeySym2Unicode(unsigned int keysym) return GLFW_INVALID_CODEPOINT; } +#endif // _GLFW_WAYLAND or _GLFW_X11 + diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index dbfc29e01..d4c024400 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -74,7 +74,6 @@ //#define GLFW_EXPOSE_NATIVE_X11 // WARNING: Exposing Xlib.h > X.h results in dup symbols for Font type //#define GLFW_EXPOSE_NATIVE_WAYLAND - //#define GLFW_EXPOSE_NATIVE_MIR #include "GLFW/glfw3native.h" // Required for: glfwGetX11Window() #endif #if defined(__APPLE__) @@ -1570,6 +1569,17 @@ int InitPlatform(void) CORE.Storage.basePath = GetWorkingDirectory(); //---------------------------------------------------------------------------- + char* glfwPlatform = ""; + switch (glfwGetPlatform()) + { + case GLFW_PLATFORM_WIN32: glfwPlatform = "Win32"; break; + case GLFW_PLATFORM_COCOA: glfwPlatform = "Cocoa"; break; + case GLFW_PLATFORM_WAYLAND: glfwPlatform = "Wayland"; break; + case GLFW_PLATFORM_X11: glfwPlatform = "X11"; break; + case GLFW_PLATFORM_NULL: glfwPlatform = "Null"; break; + } + + TRACELOG(LOG_INFO, "GLFW platform: %s", glfwPlatform); TRACELOG(LOG_INFO, "PLATFORM: DESKTOP (GLFW): Initialized successfully"); return 0; diff --git a/src/rglfw.c b/src/rglfw.c index 0e378b5bd..5c2720b15 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -34,8 +34,8 @@ // _GLFW_X11 to use the X Window System // _GLFW_WAYLAND to use the Wayland API (experimental and incomplete) // _GLFW_COCOA to use the Cocoa frameworks -// _GLFW_OSMESA to use the OSMesa API (headless and non-interactive) -// _GLFW_MIR experimental, not supported at this moment +// +// Note: GLFW's runtime platform selection is not supported at the moment //---------------------------------------------------------------------------------- // Feature Test Macros required for this module @@ -69,6 +69,15 @@ #define _WIN32_WINNT_WINXP 0x0501 #endif +#include "external/glfw/src/internal.h" + +// We do not use GLFW's "null" platform, but the absence of this function +// causes the build to fail +GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform) +{ + return GLFW_TRUE; +} + // Common modules to all platforms #include "external/glfw/src/init.c" #include "external/glfw/src/platform.c" From 94c79917e3b68fbed3ff4a3920edc9d093b11c4f Mon Sep 17 00:00:00 2001 From: mooff Date: Thu, 29 Feb 2024 17:30:38 +0000 Subject: [PATCH 214/790] Fix SDL multitouch tracking (#3810) The fingerId from SDL was used as an index into the CORE.Input.Touch arrays, but it's an opaque / arbitrary int64, way bigger than MAX_TOUCH_POINTS, so the first non-simulated touch event would segfault. --- src/platforms/rcore_desktop_sdl.c | 44 ++++++++++++++----------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index f567119ed..1b6304d28 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -971,6 +971,23 @@ void SetMouseCursor(int cursor) CORE.Input.Mouse.cursor = cursor; } +static void UpdateSDLTouchPoints(SDL_TouchFingerEvent event) +{ + CORE.Input.Touch.pointCount = SDL_GetNumTouchFingers(event.touchId); + + for (int i=0; iid; + CORE.Input.Touch.position[i].x = finger->x * CORE.Window.screen.width; + CORE.Input.Touch.position[i].y = finger->y * CORE.Window.screen.height; + CORE.Input.Touch.currentTouchState[i] = 1; + } + + for (int i=CORE.Input.Touch.pointCount; i Date: Thu, 29 Feb 2024 18:40:10 +0100 Subject: [PATCH 215/790] ADDED: New function `ColorIsEqual()` --- src/raylib.h | 1 + src/rtextures.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index d857f1c74..03045ed13 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1408,6 +1408,7 @@ RLAPI void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, V RLAPI void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draws a texture (or part of it) that stretches or shrinks nicely // Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal RLAPI Color Fade(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color RLAPI Vector4 ColorNormalize(Color color); // Get Color normalized as float [0..1] diff --git a/src/rtextures.c b/src/rtextures.c index bd3d54cc0..5c0e90e85 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -4453,6 +4453,16 @@ void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, } } +// Check if two colors are equal +bool ColorIsEqual(Color col1, Color col2) +{ + bool result = false; + + if ((col1.r == col2.r) && (col1.g == col2.g) && (col1.b == col2.b) && (col1.a == col2.a)) result = true; + + return result; +} + // Get color with alpha applied, alpha goes from 0.0f to 1.0f Color Fade(Color color, float alpha) { From d3f2d94f23ebdee737e73fe53c7a08a2797ce3ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 29 Feb 2024 17:40:30 +0000 Subject: [PATCH 216/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 15 ++ parser/output/raylib_api.lua | 9 + parser/output/raylib_api.txt | 412 +++++++++++++++++----------------- parser/output/raylib_api.xml | 6 +- 4 files changed, 238 insertions(+), 204 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index f8e0982cc..3aec33ef9 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -8368,6 +8368,21 @@ } ] }, + { + "name": "ColorIsEqual", + "description": "Check if two colors are equal", + "returnType": "bool", + "params": [ + { + "type": "Color", + "name": "col1" + }, + { + "type": "Color", + "name": "col2" + } + ] + }, { "name": "Fade", "description": "Get color with alpha applied, alpha goes from 0.0f to 1.0f", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 350065e7e..dbcf969f1 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -6154,6 +6154,15 @@ return { {type = "Color", name = "tint"} } }, + { + name = "ColorIsEqual", + description = "Check if two colors are equal", + returnType = "bool", + params = { + {type = "Color", name = "col1"}, + {type = "Color", name = "col2"} + } + }, { name = "Fade", description = "Get color with alpha applied, alpha goes from 0.0f to 1.0f", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 134b36ced..668e84bb6 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -979,7 +979,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 560 +Functions found: 561 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -3212,106 +3212,112 @@ Function 358: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 359: Fade() (2 input parameters) +Function 359: ColorIsEqual() (2 input parameters) + Name: ColorIsEqual + Return type: bool + Description: Check if two colors are equal + Param[1]: col1 (type: Color) + Param[2]: col2 (type: Color) +Function 360: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 360: ColorToInt() (1 input parameters) +Function 361: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color Param[1]: color (type: Color) -Function 361: ColorNormalize() (1 input parameters) +Function 362: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 362: ColorFromNormalized() (1 input parameters) +Function 363: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 363: ColorToHSV() (1 input parameters) +Function 364: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 364: ColorFromHSV() (3 input parameters) +Function 365: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 365: ColorTint() (2 input parameters) +Function 366: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 366: ColorBrightness() (2 input parameters) +Function 367: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 367: ColorContrast() (2 input parameters) +Function 368: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 368: ColorAlpha() (2 input parameters) +Function 369: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 369: ColorAlphaBlend() (3 input parameters) +Function 370: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 370: GetColor() (1 input parameters) +Function 371: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 371: GetPixelColor() (2 input parameters) +Function 372: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 372: SetPixelColor() (3 input parameters) +Function 373: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 373: GetPixelDataSize() (3 input parameters) +Function 374: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 374: GetFontDefault() (0 input parameters) +Function 375: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 375: LoadFont() (1 input parameters) +Function 376: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 376: LoadFontEx() (4 input parameters) +Function 377: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3319,14 +3325,14 @@ Function 376: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 377: LoadFontFromImage() (3 input parameters) +Function 378: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 378: LoadFontFromMemory() (6 input parameters) +Function 379: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3336,12 +3342,12 @@ Function 378: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 379: IsFontReady() (1 input parameters) +Function 380: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 380: LoadFontData() (6 input parameters) +Function 381: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3351,7 +3357,7 @@ Function 380: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 381: GenImageFontAtlas() (6 input parameters) +Function 382: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3361,30 +3367,30 @@ Function 381: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 382: UnloadFontData() (2 input parameters) +Function 383: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 383: UnloadFont() (1 input parameters) +Function 384: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 384: ExportFontAsCode() (2 input parameters) +Function 385: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 385: DrawFPS() (2 input parameters) +Function 386: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 386: DrawText() (5 input parameters) +Function 387: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3393,7 +3399,7 @@ Function 386: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 387: DrawTextEx() (6 input parameters) +Function 388: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3403,7 +3409,7 @@ Function 387: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 388: DrawTextPro() (8 input parameters) +Function 389: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3415,7 +3421,7 @@ Function 388: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 389: DrawTextCodepoint() (5 input parameters) +Function 390: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3424,7 +3430,7 @@ Function 389: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 390: DrawTextCodepoints() (7 input parameters) +Function 391: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3435,18 +3441,18 @@ Function 390: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 391: SetTextLineSpacing() (1 input parameters) +Function 392: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 392: MeasureText() (2 input parameters) +Function 393: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 393: MeasureTextEx() (4 input parameters) +Function 394: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3454,185 +3460,185 @@ Function 393: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 394: GetGlyphIndex() (2 input parameters) +Function 395: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 395: GetGlyphInfo() (2 input parameters) +Function 396: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 396: GetGlyphAtlasRec() (2 input parameters) +Function 397: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 397: LoadUTF8() (2 input parameters) +Function 398: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 398: UnloadUTF8() (1 input parameters) +Function 399: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 399: LoadCodepoints() (2 input parameters) +Function 400: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 400: UnloadCodepoints() (1 input parameters) +Function 401: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 401: GetCodepointCount() (1 input parameters) +Function 402: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 402: GetCodepoint() (2 input parameters) +Function 403: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 403: GetCodepointNext() (2 input parameters) +Function 404: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 404: GetCodepointPrevious() (2 input parameters) +Function 405: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 405: CodepointToUTF8() (2 input parameters) +Function 406: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 406: TextCopy() (2 input parameters) +Function 407: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 407: TextIsEqual() (2 input parameters) +Function 408: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 408: TextLength() (1 input parameters) +Function 409: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 409: TextFormat() (2 input parameters) +Function 410: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 410: TextSubtext() (3 input parameters) +Function 411: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 411: TextReplace() (3 input parameters) +Function 412: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 412: TextInsert() (3 input parameters) +Function 413: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 413: TextJoin() (3 input parameters) +Function 414: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 414: TextSplit() (3 input parameters) +Function 415: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 415: TextAppend() (3 input parameters) +Function 416: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 416: TextFindIndex() (2 input parameters) +Function 417: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 417: TextToUpper() (1 input parameters) +Function 418: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 418: TextToLower() (1 input parameters) +Function 419: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 419: TextToPascal() (1 input parameters) +Function 420: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 420: TextToInteger() (1 input parameters) +Function 421: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 421: TextToFloat() (1 input parameters) +Function 422: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 422: DrawLine3D() (3 input parameters) +Function 423: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 423: DrawPoint3D() (2 input parameters) +Function 424: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 424: DrawCircle3D() (5 input parameters) +Function 425: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3641,7 +3647,7 @@ Function 424: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 425: DrawTriangle3D() (4 input parameters) +Function 426: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3649,14 +3655,14 @@ Function 425: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 426: DrawTriangleStrip3D() (3 input parameters) +Function 427: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 427: DrawCube() (5 input parameters) +Function 428: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3665,14 +3671,14 @@ Function 427: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 428: DrawCubeV() (3 input parameters) +Function 429: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 429: DrawCubeWires() (5 input parameters) +Function 430: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3681,21 +3687,21 @@ Function 429: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 430: DrawCubeWiresV() (3 input parameters) +Function 431: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 431: DrawSphere() (3 input parameters) +Function 432: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 432: DrawSphereEx() (5 input parameters) +Function 433: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3704,7 +3710,7 @@ Function 432: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 433: DrawSphereWires() (5 input parameters) +Function 434: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3713,7 +3719,7 @@ Function 433: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 434: DrawCylinder() (6 input parameters) +Function 435: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3723,7 +3729,7 @@ Function 434: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 435: DrawCylinderEx() (6 input parameters) +Function 436: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3733,7 +3739,7 @@ Function 435: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 436: DrawCylinderWires() (6 input parameters) +Function 437: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3743,7 +3749,7 @@ Function 436: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 437: DrawCylinderWiresEx() (6 input parameters) +Function 438: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3753,7 +3759,7 @@ Function 437: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 438: DrawCapsule() (6 input parameters) +Function 439: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3763,7 +3769,7 @@ Function 438: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 439: DrawCapsuleWires() (6 input parameters) +Function 440: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3773,51 +3779,51 @@ Function 439: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 440: DrawPlane() (3 input parameters) +Function 441: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 441: DrawRay() (2 input parameters) +Function 442: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 442: DrawGrid() (2 input parameters) +Function 443: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 443: LoadModel() (1 input parameters) +Function 444: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 444: LoadModelFromMesh() (1 input parameters) +Function 445: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 445: IsModelReady() (1 input parameters) +Function 446: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 446: UnloadModel() (1 input parameters) +Function 447: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 447: GetModelBoundingBox() (1 input parameters) +Function 448: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 448: DrawModel() (4 input parameters) +Function 449: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3825,7 +3831,7 @@ Function 448: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 449: DrawModelEx() (6 input parameters) +Function 450: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3835,7 +3841,7 @@ Function 449: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 450: DrawModelWires() (4 input parameters) +Function 451: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3843,7 +3849,7 @@ Function 450: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 451: DrawModelWiresEx() (6 input parameters) +Function 452: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3853,13 +3859,13 @@ Function 451: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 452: DrawBoundingBox() (2 input parameters) +Function 453: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 453: DrawBillboard() (5 input parameters) +Function 454: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3868,7 +3874,7 @@ Function 453: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 454: DrawBillboardRec() (6 input parameters) +Function 455: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3878,7 +3884,7 @@ Function 454: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 455: DrawBillboardPro() (9 input parameters) +Function 456: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3891,13 +3897,13 @@ Function 455: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 456: UploadMesh() (2 input parameters) +Function 457: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 457: UpdateMeshBuffer() (5 input parameters) +Function 458: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3906,19 +3912,19 @@ Function 457: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 458: UnloadMesh() (1 input parameters) +Function 459: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 459: DrawMesh() (3 input parameters) +Function 460: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 460: DrawMeshInstanced() (4 input parameters) +Function 461: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3926,35 +3932,35 @@ Function 460: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 461: GetMeshBoundingBox() (1 input parameters) +Function 462: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 462: GenMeshTangents() (1 input parameters) +Function 463: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 463: ExportMesh() (2 input parameters) +Function 464: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 464: ExportMeshAsCode() (2 input parameters) +Function 465: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 465: GenMeshPoly() (2 input parameters) +Function 466: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 466: GenMeshPlane() (4 input parameters) +Function 467: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3962,42 +3968,42 @@ Function 466: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 467: GenMeshCube() (3 input parameters) +Function 468: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 468: GenMeshSphere() (3 input parameters) +Function 469: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 469: GenMeshHemiSphere() (3 input parameters) +Function 470: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 470: GenMeshCylinder() (3 input parameters) +Function 471: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 471: GenMeshCone() (3 input parameters) +Function 472: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 472: GenMeshTorus() (4 input parameters) +Function 473: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4005,7 +4011,7 @@ Function 472: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 473: GenMeshKnot() (4 input parameters) +Function 474: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4013,84 +4019,84 @@ Function 473: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 474: GenMeshHeightmap() (2 input parameters) +Function 475: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 475: GenMeshCubicmap() (2 input parameters) +Function 476: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 476: LoadMaterials() (2 input parameters) +Function 477: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 477: LoadMaterialDefault() (0 input parameters) +Function 478: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 478: IsMaterialReady() (1 input parameters) +Function 479: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 479: UnloadMaterial() (1 input parameters) +Function 480: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 480: SetMaterialTexture() (3 input parameters) +Function 481: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 481: SetModelMeshMaterial() (3 input parameters) +Function 482: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 482: LoadModelAnimations() (2 input parameters) +Function 483: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 483: UpdateModelAnimation() (3 input parameters) +Function 484: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 484: UnloadModelAnimation() (1 input parameters) +Function 485: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 485: UnloadModelAnimations() (2 input parameters) +Function 486: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 486: IsModelAnimationValid() (2 input parameters) +Function 487: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 487: CheckCollisionSpheres() (4 input parameters) +Function 488: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4098,40 +4104,40 @@ Function 487: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 488: CheckCollisionBoxes() (2 input parameters) +Function 489: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 489: CheckCollisionBoxSphere() (3 input parameters) +Function 490: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 490: GetRayCollisionSphere() (3 input parameters) +Function 491: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 491: GetRayCollisionBox() (2 input parameters) +Function 492: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 492: GetRayCollisionMesh() (3 input parameters) +Function 493: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 493: GetRayCollisionTriangle() (4 input parameters) +Function 494: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4139,7 +4145,7 @@ Function 493: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 494: GetRayCollisionQuad() (5 input parameters) +Function 495: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4148,158 +4154,158 @@ Function 494: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 495: InitAudioDevice() (0 input parameters) +Function 496: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 496: CloseAudioDevice() (0 input parameters) +Function 497: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 497: IsAudioDeviceReady() (0 input parameters) +Function 498: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 498: SetMasterVolume() (1 input parameters) +Function 499: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 499: GetMasterVolume() (0 input parameters) +Function 500: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 500: LoadWave() (1 input parameters) +Function 501: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 501: LoadWaveFromMemory() (3 input parameters) +Function 502: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 502: IsWaveReady() (1 input parameters) +Function 503: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 503: LoadSound() (1 input parameters) +Function 504: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 504: LoadSoundFromWave() (1 input parameters) +Function 505: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 505: LoadSoundAlias() (1 input parameters) +Function 506: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 506: IsSoundReady() (1 input parameters) +Function 507: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 507: UpdateSound() (3 input parameters) +Function 508: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 508: UnloadWave() (1 input parameters) +Function 509: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 509: UnloadSound() (1 input parameters) +Function 510: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 510: UnloadSoundAlias() (1 input parameters) +Function 511: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 511: ExportWave() (2 input parameters) +Function 512: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 512: ExportWaveAsCode() (2 input parameters) +Function 513: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 513: PlaySound() (1 input parameters) +Function 514: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 514: StopSound() (1 input parameters) +Function 515: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 515: PauseSound() (1 input parameters) +Function 516: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 516: ResumeSound() (1 input parameters) +Function 517: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 517: IsSoundPlaying() (1 input parameters) +Function 518: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 518: SetSoundVolume() (2 input parameters) +Function 519: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 519: SetSoundPitch() (2 input parameters) +Function 520: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 520: SetSoundPan() (2 input parameters) +Function 521: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 521: WaveCopy() (1 input parameters) +Function 522: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 522: WaveCrop() (3 input parameters) +Function 523: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 523: WaveFormat() (4 input parameters) +Function 524: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4307,203 +4313,203 @@ Function 523: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 524: LoadWaveSamples() (1 input parameters) +Function 525: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 525: UnloadWaveSamples() (1 input parameters) +Function 526: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 526: LoadMusicStream() (1 input parameters) +Function 527: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 527: LoadMusicStreamFromMemory() (3 input parameters) +Function 528: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 528: IsMusicReady() (1 input parameters) +Function 529: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 529: UnloadMusicStream() (1 input parameters) +Function 530: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 530: PlayMusicStream() (1 input parameters) +Function 531: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 531: IsMusicStreamPlaying() (1 input parameters) +Function 532: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 532: UpdateMusicStream() (1 input parameters) +Function 533: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 533: StopMusicStream() (1 input parameters) +Function 534: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 534: PauseMusicStream() (1 input parameters) +Function 535: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 535: ResumeMusicStream() (1 input parameters) +Function 536: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 536: SeekMusicStream() (2 input parameters) +Function 537: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 537: SetMusicVolume() (2 input parameters) +Function 538: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 538: SetMusicPitch() (2 input parameters) +Function 539: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 539: SetMusicPan() (2 input parameters) +Function 540: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 540: GetMusicTimeLength() (1 input parameters) +Function 541: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 541: GetMusicTimePlayed() (1 input parameters) +Function 542: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 542: LoadAudioStream() (3 input parameters) +Function 543: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 543: IsAudioStreamReady() (1 input parameters) +Function 544: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 544: UnloadAudioStream() (1 input parameters) +Function 545: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 545: UpdateAudioStream() (3 input parameters) +Function 546: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 546: IsAudioStreamProcessed() (1 input parameters) +Function 547: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 547: PlayAudioStream() (1 input parameters) +Function 548: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 548: PauseAudioStream() (1 input parameters) +Function 549: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 549: ResumeAudioStream() (1 input parameters) +Function 550: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 550: IsAudioStreamPlaying() (1 input parameters) +Function 551: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 551: StopAudioStream() (1 input parameters) +Function 552: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 552: SetAudioStreamVolume() (2 input parameters) +Function 553: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 553: SetAudioStreamPitch() (2 input parameters) +Function 554: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 554: SetAudioStreamPan() (2 input parameters) +Function 555: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 555: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 556: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 556: SetAudioStreamCallback() (2 input parameters) +Function 557: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 557: AttachAudioStreamProcessor() (2 input parameters) +Function 558: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as s Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 558: DetachAudioStreamProcessor() (2 input parameters) +Function 559: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 559: AttachAudioMixedProcessor() (1 input parameters) +Function 560: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s Param[1]: processor (type: AudioCallback) -Function 560: DetachAudioMixedProcessor() (1 input parameters) +Function 561: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 16f3717d2..c04727367 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -669,7 +669,7 @@ - + @@ -2111,6 +2111,10 @@ + + + + From fea3395fc141909aeb51cb66326726876144e370 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 29 Feb 2024 18:50:44 +0100 Subject: [PATCH 217/790] Review formatting --- src/platforms/rcore_desktop_sdl.c | 25 ++++++++++-------- src/rmodels.c | 43 ++++++++++++++++--------------- src/rshapes.c | 14 +++++----- src/rtext.c | 22 ++++++++-------- src/rtextures.c | 16 ++++++------ 5 files changed, 62 insertions(+), 58 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 1b6304d28..e749cecb4 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -971,21 +971,20 @@ void SetMouseCursor(int cursor) CORE.Input.Mouse.cursor = cursor; } -static void UpdateSDLTouchPoints(SDL_TouchFingerEvent event) +static void UpdateTouchPointsSDL(SDL_TouchFingerEvent event) { CORE.Input.Touch.pointCount = SDL_GetNumTouchFingers(event.touchId); - for (int i=0; iid; - CORE.Input.Touch.position[i].x = finger->x * CORE.Window.screen.width; - CORE.Input.Touch.position[i].y = finger->y * CORE.Window.screen.height; + CORE.Input.Touch.position[i].x = finger->x*CORE.Window.screen.width; + CORE.Input.Touch.position[i].y = finger->y*CORE.Window.screen.height; CORE.Input.Touch.currentTouchState[i] = 1; } - for (int i=CORE.Input.Touch.pointCount; i // Required for: sprintf() -#include // Required for: malloc(), free() -#include // Required for: memcmp(), strlen() +#include // Required for: malloc(), calloc(), free() +#include // Required for: memcmp(), strlen(), strncpy() #include // Required for: sinf(), cosf(), sqrtf(), fabsf() #if defined(SUPPORT_FILEFORMAT_OBJ) || defined(SUPPORT_FILEFORMAT_MTL) @@ -1883,7 +1883,7 @@ bool ExportMeshAsCode(Mesh mesh, const char *fileName) byteCount += sprintf(txtData + byteCount, "// Mesh basic information\n"); byteCount += sprintf(txtData + byteCount, "#define %s_VERTEX_COUNT %i\n", varFileName, mesh.vertexCount); byteCount += sprintf(txtData + byteCount, "#define %s_TRIANGLE_COUNT %i\n\n", varFileName, mesh.triangleCount); - + // Define vertex attributes data as separate arrays //----------------------------------------------------------------------------------------- if (mesh.vertices != NULL) // Vertex position (XYZ - 3 components per vertex - float) @@ -1892,28 +1892,28 @@ bool ExportMeshAsCode(Mesh mesh, const char *fileName) for (int i = 0; i < mesh.vertexCount*3 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.vertices[i]); byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.vertices[mesh.vertexCount*3 - 1]); } - - if (mesh.texcoords != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) + + if (mesh.texcoords != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) { byteCount += sprintf(txtData + byteCount, "static float %s_TEXCOORD_DATA[%i] = { ", varFileName, mesh.vertexCount*2); for (int i = 0; i < mesh.vertexCount*2 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.texcoords[i]); byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.texcoords[mesh.vertexCount*2 - 1]); } - - if (mesh.texcoords2 != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) + + if (mesh.texcoords2 != NULL) // Vertex texture coordinates (UV - 2 components per vertex - float) { byteCount += sprintf(txtData + byteCount, "static float %s_TEXCOORD2_DATA[%i] = { ", varFileName, mesh.vertexCount*2); for (int i = 0; i < mesh.vertexCount*2 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.texcoords2[i]); byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.texcoords2[mesh.vertexCount*2 - 1]); } - + if (mesh.normals != NULL) // Vertex normals (XYZ - 3 components per vertex - float) { byteCount += sprintf(txtData + byteCount, "static float %s_NORMAL_DATA[%i] = { ", varFileName, mesh.vertexCount*3); for (int i = 0; i < mesh.vertexCount*3 - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.3ff,\n" : "%.3ff, "), mesh.normals[i]); byteCount += sprintf(txtData + byteCount, "%.3ff };\n\n", mesh.normals[mesh.vertexCount*3 - 1]); } - + if (mesh.tangents != NULL) // Vertex tangents (XYZW - 4 components per vertex - float) { byteCount += sprintf(txtData + byteCount, "static float %s_TANGENT_DATA[%i] = { ", varFileName, mesh.vertexCount*4); @@ -4050,7 +4050,7 @@ static Model LoadOBJ(const char *fileName) model.meshCount = meshCount; // Set number of materials available - // NOTE: There could be more materials available than meshes but it will be resolved at + // NOTE: There could be more materials available than meshes but it will be resolved at // model.meshMaterial, just assigning the right material to corresponding mesh model.materialCount = materialCount; if (model.materialCount == 0) @@ -4068,7 +4068,7 @@ static Model LoadOBJ(const char *fileName) for (int i = 0; i < model.meshCount; i++) { // WARNING: We need to calculate the mesh triangles manually using meshes[i].face_offset - // because in case of triangulated quads, meshes[i].length actually report quads, + // because in case of triangulated quads, meshes[i].length actually report quads, // despite the triangulation that is efectively considered on attrib.num_faces unsigned int tris = 0; if (i == model.meshCount - 1) tris = attrib.num_faces - meshes[i].face_offset; @@ -5283,7 +5283,7 @@ static Model LoadGLTF(const char *fileName) else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec2)) { // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - + // Handle 16-bit unsigned short, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(unsigned short)); unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; @@ -5292,7 +5292,7 @@ static Model LoadGLTF(const char *fileName) else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec4)) { // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - + // Handle 16-bit unsigned short, vec4 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; @@ -5301,7 +5301,7 @@ static Model LoadGLTF(const char *fileName) else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) { // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - + // Handle 32-bit unsigned int, vec4 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned int)); unsigned int *ptr = (unsigned int *)model.meshes[meshIndex].boneIds; @@ -5310,7 +5310,7 @@ static Model LoadGLTF(const char *fileName) else if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec2)) { // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - + // Handle 32-bit float, vec2 format model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(float)); float *ptr = (float *)model.meshes[meshIndex].boneIds; @@ -5641,7 +5641,7 @@ static Model LoadVOX(const char *fileName) // 6*4 = 12 vertices per voxel Vector3 *pvertices = (Vector3 *)voxarray.vertices.array; - Vector3* pnormals = (Vector3*)voxarray.normals.array; + Vector3 *pnormals = (Vector3 *)voxarray.normals.array; Color *pcolors = (Color *)voxarray.colors.array; unsigned short *pindices = voxarray.indices.array; // 5461*6*6 = 196596 indices max per mesh @@ -5657,16 +5657,16 @@ static Model LoadVOX(const char *fileName) pmesh->vertexCount = (int)fmin(verticesMax, verticesRemain); size = pmesh->vertexCount*sizeof(float)*3; - pmesh->vertices = RL_MALLOC(size); + pmesh->vertices = (float *)RL_MALLOC(size); memcpy(pmesh->vertices, pvertices, size); // Copy normals - pmesh->normals = RL_MALLOC(size); //Rk. size as vertices + pmesh->normals = (float *)RL_MALLOC(size); memcpy(pmesh->normals, pnormals, size); // Copy indices size = voxarray.indices.used*sizeof(unsigned short); - pmesh->indices = RL_MALLOC(size); + pmesh->indices = (float *)RL_MALLOC(size); memcpy(pmesh->indices, pindices, size); pmesh->triangleCount = (pmesh->vertexCount/4)*2; @@ -6074,8 +6074,9 @@ static ModelAnimation *LoadModelAnimationsM3D(const char *fileName, int *animCou animations[a].boneCount = m3d->numbone + 1; animations[a].bones = RL_MALLOC((m3d->numbone + 1)*sizeof(BoneInfo)); animations[a].framePoses = RL_MALLOC(animations[a].frameCount*sizeof(Transform *)); - strncpy(animations[a].name, m3d->action[a].name, sizeof(animations[a].name)); - animations[a].name[sizeof(animations[a].name) - 1] = '\0'; + strncpy(animations[a].name, m3d->action[a].name, sizeof(animations[a].name)); + animations[a].name[sizeof(animations[a].name) - 1] = '\0'; + TRACELOG(LOG_INFO, "MODEL: [%s] animation #%i: %i msec, %i frames", fileName, a, m3d->action[a].durationmsec, animations[a].frameCount); for (i = 0; i < (int)m3d->numbone; i++) diff --git a/src/rshapes.c b/src/rshapes.c index f0c6f1127..5c6900b2f 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -338,7 +338,7 @@ void DrawCircleSector(Vector2 center, float radius, float startAngle, float endA } // NOTE: In case number of segments is odd, we add one last piece to the cake - if ((segments%2) == 1) + if (((unsigned int)segments%2) == 1) { rlColor4ub(color.r, color.g, color.b, color.a); @@ -1574,7 +1574,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) #if defined(SUPPORT_SPLINE_MITERS) Vector2 prevNormal = (Vector2){-(points[1].y - points[0].y), (points[1].x - points[0].x)}; float prevLength = sqrtf(prevNormal.x*prevNormal.x + prevNormal.y*prevNormal.y); - + if (prevLength > 0.0f) { prevNormal.x /= prevLength; @@ -1587,7 +1587,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) } Vector2 prevRadius = { 0.5f*thick*prevNormal.x, 0.5f*thick*prevNormal.y }; - + for (int i = 0; i < pointCount - 1; i++) { Vector2 normal = { 0 }; @@ -1596,7 +1596,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) { normal = (Vector2){-(points[i + 2].y - points[i + 1].y), (points[i + 2].x - points[i + 1].x)}; float normalLength = sqrtf(normal.x*normal.x + normal.y*normal.y); - + if (normalLength > 0.0f) { normal.x /= normalLength; @@ -1615,7 +1615,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) Vector2 radius = { prevNormal.x + normal.x, prevNormal.y + normal.y }; float radiusLength = sqrtf(radius.x*radius.x + radius.y*radius.y); - + if (radiusLength > 0.0f) { radius.x /= radiusLength; @@ -1639,7 +1639,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) radius.x = 0.0f; radius.y = 0.0f; } - + Vector2 strip[4] = { { points[i].x - prevRadius.x, points[i].y - prevRadius.y }, { points[i].x + prevRadius.x, points[i].y + prevRadius.y }, @@ -1677,7 +1677,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) DrawTriangleStrip(strip, 4, color); } #endif - + #if defined(SUPPORT_SPLINE_SEGMENT_CAPS) // TODO: Add spline segment rounded caps at the begin/end of the spline #endif diff --git a/src/rtext.c b/src/rtext.c index eb56b3ecd..87b991025 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -536,7 +536,7 @@ Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int font.glyphCount = (codepointCount > 0)? codepointCount : 95; font.glyphPadding = 0; -#if defined(SUPPORT_FILEFORMAT_TTF) +#if defined(SUPPORT_FILEFORMAT_TTF) if (TextIsEqual(fileExtLower, ".ttf") || TextIsEqual(fileExtLower, ".otf")) { @@ -1468,10 +1468,10 @@ float TextToFloat(const char *text) if (text[0] == '-') sign = -1.0f; text++; } - + int i = 0; for (; ((text[i] >= '0') && (text[i] <= '9')); i++) value = value*10.0f + (float)(text[i] - '0'); - + if (text[i++] != '.') value *= sign; else { @@ -1482,7 +1482,7 @@ float TextToFloat(const char *text) divisor = divisor*10.0f; } } - + return value; } @@ -2275,7 +2275,7 @@ static unsigned char HexToInt(char hex) static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int *outFontSize) { #define MAX_BUFFER_SIZE 256 - + char buffer[MAX_BUFFER_SIZE] = { 0 }; GlyphInfo *glyphs = NULL; @@ -2289,7 +2289,7 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i const char *fileTextPtr = fileText; bool fontMalformed = false; // Is the font malformed - bool fontStarted = false; // Has font started (STARTFONT) + bool fontStarted = false; // Has font started (STARTFONT) int fontBBw = 0; // Font base character bounding box width int fontBBh = 0; // Font base character bounding box height int fontBBxoff0 = 0; // Font base character bounding box X0 offset @@ -2300,7 +2300,7 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i bool charBitmapStarted = false; // Has bitmap data started (BITMAP) int charBitmapNextRow = 0; // Y position for the next row of bitmap data int charEncoding = -1; // The unicode value of the character (-1 if not set) - int charBBw = 0; // Character bounding box width + int charBBw = 0; // Character bounding box width int charBBh = 0; // Character bounding box height int charBBxoff0 = 0; // Character bounding box X0 offset int charBByoff0 = 0; // Character bounding box Y0 offset @@ -2347,17 +2347,17 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i if (charGlyphInfo != NULL) { int pixelY = charBitmapNextRow++; - + if (pixelY >= charGlyphInfo->image.height) break; for (int x = 0; x < readBytes; x++) { unsigned char byte = HexToInt(buffer[x]); - + for (int bitX = 0; bitX < 4; bitX++) { int pixelX = ((x*4) + bitX); - + if (pixelX >= charGlyphInfo->image.width) break; if ((byte & (8 >> bitX)) > 0) ((unsigned char *)charGlyphInfo->image.data)[(pixelY*charGlyphInfo->image.width) + pixelX] = 255; @@ -2393,7 +2393,7 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i { // Search for glyph index in codepoints charGlyphInfo = NULL; - + for (int codepointIndex = 0; codepointIndex < codepointCount; codepointIndex++) { if (codepoints[codepointIndex] == charEncoding) diff --git a/src/rtextures.c b/src/rtextures.c index 5c0e90e85..588c8b107 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2139,7 +2139,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) if ((image->data == NULL) || (image->width == 0) || (image->height == 0) || kernel == NULL) return; int kernelWidth = (int)sqrtf((float)kernelSize); - + if (kernelWidth*kernelWidth != kernelSize) { TRACELOG(LOG_WARNING, "IMAGE: Convolution kernel must be square to be applied"); @@ -2165,7 +2165,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) float aRes = 0.0f; int startRange = 0, endRange = 0; - + if (kernelWidth%2 == 0) { startRange = -kernelWidth/2; @@ -2176,7 +2176,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) startRange = -kernelWidth/2; endRange = kernelWidth/2 + 1; } - + for(int x = 0; x < image->height; x++) { for (int y = 0; y < image->width; y++) @@ -2188,14 +2188,14 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) int xkabs = xk + kernelWidth/2; int ykabs = yk + kernelWidth/2; unsigned int imgindex = image->width*(x + xk) + (y + yk); - + if (imgindex >= (unsigned int)(image->width*image->height)) { temp[kernelWidth * xkabs + ykabs].x = 0.0f; temp[kernelWidth * xkabs + ykabs].y = 0.0f; temp[kernelWidth * xkabs + ykabs].z = 0.0f; temp[kernelWidth * xkabs + ykabs].w = 0.0f; - } + } else { temp[kernelWidth * xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f*kernel[kernelWidth*xkabs + ykabs]; @@ -2245,7 +2245,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) for (int i = 0; i < (image->width*image->height); i++) { float alpha = (float)imageCopy2[i].w; - + pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f); pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f); pixels[i].b = (unsigned char)((imageCopy2[i].z)*255.0f); @@ -3875,8 +3875,8 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) // NOTE: Cubemap data is expected to be provided as 6 images in a single data array, // one after the other (that's a vertical image), following convention: +X, -X, +Y, -Y, +Z, -Z cubemap.id = rlLoadTextureCubemap(faces.data, size, faces.format); - - if (cubemap.id != 0) + + if (cubemap.id != 0) { cubemap.format = faces.format; cubemap.mipmaps = 1; From dc1cec8bab97e09656479bded3265fb420a0b073 Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Fri, 1 Mar 2024 04:34:53 -0300 Subject: [PATCH 218/790] Remove GLFW mouse passthrough hack and increase GLFW version in CMake (#3852) --- cmake/GlfwImport.cmake | 4 ++-- src/platforms/rcore_desktop.c | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index 1c267aba7..2395343c7 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -1,8 +1,8 @@ if(USE_EXTERNAL_GLFW STREQUAL "ON") - find_package(glfw3 3.3.3 REQUIRED) + find_package(glfw3 3.4 REQUIRED) elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE") - find_package(glfw3 3.3.3 QUIET) + find_package(glfw3 3.4 QUIET) endif() if (glfw3_FOUND) set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index d4c024400..29c85156c 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -84,15 +84,6 @@ #include "GLFW/glfw3native.h" // Required for: glfwGetCocoaWindow() #endif -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -// TODO: HACK: Added flag if not provided by GLFW when using external library -// Latest GLFW release (GLFW 3.3.8) does not implement this flag, it was added for 3.4.0-dev -#if !defined(GLFW_MOUSE_PASSTHROUGH) - #define GLFW_MOUSE_PASSTHROUGH 0x0002000D -#endif - //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- From 25caf14be8d0284aceaa0de28753b3012e71b7bb Mon Sep 17 00:00:00 2001 From: Caleb Barger <59521636+cabarger@users.noreply.github.com> Date: Fri, 1 Mar 2024 03:43:19 -0800 Subject: [PATCH 219/790] Fix fix-build-paths (#3849) --- src/build.zig | 53 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/src/build.zig b/src/build.zig index 5251f30ff..ed9013aca 100644 --- a/src/build.zig +++ b/src/build.zig @@ -1,16 +1,18 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested to work with zig 0.11.0, zig 0.12.0-dev.2075+f5978181e and 0.12.0-dev.2990+31763d28c +// This has been tested with zig version(s): +// 0.11.0 +// 0.12.0-dev.2075+f5978181e +// 0.12.0-dev.2990+31763d28c // -// anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type +// Anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type // was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows // us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){}; const gpa = general_purpose_allocator.allocator(); - // get the relative source path, because it is needed for addCSourceFilesVersioned - const relative = srcdir[b.build_root.path.?.len..]; + if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { @@ -53,33 +55,33 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM } addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rcore.c"), - try join2(gpa, relative, "utils.c"), + try join2(gpa, srcdir, "rcore.c"), + try join2(gpa, srcdir, "utils.c"), }, raylib_flags_arr.items); if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "raudio.c"), + try join2(gpa, srcdir, "raudio.c"), }, raylib_flags_arr.items); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rmodels.c"), + try join2(gpa, srcdir, "rmodels.c"), }, raylib_flags_arr.items); } if (options.rshapes) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rshapes.c"), + try join2(gpa, srcdir, "rshapes.c"), }, raylib_flags_arr.items); } if (options.rtext) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rtext.c"), + try join2(gpa, srcdir, "rtext.c"), }, raylib_flags_arr.items); } if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rtextures.c"), + try join2(gpa, srcdir, "rtextures.c"), }, raylib_flags_arr.items); } @@ -96,7 +98,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM switch (getOsTagVersioned(target)) { .windows => { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rglfw.c"), + try join2(gpa, srcdir, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); @@ -107,7 +109,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .linux => { if (!options.platform_drm) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rglfw.c"), + try join2(gpa, srcdir, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -137,7 +139,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .freebsd, .openbsd, .netbsd, .dragonfly => { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rglfw.c"), + try join2(gpa, srcdir, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -156,7 +158,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // On macos rglfw.c include Objective-C files. try raylib_flags_arr.append("-ObjC"); addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, relative, "rglfw.c"), + try join2(gpa, srcdir, "rglfw.c"), }, raylib_flags_arr.items); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); @@ -251,14 +253,23 @@ fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { } } -fn addCSourceFilesVersioned(exe: *std.Build.Step.Compile, files: []const []const u8, flags: []const []const u8) void { +fn addCSourceFilesVersioned( + exe: *std.Build.Step.Compile, + files: []const []const u8, + flags: []const []const u8, +) void { + //- HACK(cabarger): I hate this so much!!! if (comptime builtin.zig_version.minor >= 12) { - exe.addCSourceFiles(.{ - .files = files, - .flags = flags, - }); - } else { + for (files) |file| { + exe.addCSourceFile(.{ + .file = .{ .path = file }, + .flags = flags, + }); + } + } else if (comptime builtin.zig_version.minor == 11) { exe.addCSourceFiles(files, flags); + } else { + @compileError("Expected zig version 11 or 12"); } } From c970afeccd824f545422b1d3505b571f3eadb901 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 4 Mar 2024 19:58:49 +0100 Subject: [PATCH 220/790] Update linux.yml --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 976b67bfb..bb25cfb53 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -55,7 +55,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin mkdir build cd build mkdir ${{ env.RELEASE_NAME }} From 6e9dcdb599eb8548f49f2ae1330d5a752ed80530 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 4 Mar 2024 19:59:04 +0100 Subject: [PATCH 221/790] Update linux_examples.yml --- .github/workflows/linux_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml index 2d26b5fa5..065b99572 100644 --- a/.github/workflows/linux_examples.yml +++ b/.github/workflows/linux_examples.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Environment run: | sudo apt-get update -qq - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin - name: Build Library run: | From 85a46e42bd12a0973a22b48785b6c878b5bc58d6 Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Mon, 4 Mar 2024 15:59:26 -0300 Subject: [PATCH 222/790] CMake: Remove USE_WAYLAND option (#3851) * CMake: Remove USE_WAYLAND option * Consistency fix * Fix oversight --- CMakeLists.txt | 6 ++++++ CMakeOptions.txt | 7 ++++--- cmake/GlfwImport.cmake | 1 - 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ce2de5788..57719691a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,12 @@ include(CMakeOptions.txt) # Enforces a few environment and compiler configurations include(BuildOptions) +if (UNIX AND NOT APPLE) + if (NOT GLFW_BUILD_WAYLAND AND NOT GLFW_BUILD_X11) + MESSAGE(FATAL_ERROR "Cannot disable both Wayland and X11") + endif() +endif() + # Main sources directory (the second parameter sets the output directory name to raylib) add_subdirectory(src raylib) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 68468c07a..2c58cd5cc 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -20,9 +20,10 @@ option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF) cmake_dependent_option(USE_AUDIO "Build raylib with audio module" ON CUSTOMIZE_BUILD ON) enum_option(USE_EXTERNAL_GLFW "OFF;IF_POSSIBLE;ON" "Link raylib against system GLFW instead of embedded one") -if(UNIX AND NOT APPLE) - option(USE_WAYLAND "Use Wayland for window creation" OFF) -endif() + +# GLFW build options +option(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" ON) +option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON) option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage" OFF) set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option") diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index 2395343c7..4a5ef8c60 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -16,7 +16,6 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) - set(GLFW_BUILD_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE) set(GLFW_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE) From 7584b6aa0bb190c1aa4615d42949fe79fc89b103 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 4 Mar 2024 20:08:59 +0100 Subject: [PATCH 223/790] Update cmake.yml --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 82e3459b2..c286220b4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -86,7 +86,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system From 36dabe485c3b6c64c41a028f147c56a5634ad428 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 5 Mar 2024 13:59:36 +0100 Subject: [PATCH 224/790] Update cmake.yml --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index c286220b4..90c62d775 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -86,7 +86,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libwayland-client - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system From 2114e48393d815298d5ea1b5a415d9651f2ec656 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 5 Mar 2024 14:00:56 +0100 Subject: [PATCH 225/790] Update cmake.yml --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 90c62d775..611902f31 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -86,7 +86,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libwayland-client + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system From 38bdcafea1ec41f14dbeb6468a7270c7f653800b Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 5 Mar 2024 14:02:57 +0100 Subject: [PATCH 226/790] Update cmake.yml --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 611902f31..8a0eb0b8c 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -86,7 +86,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libxkbcommon - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system From c7b362d19dd32b00a0fce90bc9abe8afd3d4b754 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 5 Mar 2024 14:04:32 +0100 Subject: [PATCH 227/790] Update cmake.yml --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 8a0eb0b8c..58ca7d5f4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -86,7 +86,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libxkbcommon + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libxkbcommon-dev - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system From 68b553cfc157a996e92da053d9e7b8beb92de0c0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 7 Mar 2024 12:10:02 +0100 Subject: [PATCH 228/790] Update raylib.h --- src/raylib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 03045ed13..c8f765ece 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1410,7 +1410,7 @@ RLAPI void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle // Color/pixel related functions RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal RLAPI Color Fade(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f -RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color +RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color (0xRRGGBBAA) RLAPI Vector4 ColorNormalize(Color color); // Get Color normalized as float [0..1] RLAPI Color ColorFromNormalized(Vector4 normalized); // Get Color from normalized values [0..1] RLAPI Vector3 ColorToHSV(Color color); // Get HSV values for a Color, hue [0..360], saturation/value [0..1] From c1c9b69290be83c7f6400fe4bd0dd7f0e1c20d98 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 7 Mar 2024 12:10:26 +0100 Subject: [PATCH 229/790] Implemented fix for #3859 --- src/rmodels.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index 5be06b370..29b05ce32 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5810,6 +5810,12 @@ static Model LoadM3D(const char *fileName) // If no map is provided, or we have colors defined, we allocate storage for vertex colors // M3D specs only consider vertex colors if no material is provided, however raylib uses both and mixes the colors if ((mi == M3D_UNDEF) || vcolor) model.meshes[k].colors = RL_CALLOC(model.meshes[k].vertexCount*4, sizeof(unsigned char)); + + // If no map is provided and we allocated vertex colors, set them to white + if ((mi == M3D_UNDEF) && (model.meshes[k].colors != NULL)) + { + for (int c = 0; c < model.meshes[k].vertexCount*4; c++) model.meshes[k].colors[c] = 255; + } if (m3d->numbone && m3d->numskin) { From fccdfa7926260339a66a5590c0246f4c158c5970 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Thu, 7 Mar 2024 06:11:46 -0500 Subject: [PATCH 230/790] cmake: For SDL build, link the glfw dependency (#3860) --- examples/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index c5fa659ee..a9dc2c88d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -145,5 +145,11 @@ foreach (example_source ${example_sources}) endif () endforeach () +# For SDL, have rlgl_standalone link the glfw dependency. +if ("${PLATFORM}" STREQUAL "SDL") + find_package(glfw3 3.3 REQUIRED) + target_link_libraries(rlgl_standalone glfw) +endif() + # Copy all of the resource files to the destination file(COPY ${example_resources} DESTINATION "resources/") From 3b7be851515bf8ec4d9585352a5df8ba5aa85ac0 Mon Sep 17 00:00:00 2001 From: aiafrasinei Date: Thu, 7 Mar 2024 13:28:11 +0200 Subject: [PATCH 231/790] Screen space related functions consistency (#3830) * Screen/world-space related functions rename * Update raylib_api.* by CI --------- Co-authored-by: github-actions[bot] --- examples/core/core_3d_picking.c | 2 +- examples/models/models_loading.c | 2 +- examples/models/models_mesh_picking.c | 2 +- examples/text/text_draw_3d.c | 2 +- parser/output/raylib_api.json | 4 ++-- parser/output/raylib_api.lua | 4 ++-- parser/output/raylib_api.txt | 8 ++++---- parser/output/raylib_api.xml | 4 ++-- src/raylib.h | 4 ++-- src/rcore.c | 6 +++--- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/core/core_3d_picking.c b/examples/core/core_3d_picking.c index fa6fcaec3..634afba8c 100644 --- a/examples/core/core_3d_picking.c +++ b/examples/core/core_3d_picking.c @@ -60,7 +60,7 @@ int main(void) { if (!collision.hit) { - ray = GetMouseRay(GetMousePosition(), camera); + ray = GetScreenToWorldRay(GetMousePosition(), camera); // Check collision between ray and box collision = GetRayCollisionBox(ray, diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c index 8b4002d18..d35db347c 100644 --- a/examples/models/models_loading.c +++ b/examples/models/models_loading.c @@ -109,7 +109,7 @@ int main(void) if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { // Check collision between ray and box - if (GetRayCollisionBox(GetMouseRay(GetMousePosition(), camera), bounds).hit) selected = !selected; + if (GetRayCollisionBox(GetScreenToWorldRay(GetMousePosition(), camera), bounds).hit) selected = !selected; else selected = false; } //---------------------------------------------------------------------------------- diff --git a/examples/models/models_mesh_picking.c b/examples/models/models_mesh_picking.c index 4530d58a1..15723e39d 100644 --- a/examples/models/models_mesh_picking.c +++ b/examples/models/models_mesh_picking.c @@ -88,7 +88,7 @@ int main(void) Color cursorColor = WHITE; // Get ray and test against objects - ray = GetMouseRay(GetMousePosition(), camera); + ray = GetScreenToWorldRay(GetMousePosition(), camera); // Check ray collision against ground quad RayCollision groundHitInfo = GetRayCollisionQuad(ray, g0, g1, g2, g3); diff --git a/examples/text/text_draw_3d.c b/examples/text/text_draw_3d.c index b279f1b36..ed4e6ce67 100644 --- a/examples/text/text_draw_3d.c +++ b/examples/text/text_draw_3d.c @@ -195,7 +195,7 @@ int main(void) // Handle clicking the cube if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { - Ray ray = GetMouseRay(GetMousePosition(), camera); + Ray ray = GetScreenToWorldRay(GetMousePosition(), camera); // Check collision between ray and box RayCollision collision = GetRayCollisionBox(ray, diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 3aec33ef9..8a1594b23 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -3872,7 +3872,7 @@ ] }, { - "name": "GetMouseRay", + "name": "GetScreenToWorldRay", "description": "Get a ray trace from mouse position", "returnType": "Ray", "params": [ @@ -3887,7 +3887,7 @@ ] }, { - "name": "GetViewRay", + "name": "GetScreenToWorldRayEx", "description": "Get a ray trace from mouse position in a viewport", "returnType": "Ray", "params": [ diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index dbcf969f1..1d588fd6d 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -3635,7 +3635,7 @@ return { } }, { - name = "GetMouseRay", + name = "GetScreenToWorldRay", description = "Get a ray trace from mouse position", returnType = "Ray", params = { @@ -3644,7 +3644,7 @@ return { } }, { - name = "GetViewRay", + name = "GetScreenToWorldRayEx", description = "Get a ray trace from mouse position in a viewport", returnType = "Ray", params = { diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 668e84bb6..a0477b660 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -1421,14 +1421,14 @@ Function 083: UnloadShader() (1 input parameters) Return type: void Description: Unload shader from GPU memory (VRAM) Param[1]: shader (type: Shader) -Function 084: GetMouseRay() (2 input parameters) - Name: GetMouseRay +Function 084: GetScreenToWorldRay() (2 input parameters) + Name: GetScreenToWorldRay Return type: Ray Description: Get a ray trace from mouse position Param[1]: mousePosition (type: Vector2) Param[2]: camera (type: Camera) -Function 085: GetViewRay() (4 input parameters) - Name: GetViewRay +Function 085: GetScreenToWorldRayEx() (4 input parameters) + Name: GetScreenToWorldRayEx Return type: Ray Description: Get a ray trace from mouse position in a viewport Param[1]: mousePosition (type: Vector2) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index c04727367..525f81ded 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -902,11 +902,11 @@ - + - + diff --git a/src/raylib.h b/src/raylib.h index c8f765ece..3c54abacf 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1049,8 +1049,8 @@ RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) // Screen-space-related functions -RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position -RLAPI Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport +RLAPI Ray GetScreenToWorldRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position +RLAPI Ray GetScreenToWorldRayEx(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position diff --git a/src/rcore.c b/src/rcore.c index 024f0d121..5e45a49a9 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1407,13 +1407,13 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) //---------------------------------------------------------------------------------- // Get a ray trace from mouse position -Ray GetMouseRay(Vector2 mousePosition, Camera camera) +Ray GetScreenToWorldRay(Vector2 mousePosition, Camera camera) { - return GetViewRay(mousePosition, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); + return GetScreenToWorldRayEx(mousePosition, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); } // Get a ray trace from the mouse position within a specific section of the screen -Ray GetViewRay(Vector2 mousePosition, Camera camera, float width, float height) +Ray GetScreenToWorldRayEx(Vector2 mousePosition, Camera camera, float width, float height) { Ray ray = { 0 }; From b1029a40b2a9de4f0075565681336e77b86633eb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 7 Mar 2024 11:28:26 +0000 Subject: [PATCH 232/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 2 +- parser/output/raylib_api.lua | 2 +- parser/output/raylib_api.txt | 2 +- parser/output/raylib_api.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 8a1594b23..ec8d57a8c 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -8400,7 +8400,7 @@ }, { "name": "ColorToInt", - "description": "Get hexadecimal value for a Color", + "description": "Get hexadecimal value for a Color (0xRRGGBBAA)", "returnType": "int", "params": [ { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 1d588fd6d..01c1abf30 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -6174,7 +6174,7 @@ return { }, { name = "ColorToInt", - description = "Get hexadecimal value for a Color", + description = "Get hexadecimal value for a Color (0xRRGGBBAA)", returnType = "int", params = { {type = "Color", name = "color"} diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index a0477b660..d49ac33e4 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -3227,7 +3227,7 @@ Function 360: Fade() (2 input parameters) Function 361: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int - Description: Get hexadecimal value for a Color + Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) Function 362: ColorNormalize() (1 input parameters) Name: ColorNormalize diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 525f81ded..45697f24d 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -2119,7 +2119,7 @@ - + From 93a828f7444262655c91883acfcf3a2e31b8f6da Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 7 Mar 2024 12:33:37 +0100 Subject: [PATCH 233/790] REVIEWED: GetMouseRay() functions rename #3830 --- src/raylib.h | 5 +++-- src/rcore.c | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 3c54abacf..1a15e124d 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1049,8 +1049,9 @@ RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) // Screen-space-related functions -RLAPI Ray GetScreenToWorldRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position -RLAPI Ray GetScreenToWorldRayEx(Vector2 mousePosition, Camera camera, float width, float height); // Get a ray trace from mouse position in a viewport +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height); // Get a ray trace from screen position (i.e mouse) in a viewport RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position diff --git a/src/rcore.c b/src/rcore.c index 5e45a49a9..dcdc3befd 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1406,21 +1406,21 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) // Module Functions Definition: Screen-space Queries //---------------------------------------------------------------------------------- -// Get a ray trace from mouse position -Ray GetScreenToWorldRay(Vector2 mousePosition, Camera camera) +// Get a ray trace from screen position (i.e mouse) +Ray GetScreenToWorldRay(Vector2 position, Camera camera) { - return GetScreenToWorldRayEx(mousePosition, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); + return GetScreenToWorldRayEx(position, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); } -// Get a ray trace from the mouse position within a specific section of the screen -Ray GetScreenToWorldRayEx(Vector2 mousePosition, Camera camera, float width, float height) +// Get a ray trace from the screen position (i.e mouse) within a specific section of the screen +Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height) { Ray ray = { 0 }; // Calculate normalized device coordinates // NOTE: y value is negative - float x = (2.0f*mousePosition.x)/width - 1.0f; - float y = 1.0f - (2.0f*mousePosition.y)/height; + float x = (2.0f*position.x)/width - 1.0f; + float y = 1.0f - (2.0f*position.y)/height; float z = 1.0f; // Store values in a vector From 30604080ef15b5201083f0828b868f7580ff05b5 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 7 Mar 2024 12:33:45 +0100 Subject: [PATCH 234/790] Update rmodels.c --- src/rmodels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 29b05ce32..c50c065e7 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5666,7 +5666,7 @@ static Model LoadVOX(const char *fileName) // Copy indices size = voxarray.indices.used*sizeof(unsigned short); - pmesh->indices = (float *)RL_MALLOC(size); + pmesh->indices = (unsigned short *)RL_MALLOC(size); memcpy(pmesh->indices, pindices, size); pmesh->triangleCount = (pmesh->vertexCount/4)*2; From ba066656f7be07f8f3f5e9028f053068789755a4 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 8 Mar 2024 06:33:40 -0500 Subject: [PATCH 235/790] [cmake] Disable SDL rlgl_standalone example (#3861) * cmake: For SDL, disable rlgl_standalone * cmake: Only build rlgl_standalone when on Desktop, and not shared libs --- examples/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a9dc2c88d..922323674 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -115,6 +115,12 @@ elseif ("${PLATFORM}" STREQUAL "DRM") endif () +# The rlgl_standalone example only targets desktop, without shared libraries. +if (BUILD_SHARED_LIBS OR NOT ${PLATFORM} MATCHES "Desktop") + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) + +endif() + include_directories(BEFORE SYSTEM others/external/include) if (NOT TARGET raylib) @@ -145,11 +151,5 @@ foreach (example_source ${example_sources}) endif () endforeach () -# For SDL, have rlgl_standalone link the glfw dependency. -if ("${PLATFORM}" STREQUAL "SDL") - find_package(glfw3 3.3 REQUIRED) - target_link_libraries(rlgl_standalone glfw) -endif() - # Copy all of the resource files to the destination file(COPY ${example_resources} DESTINATION "resources/") From f072497551d9f03b5fbded289f8af021c103a8c0 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Sat, 9 Mar 2024 10:43:29 +0000 Subject: [PATCH 236/790] Implement IsCursorOnScreen for PLATFORM_DESKTOP_SDL (#3862) I did some testing and this seems to work okay, but it *is* different to GLFW. GLFW seems to lose "IsCursorOnScreen" for one frame upon pressing alt+tab over the window, without a different window covering it. SDL seems to have a more reasonable behavior for this case. Either way it's an edge case and I don't know the exact way to fix, likely requires internal GLFW changes. --- src/platforms/rcore_desktop_sdl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index e749cecb4..1aea68546 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1108,11 +1108,17 @@ void PollInputEvents(void) CORE.Window.currentFbo.height = height; CORE.Window.resizedLastFrame = true; } break; + case SDL_WINDOWEVENT_ENTER: + { + CORE.Input.Mouse.cursorOnScreen = true; + } break; case SDL_WINDOWEVENT_LEAVE: + { + CORE.Input.Mouse.cursorOnScreen = false; + } break; case SDL_WINDOWEVENT_HIDDEN: case SDL_WINDOWEVENT_MINIMIZED: case SDL_WINDOWEVENT_FOCUS_LOST: - case SDL_WINDOWEVENT_ENTER: case SDL_WINDOWEVENT_SHOWN: case SDL_WINDOWEVENT_FOCUS_GAINED: case SDL_WINDOWEVENT_MAXIMIZED: From 1fad8277a37b366841eff1497ca07a7042d4a014 Mon Sep 17 00:00:00 2001 From: iP Date: Mon, 11 Mar 2024 00:49:04 +0400 Subject: [PATCH 237/790] optimisation of the "bone socket" tutorial (#3864) Less matrix operations doing. --- examples/models/models_bone_socket.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/models/models_bone_socket.c b/examples/models/models_bone_socket.c index 8f62f70f7..66f952e89 100644 --- a/examples/models/models_bone_socket.c +++ b/examples/models/models_bone_socket.c @@ -144,10 +144,8 @@ int main(void) Matrix matrixTransform = QuaternionToMatrix(rotate); // Translate socket to its position in the current animation matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(transform->translation.x, transform->translation.y, transform->translation.z)); - // Rotate socket by character angle - matrixTransform = MatrixMultiply(matrixTransform, QuaternionToMatrix(characterRotate)); - // Translate socket to character position - matrixTransform = MatrixMultiply(matrixTransform, MatrixTranslate(position.x, position.y + 0.0f, position.z)); + // Transform the socket using the transform of the character (angle and translate) + matrixTransform = MatrixMultiply(matrixTransform, characterModel.transform); // Draw mesh at socket position with socket angle rotation DrawMesh(equipModel[i].meshes[0], equipModel[i].materials[1], matrixTransform); From 17d631f508fbe7772342ee9f33a0250a1c77ef7e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 12 Mar 2024 22:51:16 +0100 Subject: [PATCH 238/790] Update codeql.yml --- .github/workflows/codeql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 956812245..803e0061f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -57,7 +57,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libxkbcommon-dev - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable From 42db6badd0848109746d6186792cf6a60363d7b3 Mon Sep 17 00:00:00 2001 From: joyousblunder <156859104+joyousblunder@users.noreply.github.com> Date: Wed, 13 Mar 2024 19:33:10 -0300 Subject: [PATCH 239/790] Update BINDINGS.md (#3868) Odin's binding were bumped to 5.0 back in November 2023 --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 2a0d21ba1..275087b82 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -50,7 +50,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-Forever | auto | [Nim](https://nim-lang.org/) | ? | https://github.com/Guevara-chan/Raylib-Forever | | naylib | auto | [Nim](https://nim-lang.org/) | MIT | https://github.com/planetis-m/naylib | | node-raylib | 4.5 | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib | -| raylib-odin | 4.5 | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | +| raylib-odin | 5.0 | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | | raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings | | raylib-ocaml | **5.0** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | | TurboRaylib | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | From 9a8d73e6c32514275a0ba53fe528bcb7c2693e27 Mon Sep 17 00:00:00 2001 From: Alexandre Almeida Date: Thu, 14 Mar 2024 12:54:39 -0300 Subject: [PATCH 240/790] Fix GLFW runtime platform detection (#3863) * Fix GLFW runtime platform detection * Add libwayland-dev package to workflows * Add libxkbcommon-dev package to workflows * Add libwayland-bin package to codeql.yml * Add libwayland-client0 and libwayland-cursor0 packages to codeql.yml * Use libwayland-dev in codeql.yml * Add libxkbcommon-dev to codeql.yml * Remove libwayland-bin from linux.yml and linux_examples.yml (libwayland-dev includes it as a dependency) --------- Co-authored-by: Ray --- .github/workflows/codeql.yml | 2 +- .github/workflows/linux.yml | 2 +- .github/workflows/linux_examples.yml | 2 +- src/Makefile | 16 +- src/external/glfw/README.md | 468 +------------------------- src/external/glfw/src/cocoa_init.m | 7 +- src/external/glfw/src/cocoa_monitor.m | 3 +- src/external/glfw/src/cocoa_window.m | 28 +- src/external/glfw/src/null_window.c | 19 +- src/external/glfw/src/platform.c | 12 +- src/external/glfw/src/win32_init.c | 7 +- src/external/glfw/src/win32_window.c | 25 +- src/external/glfw/src/wl_init.c | 7 +- src/external/glfw/src/wl_window.c | 17 +- src/external/glfw/src/x11_init.c | 7 +- src/external/glfw/src/x11_window.c | 31 +- src/rglfw.c | 15 +- 17 files changed, 112 insertions(+), 556 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 803e0061f..26cc32660 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -57,7 +57,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libwayland-bin libxkbcommon-dev + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libxkbcommon-dev - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index bb25cfb53..97cf75fc2 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -55,7 +55,7 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install gcc-multilib - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libxkbcommon-dev mkdir build cd build mkdir ${{ env.RELEASE_NAME }} diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml index 065b99572..d7f3be2ea 100644 --- a/.github/workflows/linux_examples.yml +++ b/.github/workflows/linux_examples.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Environment run: | sudo apt-get update -qq - sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-bin + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libxkbcommon-dev - name: Build Library run: | diff --git a/src/Makefile b/src/Makefile index 7b8814310..7f5dd335d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -96,15 +96,15 @@ RAYLIB_MODULE_RAYGUI_PATH ?= $(RAYLIB_SRC_PATH)/../../raygui/src # Use external GLFW library instead of rglfw module USE_EXTERNAL_GLFW ?= FALSE +# Enable support for both Wayland and X11 by default on Linux when using GLFW +GLFW_LINUX_ENABLE_WAYLAND ?= TRUE +GLFW_LINUX_ENABLE_X11 ?= TRUE + # PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally # WARNING: Library is not included in raylib, it MUST be configured by users SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib -# Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system) -# NOTE: This variable is only used for PLATFORM_OS: LINUX -USE_WAYLAND_DISPLAY ?= FALSE - # Determine if the file has root access (only required to install raylib) # "whoami" prints the name of the user that calls him (so, if it is the root user, "whoami" prints "root") ROOT = $(shell whoami) @@ -407,7 +407,11 @@ endif # Use Wayland display on Linux desktop ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS), LINUX) - ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + ifeq ($(GLFW_LINUX_ENABLE_X11),TRUE) + CFLAGS += -D_GLFW_X11 + endif + + ifeq ($(GLFW_LINUX_ENABLE_WAYLAND),TRUE) CFLAGS += -D_GLFW_WAYLAND LDFLAGS += $(shell pkg-config wayland-client wayland-cursor wayland-egl xkbcommon --libs) @@ -533,7 +537,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif ifeq ($(PLATFORM_OS),LINUX) LDLIBS = -lGL -lc -lm -lpthread -ldl -lrt - ifeq ($(USE_WAYLAND_DISPLAY),FALSE) + ifeq ($(GLFW_LINUX_ENABLE_X11),TRUE) LDLIBS += -lX11 endif # TODO: On ARM 32bit arch, miniaudio requires atomics library diff --git a/src/external/glfw/README.md b/src/external/glfw/README.md index efd1383f8..c5501ffa0 100644 --- a/src/external/glfw/README.md +++ b/src/external/glfw/README.md @@ -1,458 +1,18 @@ -# GLFW +# GLFW (modified for raylib) -[![Build status](https://github.com/glfw/glfw/actions/workflows/build.yml/badge.svg)](https://github.com/glfw/glfw/actions) -[![Build status](https://ci.appveyor.com/api/projects/status/0kf0ct9831i5l6sp/branch/master?svg=true)](https://ci.appveyor.com/project/elmindreda/glfw) +This directory contains a modification of GLFW, whose official website and +upstream repository are https://glfw.org and https://github.com/glfw/glfw, +respectively. -## Introduction +In this modification, some static functions sharing the same name in different +platforms have been renamed so all of GLFW's source files can be combined into +one (as done by ``rglfw.c``). Also, the Null platform, which is not used by +raylib, has been disabled. The renamed functions are: -GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan -application development. It provides a simple, platform-independent API for -creating windows, contexts and surfaces, reading input, handling events, etc. - -GLFW natively supports Windows, macOS and Linux and other Unix-like systems. On -Linux both Wayland and X11 are supported. - -GLFW is licensed under the [zlib/libpng -license](https://www.glfw.org/license.html). - -You can [download](https://www.glfw.org/download.html) the latest stable release -as source or Windows binaries. Each release starting with 3.0 also has -a corresponding [annotated tag](https://github.com/glfw/glfw/releases) with -source and binary archives. - -The [documentation](https://www.glfw.org/docs/latest/) is available online and is -included in all source and binary archives. See the [release -notes](https://www.glfw.org/docs/latest/news.html) for new features, caveats and -deprecations in the latest release. For more details see the [version -history](https://www.glfw.org/changelog.html). - -The `master` branch is the stable integration branch and _should_ always compile -and run on all supported platforms, although details of newly added features may -change until they have been included in a release. New features and many bug -fixes live in [other branches](https://github.com/glfw/glfw/branches/all) until -they are stable enough to merge. - -If you are new to GLFW, you may find the -[tutorial](https://www.glfw.org/docs/latest/quick.html) for GLFW 3 useful. If -you have used GLFW 2 in the past, there is a [transition -guide](https://www.glfw.org/docs/latest/moving.html) for moving to the GLFW -3 API. - -GLFW exists because of the contributions of [many people](CONTRIBUTORS.md) -around the world, whether by reporting bugs, providing community support, adding -features, reviewing or testing code, debugging, proofreading docs, suggesting -features or fixing bugs. - - -## Compiling GLFW - -GLFW is written primarily in C99, with parts of macOS support being written in -Objective-C. GLFW itself requires only the headers and libraries for your OS -and window system. It does not need any additional headers for context creation -APIs (WGL, GLX, EGL, NSGL, OSMesa) or rendering APIs (OpenGL, OpenGL ES, Vulkan) -to enable support for them. - -GLFW supports compilation on Windows with Visual C++ 2013 and later, MinGW and -MinGW-w64, on macOS with Clang and on Linux and other Unix-like systems with GCC -and Clang. It will likely compile in other environments as well, but this is -not regularly tested. - -There are [pre-compiled binaries](https://www.glfw.org/download.html) available -for all supported compilers on Windows and macOS. - -See the [compilation guide](https://www.glfw.org/docs/latest/compile.html) for -more information about how to compile GLFW yourself. - - -## Using GLFW - -See the [documentation](https://www.glfw.org/docs/latest/) for tutorials, guides -and the API reference. - - -## Contributing to GLFW - -See the [contribution -guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for -more information. - - -## System requirements - -GLFW supports Windows XP and later and macOS 10.8 and later. Linux and other -Unix-like systems running the X Window System are supported even without -a desktop environment or modern extensions, although some features require -a running window or clipboard manager. The OSMesa backend requires Mesa 6.3. - -See the [compatibility guide](https://www.glfw.org/docs/latest/compat.html) -in the documentation for more information. - - -## Dependencies - -GLFW itself needs only CMake 3.1 or later and the headers and libraries for your -OS and window system. - -The examples and test programs depend on a number of tiny libraries. These are -located in the `deps/` directory. - - - [getopt\_port](https://github.com/kimgr/getopt_port/) for examples - with command-line options - - [TinyCThread](https://github.com/tinycthread/tinycthread) for threaded - examples - - [glad2](https://github.com/Dav1dde/glad) for loading OpenGL and Vulkan - functions - - [linmath.h](https://github.com/datenwolf/linmath.h) for linear algebra in - examples - - [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) for test and example UI - - [stb\_image\_write](https://github.com/nothings/stb) for writing images to disk - -The documentation is generated with [Doxygen](https://doxygen.org/) if CMake can -find that tool. - - -## Reporting bugs - -Bugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues). -Please check the [contribution -guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for -information on what to include when reporting a bug. - - -## Changelog since 3.3.10 - - - Added `GLFW_PLATFORM` init hint for runtime platform selection (#1958) - - Added `GLFW_ANY_PLATFORM`, `GLFW_PLATFORM_WIN32`, `GLFW_PLATFORM_COCOA`, - `GLFW_PLATFORM_WAYLAND`, `GLFW_PLATFORM_X11` and `GLFW_PLATFORM_NULL` symbols to - specify the desired platform (#1958) - - Added `glfwGetPlatform` function to query what platform was selected (#1655,#1958) - - Added `glfwPlatformSupported` function to query if a platform is supported - (#1655,#1958) - - Added `glfwInitAllocator` for setting a custom memory allocator (#544,#1628,#1947) - - Added `GLFWallocator` struct and `GLFWallocatefun`, `GLFWreallocatefun` and - `GLFWdeallocatefun` types (#544,#1628,#1947) - - Added `glfwGetWindowTitle` function for querying window title (#1448,#1909,#2482) - - Added `glfwInitVulkanLoader` for using a non-default Vulkan loader (#1374,#1890) - - Added `GLFW_RESIZE_NWSE_CURSOR`, `GLFW_RESIZE_NESW_CURSOR`, - `GLFW_RESIZE_ALL_CURSOR` and `GLFW_NOT_ALLOWED_CURSOR` cursor shapes (#427) - - Added `GLFW_RESIZE_EW_CURSOR` alias for `GLFW_HRESIZE_CURSOR` (#427) - - Added `GLFW_RESIZE_NS_CURSOR` alias for `GLFW_VRESIZE_CURSOR` (#427) - - Added `GLFW_POINTING_HAND_CURSOR` alias for `GLFW_HAND_CURSOR` (#427) - - Added `GLFW_MOUSE_PASSTHROUGH` window hint for letting mouse input pass - through the window (#1236,#1568) - - Added `GLFW_CURSOR_CAPTURED` cursor mode to confine the cursor to the window - content area (#58) - - Added `GLFW_POSITION_X` and `GLFW_POSITION_Y` window hints for initial position - (#1603,#1747) - - Added `GLFW_SCALE_FRAMEBUFFER` window hint for Wayland and macOS scaling (#2457) - - Added `GLFW_ANY_POSITION` hint value for letting the window manager choose (#1603,#1747) - - Added `GLFW_PLATFORM_UNAVAILABLE` error for platform detection failures (#1958) - - Added `GLFW_FEATURE_UNAVAILABLE` error for platform limitations (#1692) - - Added `GLFW_FEATURE_UNIMPLEMENTED` error for incomplete backends (#1692) - - Added `GLFW_WAYLAND_APP_ID` window hint string for Wayland app\_id selection - (#2121,#2122) - - Added `GLFW_ANGLE_PLATFORM_TYPE` init hint and `GLFW_ANGLE_PLATFORM_TYPE_*` - values to select ANGLE backend (#1380) - - Added `GLFW_X11_XCB_VULKAN_SURFACE` init hint for selecting X11 Vulkan - surface extension (#1793) - - Added `GLFW_WIN32_KEYBOARD_MENU` window hint for enabling access to the window menu - - Added `GLFW_WIN32_SHOWDEFAULT` window hint for applying the parent process - show command (#2359) - - Added `GLFW_NATIVE_INCLUDE_NONE` for disabling inclusion of native headers (#1348) - - Added `GLFW_BUILD_WIN32` CMake option for enabling Win32 support (#1958) - - Added `GLFW_BUILD_COCOA` CMake option for enabling Cocoa support (#1958) - - Added `GLFW_BUILD_X11` CMake option for enabling X11 support (#1958) - - Added `GLFW_LIBRARY_TYPE` CMake variable for overriding the library type - (#279,#1307,#1497,#1574,#1928) - - Added support for `XDG_SESSION_TYPE` environment variable - - Added `GLFW_PKG_CONFIG_REQUIRES_PRIVATE` and `GLFW_PKG_CONFIG_LIBS_PRIVATE` CMake - variables exposing pkg-config dependencies (#1307) - - Made joystick subsystem initialize at first use (#1284,#1646) - - Made `GLFW_DOUBLEBUFFER` a read-only window attribute - - Made Wayland the preferred platform over X11 if both are available (#2035) - - Updated the minimum required CMake version to 3.4 - - Updated gamepad mappings from upstream - - Renamed `GLFW_USE_WAYLAND` CMake option to `GLFW_BUILD_WAYLAND` (#1958) - - Disabled tests and examples by default when built as a CMake subdirectory - - Removed `GLFW_USE_OSMESA` CMake option enabling the Null platform (#1958) - - Removed CMake generated configuration header - - Bugfix: `glfwGetVideoMode` returned an invalid mode on error (#1292) - - [Win32] Added a version info resource to the GLFW DLL - - [Win32] Made hidden helper window use its own window class - - [Win32] Bugfix: The foreground lock timeout was overridden, ignoring the user - - [Cocoa] Added `glfwGetCocoaView` native access function (#2235) - - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) - - [Cocoa] Bugfix: Touching event queue from secondary thread before main thread - would abort (#1649) - - [Wayland] Added support for `glfwRequestWindowAttention` (#2287) - - [Wayland] Added support for `glfwFocusWindow` - - [Wayland] Added support for `GLFW_RESIZABLE` (#2203) - - [Wayland] Added support for fractional scaling of window contents - - [Wayland] Added dynamic loading of all Wayland libraries - - [Wayland] Bugfix: `CLOCK_MONOTONIC` was not correctly enabled - - [Wayland] Bugfix: `GLFW_HOVERED` was true when the cursor was over any - fallback window decoration - - [Wayland] Bugfix: Fallback decorations allowed resizing to invalid size - (#2204) - - [X11] Bugfix: Termination would segfault if the IM had been destroyed - - [X11] Bugfix: Any IM started after initialization would not be detected - - [Linux] Bugfix: Joystick evdev fds remained open in forks (#2446) - - [POSIX] Removed use of deprecated function `gettimeofday` - - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled - - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072) - - [NSGL] Removed enforcement of forward-compatible flag for core contexts - - [NSGL] Bugfix: A core profile OpenGL context was returned if 3.2+ - compatibility profile was requested - - [EGL] Added platform selection via the `EGL_EXT_platform_base` extension - (#442) - - [EGL] Added ANGLE backend selection via `EGL_ANGLE_platform_angle` extension - (#1380) - - -## Changelog since 3.3 - - - Added `GLFW_WAYLAND_LIBDECOR` init hint for disabling libdecor support (#1639,#1693) - - Bugfix: The CMake config-file package used an absolute path and was not - relocatable (#1470) - - Bugfix: Video modes with a duplicate screen area were discarded (#1555,#1556) - - Bugfix: Compiling with -Wextra-semi caused warnings (#1440) - - Bugfix: Built-in mappings failed because some OEMs re-used VID/PID (#1583) - - Bugfix: Some extension loader headers did not prevent default OpenGL header - inclusion (#1695) - - Bugfix: Buffers were swapped at creation on single-buffered windows (#1873) - - Bugfix: Gamepad mapping updates could spam `GLFW_INVALID_VALUE` due to - incompatible controllers sharing hardware ID (#1763) - - Bugfix: Native access functions for context handles did not check that the API matched - - Bugfix: `glfwMakeContextCurrent` would access TLS slot before initialization - - Bugfix: `glfwSetGammaRamp` could emit `GLFW_INVALID_VALUE` before initialization - - Bugfix: `glfwGetJoystickUserPointer` returned `NULL` during disconnection (#2092) - - Bugfix: `glfwGetKeyScancode` returned `0` on error when initialized instead of `-1` - - Bugfix: Failure to make a newly created context current could cause segfault (#2327) - - [Win32] Disabled framebuffer transparency on Windows 7 when DWM windows are - opaque (#1512) - - [Win32] Bugfix: `GLFW_INCLUDE_VULKAN` plus `VK_USE_PLATFORM_WIN32_KHR` caused - symbol redefinition (#1524) - - [Win32] Bugfix: The cursor position event was emitted before its cursor enter - event (#1490) - - [Win32] Bugfix: The window hint `GLFW_MAXIMIZED` did not move or resize the - window (#1499) - - [Win32] Bugfix: Disabled cursor mode interfered with some non-client actions - - [Win32] Bugfix: Super key was not released after Win+V hotkey (#1622) - - [Win32] Bugfix: `glfwGetKeyName` could access out of bounds and return an - invalid pointer - - [Win32] Bugfix: Some synthetic key events were reported as `GLFW_KEY_UNKNOWN` - (#1623) - - [Win32] Bugfix: Non-BMP Unicode codepoint input was reported as UTF-16 - - [Win32] Bugfix: Monitor functions could return invalid values after - configuration change (#1761) - - [Win32] Bugfix: Initialization would segfault on Windows 8 (not 8.1) (#1775) - - [Win32] Bugfix: Duplicate size events were not filtered (#1610) - - [Win32] Bugfix: Full screen windows were incorrectly resized by DPI changes - (#1582) - - [Win32] Bugfix: `GLFW_SCALE_TO_MONITOR` had no effect on systems older than - Windows 10 version 1703 (#1511) - - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or - later (#1783,#1796) - - [Win32] Bugfix: Compilation with LLVM for Windows failed (#1807,#1824,#1874) - - [Win32] Bugfix: Content scale queries could fail silently (#1615) - - [Win32] Bugfix: Content scales could have garbage values if monitor was recently - disconnected (#1615) - - [Win32] Bugfix: A window created maximized and undecorated would cover the whole - monitor (#1806) - - [Win32] Bugfix: The default restored window position was lost when creating a maximized - window - - [Win32] Bugfix: `glfwMaximizeWindow` would make a hidden window visible - - [Win32] Bugfix: `Alt+PrtSc` would emit `GLFW_KEY_UNKNOWN` and a different - scancode than `PrtSc` (#1993) - - [Win32] Bugfix: `GLFW_KEY_PAUSE` scancode from `glfwGetKeyScancode` did not - match event scancode (#1993) - - [Win32] Bugfix: Instance-local operations used executable instance (#469,#1296,#1395) - - [Win32] Bugfix: The OSMesa library was not unloaded on termination - - [Win32] Bugfix: Right shift emitted `GLFW_KEY_UNKNOWN` when using a CJK IME (#2050) - - [Win32] Bugfix: `glfwWaitEventsTimeout` did not return for some sent messages (#2408) - - [Win32] Bugfix: Fix pkg-config for dynamic library on Windows (#2386, #2420) - - [Win32] Bugfix: XInput could reportedly provide invalid DPad bit masks (#2291) - - [Win32] Bugfix: Rapid clipboard calls could fail due to Clipboard History - - [Win32] Bugfix: Disabled cursor mode doesn't work right when connected over RDP (#1276,#1279,#2431) - - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619) - - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle - - [Cocoa] Changed `EGLNativeWindowType` from `NSView` to `CALayer` (#1169) - - [Cocoa] Changed F13 key to report Print Screen for cross-platform consistency - (#1786) - - [Cocoa] Disabled macOS fullscreen when `GLFW_RESIZABLE` is false - - [Cocoa] Removed dependency on the CoreVideo framework - - [Cocoa] Bugfix: `glfwSetWindowSize` used a bottom-left anchor point (#1553) - - [Cocoa] Bugfix: Window remained on screen after destruction until event poll - (#1412) - - [Cocoa] Bugfix: Event processing before window creation would assert (#1543) - - [Cocoa] Bugfix: Undecorated windows could not be iconified on recent macOS - - [Cocoa] Bugfix: Non-BMP Unicode codepoint input was reported as UTF-16 - (#1635) - - [Cocoa] Bugfix: Failing to retrieve the refresh rate of built-in displays - could leak memory - - [Cocoa] Bugfix: Objective-C files were compiled as C with CMake 3.19 (#1787) - - [Cocoa] Bugfix: Duplicate video modes were not filtered out (#1830) - - [Cocoa] Bugfix: Menu bar was not clickable on macOS 10.15+ until it lost and - regained focus (#1648,#1802) - - [Cocoa] Bugfix: Monitor name query could segfault on macOS 11 (#1809,#1833) - - [Cocoa] Bugfix: The install name of the installed dylib was relative (#1504) - - [Cocoa] Bugfix: The MoltenVK layer contents scale was updated only after - related events were emitted - - [Cocoa] Bugfix: Moving the cursor programmatically would freeze it for - a fraction of a second (#1962) - - [Cocoa] Bugfix: `kIOMasterPortDefault` was deprecated in macOS 12.0 (#1980) - - [Cocoa] Bugfix: `kUTTypeURL` was deprecated in macOS 12.0 (#2003) - - [Cocoa] Bugfix: A connected Apple AirPlay would emit a useless error (#1791) - - [Cocoa] Bugfix: The EGL and OSMesa libraries were not unloaded on termination - - [Cocoa] Bugfix: `GLFW_MAXIMIZED` was always true when `GLFW_RESIZABLE` was false - - [Cocoa] Bugfix: Changing `GLFW_DECORATED` in macOS fullscreen would abort - application (#1886) - - [Cocoa] Bugfix: Setting a monitor from macOS fullscreen would abort - application (#2110) - - [Cocoa] Bugfix: The Vulkan loader was not loaded from the `Frameworks` bundle - subdirectory (#2113,#2120) - - [Cocoa] Bugfix: Compilation failed on OS X 10.8 due to unconditional use of 10.9+ - symbols (#2161) - - [Cocoa] Bugfix: Querying joystick elements could reportedly segfault on macOS - 13 Ventura (#2320) - - [X11] Bugfix: The CMake files did not check for the XInput headers (#1480) - - [X11] Bugfix: Key names were not updated when the keyboard layout changed - (#1462,#1528) - - [X11] Bugfix: Decorations could not be enabled after window creation (#1566) - - [X11] Bugfix: Content scale fallback value could be inconsistent (#1578) - - [X11] Bugfix: `glfwMaximizeWindow` had no effect on hidden windows - - [X11] Bugfix: Clearing `GLFW_FLOATING` on a hidden window caused invalid read - - [X11] Bugfix: Changing `GLFW_FLOATING` on a hidden window could silently fail - - [X11] Bugfix: Disabled cursor mode was interrupted by indicator windows - - [X11] Bugfix: Monitor physical dimensions could be reported as zero mm - - [X11] Bugfix: Window position events were not emitted during resizing (#1613) - - [X11] Bugfix: `glfwFocusWindow` could terminate on older WMs or without a WM - - [X11] Bugfix: Querying a disconnected monitor could segfault (#1602) - - [X11] Bugfix: IME input of CJK was broken for "C" locale (#1587,#1636) - - [X11] Bugfix: Xlib errors caused by other parts of the application could be - reported as GLFW errors - - [X11] Bugfix: A handle race condition could cause a `BadWindow` error (#1633) - - [X11] Bugfix: XKB path used keysyms instead of physical locations for - non-printable keys (#1598) - - [X11] Bugfix: Function keys were mapped to `GLFW_KEY_UNKNOWN` for some layout - combinations (#1598) - - [X11] Bugfix: Keys pressed simultaneously with others were not always - reported (#1112,#1415,#1472,#1616) - - [X11] Bugfix: Some window attributes were not applied on leaving fullscreen - (#1863) - - [X11] Bugfix: Changing `GLFW_FLOATING` could leak memory - - [X11] Bugfix: Icon pixel format conversion worked only by accident, relying on - undefined behavior (#1986) - - [X11] Bugfix: Dynamic loading on OpenBSD failed due to soname differences - - [X11] Bugfix: Waiting for events would fail if file descriptor was too large - (#2024) - - [X11] Bugfix: Joystick events could lead to busy-waiting (#1872) - - [X11] Bugfix: `glfwWaitEvents*` did not continue for joystick events - - [X11] Bugfix: `glfwPostEmptyEvent` could be ignored due to race condition - (#379,#1281,#1285,#2033) - - [X11] Bugfix: Dynamic loading on NetBSD failed due to soname differences - - [X11] Bugfix: Left shift of int constant relied on undefined behavior (#1951) - - [X11] Bugfix: The OSMesa libray was not unloaded on termination - - [X11] Bugfix: A malformed response during selection transfer could cause a segfault - - [X11] Bugfix: Some calls would reset Xlib to the default error handler (#2108) - - [Wayland] Added improved fallback window decorations via libdecor (#1639,#1693) - - [Wayland] Added support for key names via xkbcommon - - [Wayland] Added support for file path drop events (#2040) - - [Wayland] Added support for more human-readable monitor names where available - - [Wayland] Disabled alpha channel for opaque windows on systems lacking - `EGL_EXT_present_opaque` (#1895) - - [Wayland] Removed support for `wl_shell` (#1443) - - [Wayland] Bugfix: The `GLFW_HAND_CURSOR` shape used the wrong image (#1432) - - [Wayland] Bugfix: Repeated keys could be reported with `NULL` window (#1704) - - [Wayland] Bugfix: Retrieving partial framebuffer size would segfault - - [Wayland] Bugfix: Scrolling offsets were inverted compared to other platforms - (#1463) - - [Wayland] Bugfix: Client-Side Decorations were destroyed in the wrong order - (#1798) - - [Wayland] Bugfix: Monitors physical size could report zero (#1784,#1792) - - [Wayland] Bugfix: Some keys were not repeating in Wayland (#1908) - - [Wayland] Bugfix: Non-arrow cursors are offset from the hotspot (#1706,#1899) - - [Wayland] Bugfix: The `O_CLOEXEC` flag was not defined on FreeBSD - - [Wayland] Bugfix: Key repeat could lead to a race condition (#1710) - - [Wayland] Bugfix: Activating a window would emit two input focus events - - [Wayland] Bugfix: Disable key repeat mechanism when window loses input focus - - [Wayland] Bugfix: Window hiding and showing did not work (#1492,#1731) - - [Wayland] Bugfix: A key being repeated was not released when window lost focus - - [Wayland] Bugfix: Showing a hidden window did not emit a window refresh event - - [Wayland] Bugfix: Full screen window creation did not ignore `GLFW_VISIBLE` - - [Wayland] Bugfix: Some keys were reported as wrong key or `GLFW_KEY_UNKNOWN` - - [Wayland] Bugfix: Text input did not repeat along with key repeat - - [Wayland] Bugfix: `glfwPostEmptyEvent` sometimes had no effect (#1520,#1521) - - [Wayland] Bugfix: `glfwSetClipboardString` would fail if set to result of - `glfwGetClipboardString` - - [Wayland] Bugfix: Data source creation error would cause double free at termination - - [Wayland] Bugfix: Partial writes of clipboard string would cause beginning to repeat - - [Wayland] Bugfix: Some errors would cause clipboard string transfer to hang - - [Wayland] Bugfix: Drag and drop data was misinterpreted as clipboard string - - [Wayland] Bugfix: MIME type matching was not performed for clipboard string - - [Wayland] Bugfix: The OSMesa library was not unloaded on termination - - [Wayland] Bugfix: `glfwCreateWindow` could emit `GLFW_FEATURE_UNAVAILABLE` - - [Wayland] Bugfix: Lock key modifier bits were only set when lock keys were pressed - - [Wayland] Bugfix: A window leaving full screen mode would be iconified (#1995) - - [Wayland] Bugfix: A window leaving full screen mode ignored its desired size - - [Wayland] Bugfix: `glfwSetWindowMonitor` did not update windowed mode size - - [Wayland] Bugfix: `glfwRestoreWindow` would make a full screen window windowed - - [Wayland] Bugfix: A window maximized or restored by the user would enter an - inconsistent state - - [Wayland] Bugfix: Window maximization events were not emitted - - [Wayland] Bugfix: `glfwRestoreWindow` assumed it was always in windowed mode - - [Wayland] Bugfix: `glfwSetWindowSize` would resize a full screen window - - [Wayland] Bugfix: A window content scale event would be emitted every time - the window resized - - [Wayland] Bugfix: If `glfwInit` failed it would close stdin - - [Wayland] Bugfix: Manual resizing with fallback decorations behaved erratically - (#1991,#2115,#2127) - - [Wayland] Bugfix: Size limits included frame size for fallback decorations - - [Wayland] Bugfix: Updating `GLFW_DECORATED` had no effect on server-side - decorations - - [Wayland] Bugfix: A monitor would be reported as connected again if its scale - changed - - [Wayland] Bugfix: `glfwTerminate` would segfault if any monitor had changed - scale - - [Wayland] Bugfix: Window content scale events were not emitted when monitor - scale changed - - [Wayland] Bugfix: `glfwSetWindowAspectRatio` reported an error instead of - applying the specified ratio - - [Wayland] Bugfix: `GLFW_MAXIMIZED` window hint had no effect - - [Wayland] Bugfix: `glfwRestoreWindow` had no effect before first show - - [Wayland] Bugfix: Hiding and then showing a window caused program abort on - wlroots compositors (#1268) - - [Wayland] Bugfix: `GLFW_DECORATED` was ignored when showing a window with XDG - decorations - - [Wayland] Bugfix: Connecting a mouse after `glfwInit` would segfault (#1450) - - [Wayland] Bugfix: Joysticks connected after `glfwInit` were not detected (#2198) - - [Wayland] Bugfix: Fallback decorations emitted `GLFW_CURSOR_UNAVAILABLE` errors - - [Linux] Bugfix: Joysticks without buttons were ignored (#2042,#2043) - - [Linux] Bugfix: A small amount of memory could leak if initialization failed (#2229) - - [NSGL] Bugfix: `GLFW_COCOA_RETINA_FRAMEBUFFER` had no effect on newer - macOS versions (#1442) - - [NSGL] Bugfix: Workaround for swap interval on 10.14 broke on 10.12 (#1483) - - [NSGL] Bugfix: Defining `GL_SILENCE_DEPRECATION` externally caused - a duplicate definition warning (#1840) - - [EGL] Added loading of glvnd `libOpenGL.so.0` where available for OpenGL - - [EGL] Bugfix: The `GLFW_DOUBLEBUFFER` context attribute was ignored (#1843) - - [EGL] Bugfix: Setting `GLFW_CONTEXT_DEBUG` caused creation to fail (#2348) - - [GLX] Added loading of glvnd `libGLX.so.0` where available - - [GLX] Bugfix: Context creation failed if GLX 1.4 was not exported by GLX library - - -## Contact - -On [glfw.org](https://www.glfw.org/) you can find the latest version of GLFW, as -well as news, documentation and other information about the project. - -If you have questions related to the use of GLFW, we have a -[forum](https://discourse.glfw.org/). - -If you have a bug to report, a patch to submit or a feature you'd like to -request, please file it in the -[issue tracker](https://github.com/glfw/glfw/issues) on GitHub. - -Finally, if you're interested in helping out with the development of GLFW or -porting it to your favorite platform, join us on the forum or GitHub. +`` +createKeyTables() +translateKey() +acquireMonitor() +releaseMonitor() +`` diff --git a/src/external/glfw/src/cocoa_init.m b/src/external/glfw/src/cocoa_init.m index e75a55190..f34d985eb 100644 --- a/src/external/glfw/src/cocoa_init.m +++ b/src/external/glfw/src/cocoa_init.m @@ -1,7 +1,8 @@ //======================================================================== -// GLFW 3.4 macOS - www.glfw.org +// GLFW 3.4 macOS (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2009-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -175,7 +176,7 @@ static void createMenuBar(void) // Create key code translation tables // -static void createKeyTables(void) +static void createKeyTablesCocoa(void) { memset(_glfw.ns.keycodes, -1, sizeof(_glfw.ns.keycodes)); memset(_glfw.ns.scancodes, -1, sizeof(_glfw.ns.scancodes)); @@ -618,7 +619,7 @@ int _glfwInitCocoa(void) name:NSTextInputContextKeyboardSelectionDidChangeNotification object:nil]; - createKeyTables(); + createKeyTablesCocoa(); _glfw.ns.eventSource = CGEventSourceCreate(kCGEventSourceStateHIDSystemState); if (!_glfw.ns.eventSource) diff --git a/src/external/glfw/src/cocoa_monitor.m b/src/external/glfw/src/cocoa_monitor.m index 641d5f0b8..a2bcc2f49 100644 --- a/src/external/glfw/src/cocoa_monitor.m +++ b/src/external/glfw/src/cocoa_monitor.m @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 macOS - www.glfw.org +// GLFW 3.4 macOS (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages diff --git a/src/external/glfw/src/cocoa_window.m b/src/external/glfw/src/cocoa_window.m index 0dcf0a38d..949cace8d 100644 --- a/src/external/glfw/src/cocoa_window.m +++ b/src/external/glfw/src/cocoa_window.m @@ -111,7 +111,7 @@ static void updateCursorMode(_GLFWwindow* window) // Make the specified window and its video mode active on its monitor // -static void acquireMonitor(_GLFWwindow* window) +static void acquireMonitorCocoa(_GLFWwindow* window) { _glfwSetVideoModeCocoa(window->monitor, &window->videoMode); const CGRect bounds = CGDisplayBounds(window->monitor->ns.displayID); @@ -127,7 +127,7 @@ static void acquireMonitor(_GLFWwindow* window) // Remove the window and restore the original video mode // -static void releaseMonitor(_GLFWwindow* window) +static void releaseMonitorCocoa(_GLFWwindow* window) { if (window->monitor->window != window) return; @@ -158,7 +158,7 @@ static int translateFlags(NSUInteger flags) // Translates a macOS keycode to a GLFW keycode // -static int translateKey(unsigned int key) +static int translateKeyCocoa(unsigned int key) { if (key >= sizeof(_glfw.ns.keycodes) / sizeof(_glfw.ns.keycodes[0])) return GLFW_KEY_UNKNOWN; @@ -277,7 +277,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)windowDidMiniaturize:(NSNotification *)notification { if (window->monitor) - releaseMonitor(window); + releaseMonitorCocoa(window); _glfwInputWindowIconify(window, GLFW_TRUE); } @@ -285,7 +285,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)windowDidDeminiaturize:(NSNotification *)notification { if (window->monitor) - acquireMonitor(window); + acquireMonitorCocoa(window); _glfwInputWindowIconify(window, GLFW_FALSE); } @@ -561,7 +561,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)keyDown:(NSEvent *)event { - const int key = translateKey([event keyCode]); + const int key = translateKeyCocoa([event keyCode]); const int mods = translateFlags([event modifierFlags]); _glfwInputKey(window, key, [event keyCode], GLFW_PRESS, mods); @@ -574,7 +574,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; int action; const unsigned int modifierFlags = [event modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask; - const int key = translateKey([event keyCode]); + const int key = translateKeyCocoa([event keyCode]); const int mods = translateFlags(modifierFlags); const NSUInteger keyFlag = translateKeyToModifierFlag(key); @@ -593,7 +593,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)keyUp:(NSEvent *)event { - const int key = translateKey([event keyCode]); + const int key = translateKeyCocoa([event keyCode]); const int mods = translateFlags([event modifierFlags]); _glfwInputKey(window, key, [event keyCode], GLFW_RELEASE, mods); } @@ -966,7 +966,7 @@ GLFWbool _glfwCreateWindowCocoa(_GLFWwindow* window, { _glfwShowWindowCocoa(window); _glfwFocusWindowCocoa(window); - acquireMonitor(window); + acquireMonitorCocoa(window); if (wndconfig->centerCursor) _glfwCenterCursorInContentArea(window); @@ -996,7 +996,7 @@ void _glfwDestroyWindowCocoa(_GLFWwindow* window) [window->ns.object orderOut:nil]; if (window->monitor) - releaseMonitor(window); + releaseMonitorCocoa(window); if (window->context.destroy) window->context.destroy(window); @@ -1083,7 +1083,7 @@ void _glfwSetWindowSizeCocoa(_GLFWwindow* window, int width, int height) if (window->monitor) { if (window->monitor->window == window) - acquireMonitor(window); + acquireMonitorCocoa(window); } else { @@ -1252,7 +1252,7 @@ void _glfwSetWindowMonitorCocoa(_GLFWwindow* window, if (monitor) { if (monitor->window == window) - acquireMonitor(window); + acquireMonitorCocoa(window); } else { @@ -1270,7 +1270,7 @@ void _glfwSetWindowMonitorCocoa(_GLFWwindow* window, } if (window->monitor) - releaseMonitor(window); + releaseMonitorCocoa(window); _glfwInputWindowMonitor(window, monitor); @@ -1308,7 +1308,7 @@ void _glfwSetWindowMonitorCocoa(_GLFWwindow* window, [window->ns.object setLevel:NSMainMenuWindowLevel + 1]; [window->ns.object setHasShadow:NO]; - acquireMonitor(window); + acquireMonitorCocoa(window); } else { diff --git a/src/external/glfw/src/null_window.c b/src/external/glfw/src/null_window.c index 1db08114f..cd23ae0bb 100644 --- a/src/external/glfw/src/null_window.c +++ b/src/external/glfw/src/null_window.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 - www.glfw.org +// GLFW 3.4 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2016 Google Inc. // Copyright (c) 2016-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -59,12 +60,12 @@ static void fitToMonitor(_GLFWwindow* window) window->null.height = mode.height; } -static void acquireMonitor(_GLFWwindow* window) +static void acquireMonitorNull(_GLFWwindow* window) { _glfwInputMonitorWindow(window->monitor, window); } -static void releaseMonitor(_GLFWwindow* window) +static void releaseMonitorNull(_GLFWwindow* window) { if (window->monitor->window != window) return; @@ -147,7 +148,7 @@ GLFWbool _glfwCreateWindowNull(_GLFWwindow* window, { _glfwShowWindowNull(window); _glfwFocusWindowNull(window); - acquireMonitor(window); + acquireMonitorNull(window); if (wndconfig->centerCursor) _glfwCenterCursorInContentArea(window); @@ -168,7 +169,7 @@ GLFWbool _glfwCreateWindowNull(_GLFWwindow* window, void _glfwDestroyWindowNull(_GLFWwindow* window) { if (window->monitor) - releaseMonitor(window); + releaseMonitorNull(window); if (_glfw.null.focusedWindow == window) _glfw.null.focusedWindow = NULL; @@ -203,14 +204,14 @@ void _glfwSetWindowMonitorNull(_GLFWwindow* window, } if (window->monitor) - releaseMonitor(window); + releaseMonitorNull(window); _glfwInputWindowMonitor(window, monitor); if (window->monitor) { window->null.visible = GLFW_TRUE; - acquireMonitor(window); + acquireMonitorNull(window); fitToMonitor(window); } else @@ -340,7 +341,7 @@ void _glfwIconifyWindowNull(_GLFWwindow* window) _glfwInputWindowIconify(window, GLFW_TRUE); if (window->monitor) - releaseMonitor(window); + releaseMonitorNull(window); } } @@ -352,7 +353,7 @@ void _glfwRestoreWindowNull(_GLFWwindow* window) _glfwInputWindowIconify(window, GLFW_FALSE); if (window->monitor) - acquireMonitor(window); + acquireMonitorNull(window); } else if (window->null.maximized) { diff --git a/src/external/glfw/src/platform.c b/src/external/glfw/src/platform.c index af1b0f446..c4b0a36e4 100644 --- a/src/external/glfw/src/platform.c +++ b/src/external/glfw/src/platform.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 - www.glfw.org +// GLFW 3.4 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2018 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -74,15 +75,6 @@ GLFWbool _glfwSelectPlatform(int desiredID, _GLFWplatform* platform) return GLFW_FALSE; } - // Only allow the Null platform if specifically requested - if (desiredID == GLFW_PLATFORM_NULL) - return _glfwConnectNull(desiredID, platform); - else if (count == 0) - { - _glfwInputError(GLFW_PLATFORM_UNAVAILABLE, "This binary only supports the Null platform"); - return GLFW_FALSE; - } - #if defined(_GLFW_WAYLAND) && defined(_GLFW_X11) if (desiredID == GLFW_ANY_PLATFORM) { diff --git a/src/external/glfw/src/win32_init.c b/src/external/glfw/src/win32_init.c index 824e383ce..d86e35e32 100644 --- a/src/external/glfw/src/win32_init.c +++ b/src/external/glfw/src/win32_init.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 Win32 - www.glfw.org +// GLFW 3.4 Win32 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -195,7 +196,7 @@ static void freeLibraries(void) // Create key code translation tables // -static void createKeyTables(void) +static void createKeyTablesWin32(void) { int scancode; @@ -685,7 +686,7 @@ int _glfwInitWin32(void) if (!loadLibraries()) return GLFW_FALSE; - createKeyTables(); + createKeyTablesWin32(); _glfwUpdateKeyNamesWin32(); if (_glfwIsWindows10Version1703OrGreaterWin32()) diff --git a/src/external/glfw/src/win32_window.c b/src/external/glfw/src/win32_window.c index e6a9496cd..3762b7699 100644 --- a/src/external/glfw/src/win32_window.c +++ b/src/external/glfw/src/win32_window.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 Win32 - www.glfw.org +// GLFW 3.4 Win32 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -439,7 +440,7 @@ static void fitToMonitor(_GLFWwindow* window) // Make the specified window and its video mode active on its monitor // -static void acquireMonitor(_GLFWwindow* window) +static void acquireMonitorWin32(_GLFWwindow* window) { if (!_glfw.win32.acquiredMonitorCount) { @@ -460,7 +461,7 @@ static void acquireMonitor(_GLFWwindow* window) // Remove the window and restore the original video mode // -static void releaseMonitor(_GLFWwindow* window) +static void releaseMonitorWin32(_GLFWwindow* window) { if (window->monitor->window != window) return; @@ -470,7 +471,7 @@ static void releaseMonitor(_GLFWwindow* window) { SetThreadExecutionState(ES_CONTINUOUS); - // HACK: Restore mouse trail length saved in acquireMonitor + // HACK: Restore mouse trail length saved in acquireMonitorWin32 SystemParametersInfoW(SPI_SETMOUSETRAILS, _glfw.win32.mouseTrailSize, 0, 0); } @@ -1050,10 +1051,10 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l if (window->monitor && window->win32.iconified != iconified) { if (iconified) - releaseMonitor(window); + releaseMonitorWin32(window); else { - acquireMonitor(window); + acquireMonitorWin32(window); fitToMonitor(window); } } @@ -1534,7 +1535,7 @@ GLFWbool _glfwCreateWindowWin32(_GLFWwindow* window, { _glfwShowWindowWin32(window); _glfwFocusWindowWin32(window); - acquireMonitor(window); + acquireMonitorWin32(window); fitToMonitor(window); if (wndconfig->centerCursor) @@ -1556,7 +1557,7 @@ GLFWbool _glfwCreateWindowWin32(_GLFWwindow* window, void _glfwDestroyWindowWin32(_GLFWwindow* window) { if (window->monitor) - releaseMonitor(window); + releaseMonitorWin32(window); if (window->context.destroy) window->context.destroy(window); @@ -1677,7 +1678,7 @@ void _glfwSetWindowSizeWin32(_GLFWwindow* window, int width, int height) { if (window->monitor->window == window) { - acquireMonitor(window); + acquireMonitorWin32(window); fitToMonitor(window); } } @@ -1849,7 +1850,7 @@ void _glfwSetWindowMonitorWin32(_GLFWwindow* window, { if (monitor->window == window) { - acquireMonitor(window); + acquireMonitorWin32(window); fitToMonitor(window); } } @@ -1879,7 +1880,7 @@ void _glfwSetWindowMonitorWin32(_GLFWwindow* window, } if (window->monitor) - releaseMonitor(window); + releaseMonitorWin32(window); _glfwInputWindowMonitor(window, monitor); @@ -1897,7 +1898,7 @@ void _glfwSetWindowMonitorWin32(_GLFWwindow* window, flags |= SWP_FRAMECHANGED; } - acquireMonitor(window); + acquireMonitorWin32(window); GetMonitorInfoW(window->monitor->win32.handle, &mi); SetWindowPos(window->win32.handle, HWND_TOPMOST, diff --git a/src/external/glfw/src/wl_init.c b/src/external/glfw/src/wl_init.c index 3aff476d3..2428c725e 100644 --- a/src/external/glfw/src/wl_init.c +++ b/src/external/glfw/src/wl_init.c @@ -1,7 +1,8 @@ //======================================================================== -// GLFW 3.4 Wayland - www.glfw.org +// GLFW 3.4 Wayland (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2014 Jonas Ådahl +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -257,7 +258,7 @@ static const struct wl_callback_listener libdecorReadyListener = // Create key code translation tables // -static void createKeyTables(void) +static void createKeyTablesWayland(void) { memset(_glfw.wl.keycodes, -1, sizeof(_glfw.wl.keycodes)); memset(_glfw.wl.scancodes, -1, sizeof(_glfw.wl.scancodes)); @@ -821,7 +822,7 @@ int _glfwInitWayland(void) _glfw.wl.registry = wl_display_get_registry(_glfw.wl.display); wl_registry_add_listener(_glfw.wl.registry, ®istryListener, NULL); - createKeyTables(); + createKeyTablesWayland(); _glfw.wl.xkb.context = xkb_context_new(0); if (!_glfw.wl.xkb.context) diff --git a/src/external/glfw/src/wl_window.c b/src/external/glfw/src/wl_window.c index 5b491ffbb..505166eff 100644 --- a/src/external/glfw/src/wl_window.c +++ b/src/external/glfw/src/wl_window.c @@ -1,7 +1,8 @@ //======================================================================== -// GLFW 3.4 Wayland - www.glfw.org +// GLFW 3.4 Wayland (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2014 Jonas Ådahl +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -498,7 +499,7 @@ static void setIdleInhibitor(_GLFWwindow* window, GLFWbool enable) // Make the specified window and its video mode active on its monitor // -static void acquireMonitor(_GLFWwindow* window) +static void acquireMonitorWayland(_GLFWwindow* window) { if (window->wl.libdecor.frame) { @@ -519,7 +520,7 @@ static void acquireMonitor(_GLFWwindow* window) // Remove the window and restore the original video mode // -static void releaseMonitor(_GLFWwindow* window) +static void releaseMonitorWayland(_GLFWwindow* window) { if (window->wl.libdecor.frame) libdecor_frame_unset_fullscreen(window->wl.libdecor.frame); @@ -1156,7 +1157,7 @@ static GLFWbool flushDisplay(void) return GLFW_TRUE; } -static int translateKey(uint32_t scancode) +static int translateKeyWayland(uint32_t scancode) { if (scancode < sizeof(_glfw.wl.keycodes) / sizeof(_glfw.wl.keycodes[0])) return _glfw.wl.keycodes[scancode]; @@ -1270,7 +1271,7 @@ static void handleEvents(double* timeout) for (uint64_t i = 0; i < repeats; i++) { _glfwInputKey(_glfw.wl.keyboardFocus, - translateKey(_glfw.wl.keyRepeatScancode), + translateKeyWayland(_glfw.wl.keyRepeatScancode), _glfw.wl.keyRepeatScancode, GLFW_PRESS, _glfw.wl.xkb.modifiers); @@ -1773,7 +1774,7 @@ static void keyboardHandleKey(void* userData, if (!window) return; - const int key = translateKey(scancode); + const int key = translateKeyWayland(scancode); const int action = state == WL_KEYBOARD_KEY_STATE_PRESSED ? GLFW_PRESS : GLFW_RELEASE; @@ -2509,12 +2510,12 @@ void _glfwSetWindowMonitorWayland(_GLFWwindow* window, } if (window->monitor) - releaseMonitor(window); + releaseMonitorWayland(window); _glfwInputWindowMonitor(window, monitor); if (window->monitor) - acquireMonitor(window); + acquireMonitorWayland(window); else _glfwSetWindowSizeWayland(window, width, height); } diff --git a/src/external/glfw/src/x11_init.c b/src/external/glfw/src/x11_init.c index e992f444e..000bde29b 100644 --- a/src/external/glfw/src/x11_init.c +++ b/src/external/glfw/src/x11_init.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 X11 - www.glfw.org +// GLFW 3.4 X11 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -210,7 +211,7 @@ static int translateKeySyms(const KeySym* keysyms, int width) // Create key code translation tables // -static void createKeyTables(void) +static void createKeyTablesX11(void) { int scancodeMin, scancodeMax; @@ -908,7 +909,7 @@ static GLFWbool initExtensions(void) // Update the key code LUT // FIXME: We should listen to XkbMapNotify events to track changes to // the keyboard mapping. - createKeyTables(); + createKeyTablesX11(); // String format atoms _glfw.x11.NULL_ = XInternAtom(_glfw.x11.display, "NULL", False); diff --git a/src/external/glfw/src/x11_window.c b/src/external/glfw/src/x11_window.c index e0295465a..49e60a509 100644 --- a/src/external/glfw/src/x11_window.c +++ b/src/external/glfw/src/x11_window.c @@ -1,8 +1,9 @@ //======================================================================== -// GLFW 3.4 X11 - www.glfw.org +// GLFW 3.4 X11 (modified for raylib) - www.glfw.org; www.raylib.com //------------------------------------------------------------------------ // Copyright (c) 2002-2006 Marcus Geelnard // Copyright (c) 2006-2019 Camilla Löwy +// Copyright (c) 2024 M374LX // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages @@ -235,9 +236,9 @@ static int translateState(int state) // Translates an X11 key code to a GLFW key token // -static int translateKey(int scancode) +static int translateKeyX11(int scancode) { - // Use the pre-filled LUT (see createKeyTables() in x11_init.c) + // Use the pre-filled LUT (see createKeyTablesX11() in x11_init.c) if (scancode < 0 || scancode > 255) return GLFW_KEY_UNKNOWN; @@ -1081,7 +1082,7 @@ static const char* getSelectionString(Atom selection) // Make the specified window and its video mode active on its monitor // -static void acquireMonitor(_GLFWwindow* window) +static void acquireMonitorX11(_GLFWwindow* window) { if (_glfw.x11.saver.count == 0) { @@ -1120,7 +1121,7 @@ static void acquireMonitor(_GLFWwindow* window) // Remove the window and restore the original video mode // -static void releaseMonitor(_GLFWwindow* window) +static void releaseMonitorX11(_GLFWwindow* window) { if (window->monitor->window != window) return; @@ -1242,7 +1243,7 @@ static void processEvent(XEvent *event) case KeyPress: { - const int key = translateKey(keycode); + const int key = translateKeyX11(keycode); const int mods = translateState(event->xkey.state); const int plain = !(mods & (GLFW_MOD_CONTROL | GLFW_MOD_ALT)); @@ -1314,7 +1315,7 @@ static void processEvent(XEvent *event) case KeyRelease: { - const int key = translateKey(keycode); + const int key = translateKeyX11(keycode); const int mods = translateState(event->xkey.state); if (!_glfw.x11.xkb.detectable) @@ -1806,9 +1807,9 @@ static void processEvent(XEvent *event) if (window->monitor) { if (iconified) - releaseMonitor(window); + releaseMonitorX11(window); else - acquireMonitor(window); + acquireMonitorX11(window); } window->x11.iconified = iconified; @@ -2025,7 +2026,7 @@ GLFWbool _glfwCreateWindowX11(_GLFWwindow* window, { _glfwShowWindowX11(window); updateWindowMode(window); - acquireMonitor(window); + acquireMonitorX11(window); if (wndconfig->centerCursor) _glfwCenterCursorInContentArea(window); @@ -2050,7 +2051,7 @@ void _glfwDestroyWindowX11(_GLFWwindow* window) enableCursor(window); if (window->monitor) - releaseMonitor(window); + releaseMonitorX11(window); if (window->x11.ic) { @@ -2206,7 +2207,7 @@ void _glfwSetWindowSizeX11(_GLFWwindow* window, int width, int height) if (window->monitor) { if (window->monitor->window == window) - acquireMonitor(window); + acquireMonitorX11(window); } else { @@ -2477,7 +2478,7 @@ void _glfwSetWindowMonitorX11(_GLFWwindow* window, if (monitor) { if (monitor->window == window) - acquireMonitor(window); + acquireMonitorX11(window); } else { @@ -2496,7 +2497,7 @@ void _glfwSetWindowMonitorX11(_GLFWwindow* window, { _glfwSetWindowDecoratedX11(window, window->decorated); _glfwSetWindowFloatingX11(window, window->floating); - releaseMonitor(window); + releaseMonitorX11(window); } _glfwInputWindowMonitor(window, monitor); @@ -2511,7 +2512,7 @@ void _glfwSetWindowMonitorX11(_GLFWwindow* window, } updateWindowMode(window); - acquireMonitor(window); + acquireMonitorX11(window); } else { diff --git a/src/rglfw.c b/src/rglfw.c index 5c2720b15..2282955a1 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -35,7 +35,7 @@ // _GLFW_WAYLAND to use the Wayland API (experimental and incomplete) // _GLFW_COCOA to use the Cocoa frameworks // -// Note: GLFW's runtime platform selection is not supported at the moment +// On Linux, _GLFW_X11 and _GLFW_WAYLAND can be combined //---------------------------------------------------------------------------------- // Feature Test Macros required for this module @@ -53,8 +53,8 @@ #define _GLFW_WIN32 #endif #if defined(__linux__) - #if !defined(_GLFW_WAYLAND) // Required for Wayland windowing - #define _GLFW_X11 + #if !defined(_GLFW_WAYLAND) && !defined(_GLFW_X11) + #error "Cannot disable Wayland and X11 at the same time" #endif #endif #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) @@ -69,15 +69,6 @@ #define _WIN32_WINNT_WINXP 0x0501 #endif -#include "external/glfw/src/internal.h" - -// We do not use GLFW's "null" platform, but the absence of this function -// causes the build to fail -GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform) -{ - return GLFW_TRUE; -} - // Common modules to all platforms #include "external/glfw/src/init.c" #include "external/glfw/src/platform.c" From 8b0dd44316e2497bfc49790534db386454e596af Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 18 Mar 2024 09:08:51 +0100 Subject: [PATCH 241/790] Fix #3876 and also `rlgl` review on #3783 --- src/rlgl.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/rlgl.h b/src/rlgl.h index 75b830107..e33b75056 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -903,6 +903,10 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #endif +#if !defined(GL_PROGRAM_POINT_SIZE) + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + #if defined(GRAPHICS_API_OPENGL_11) #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 From d7ff0175c163febc14ac65730cd4b30a13ee1473 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 18 Mar 2024 09:09:26 +0100 Subject: [PATCH 242/790] Fix #3876 and also `rlgl` review on #3783 --- src/rlgl.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index e33b75056..0f7840259 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -903,10 +903,14 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #endif -#if !defined(GL_PROGRAM_POINT_SIZE) +#ifndef GL_PROGRAM_POINT_SIZE #define GL_PROGRAM_POINT_SIZE 0x8642 #endif +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + #if defined(GRAPHICS_API_OPENGL_11) #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 From 9bb3d9977af16d12f24618d92c74004902fcfb39 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Mon, 18 Mar 2024 01:12:36 -0700 Subject: [PATCH 243/790] Put GLFW in relative mouse mode when the cursor is disabled. (#3874) --- src/platforms/rcore_desktop.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 29c85156c..619c9dc9b 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -972,6 +972,9 @@ void EnableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); + if (glfwRawMouseMotionSupported()) + glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_FALSE); + CORE.Input.Mouse.cursorHidden = false; } @@ -983,6 +986,9 @@ void DisableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); + if (glfwRawMouseMotionSupported()) + glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE); + CORE.Input.Mouse.cursorHidden = true; } From 28c232d856e8908a9f2675d5df56bc16f1e30acf Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 18 Mar 2024 09:13:34 +0100 Subject: [PATCH 244/790] Update rcore_desktop.c --- src/platforms/rcore_desktop.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 619c9dc9b..e9d372f73 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -972,8 +972,7 @@ void EnableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); - if (glfwRawMouseMotionSupported()) - glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_FALSE); + if (glfwRawMouseMotionSupported()) glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_FALSE); CORE.Input.Mouse.cursorHidden = false; } @@ -986,8 +985,7 @@ void DisableCursor(void) // Set cursor position in the middle SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); - if (glfwRawMouseMotionSupported()) - glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE); + if (glfwRawMouseMotionSupported()) glfwSetInputMode(platform.handle, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE); CORE.Input.Mouse.cursorHidden = true; } From 9cf408f77c58828fd1019d5cd35c6b8c5139c8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Zyba=C5=82a?= Date: Mon, 18 Mar 2024 18:37:09 +0100 Subject: [PATCH 245/790] Remove redundant rlDisableVertexAttribute for SHADER_LOC_VERTEX_COLOR (#3871) --- src/rmodels.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index c50c065e7..d94754f1f 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1470,9 +1470,6 @@ void DrawMesh(Mesh mesh, Material material, Matrix transform) if (mesh.indices != NULL) rlEnableVertexBufferElement(mesh.vboId[6]); } - // WARNING: Disable vertex attribute color input if mesh can not provide that data (despite location being enabled in shader) - if (mesh.vboId[3] == 0) rlDisableVertexAttribute(material.shader.locs[SHADER_LOC_VERTEX_COLOR]); - int eyeCount = 1; if (rlIsStereoRenderEnabled()) eyeCount = 2; @@ -1691,9 +1688,6 @@ void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, i if (mesh.indices != NULL) rlEnableVertexBufferElement(mesh.vboId[6]); } - // WARNING: Disable vertex attribute color input if mesh can not provide that data (despite location being enabled in shader) - if (mesh.vboId[3] == 0) rlDisableVertexAttribute(material.shader.locs[SHADER_LOC_VERTEX_COLOR]); - int eyeCount = 1; if (rlIsStereoRenderEnabled()) eyeCount = 2; From dcb9db5fe634893a9691a439cbe552c0133b0a56 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 21 Mar 2024 15:43:00 +0100 Subject: [PATCH 246/790] Update rcore.c --- src/rcore.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index dcdc3befd..aa9724cb1 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -292,16 +292,16 @@ typedef struct CoreData { struct { struct { int exitKey; // Default exit key - char currentKeyState[MAX_KEYBOARD_KEYS]; // Registers current frame key state - char previousKeyState[MAX_KEYBOARD_KEYS]; // Registers previous frame key state + char currentKeyState[MAX_KEYBOARD_KEYS]; // Registers current frame key state + char previousKeyState[MAX_KEYBOARD_KEYS]; // Registers previous frame key state // NOTE: Since key press logic involves comparing prev vs cur key state, we need to handle key repeats specially - char keyRepeatInFrame[MAX_KEYBOARD_KEYS]; // Registers key repeats for current frame. + char keyRepeatInFrame[MAX_KEYBOARD_KEYS]; // Registers key repeats for current frame. - int keyPressedQueue[MAX_KEY_PRESSED_QUEUE]; // Input keys queue + int keyPressedQueue[MAX_KEY_PRESSED_QUEUE]; // Input keys queue int keyPressedQueueCount; // Input keys queue count - int charPressedQueue[MAX_CHAR_PRESSED_QUEUE]; // Input characters queue (unicode) + int charPressedQueue[MAX_CHAR_PRESSED_QUEUE]; // Input characters queue (unicode) int charPressedQueueCount; // Input characters queue count } Keyboard; @@ -331,7 +331,7 @@ typedef struct CoreData { } Touch; struct { int lastButtonPressed; // Register last gamepad button pressed - int axisCount[MAX_GAMEPADS]; // Register number of available gamepad axis + int axisCount[MAX_GAMEPADS]; // Register number of available gamepad axis bool ready[MAX_GAMEPADS]; // Flag to know if gamepad is ready char name[MAX_GAMEPADS][64]; // Gamepad name holder char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state From b905dafca038ca09e2b6d1e6eaf6f578b0bf0361 Mon Sep 17 00:00:00 2001 From: proberge-dev <87205407+proberge-dev@users.noreply.github.com> Date: Tue, 26 Mar 2024 03:47:25 -0400 Subject: [PATCH 247/790] [rtextures] Fix LoadImageFromScreen scaling (#3881) --- src/rtextures.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 588c8b107..832164819 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -681,10 +681,11 @@ Image LoadImageFromTexture(Texture2D texture) // Load image from screen buffer and (screenshot) Image LoadImageFromScreen(void) { + Vector2 scale = GetWindowScaleDPI(); Image image = { 0 }; - image.width = GetScreenWidth(); - image.height = GetScreenHeight(); + image.width = GetScreenWidth()*scale.x; + image.height = GetScreenHeight()*scale.y; image.mipmaps = 1; image.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; image.data = rlReadScreenPixels(image.width, image.height); From 30781c423b38405544c2880f15789a07f3f1e3ca Mon Sep 17 00:00:00 2001 From: MrMugame <40832361+MrMugame@users.noreply.github.com> Date: Thu, 28 Mar 2024 13:14:21 +0100 Subject: [PATCH 248/790] Organizing the drm backend to only use one api to allow for more devices (#3879) * Updating rcore_drm.c to only use one api for input * Change RPI log prefix to DRM * Remove relative checking which is not supported currently * Loop should continue on invalid event in drm backend * Fixed and cleaned up PollKeyboardEvents() in drm backend --- src/platforms/rcore_drm.c | 1103 ++++++++++++++----------------------- 1 file changed, 413 insertions(+), 690 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index d303ab1da..b911a1dae 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -57,6 +57,12 @@ #include // Required for: ioctl() - UNIX System call for device-specific input/output operations #include // Linux: KDSKBMODE, K_MEDIUMRAM constants definition #include // Linux: Keycodes constants definition (KEY_A, ...) + +// So both `linux/input.h` and `raylib.h` define KEY_F12 +// To avoid conflict with the capturing code in rcore.c we undefine the macro KEY_F12, +// so the enum KEY_F12 from raylib is used +#undef KEY_F12 + #include // Linux: Joystick support library #include // Generic Buffer Management (native platform for EGL on DRM) @@ -71,27 +77,12 @@ //---------------------------------------------------------------------------------- #define USE_LAST_TOUCH_DEVICE // When multiple touchscreens are connected, only use the one with the highest event number -#define DEFAULT_GAMEPAD_DEV "/dev/input/js" // Gamepad input (base dev for all gamepads: js0, js1, ...) #define DEFAULT_EVDEV_PATH "/dev/input/" // Path to the linux input events //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- -typedef struct { - pthread_t threadId; // Event reading thread id - - int fd; // File descriptor to the device it is assigned to - int eventNum; // Number of 'event' device - Rectangle absRange; // Range of values for absolute pointing devices (touchscreens) - int touchSlot; // Hold the touch slot number of the currently being sent multitouch block - bool isMouse; // True if device supports relative X Y movements - bool isTouch; // True if device supports absolute X Y movements and has BTN_TOUCH - bool isMultitouch; // True if device supports multiple absolute movevents and has BTN_TOUCH - bool isKeyboard; // True if device has letter keycodes - bool isGamepad; // True if device has gamepad buttons -} InputEventWorker; - typedef struct { // Display data int fd; // File descriptor for /dev/dri/... @@ -108,9 +99,6 @@ typedef struct { EGLContext context; // Graphic context, mode in which drawing can be done EGLConfig config; // Graphic config - // Input data - InputEventWorker eventWorker[10]; // List of worker threads for every monitored "/dev/input/event" - // Keyboard data int defaultKeyboardMode; // Default keyboard mode bool eventKeyboardMode; // Keyboard in event mode @@ -129,7 +117,9 @@ typedef struct { // Gamepad data int gamepadStreamFd[MAX_GAMEPADS]; // Gamepad device file descriptor - + int gamepadAbsAxisRange[MAX_GAMEPADS][MAX_GAMEPAD_AXIS][2]; // [0] = min, [1] = range value of the axis + int gamepadAbsAxisMap[MAX_GAMEPADS][ABS_CNT]; // Maps the axes gamepads from the evdev api to a sequential one + int gamepadCount; // The number of gamepads registered } PlatformData; //---------------------------------------------------------------------------------- @@ -145,6 +135,8 @@ static PlatformData platform = { 0 }; // Platform specific data // Scancode to keycode mapping for US keyboards // TODO: Replace this with a keymap from the X11 to get the correct regional map for the keyboard: // Currently non US keyboards will have the wrong mapping for some keys +// NOTE: Replacing this with the keymap from X11 would probably be useless, as people use the drm +// backend to *avoid* X11 static const int keymapUS[] = { 0, 256, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 259, 258, 81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 91, 93, 257, 341, 65, 83, 68, 70, 71, 72, 74, 75, 76, 59, 39, 96, @@ -178,19 +170,17 @@ static const int EvkeyToUnicodeLUT[] = { int InitPlatform(void); // Initialize platform (graphics, inputs and more) void ClosePlatform(void); // Close platform +#if defined(SUPPORT_SSH_KEYBOARD_RPI) static void InitKeyboard(void); // Initialize raw keyboard system static void RestoreKeyboard(void); // Restore keyboard system -#if defined(SUPPORT_SSH_KEYBOARD_RPI) static void ProcessKeyboard(void); // Process keyboard events #endif static void InitEvdevInput(void); // Initialize evdev inputs static void ConfigureEvdevDevice(char *device); // Identifies a input device and configures it for use if appropriate static void PollKeyboardEvents(void); // Process evdev keyboard events -static void *EventThread(void *arg); // Input device events reading thread - -static void InitGamepad(void); // Initialize raw gamepad input -static void PollGamepadEvents(void); // Gamepad reading function +static void PollGamepadEvents(void); // Process evdev gamepad events +static void PollMouseEvents(void); // Process evdev mouse events static int FindMatchingConnectorMode(const drmModeConnector *connector, const drmModeModeInfo *mode); // Search matching DRM mode in connector's mode list static int FindExactConnectorMode(const drmModeConnector *connector, uint width, uint height, uint fps, bool allowInterlaced); // Search exactly matching DRM connector mode in connector's list @@ -564,6 +554,16 @@ void PollInputEvents(void) PollKeyboardEvents(); + #if defined(SUPPORT_SSH_KEYBOARD_RPI) + // NOTE: Keyboard reading could be done using input_event(s) or just read from stdin, both methods are used here. + // stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console + + if (!platform.eventKeyboardMode) ProcessKeyboard(); + #endif + + // Check exit key + if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) CORE.Window.shouldClose = true; + // Register previous mouse position if (platform.cursorRelative) CORE.Input.Mouse.currentPosition = (Vector2){ 0.0f, 0.0f }; else CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; @@ -591,181 +591,9 @@ void PollInputEvents(void) // Map touch position to mouse position for convenience CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; -#if defined(SUPPORT_SSH_KEYBOARD_RPI) - // NOTE: Keyboard reading could be done using input_event(s) or just read from stdin, both methods are used here. - // stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console - - if (!platform.eventKeyboardMode) ProcessKeyboard(); -#endif - // Handle the mouse/touch/gestures events: // NOTE: Replaces the EventThread handling that is now commented. - { - int fd = platform.mouseFd; - if (fd == -1) return; - - struct input_event event = { 0 }; - - int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE - - // Try to read data from the mouse/touch/gesture and only continue if successful - while (read(fd, &event, sizeof(event)) == (int)sizeof(event)) - { - // Relative movement parsing - if (event.type == EV_REL) - { - if (event.code == REL_X) - { - if (platform.cursorRelative) - { - CORE.Input.Mouse.currentPosition.x = event.value; - CORE.Input.Mouse.previousPosition.x = 0.0f; - } - else CORE.Input.Mouse.currentPosition.x += event.value; - CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; - - touchAction = 2; // TOUCH_ACTION_MOVE - } - - if (event.code == REL_Y) - { - if (platform.cursorRelative) - { - CORE.Input.Mouse.currentPosition.y = event.value; - CORE.Input.Mouse.previousPosition.y = 0.0f; - } - else CORE.Input.Mouse.currentPosition.y += event.value; - CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; - - touchAction = 2; // TOUCH_ACTION_MOVE - } - - if (event.code == REL_WHEEL) platform.eventWheelMove.y += event.value; - } - - // Absolute movement parsing - if (event.type == EV_ABS) - { - // Basic movement - if (event.code == ABS_X) - { - CORE.Input.Mouse.currentPosition.x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange - CORE.Input.Touch.position[0].x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange - - touchAction = 2; // TOUCH_ACTION_MOVE - } - - if (event.code == ABS_Y) - { - CORE.Input.Mouse.currentPosition.y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange - CORE.Input.Touch.position[0].y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange - - touchAction = 2; // TOUCH_ACTION_MOVE - } - - // Multitouch movement - if (event.code == ABS_MT_SLOT) platform.touchSlot = event.value; // Remember the slot number for the folowing events - - if (event.code == ABS_MT_POSITION_X) - { - if (platform.touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[platform.touchSlot].x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange - } - - if (event.code == ABS_MT_POSITION_Y) - { - if (platform.touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[platform.touchSlot].y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange - } - - if (event.code == ABS_MT_TRACKING_ID) - { - if ((event.value < 0) && (platform.touchSlot < MAX_TOUCH_POINTS)) - { - // Touch has ended for this point - CORE.Input.Touch.position[platform.touchSlot].x = -1; - CORE.Input.Touch.position[platform.touchSlot].y = -1; - } - } - - // Touchscreen tap - if (event.code == ABS_PRESSURE) - { - int previousMouseLeftButtonState = platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT]; - - if (!event.value && previousMouseLeftButtonState) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 0; - - touchAction = 0; // TOUCH_ACTION_UP - } - - if (event.value && !previousMouseLeftButtonState) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 1; - - touchAction = 1; // TOUCH_ACTION_DOWN - } - } - - } - - // Button parsing - if (event.type == EV_KEY) - { - // Mouse button parsing - if ((event.code == BTN_TOUCH) || (event.code == BTN_LEFT)) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = event.value; - - if (event.value > 0) touchAction = 1; // TOUCH_ACTION_DOWN - else touchAction = 0; // TOUCH_ACTION_UP - } - - if (event.code == BTN_RIGHT) platform.currentButtonStateEvdev[MOUSE_BUTTON_RIGHT] = event.value; - if (event.code == BTN_MIDDLE) platform.currentButtonStateEvdev[MOUSE_BUTTON_MIDDLE] = event.value; - if (event.code == BTN_SIDE) platform.currentButtonStateEvdev[MOUSE_BUTTON_SIDE] = event.value; - if (event.code == BTN_EXTRA) platform.currentButtonStateEvdev[MOUSE_BUTTON_EXTRA] = event.value; - if (event.code == BTN_FORWARD) platform.currentButtonStateEvdev[MOUSE_BUTTON_FORWARD] = event.value; - if (event.code == BTN_BACK) platform.currentButtonStateEvdev[MOUSE_BUTTON_BACK] = event.value; - } - - // Screen confinement - if (!CORE.Input.Mouse.cursorHidden) - { - if (CORE.Input.Mouse.currentPosition.x < 0) CORE.Input.Mouse.currentPosition.x = 0; - if (CORE.Input.Mouse.currentPosition.x > CORE.Window.screen.width/CORE.Input.Mouse.scale.x) CORE.Input.Mouse.currentPosition.x = CORE.Window.screen.width/CORE.Input.Mouse.scale.x; - - if (CORE.Input.Mouse.currentPosition.y < 0) CORE.Input.Mouse.currentPosition.y = 0; - if (CORE.Input.Mouse.currentPosition.y > CORE.Window.screen.height/CORE.Input.Mouse.scale.y) CORE.Input.Mouse.currentPosition.y = CORE.Window.screen.height/CORE.Input.Mouse.scale.y; - } - - // Update touch point count - CORE.Input.Touch.pointCount = 0; - for (int i = 0; i < MAX_TOUCH_POINTS; i++) - { - if (CORE.Input.Touch.position[i].x >= 0) CORE.Input.Touch.pointCount++; - } - -#if defined(SUPPORT_GESTURES_SYSTEM) - if (touchAction > -1) - { - GestureEvent gestureEvent = { 0 }; - - gestureEvent.touchAction = touchAction; - gestureEvent.pointCount = CORE.Input.Touch.pointCount; - - for (int i = 0; i < MAX_TOUCH_POINTS; i++) - { - gestureEvent.pointId[i] = i; - gestureEvent.position[i] = CORE.Input.Touch.position[i]; - } - - ProcessGestureEvent(gestureEvent); - - touchAction = -1; - } -#endif - } - } + PollMouseEvents(); } //---------------------------------------------------------------------------------- @@ -1123,8 +951,11 @@ int InitPlatform(void) // Initialize input events system //---------------------------------------------------------------------------- InitEvdevInput(); // Evdev inputs initialization - InitGamepad(); // Gamepad init - InitKeyboard(); // Keyboard init (stdin) + + #if defined(SUPPORT_SSH_KEYBOARD_RPI) + InitKeyboard(); // Keyboard init (stdin) + #endif + //---------------------------------------------------------------------------- // Initialize storage system @@ -1203,28 +1034,30 @@ void ClosePlatform(void) platform.device = EGL_NO_DISPLAY; } - // Wait for mouse and gamepad threads to finish before closing - // NOTE: Those threads should already have finished at this point - // because they are controlled by CORE.Window.shouldClose variable - CORE.Window.shouldClose = true; // Added to force threads to exit when the close window is called - // Close the evdev keyboard + // Close the evdev devices + + if (platform.mouseFd != -1) { + close(platform.mouseFd); + platform.mouseFd = -1; + } + + for (int i = 0; i < platform.gamepadCount; i++) + { + close(platform.gamepadStreamFd[i]); + platform.gamepadStreamFd[i] = -1; + } + if (platform.keyboardFd != -1) { close(platform.keyboardFd); platform.keyboardFd = -1; } - - for (int i = 0; i < sizeof(platform.eventWorker)/sizeof(InputEventWorker); ++i) - { - if (platform.eventWorker[i].threadId) - { - pthread_join(platform.eventWorker[i].threadId, NULL); - } - } } +#if defined(SUPPORT_SSH_KEYBOARD_RPI) + // Initialize Keyboard system (using standard input) static void InitKeyboard(void) { @@ -1256,7 +1089,7 @@ static void InitKeyboard(void) int result = ioctl(STDIN_FILENO, KDGKBMODE, &platform.defaultKeyboardMode); // In case of failure, it could mean a remote keyboard is used (SSH) - if (result < 0) TRACELOG(LOG_WARNING, "RPI: Failed to change keyboard mode, an SSH keyboard is probably used"); + if (result < 0) TRACELOG(LOG_WARNING, "DRM: Failed to change keyboard mode, an SSH keyboard is probably used"); else { // Reconfigure keyboard mode to get: @@ -1282,7 +1115,6 @@ static void RestoreKeyboard(void) ioctl(STDIN_FILENO, KDSKBMODE, platform.defaultKeyboardMode); } -#if defined(SUPPORT_SSH_KEYBOARD_RPI) // Process keyboard inputs static void ProcessKeyboard(void) { @@ -1383,18 +1215,6 @@ static void ProcessKeyboard(void) CORE.Input.Keyboard.keyPressedQueueCount++; } } - - // Check exit key (same functionality as GLFW3 KeyCallback()) - if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) CORE.Window.shouldClose = true; - -#if defined(SUPPORT_SCREEN_CAPTURE) - // Check screen capture key (raylib key: KEY_F12) - if (CORE.Input.Keyboard.currentKeyState[301] == 1) - { - TakeScreenshot(TextFormat("screenshot%03i.png", screenshotCounter)); - screenshotCounter++; - } -#endif } #endif // SUPPORT_SSH_KEYBOARD_RPI @@ -1408,6 +1228,7 @@ static void InitEvdevInput(void) // Initialise keyboard file descriptor platform.keyboardFd = -1; + platform.mouseFd = -1; // Reset variables for (int i = 0; i < MAX_TOUCH_POINTS; ++i) @@ -1440,7 +1261,7 @@ static void InitEvdevInput(void) closedir(directory); } - else TRACELOG(LOG_WARNING, "RPI: Failed to open linux event directory: %s", DEFAULT_EVDEV_PATH); + else TRACELOG(LOG_WARNING, "DRM: Failed to open linux event directory: %s", DEFAULT_EVDEV_PATH); } // Identifies a input device and configures it for use if appropriate @@ -1453,62 +1274,18 @@ static void ConfigureEvdevDevice(char *device) #define LONG(x) ((x)/BITS_PER_LONG) #define TEST_BIT(array, bit) ((array[LONG(bit)] >> OFF(bit)) & 1) - struct input_absinfo absinfo = { 0 }; unsigned long evBits[NBITS(EV_MAX)] = { 0 }; unsigned long absBits[NBITS(ABS_MAX)] = { 0 }; unsigned long relBits[NBITS(REL_MAX)] = { 0 }; unsigned long keyBits[NBITS(KEY_MAX)] = { 0 }; - bool hasAbs = false; - bool hasRel = false; - bool hasAbsMulti = false; - int freeWorkerId = -1; - int fd = -1; - - InputEventWorker *worker = NULL; - - // Open the device and allocate worker - //------------------------------------------------------------------------------------------------------- - // Find a free spot in the workers array - for (int i = 0; i < sizeof(platform.eventWorker)/sizeof(InputEventWorker); ++i) - { - if (platform.eventWorker[i].threadId == 0) - { - freeWorkerId = i; - break; - } - } - - // Select the free worker from array - if (freeWorkerId >= 0) - { - worker = &(platform.eventWorker[freeWorkerId]); // Grab a pointer to the worker - memset(worker, 0, sizeof(InputEventWorker)); // Clear the worker - } - else - { - TRACELOG(LOG_WARNING, "RPI: Failed to create input device thread for %s, out of worker slots", device); - return; - } // Open the device - fd = open(device, O_RDONLY | O_NONBLOCK); + int fd = open(device, O_RDONLY | O_NONBLOCK); if (fd < 0) { - TRACELOG(LOG_WARNING, "RPI: Failed to open input device: %s", device); + TRACELOG(LOG_WARNING, "DRM: Failed to open input device: %s", device); return; } - worker->fd = fd; - - // Grab number on the end of the devices name "event" - int devNum = 0; - char *ptrDevName = strrchr(device, 't'); - worker->eventNum = -1; - - if (ptrDevName != NULL) - { - if (sscanf(ptrDevName, "t%d", &devNum) == 1) worker->eventNum = devNum; - } - else worker->eventNum = 0; // TODO: HACK: Grab number for mouse0 device! // At this point we have a connection to the device, but we don't yet know what the device is. // It could be many things, even as simple as a power button... @@ -1516,149 +1293,166 @@ static void ConfigureEvdevDevice(char *device) // Identify the device //------------------------------------------------------------------------------------------------------- - ioctl(fd, EVIOCGBIT(0, sizeof(evBits)), evBits); // Read a bitfield of the available device properties + struct input_absinfo absinfo[ABS_CNT] = { 0 }; - // Check for absolute input devices - if (TEST_BIT(evBits, EV_ABS)) - { + // These flags aren't really a one of + // Some devices could have properties we assosciate with keyboards as well as properties + // we assosciate with mice + bool isKeyboard = false; + bool isMouse = false; + bool isTouch = false; + bool isGamepad = false; + + int absAxisCount = 0; + + ioctl(fd, EVIOCGBIT(0, sizeof(evBits)), evBits); + ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keyBits)), keyBits); + + if (TEST_BIT(evBits, EV_ABS)) { ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(absBits)), absBits); - // Check for absolute movement support (usually touchscreens, but also joysticks) - if (TEST_BIT(absBits, ABS_X) && TEST_BIT(absBits, ABS_Y)) + // If the device has an X an Y axis it's either a touch device, a special mouse or a gamepad + bool hasAbsXY = TEST_BIT(absBits, ABS_X) && TEST_BIT(absBits, ABS_Y); + + if (hasAbsXY) { - hasAbs = true; - - // Get the scaling values - ioctl(fd, EVIOCGABS(ABS_X), &absinfo); - worker->absRange.x = absinfo.minimum; - worker->absRange.width = absinfo.maximum - absinfo.minimum; - platform.absRange.x = absinfo.minimum; - platform.absRange.width = absinfo.maximum - absinfo.minimum; - - ioctl(fd, EVIOCGABS(ABS_Y), &absinfo); - worker->absRange.y = absinfo.minimum; - worker->absRange.height = absinfo.maximum - absinfo.minimum; - platform.absRange.y = absinfo.minimum; - platform.absRange.height = absinfo.maximum - absinfo.minimum; + absAxisCount += 2; + ioctl(fd, EVIOCGABS(ABS_X), &absinfo[ABS_X]); + ioctl(fd, EVIOCGABS(ABS_Y), &absinfo[ABS_Y]); } - // Check for multiple absolute movement support (usually multitouch touchscreens) - if (TEST_BIT(absBits, ABS_MT_POSITION_X) && TEST_BIT(absBits, ABS_MT_POSITION_Y)) - { - hasAbsMulti = true; + // If it has any of these buttons it's a touch device + if (hasAbsXY && + (TEST_BIT(keyBits, BTN_STYLUS) || + TEST_BIT(keyBits, BTN_TOOL_PEN) || + TEST_BIT(keyBits, BTN_TOOL_FINGER) || + TEST_BIT(keyBits, BTN_TOUCH))) isTouch = true; - // Get the scaling values - ioctl(fd, EVIOCGABS(ABS_X), &absinfo); - worker->absRange.x = absinfo.minimum; - worker->absRange.width = absinfo.maximum - absinfo.minimum; - platform.absRange.x = absinfo.minimum; - platform.absRange.width = absinfo.maximum - absinfo.minimum; + // Absolute mice should really only exist with VMWare, but it shouldn't + // matter if we support them + else if (hasAbsXY && TEST_BIT(keyBits, BTN_MOUSE)) isMouse = true; - ioctl(fd, EVIOCGABS(ABS_Y), &absinfo); - worker->absRange.y = absinfo.minimum; - worker->absRange.height = absinfo.maximum - absinfo.minimum; - platform.absRange.y = absinfo.minimum; - platform.absRange.height = absinfo.maximum - absinfo.minimum; + // If any of the common joystick axis is present, we assume it's a gamepad + else { + for (int axis = (hasAbsXY ? ABS_Z : ABS_X); axis < ABS_PRESSURE; axis++) + { + if (TEST_BIT(absBits, axis)) { + isGamepad = true; + absAxisCount++; + + ioctl(fd, EVIOCGABS(axis), &absinfo[axis]); + } + } } + + // If the device has multitouch axes, it's a touch device + if (TEST_BIT(absBits, ABS_MT_POSITION_X) && + TEST_BIT(absBits, ABS_MT_POSITION_Y)) isTouch = true; } - // Check for relative movement support (usually mouse) if (TEST_BIT(evBits, EV_REL)) { ioctl(fd, EVIOCGBIT(EV_REL, sizeof(relBits)), relBits); - if (TEST_BIT(relBits, REL_X) && TEST_BIT(relBits, REL_Y)) hasRel = true; + // If it has any of the gamepad or touch features we tested so far, it's not a mouse + if (!isTouch && + !isGamepad && + TEST_BIT(relBits, REL_X) && + TEST_BIT(relBits, REL_Y) && + TEST_BIT(keyBits, BTN_MOUSE)) isMouse = true; } - // Check for button support to determine the device type(usually on all input devices) + if (TEST_BIT(evBits, EV_KEY)) { - ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keyBits)), keyBits); + // The first 32 keys as defined in input-event-codes.h are pretty much + // exclusive to keyboards, so we can test them using a mask + // Leave out the first bit to not test KEY_RESERVED + const unsigned long mask = 0xFFFFFFFE; + if ((keyBits[0] & mask) == mask) isKeyboard = true; - if (hasAbs || hasAbsMulti) + // If we find any of the common gamepad buttons we assume it's a gamepad + else { - if (TEST_BIT(keyBits, BTN_TOUCH)) worker->isTouch = true; // This is a touchscreen - if (TEST_BIT(keyBits, BTN_TOOL_FINGER)) worker->isTouch = true; // This is a drawing tablet - if (TEST_BIT(keyBits, BTN_TOOL_PEN)) worker->isTouch = true; // This is a drawing tablet - if (TEST_BIT(keyBits, BTN_STYLUS)) worker->isTouch = true; // This is a drawing tablet - if (worker->isTouch || hasAbsMulti) worker->isMultitouch = true; // This is a multitouch capable device - } - - if (hasRel) - { - if (TEST_BIT(keyBits, BTN_LEFT)) worker->isMouse = true; // This is a mouse - if (TEST_BIT(keyBits, BTN_RIGHT)) worker->isMouse = true; // This is a mouse - } - - if (TEST_BIT(keyBits, BTN_A)) worker->isGamepad = true; // This is a gamepad - if (TEST_BIT(keyBits, BTN_TRIGGER)) worker->isGamepad = true; // This is a gamepad - if (TEST_BIT(keyBits, BTN_START)) worker->isGamepad = true; // This is a gamepad - if (TEST_BIT(keyBits, BTN_TL)) worker->isGamepad = true; // This is a gamepad - if (TEST_BIT(keyBits, BTN_TL)) worker->isGamepad = true; // This is a gamepad - - if (TEST_BIT(keyBits, KEY_SPACE)) worker->isKeyboard = true; // This is a keyboard - } - //------------------------------------------------------------------------------------------------------- - - // Decide what to do with the device - //------------------------------------------------------------------------------------------------------- - if (worker->isKeyboard && (platform.keyboardFd == -1)) - { - // Use the first keyboard encountered. This assumes that a device that says it's a keyboard is just a - // keyboard. The keyboard is polled synchronously, whereas other input devices are polled in separate - // threads so that they don't drop events when the frame rate is slow. - TRACELOG(LOG_INFO, "RPI: Opening keyboard device: %s", device); - platform.keyboardFd = worker->fd; - } - else if (worker->isTouch || worker->isMouse) - { - // Looks like an interesting device - TRACELOG(LOG_INFO, "RPI: Opening input device: %s (%s%s%s%s)", device, - worker->isMouse? "mouse " : "", - worker->isMultitouch? "multitouch " : "", - worker->isTouch? "touchscreen " : "", - worker->isGamepad? "gamepad " : ""); - platform.mouseFd = worker->fd; - - // NOTE: moved the mouse/touch/gesture input to PollInputEvents()/ - // so added the "platform.mouseFd = worker->fd;" line above - // and commented the thread code below: - - // Create a thread for this device - //int error = pthread_create(&worker->threadId, NULL, &EventThread, (void *)worker); - //if (error != 0) - //{ - // TRACELOG(LOG_WARNING, "RPI: Failed to create input device thread: %s (error: %d)", device, error); - // worker->threadId = 0; - // close(fd); - //} - -#if defined(USE_LAST_TOUCH_DEVICE) - // Find touchscreen with the highest index - int maxTouchNumber = -1; - - for (int i = 0; i < sizeof(platform.eventWorker)/sizeof(InputEventWorker); ++i) - { - if (platform.eventWorker[i].isTouch && (platform.eventWorker[i].eventNum > maxTouchNumber)) maxTouchNumber = platform.eventWorker[i].eventNum; - } - - // Find touchscreens with lower indexes - for (int i = 0; i < sizeof(platform.eventWorker)/sizeof(InputEventWorker); ++i) - { - if (platform.eventWorker[i].isTouch && (platform.eventWorker[i].eventNum < maxTouchNumber)) + for (int button = BTN_JOYSTICK; button < BTN_DIGI; ++button) { - if (platform.eventWorker[i].threadId != 0) - { - TRACELOG(LOG_WARNING, "RPI: Found duplicate touchscreen, killing touchscreen on event: %d", i); - pthread_cancel(platform.eventWorker[i].threadId); - close(platform.eventWorker[i].fd); - } + if (TEST_BIT(keyBits, button)) isGamepad = true; + } + + for (int button = BTN_TRIGGER_HAPPY1; button <= BTN_TRIGGER_HAPPY40; button++) + { + if (TEST_BIT(keyBits, button)) isGamepad = true; } } -#endif } - else close(fd); // We are not interested in this device - //------------------------------------------------------------------------------------------------------- + + const char *deviceKindStr = "unknown"; + if (isMouse || isTouch) + { + deviceKindStr = "mouse"; + if (platform.mouseFd != -1) close(platform.mouseFd); + + platform.mouseFd = fd; + +// TODO: What is this supposed to do? +// Previously if set, it just didn't do anything as the thread code got deleted, so no new +// threads were created and this deleted all old threads, thus doing nothing +// And the description isn't quite clear as to how it behaves together with a mouse +#if defined(USE_LAST_TOUCH_DEVICE) +#endif + + if (absAxisCount > 0) + { + platform.absRange.x = absinfo[ABS_X].minimum; + platform.absRange.width = absinfo[ABS_X].maximum - absinfo[ABS_X].minimum; + + platform.absRange.y = absinfo[ABS_Y].minimum; + platform.absRange.height = absinfo[ABS_Y].maximum - absinfo[ABS_Y].minimum; + } + } + else if (isGamepad && !isMouse && !isKeyboard && platform.gamepadCount < MAX_GAMEPADS) + { + deviceKindStr = "gamepad"; + int index = platform.gamepadCount++; + + platform.gamepadStreamFd[index] = fd; + CORE.Input.Gamepad.ready[index] = true; + + ioctl(platform.gamepadStreamFd[index], EVIOCGNAME(64), &CORE.Input.Gamepad.name[index]); + CORE.Input.Gamepad.axisCount[index] = absAxisCount; + + if (absAxisCount > 0) + { + // TODO / NOTE + // So gamepad axis (as in the actual linux joydev.c) are just simply enumerated + // and (at least for some input drivers like xpat) it's convention to use + // ABS_X, ABX_Y for one joystick ABS_RX, ABS_RY for the other and the Z axes for the + // shoulder buttons + // If these are now enumerated you get LJOY_X, LJOY_Y, LEFT_SHOULDERB, RJOY_X, ... + // That means they don't match the GamepadAxis enum + // This could be fixed + int axisIndex = 0; + for (int axis = ABS_X; axis < ABS_PRESSURE; axis++) + { + platform.gamepadAbsAxisRange[index][axisIndex][0] = absinfo[axisIndex].minimum; + platform.gamepadAbsAxisRange[index][axisIndex][1] = absinfo[axisIndex].maximum - absinfo[axisIndex].minimum; + + platform.gamepadAbsAxisMap[index][axis] = axisIndex++; + } + } + } + else if (isKeyboard && (platform.keyboardFd == -1)) + { + deviceKindStr = "keyboard"; + platform.keyboardFd = fd; + } + else + { + close(fd); + return; + } + + TRACELOG(LOG_INFO, "Initialized input device %s as %s", device, deviceKindStr); } // Poll and process evdev keyboard events @@ -1673,335 +1467,264 @@ static void PollKeyboardEvents(void) // Try to read data from the keyboard and only continue if successful while (read(fd, &event, sizeof(event)) == (int)sizeof(event)) { - // Button parsing - if (event.type == EV_KEY) - { -#if defined(SUPPORT_SSH_KEYBOARD_RPI) - // Change keyboard mode to events - platform.eventKeyboardMode = true; -#endif - // Keyboard button parsing - if ((event.code >= 1) && (event.code <= 255)) //Keyboard keys appear for codes 1 to 255 - { - keycode = keymapUS[event.code & 0xFF]; // The code we get is a scancode so we look up the appropriate keycode + // Check if the event is a key event + if (event.type != EV_KEY) continue; - // Make sure we got a valid keycode - if ((keycode > 0) && (keycode < sizeof(CORE.Input.Keyboard.currentKeyState))) +#if defined(SUPPORT_SSH_KEYBOARD_RPI) + // If the event was a key, we know a working keyboard is connected, so disable the SSH keyboard + platform.eventKeyboardMode = true; +#endif + + // Keyboard keys appear for codes 1 to 255, ignore everthing else + if ((event.code >= 1) && (event.code <= 255)) + { + + // Lookup the scancode in the keymap to get a keycode + keycode = keymapUS[event.code]; + + // Make sure we got a valid keycode + if ((keycode > 0) && (keycode < MAX_KEYBOARD_KEYS)) + { + + // WARNING: https://www.kernel.org/doc/Documentation/input/input.txt + // Event interface: 'value' is the value the event carries. Either a relative change for EV_REL, + // absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat + CORE.Input.Keyboard.currentKeyState[keycode] = (event.value >= 1); + CORE.Input.Keyboard.keyRepeatInFrame[keycode] = (event.value == 2); + + // If the key is pressed add it to the queues + if (event.value == 1) { - // WARNING: https://www.kernel.org/doc/Documentation/input/input.txt - // Event interface: 'value' is the value the event carries. Either a relative change for EV_REL, - // absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat - CORE.Input.Keyboard.currentKeyState[keycode] = (event.value >= 1)? 1 : 0; - CORE.Input.Keyboard.keyRepeatInFrame[keycode] = (event.value == 2)? 1 : 0; - if (event.value >= 1) + if (CORE.Input.Keyboard.keyPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { - CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = keycode; // Register last key pressed + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = keycode; CORE.Input.Keyboard.keyPressedQueueCount++; } - #if defined(SUPPORT_SCREEN_CAPTURE) - // Check screen capture key (raylib key: KEY_F12) - if (CORE.Input.Keyboard.currentKeyState[301] == 1) + if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { - TakeScreenshot(TextFormat("screenshot%03i.png", screenshotCounter)); - screenshotCounter++; + // TODO/FIXME: This is not actually converting to unicode properly because it's not taking things like shift into account + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = EvkeyToUnicodeLUT[event.code]; + CORE.Input.Keyboard.charPressedQueueCount++; } - #endif - - // Detect char presses (unicode) - if (event.value == 1) - { - // Check if there is space available in the queue - if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) - { - // Add character to the queue - CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = EvkeyToUnicodeLUT[event.code]; - CORE.Input.Keyboard.charPressedQueueCount++; - } - } - - if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) CORE.Window.shouldClose = true; - - TRACELOGD("RPI: KEY_%s ScanCode: %4i KeyCode: %4i", (event.value == 0)? "UP" : "DOWN", event.code, keycode); } + + TRACELOG(LOG_DEBUG, "DRM: KEY_%s Keycode(linux): %4i KeyCode(raylib): %4i", (event.value == 0) ? "UP " : "DOWN", event.code, keycode); } } } } -// Input device events reading thread -static void *EventThread(void *arg) -{ -/* - struct input_event event = { 0 }; - InputEventWorker *worker = (InputEventWorker *)arg; - - int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE - bool gestureUpdate = false; // Flag to note gestures require to update - - while (!CORE.Window.shouldClose) - { - // Try to read data from the device and only continue if successful - while (read(worker->fd, &event, sizeof(event)) == (int)sizeof(event)) - { - // Relative movement parsing - if (event.type == EV_REL) - { - if (event.code == REL_X) - { - if (platform.cursorRelative) - { - CORE.Input.Mouse.currentPosition.x -= event.value; - CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; - } - else - { - CORE.Input.Mouse.currentPosition.x += event.value; - CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; - } - - touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; - } - - if (event.code == REL_Y) - { - if (platform.cursorRelative) - { - CORE.Input.Mouse.currentPosition.y -= event.value; - CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; - } - else - { - CORE.Input.Mouse.currentPosition.y += event.value; - CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; - } - - touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; - } - - if (event.code == REL_WHEEL) platform.eventWheelMove.y += event.value; - } - - // Absolute movement parsing - if (event.type == EV_ABS) - { - // Basic movement - if (event.code == ABS_X) - { - CORE.Input.Mouse.currentPosition.x = (event.value - worker->absRange.x)*CORE.Window.screen.width/worker->absRange.width; // Scale according to absRange - CORE.Input.Touch.position[0].x = (event.value - worker->absRange.x)*CORE.Window.screen.width/worker->absRange.width; // Scale according to absRange - - touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; - } - - if (event.code == ABS_Y) - { - CORE.Input.Mouse.currentPosition.y = (event.value - worker->absRange.y)*CORE.Window.screen.height/worker->absRange.height; // Scale according to absRange - CORE.Input.Touch.position[0].y = (event.value - worker->absRange.y)*CORE.Window.screen.height/worker->absRange.height; // Scale according to absRange - - touchAction = 2; // TOUCH_ACTION_MOVE - gestureUpdate = true; - } - - // Multitouch movement - if (event.code == ABS_MT_SLOT) worker->touchSlot = event.value; // Remember the slot number for the folowing events - - if (event.code == ABS_MT_POSITION_X) - { - if (worker->touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[worker->touchSlot].x = (event.value - worker->absRange.x)*CORE.Window.screen.width/worker->absRange.width; // Scale according to absRange - } - - if (event.code == ABS_MT_POSITION_Y) - { - if (worker->touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[worker->touchSlot].y = (event.value - worker->absRange.y)*CORE.Window.screen.height/worker->absRange.height; // Scale according to absRange - } - - if (event.code == ABS_MT_TRACKING_ID) - { - if ((event.value < 0) && (worker->touchSlot < MAX_TOUCH_POINTS)) - { - // Touch has ended for this point - CORE.Input.Touch.position[worker->touchSlot].x = -1; - CORE.Input.Touch.position[worker->touchSlot].y = -1; - } - } - - // Touchscreen tap - if (event.code == ABS_PRESSURE) - { - int previousMouseLeftButtonState = platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT]; - - if (!event.value && previousMouseLeftButtonState) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 0; - - touchAction = 0; // TOUCH_ACTION_UP - gestureUpdate = true; - } - - if (event.value && !previousMouseLeftButtonState) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 1; - - touchAction = 1; // TOUCH_ACTION_DOWN - gestureUpdate = true; - } - } - - } - - // Button parsing - if (event.type == EV_KEY) - { - // Mouse button parsing - if ((event.code == BTN_TOUCH) || (event.code == BTN_LEFT)) - { - platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = event.value; - - if (event.value > 0) touchAction = 1; // TOUCH_ACTION_DOWN - else touchAction = 0; // TOUCH_ACTION_UP - gestureUpdate = true; - } - - if (event.code == BTN_RIGHT) platform.currentButtonStateEvdev[MOUSE_BUTTON_RIGHT] = event.value; - if (event.code == BTN_MIDDLE) platform.currentButtonStateEvdev[MOUSE_BUTTON_MIDDLE] = event.value; - if (event.code == BTN_SIDE) platform.currentButtonStateEvdev[MOUSE_BUTTON_SIDE] = event.value; - if (event.code == BTN_EXTRA) platform.currentButtonStateEvdev[MOUSE_BUTTON_EXTRA] = event.value; - if (event.code == BTN_FORWARD) platform.currentButtonStateEvdev[MOUSE_BUTTON_FORWARD] = event.value; - if (event.code == BTN_BACK) platform.currentButtonStateEvdev[MOUSE_BUTTON_BACK] = event.value; - } - - // Screen confinement - if (!CORE.Input.Mouse.cursorHidden) - { - if (CORE.Input.Mouse.currentPosition.x < 0) CORE.Input.Mouse.currentPosition.x = 0; - if (CORE.Input.Mouse.currentPosition.x > CORE.Window.screen.width/CORE.Input.Mouse.scale.x) CORE.Input.Mouse.currentPosition.x = CORE.Window.screen.width/CORE.Input.Mouse.scale.x; - - if (CORE.Input.Mouse.currentPosition.y < 0) CORE.Input.Mouse.currentPosition.y = 0; - if (CORE.Input.Mouse.currentPosition.y > CORE.Window.screen.height/CORE.Input.Mouse.scale.y) CORE.Input.Mouse.currentPosition.y = CORE.Window.screen.height/CORE.Input.Mouse.scale.y; - } - - // Update touch point count - CORE.Input.Touch.pointCount = 0; - for (int i = 0; i < MAX_TOUCH_POINTS; i++) - { - if (CORE.Input.Touch.position[i].x >= 0) CORE.Input.Touch.pointCount++; - } - -#if defined(SUPPORT_GESTURES_SYSTEM) - if (gestureUpdate) - { - GestureEvent gestureEvent = { 0 }; - - gestureEvent.touchAction = touchAction; - gestureEvent.pointCount = CORE.Input.Touch.pointCount; - - for (int i = 0; i < MAX_TOUCH_POINTS; i++) - { - gestureEvent.pointId[i] = i; - gestureEvent.position[i] = CORE.Input.Touch.position[i]; - } - - ProcessGestureEvent(gestureEvent); - } -#endif - } - - WaitTime(0.005); // Sleep for 5ms to avoid hogging CPU time - } - - close(worker->fd); -*/ - return NULL; -} - -// Initialize gamepad system -static void InitGamepad(void) -{ - char gamepadDev[128] = { 0 }; - - for (int i = 0; i < MAX_GAMEPADS; i++) - { - sprintf(gamepadDev, "%s%i", DEFAULT_GAMEPAD_DEV, i); - - if ((platform.gamepadStreamFd[i] = open(gamepadDev, O_RDONLY | O_NONBLOCK)) < 0) - { - // NOTE: Only show message for first gamepad - if (i == 0) TRACELOG(LOG_WARNING, "RPI: Failed to open Gamepad device, no gamepad available"); - } - else - { - CORE.Input.Gamepad.ready[i] = true; - - // NOTE: Only show message for first gamepad - if (i == 0) TRACELOG(LOG_INFO, "RPI: Gamepad device initialized successfully"); - - ioctl(platform.gamepadStreamFd[i], JSIOCGNAME(64), &CORE.Input.Gamepad.name[i]); - ioctl(platform.gamepadStreamFd[i], JSIOCGAXES, &CORE.Input.Gamepad.axisCount[i]); - } - } -} - -// Process Gamepad (/dev/input/js0) static void PollGamepadEvents(void) { - #define JS_EVENT_BUTTON 0x01 // Button pressed/released - #define JS_EVENT_AXIS 0x02 // Joystick axis moved - #define JS_EVENT_INIT 0x80 // Initial state of device - - struct js_event { - unsigned int time; // event timestamp in milliseconds - short value; // event value - unsigned char type; // event type - unsigned char number; // event axis/button number - }; - // Read gamepad event - struct js_event gamepadEvent = { 0 }; + struct input_event event = { 0 }; - for (int i = 0; i < MAX_GAMEPADS; i++) + for (int i = 0; i < platform.gamepadCount; i++) { - if (CORE.Input.Gamepad.ready[i]) + if (!CORE.Input.Gamepad.ready[i]) continue; + + // Register previous gamepad states + for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; + + while (read(platform.gamepadStreamFd[i], &event, sizeof(event)) == (int)sizeof(event)) { - // Register previous gamepad states - for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; - - while (read(platform.gamepadStreamFd[i], &gamepadEvent, sizeof(struct js_event)) == (int)sizeof(struct js_event)) + if (event.type == EV_KEY) { - gamepadEvent.type &= ~JS_EVENT_INIT; // Ignore synthetic events + if (event.code >= MAX_GAMEPAD_BUTTONS) continue; - // Process gamepad events by type - if (gamepadEvent.type == JS_EVENT_BUTTON) - { - TRACELOG(LOG_DEBUG, "RPI: Gamepad %i button: %i, value: %i", i, gamepadEvent.number, gamepadEvent.value); + TRACELOG(LOG_DEBUG, "DRM: Gamepad %i button: %i, value: %i", i, event.code, event.value); - if (gamepadEvent.number < MAX_GAMEPAD_BUTTONS) - { - // 1 - button pressed, 0 - button released - CORE.Input.Gamepad.currentButtonState[i][gamepadEvent.number] = (int)gamepadEvent.value; + // 1 - button pressed, 0 - button released + CORE.Input.Gamepad.currentButtonState[i][event.code] = event.value; - if ((int)gamepadEvent.value == 1) CORE.Input.Gamepad.lastButtonPressed = gamepadEvent.number; - else CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN - } - } - else if (gamepadEvent.type == JS_EVENT_AXIS) - { - TRACELOG(LOG_DEBUG, "RPI: Gamepad %i axis: %i, value: %i", i, gamepadEvent.number, gamepadEvent.value); + if (event.value == 1) CORE.Input.Gamepad.lastButtonPressed = event.code; + else CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN + } + else if (event.type == EV_ABS) + { + if (event.code >= MAX_GAMEPAD_AXIS) continue; - if (gamepadEvent.number < MAX_GAMEPAD_AXIS) - { - // NOTE: Scaling of gamepadEvent.value to get values between -1..1 - CORE.Input.Gamepad.axisState[i][gamepadEvent.number] = (float)gamepadEvent.value/32768; - } - } + TRACELOG(LOG_DEBUG, "DRM: Gamepad %i axis: %i, value: %i", i, platform.gamepadAbsAxisMap[i][event.code], event.value); + + int min = platform.gamepadAbsAxisRange[i][event.code][0]; + int range = platform.gamepadAbsAxisRange[i][event.code][1]; + + // NOTE: Scaling of event.value to get values between -1..1 + CORE.Input.Gamepad.axisState[i][platform.gamepadAbsAxisMap[i][event.code]] = (2 * (float)(event.value - min) / range) - 1; } } } } +static void PollMouseEvents(void) +{ + int fd = platform.mouseFd; + if (fd == -1) return; + + struct input_event event = { 0 }; + + int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE + + // Try to read data from the mouse/touch/gesture and only continue if successful + while (read(fd, &event, sizeof(event)) == (int)sizeof(event)) + { + // Relative movement parsing + if (event.type == EV_REL) + { + if (event.code == REL_X) + { + if (platform.cursorRelative) + { + CORE.Input.Mouse.currentPosition.x = event.value; + CORE.Input.Mouse.previousPosition.x = 0.0f; + } + else CORE.Input.Mouse.currentPosition.x += event.value; + CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; + + touchAction = 2; // TOUCH_ACTION_MOVE + } + + if (event.code == REL_Y) + { + if (platform.cursorRelative) + { + CORE.Input.Mouse.currentPosition.y = event.value; + CORE.Input.Mouse.previousPosition.y = 0.0f; + } + else CORE.Input.Mouse.currentPosition.y += event.value; + CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; + + touchAction = 2; // TOUCH_ACTION_MOVE + } + + if (event.code == REL_WHEEL) platform.eventWheelMove.y += event.value; + } + + // Absolute movement parsing + if (event.type == EV_ABS) + { + // Basic movement + if (event.code == ABS_X) + { + CORE.Input.Mouse.currentPosition.x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange + CORE.Input.Touch.position[0].x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange + + touchAction = 2; // TOUCH_ACTION_MOVE + } + + if (event.code == ABS_Y) + { + CORE.Input.Mouse.currentPosition.y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange + CORE.Input.Touch.position[0].y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange + + touchAction = 2; // TOUCH_ACTION_MOVE + } + + // Multitouch movement + if (event.code == ABS_MT_SLOT) platform.touchSlot = event.value; // Remember the slot number for the folowing events + + if (event.code == ABS_MT_POSITION_X) + { + if (platform.touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[platform.touchSlot].x = (event.value - platform.absRange.x)*CORE.Window.screen.width/platform.absRange.width; // Scale according to absRange + } + + if (event.code == ABS_MT_POSITION_Y) + { + if (platform.touchSlot < MAX_TOUCH_POINTS) CORE.Input.Touch.position[platform.touchSlot].y = (event.value - platform.absRange.y)*CORE.Window.screen.height/platform.absRange.height; // Scale according to absRange + } + + if (event.code == ABS_MT_TRACKING_ID) + { + if ((event.value < 0) && (platform.touchSlot < MAX_TOUCH_POINTS)) + { + // Touch has ended for this point + CORE.Input.Touch.position[platform.touchSlot].x = -1; + CORE.Input.Touch.position[platform.touchSlot].y = -1; + } + } + + // Touchscreen tap + if (event.code == ABS_PRESSURE) + { + int previousMouseLeftButtonState = platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT]; + + if (!event.value && previousMouseLeftButtonState) + { + platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 0; + + touchAction = 0; // TOUCH_ACTION_UP + } + + if (event.value && !previousMouseLeftButtonState) + { + platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 1; + + touchAction = 1; // TOUCH_ACTION_DOWN + } + } + + } + + // Button parsing + if (event.type == EV_KEY) + { + // Mouse button parsing + if ((event.code == BTN_TOUCH) || (event.code == BTN_LEFT)) + { + platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = event.value; + + if (event.value > 0) touchAction = 1; // TOUCH_ACTION_DOWN + else touchAction = 0; // TOUCH_ACTION_UP + } + + if (event.code == BTN_RIGHT) platform.currentButtonStateEvdev[MOUSE_BUTTON_RIGHT] = event.value; + if (event.code == BTN_MIDDLE) platform.currentButtonStateEvdev[MOUSE_BUTTON_MIDDLE] = event.value; + if (event.code == BTN_SIDE) platform.currentButtonStateEvdev[MOUSE_BUTTON_SIDE] = event.value; + if (event.code == BTN_EXTRA) platform.currentButtonStateEvdev[MOUSE_BUTTON_EXTRA] = event.value; + if (event.code == BTN_FORWARD) platform.currentButtonStateEvdev[MOUSE_BUTTON_FORWARD] = event.value; + if (event.code == BTN_BACK) platform.currentButtonStateEvdev[MOUSE_BUTTON_BACK] = event.value; + } + + // Screen confinement + if (!CORE.Input.Mouse.cursorHidden) + { + if (CORE.Input.Mouse.currentPosition.x < 0) CORE.Input.Mouse.currentPosition.x = 0; + if (CORE.Input.Mouse.currentPosition.x > CORE.Window.screen.width/CORE.Input.Mouse.scale.x) CORE.Input.Mouse.currentPosition.x = CORE.Window.screen.width/CORE.Input.Mouse.scale.x; + + if (CORE.Input.Mouse.currentPosition.y < 0) CORE.Input.Mouse.currentPosition.y = 0; + if (CORE.Input.Mouse.currentPosition.y > CORE.Window.screen.height/CORE.Input.Mouse.scale.y) CORE.Input.Mouse.currentPosition.y = CORE.Window.screen.height/CORE.Input.Mouse.scale.y; + } + + // Update touch point count + CORE.Input.Touch.pointCount = 0; + for (int i = 0; i < MAX_TOUCH_POINTS; i++) + { + if (CORE.Input.Touch.position[i].x >= 0) CORE.Input.Touch.pointCount++; + } + +#if defined(SUPPORT_GESTURES_SYSTEM) + if (touchAction > -1) + { + GestureEvent gestureEvent = { 0 }; + + gestureEvent.touchAction = touchAction; + gestureEvent.pointCount = CORE.Input.Touch.pointCount; + + for (int i = 0; i < MAX_TOUCH_POINTS; i++) + { + gestureEvent.pointId[i] = i; + gestureEvent.position[i] = CORE.Input.Touch.position[i]; + } + + ProcessGestureEvent(gestureEvent); + + touchAction = -1; + } +#endif + } +} + // Search matching DRM mode in connector's mode list static int FindMatchingConnectorMode(const drmModeConnector *connector, const drmModeModeInfo *mode) { From 07128896af36817f8760068729111dcab29f6fdc Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 28 Mar 2024 19:55:55 +0100 Subject: [PATCH 249/790] Update rcore_drm.c --- src/platforms/rcore_drm.c | 80 ++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index b911a1dae..8251b6946 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -57,20 +57,23 @@ #include // Required for: ioctl() - UNIX System call for device-specific input/output operations #include // Linux: KDSKBMODE, K_MEDIUMRAM constants definition #include // Linux: Keycodes constants definition (KEY_A, ...) +#include // Linux: Joystick support library -// So both `linux/input.h` and `raylib.h` define KEY_F12 +// WARNING: Both 'linux/input.h' and 'raylib.h' define KEY_F12 // To avoid conflict with the capturing code in rcore.c we undefine the macro KEY_F12, // so the enum KEY_F12 from raylib is used #undef KEY_F12 -#include // Linux: Joystick support library +#include // Generic Buffer Management (native platform for EGL on DRM) +#include // Direct Rendering Manager user-level library interface +#include // Direct Rendering Manager mode setting (KMS) interface -#include // Generic Buffer Management (native platform for EGL on DRM) -#include // Direct Rendering Manager user-level library interface -#include // Direct Rendering Manager mode setting (KMS) interface +#include "EGL/egl.h" // Native platform windowing system interface +#include "EGL/eglext.h" // EGL extensions -#include "EGL/egl.h" // Native platform windowing system interface -#include "EGL/eglext.h" // EGL extensions +#ifndef EGL_OPENGL_ES3_BIT + #define EGL_OPENGL_ES3_BIT 0x40 +#endif //---------------------------------------------------------------------------------- // Defines and Macros @@ -157,7 +160,7 @@ static const int keymapUS[] = { // NOTE: The complete evdev EV_KEY list can be found at /usr/include/linux/input-event-codes.h // TODO: Complete the LUT with all unicode decimal values -static const int EvkeyToUnicodeLUT[] = { +static const int evkeyToUnicodeLUT[] = { 0, 27, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 8, 0, 113, 119, 101, 114, 116, 121, 117, 105, 111, 112, 0, 0, 13, 0, 97, 115, 100, 102, 103, 104, 106, 107, 108, 59, 39, 96, 0, 92, 122, 120, 99, 118, 98, 110, 109, 44, 46, 47, 0, 0, 0, 32 @@ -554,12 +557,11 @@ void PollInputEvents(void) PollKeyboardEvents(); - #if defined(SUPPORT_SSH_KEYBOARD_RPI) - // NOTE: Keyboard reading could be done using input_event(s) or just read from stdin, both methods are used here. - // stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console - - if (!platform.eventKeyboardMode) ProcessKeyboard(); - #endif +#if defined(SUPPORT_SSH_KEYBOARD_RPI) + // NOTE: Keyboard reading could be done using input_event(s) or just read from stdin, both methods are used here. + // stdin reading is still used for legacy purposes, it allows keyboard input trough SSH console + if (!platform.eventKeyboardMode) ProcessKeyboard(); +#endif // Check exit key if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey] == 1) CORE.Window.shouldClose = true; @@ -572,6 +574,7 @@ void PollInputEvents(void) CORE.Input.Mouse.previousWheelMove = CORE.Input.Mouse.currentWheelMove; CORE.Input.Mouse.currentWheelMove = platform.eventWheelMove; platform.eventWheelMove = (Vector2){ 0.0f, 0.0f }; + for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) { CORE.Input.Mouse.previousButtonState[i] = CORE.Input.Mouse.currentButtonState[i]; @@ -592,7 +595,6 @@ void PollInputEvents(void) CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; // Handle the mouse/touch/gestures events: - // NOTE: Replaces the EventThread handling that is now commented. PollMouseEvents(); } @@ -952,10 +954,9 @@ int InitPlatform(void) //---------------------------------------------------------------------------- InitEvdevInput(); // Evdev inputs initialization - #if defined(SUPPORT_SSH_KEYBOARD_RPI) - InitKeyboard(); // Keyboard init (stdin) - #endif - +#if defined(SUPPORT_SSH_KEYBOARD_RPI) + InitKeyboard(); // Keyboard init (stdin) +#endif //---------------------------------------------------------------------------- // Initialize storage system @@ -1057,7 +1058,6 @@ void ClosePlatform(void) } #if defined(SUPPORT_SSH_KEYBOARD_RPI) - // Initialize Keyboard system (using standard input) static void InitKeyboard(void) { @@ -1261,7 +1261,7 @@ static void InitEvdevInput(void) closedir(directory); } - else TRACELOG(LOG_WARNING, "DRM: Failed to open linux event directory: %s", DEFAULT_EVDEV_PATH); + else TRACELOG(LOG_WARNING, "INPUT: Failed to open linux event directory: %s", DEFAULT_EVDEV_PATH); } // Identifies a input device and configures it for use if appropriate @@ -1308,7 +1308,8 @@ static void ConfigureEvdevDevice(char *device) ioctl(fd, EVIOCGBIT(0, sizeof(evBits)), evBits); ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keyBits)), keyBits); - if (TEST_BIT(evBits, EV_ABS)) { + if (TEST_BIT(evBits, EV_ABS)) + { ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(absBits)), absBits); // If the device has an X an Y axis it's either a touch device, a special mouse or a gamepad @@ -1333,10 +1334,12 @@ static void ConfigureEvdevDevice(char *device) else if (hasAbsXY && TEST_BIT(keyBits, BTN_MOUSE)) isMouse = true; // If any of the common joystick axis is present, we assume it's a gamepad - else { - for (int axis = (hasAbsXY ? ABS_Z : ABS_X); axis < ABS_PRESSURE; axis++) + else + { + for (int axis = (hasAbsXY? ABS_Z : ABS_X); axis < ABS_PRESSURE; axis++) { - if (TEST_BIT(absBits, axis)) { + if (TEST_BIT(absBits, axis)) + { isGamepad = true; absAxisCount++; @@ -1391,16 +1394,8 @@ static void ConfigureEvdevDevice(char *device) { deviceKindStr = "mouse"; if (platform.mouseFd != -1) close(platform.mouseFd); - platform.mouseFd = fd; -// TODO: What is this supposed to do? -// Previously if set, it just didn't do anything as the thread code got deleted, so no new -// threads were created and this deleted all old threads, thus doing nothing -// And the description isn't quite clear as to how it behaves together with a mouse -#if defined(USE_LAST_TOUCH_DEVICE) -#endif - if (absAxisCount > 0) { platform.absRange.x = absinfo[ABS_X].minimum; @@ -1452,7 +1447,7 @@ static void ConfigureEvdevDevice(char *device) return; } - TRACELOG(LOG_INFO, "Initialized input device %s as %s", device, deviceKindStr); + TRACELOG(LOG_INFO, "INPUT: Initialized input device %s as %s", device, deviceKindStr); } // Poll and process evdev keyboard events @@ -1504,17 +1499,18 @@ static void PollKeyboardEvents(void) if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { // TODO/FIXME: This is not actually converting to unicode properly because it's not taking things like shift into account - CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = EvkeyToUnicodeLUT[event.code]; + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = evkeyToUnicodeLUT[event.code]; CORE.Input.Keyboard.charPressedQueueCount++; } } - TRACELOG(LOG_DEBUG, "DRM: KEY_%s Keycode(linux): %4i KeyCode(raylib): %4i", (event.value == 0) ? "UP " : "DOWN", event.code, keycode); + TRACELOG(LOG_DEBUG, "INPUT: KEY_%s Keycode(linux): %4i KeyCode(raylib): %4i", (event.value == 0) ? "UP " : "DOWN", event.code, keycode); } } } } +// Poll gamepad input events static void PollGamepadEvents(void) { // Read gamepad event @@ -1533,7 +1529,7 @@ static void PollGamepadEvents(void) { if (event.code >= MAX_GAMEPAD_BUTTONS) continue; - TRACELOG(LOG_DEBUG, "DRM: Gamepad %i button: %i, value: %i", i, event.code, event.value); + TRACELOG(LOG_DEBUG, "INPUT: Gamepad %i button: %i, value: %i", i, event.code, event.value); // 1 - button pressed, 0 - button released CORE.Input.Gamepad.currentButtonState[i][event.code] = event.value; @@ -1545,7 +1541,7 @@ static void PollGamepadEvents(void) { if (event.code >= MAX_GAMEPAD_AXIS) continue; - TRACELOG(LOG_DEBUG, "DRM: Gamepad %i axis: %i, value: %i", i, platform.gamepadAbsAxisMap[i][event.code], event.value); + TRACELOG(LOG_DEBUG, "INPUT: Gamepad %i axis: %i, value: %i", i, platform.gamepadAbsAxisMap[i][event.code], event.value); int min = platform.gamepadAbsAxisRange[i][event.code][0]; int range = platform.gamepadAbsAxisRange[i][event.code][1]; @@ -1557,13 +1553,13 @@ static void PollGamepadEvents(void) } } +// Poll mouse input events static void PollMouseEvents(void) { int fd = platform.mouseFd; if (fd == -1) return; struct input_event event = { 0 }; - int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE // Try to read data from the mouse/touch/gesture and only continue if successful @@ -1580,8 +1576,8 @@ static void PollMouseEvents(void) CORE.Input.Mouse.previousPosition.x = 0.0f; } else CORE.Input.Mouse.currentPosition.x += event.value; + CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; - touchAction = 2; // TOUCH_ACTION_MOVE } @@ -1593,8 +1589,8 @@ static void PollMouseEvents(void) CORE.Input.Mouse.previousPosition.y = 0.0f; } else CORE.Input.Mouse.currentPosition.y += event.value; + CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; - touchAction = 2; // TOUCH_ACTION_MOVE } @@ -1652,14 +1648,12 @@ static void PollMouseEvents(void) if (!event.value && previousMouseLeftButtonState) { platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 0; - touchAction = 0; // TOUCH_ACTION_UP } if (event.value && !previousMouseLeftButtonState) { platform.currentButtonStateEvdev[MOUSE_BUTTON_LEFT] = 1; - touchAction = 1; // TOUCH_ACTION_DOWN } } From eda239cc97e78e548621013e2d2ce94149e8702b Mon Sep 17 00:00:00 2001 From: MrMugame <40832361+MrMugame@users.noreply.github.com> Date: Fri, 29 Mar 2024 01:40:20 +0100 Subject: [PATCH 250/790] Fixing gamepad buttons not working in drm backend (#3888) * Fixing gamepad buttons in drm backend * Remove trailing spaces * Axis enumeration now works properly --- src/platforms/rcore_drm.c | 166 +++++++++++++++++++++++++++----------- src/raylib.h | 4 +- 2 files changed, 120 insertions(+), 50 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index 8251b6946..a07ba27f1 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -82,6 +82,10 @@ #define DEFAULT_EVDEV_PATH "/dev/input/" // Path to the linux input events +// So actually the biggest key is KEY_CNT but we only really map the keys up to +// KEY_ALS_TOGGLE +#define KEYMAP_SIZE KEY_ALS_TOGGLE + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -135,31 +139,13 @@ static PlatformData platform = { 0 }; // Platform specific data //---------------------------------------------------------------------------------- // Local Variables Definition //---------------------------------------------------------------------------------- -// Scancode to keycode mapping for US keyboards + +// NOTE: The complete evdev EV_KEY list can be found at /usr/include/linux/input-event-codes.h +// TODO: Complete the LUT with all unicode decimal values // TODO: Replace this with a keymap from the X11 to get the correct regional map for the keyboard: // Currently non US keyboards will have the wrong mapping for some keys // NOTE: Replacing this with the keymap from X11 would probably be useless, as people use the drm // backend to *avoid* X11 -static const int keymapUS[] = { - 0, 256, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 259, 258, 81, 87, 69, 82, 84, - 89, 85, 73, 79, 80, 91, 93, 257, 341, 65, 83, 68, 70, 71, 72, 74, 75, 76, 59, 39, 96, - 340, 92, 90, 88, 67, 86, 66, 78, 77, 44, 46, 47, 344, 332, 342, 32, 280, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 282, 281, 327, 328, 329, 333, 324, 325, - 326, 334, 321, 322, 323, 320, 330, 0, 85, 86, 300, 301, 89, 90, 91, 92, 93, 94, 95, - 335, 345, 331, 283, 346, 101, 268, 265, 266, 263, 262, 269, 264, 267, 260, 261, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 347, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 0, 0, 0, 0, 0, 0, 0 -}; - -// NOTE: The complete evdev EV_KEY list can be found at /usr/include/linux/input-event-codes.h -// TODO: Complete the LUT with all unicode decimal values static const int evkeyToUnicodeLUT[] = { 0, 27, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 8, 0, 113, 119, 101, 114, 116, 121, 117, 105, 111, 112, 0, 0, 13, 0, 97, 115, 100, 102, 103, 104, 106, 107, 108, 59, @@ -167,6 +153,67 @@ static const int evkeyToUnicodeLUT[] = { // LUT currently incomplete, just mapped the most essential keys }; +// This is the map used to map any keycode returned from linux to a raylib code from 'raylib.h' +// NOTE: Use short here to save a little memory +static const short linuxToRaylibMap[KEYMAP_SIZE] = { + // We don't map those with designated initialization, because we would getting + // into loads of naming conflicts + 0, 256, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 48, 45, 61, 259, 258, + 81, 87, 69, 82, 84, 89, 85, 73, + 79, 80, 91, 93, 257, 341, 65, 83, + 68, 70, 71, 72, 74, 75, 76, 59, + 39, 96, 340, 92, 90, 88, 67, 86, + 66, 78, 77, 44, 46, 47, 344, 332, + 342, 32, 280, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 282, 281, 327, + 328, 329, 333, 324, 325, 326, 334, 321, + 322, 323, 320, 330, 0, 85, 86, 300, + 301, 89, 90, 91, 92, 93, 94, 95, + 335, 345, 331, 283, 346, 101, 268, 265, + 266, 263, 262, 269, 264, 267, 260, 261, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 347, 127, + 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 0, 0, 0, 0, + 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, + 248, 0, 0, 0, 0, 0, 0, 0, + + // Gamepads are mapped according to: + // https://www.kernel.org/doc/html/next/input/gamepad.html + // Those mappings are standardized, but that doesn't mean people follow + // the standards, so this is more of an approximation + [BTN_DPAD_UP] = GAMEPAD_BUTTON_LEFT_FACE_UP, + [BTN_DPAD_RIGHT] = GAMEPAD_BUTTON_LEFT_FACE_RIGHT, + [BTN_DPAD_DOWN] = GAMEPAD_BUTTON_LEFT_FACE_DOWN, + [BTN_DPAD_LEFT] = GAMEPAD_BUTTON_LEFT_FACE_LEFT, + [BTN_Y] = GAMEPAD_BUTTON_RIGHT_FACE_UP, + [BTN_B] = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, + [BTN_A] = GAMEPAD_BUTTON_RIGHT_FACE_DOWN, + [BTN_X] = GAMEPAD_BUTTON_RIGHT_FACE_LEFT, + [BTN_TL] = GAMEPAD_BUTTON_LEFT_TRIGGER_1, + [BTN_TL2] = GAMEPAD_BUTTON_LEFT_TRIGGER_2, + [BTN_TR] = GAMEPAD_BUTTON_RIGHT_TRIGGER_1, + [BTN_TR2] GAMEPAD_BUTTON_RIGHT_TRIGGER_2, + [BTN_SELECT] = GAMEPAD_BUTTON_MIDDLE_LEFT, + [BTN_MODE] = GAMEPAD_BUTTON_MIDDLE, + [BTN_START] = GAMEPAD_BUTTON_MIDDLE_RIGHT, + [BTN_THUMBL] = GAMEPAD_BUTTON_LEFT_THUMB, + [BTN_THUMBR] = GAMEPAD_BUTTON_RIGHT_THUMB, +}; + //---------------------------------------------------------------------------------- // Module Internal Functions Declaration //---------------------------------------------------------------------------------- @@ -574,7 +621,7 @@ void PollInputEvents(void) CORE.Input.Mouse.previousWheelMove = CORE.Input.Mouse.currentWheelMove; CORE.Input.Mouse.currentWheelMove = platform.eventWheelMove; platform.eventWheelMove = (Vector2){ 0.0f, 0.0f }; - + for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) { CORE.Input.Mouse.previousButtonState[i] = CORE.Input.Mouse.currentButtonState[i]; @@ -1293,7 +1340,10 @@ static void ConfigureEvdevDevice(char *device) // Identify the device //------------------------------------------------------------------------------------------------------- - struct input_absinfo absinfo[ABS_CNT] = { 0 }; + struct { + bool exist; + struct input_absinfo info; + } absinfo[ABS_CNT] = { 0 }; // These flags aren't really a one of // Some devices could have properties we assosciate with keyboards as well as properties @@ -1318,8 +1368,12 @@ static void ConfigureEvdevDevice(char *device) if (hasAbsXY) { absAxisCount += 2; - ioctl(fd, EVIOCGABS(ABS_X), &absinfo[ABS_X]); - ioctl(fd, EVIOCGABS(ABS_Y), &absinfo[ABS_Y]); + + absinfo[ABS_X].exist = true; + absinfo[ABS_Y].exist = true; + + ioctl(fd, EVIOCGABS(ABS_X), &absinfo[ABS_X].info); + ioctl(fd, EVIOCGABS(ABS_Y), &absinfo[ABS_Y].info); } // If it has any of these buttons it's a touch device @@ -1340,10 +1394,11 @@ static void ConfigureEvdevDevice(char *device) { if (TEST_BIT(absBits, axis)) { + absinfo[axis].exist = true; isGamepad = true; absAxisCount++; - ioctl(fd, EVIOCGABS(axis), &absinfo[axis]); + ioctl(fd, EVIOCGABS(axis), &absinfo[axis].info); } } } @@ -1398,11 +1453,11 @@ static void ConfigureEvdevDevice(char *device) if (absAxisCount > 0) { - platform.absRange.x = absinfo[ABS_X].minimum; - platform.absRange.width = absinfo[ABS_X].maximum - absinfo[ABS_X].minimum; + platform.absRange.x = absinfo[ABS_X].info.minimum; + platform.absRange.width = absinfo[ABS_X].info.maximum - absinfo[ABS_X].info.minimum; - platform.absRange.y = absinfo[ABS_Y].minimum; - platform.absRange.height = absinfo[ABS_Y].maximum - absinfo[ABS_Y].minimum; + platform.absRange.y = absinfo[ABS_Y].info.minimum; + platform.absRange.height = absinfo[ABS_Y].info.maximum - absinfo[ABS_Y].info.minimum; } } else if (isGamepad && !isMouse && !isKeyboard && platform.gamepadCount < MAX_GAMEPADS) @@ -1429,10 +1484,14 @@ static void ConfigureEvdevDevice(char *device) int axisIndex = 0; for (int axis = ABS_X; axis < ABS_PRESSURE; axis++) { - platform.gamepadAbsAxisRange[index][axisIndex][0] = absinfo[axisIndex].minimum; - platform.gamepadAbsAxisRange[index][axisIndex][1] = absinfo[axisIndex].maximum - absinfo[axisIndex].minimum; + if (absinfo[axis].exist) + { + platform.gamepadAbsAxisRange[index][axisIndex][0] = absinfo[axisIndex].info.minimum; + platform.gamepadAbsAxisRange[index][axisIndex][1] = absinfo[axisIndex].info.maximum - absinfo[axisIndex].info.minimum; - platform.gamepadAbsAxisMap[index][axis] = axisIndex++; + platform.gamepadAbsAxisMap[index][axis] = axisIndex; + axisIndex++; + } } } } @@ -1475,7 +1534,7 @@ static void PollKeyboardEvents(void) { // Lookup the scancode in the keymap to get a keycode - keycode = keymapUS[event.code]; + keycode = linuxToRaylibMap[event.code]; // Make sure we got a valid keycode if ((keycode > 0) && (keycode < MAX_KEYBOARD_KEYS)) @@ -1527,27 +1586,38 @@ static void PollGamepadEvents(void) { if (event.type == EV_KEY) { - if (event.code >= MAX_GAMEPAD_BUTTONS) continue; + if (event.code < KEYMAP_SIZE) + { + short keycodeRaylib = linuxToRaylibMap[event.code]; - TRACELOG(LOG_DEBUG, "INPUT: Gamepad %i button: %i, value: %i", i, event.code, event.value); + TRACELOG(LOG_DEBUG, "INPUT: Gamepad %2i: KEY_%s Keycode(linux): %4i Keycode(raylib): %4i", i, (event.value == 0) ? "UP " : "DOWN", event.code, keycodeRaylib); - // 1 - button pressed, 0 - button released - CORE.Input.Gamepad.currentButtonState[i][event.code] = event.value; + if ((keycodeRaylib != 0) && (keycodeRaylib < MAX_GAMEPAD_BUTTONS)) + { + // 1 - button pressed, 0 - button released + CORE.Input.Gamepad.currentButtonState[i][keycodeRaylib] = event.value; - if (event.value == 1) CORE.Input.Gamepad.lastButtonPressed = event.code; - else CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN + CORE.Input.Gamepad.lastButtonPressed = (event.value == 1)? keycodeRaylib : GAMEPAD_BUTTON_UNKNOWN; + } + } } else if (event.type == EV_ABS) { - if (event.code >= MAX_GAMEPAD_AXIS) continue; + if (event.code < ABS_CNT) + { + int axisRaylib = platform.gamepadAbsAxisMap[i][event.code]; - TRACELOG(LOG_DEBUG, "INPUT: Gamepad %i axis: %i, value: %i", i, platform.gamepadAbsAxisMap[i][event.code], event.value); + TRACELOG(LOG_DEBUG, "INPUT: Gamepad %2i: Axis: %2i Value: %i", i, axisRaylib, event.value); - int min = platform.gamepadAbsAxisRange[i][event.code][0]; - int range = platform.gamepadAbsAxisRange[i][event.code][1]; + if (axisRaylib < MAX_GAMEPAD_AXIS) + { + int min = platform.gamepadAbsAxisRange[i][event.code][0]; + int range = platform.gamepadAbsAxisRange[i][event.code][1]; - // NOTE: Scaling of event.value to get values between -1..1 - CORE.Input.Gamepad.axisState[i][platform.gamepadAbsAxisMap[i][event.code]] = (2 * (float)(event.value - min) / range) - 1; + // NOTE: Scaling of event.value to get values between -1..1 + CORE.Input.Gamepad.axisState[i][axisRaylib] = (2 * (float)(event.value - min) / range) - 1; + } + } } } } @@ -1576,7 +1646,7 @@ static void PollMouseEvents(void) CORE.Input.Mouse.previousPosition.x = 0.0f; } else CORE.Input.Mouse.currentPosition.x += event.value; - + CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x; touchAction = 2; // TOUCH_ACTION_MOVE } @@ -1589,7 +1659,7 @@ static void PollMouseEvents(void) CORE.Input.Mouse.previousPosition.y = 0.0f; } else CORE.Input.Mouse.currentPosition.y += event.value; - + CORE.Input.Touch.position[0].y = CORE.Input.Mouse.currentPosition.y; touchAction = 2; // TOUCH_ACTION_MOVE } diff --git a/src/raylib.h b/src/raylib.h index 1a15e124d..0f6fdf514 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -721,9 +721,9 @@ typedef enum { GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) - GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (one), it could be a trailing button From 7c75746b919d6ec1eeb609ae6f6bfb35b64e0cb7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 29 Mar 2024 00:40:37 +0000 Subject: [PATCH 251/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 18 ++++++++++++------ parser/output/raylib_api.lua | 18 ++++++++++++------ parser/output/raylib_api.txt | 15 ++++++++++----- parser/output/raylib_api.xml | 15 ++++++++------- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index ec8d57a8c..ab12a43ed 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -335,6 +335,12 @@ "type": "UNKNOWN", "value": "SHADER_LOC_MAP_METALNESS", "description": "" + }, + { + "name": "GetMouseRay", + "type": "UNKNOWN", + "value": "GetScreenToWorldRay", + "description": "Compatibility hack for previous raylib versions" } ], "structs": [ @@ -2223,7 +2229,7 @@ { "name": "GAMEPAD_BUTTON_RIGHT_FACE_RIGHT", "value": 6, - "description": "Gamepad right button right (i.e. PS3: Square, Xbox: X)" + "description": "Gamepad right button right (i.e. PS3: Circle, Xbox: B)" }, { "name": "GAMEPAD_BUTTON_RIGHT_FACE_DOWN", @@ -2233,7 +2239,7 @@ { "name": "GAMEPAD_BUTTON_RIGHT_FACE_LEFT", "value": 8, - "description": "Gamepad right button left (i.e. PS3: Circle, Xbox: B)" + "description": "Gamepad right button left (i.e. PS3: Square, Xbox: X)" }, { "name": "GAMEPAD_BUTTON_LEFT_TRIGGER_1", @@ -3873,12 +3879,12 @@ }, { "name": "GetScreenToWorldRay", - "description": "Get a ray trace from mouse position", + "description": "Get a ray trace from screen position (i.e mouse)", "returnType": "Ray", "params": [ { "type": "Vector2", - "name": "mousePosition" + "name": "position" }, { "type": "Camera", @@ -3888,12 +3894,12 @@ }, { "name": "GetScreenToWorldRayEx", - "description": "Get a ray trace from mouse position in a viewport", + "description": "Get a ray trace from screen position (i.e mouse) in a viewport", "returnType": "Ray", "params": [ { "type": "Vector2", - "name": "mousePosition" + "name": "position" }, { "type": "Camera", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 01c1abf30..f64e8eb0e 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -335,6 +335,12 @@ return { type = "UNKNOWN", value = "SHADER_LOC_MAP_METALNESS", description = "" + }, + { + name = "GetMouseRay", + type = "UNKNOWN", + value = "GetScreenToWorldRay", + description = "Compatibility hack for previous raylib versions" } }, structs = { @@ -2223,7 +2229,7 @@ return { { name = "GAMEPAD_BUTTON_RIGHT_FACE_RIGHT", value = 6, - description = "Gamepad right button right (i.e. PS3: Square, Xbox: X)" + description = "Gamepad right button right (i.e. PS3: Circle, Xbox: B)" }, { name = "GAMEPAD_BUTTON_RIGHT_FACE_DOWN", @@ -2233,7 +2239,7 @@ return { { name = "GAMEPAD_BUTTON_RIGHT_FACE_LEFT", value = 8, - description = "Gamepad right button left (i.e. PS3: Circle, Xbox: B)" + description = "Gamepad right button left (i.e. PS3: Square, Xbox: X)" }, { name = "GAMEPAD_BUTTON_LEFT_TRIGGER_1", @@ -3636,19 +3642,19 @@ return { }, { name = "GetScreenToWorldRay", - description = "Get a ray trace from mouse position", + description = "Get a ray trace from screen position (i.e mouse)", returnType = "Ray", params = { - {type = "Vector2", name = "mousePosition"}, + {type = "Vector2", name = "position"}, {type = "Camera", name = "camera"} } }, { name = "GetScreenToWorldRayEx", - description = "Get a ray trace from mouse position in a viewport", + description = "Get a ray trace from screen position (i.e mouse) in a viewport", returnType = "Ray", params = { - {type = "Vector2", name = "mousePosition"}, + {type = "Vector2", name = "position"}, {type = "Camera", name = "camera"}, {type = "float", name = "width"}, {type = "float", name = "height"} diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index d49ac33e4..6a1c17c05 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -1,5 +1,5 @@ -Defines found: 56 +Defines found: 57 Define 001: RAYLIB_H Name: RAYLIB_H @@ -281,6 +281,11 @@ Define 056: SHADER_LOC_MAP_SPECULAR Type: UNKNOWN Value: SHADER_LOC_MAP_METALNESS Description: +Define 057: GetMouseRay + Name: GetMouseRay + Type: UNKNOWN + Value: GetScreenToWorldRay + Description: Compatibility hack for previous raylib versions Structures found: 34 @@ -1424,14 +1429,14 @@ Function 083: UnloadShader() (1 input parameters) Function 084: GetScreenToWorldRay() (2 input parameters) Name: GetScreenToWorldRay Return type: Ray - Description: Get a ray trace from mouse position - Param[1]: mousePosition (type: Vector2) + Description: Get a ray trace from screen position (i.e mouse) + Param[1]: position (type: Vector2) Param[2]: camera (type: Camera) Function 085: GetScreenToWorldRayEx() (4 input parameters) Name: GetScreenToWorldRayEx Return type: Ray - Description: Get a ray trace from mouse position in a viewport - Param[1]: mousePosition (type: Vector2) + Description: Get a ray trace from screen position (i.e mouse) in a viewport + Param[1]: position (type: Vector2) Param[2]: camera (type: Camera) Param[3]: width (type: float) Param[4]: height (type: float) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 45697f24d..d4dddbcdf 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -1,6 +1,6 @@ - + @@ -57,6 +57,7 @@ + @@ -470,9 +471,9 @@ - + - + @@ -902,12 +903,12 @@ - - + + - - + + From d3744570405976e33e2a6cfd7aceda3a30c5e000 Mon Sep 17 00:00:00 2001 From: Nikolas Mauropoulos <3339081+ProIcons@users.noreply.github.com> Date: Sat, 30 Mar 2024 20:36:30 +0200 Subject: [PATCH 252/790] Fixes zig build that was broken on #3863 (#3891) * Fixes zig build that was broken on #3863 * Make this work with wayland --- src/build.zig | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/src/build.zig b/src/build.zig index ed9013aca..93ffe47a2 100644 --- a/src/build.zig +++ b/src/build.zig @@ -115,10 +115,34 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("dl"); raylib.linkSystemLibrary("m"); - raylib.linkSystemLibrary("X11"); + raylib.addLibraryPath(.{ .path = "/usr/lib" }); raylib.addIncludePath(.{ .path = "/usr/include" }); + switch (options.linux_display_backend) { + .X11 => { + raylib.defineCMacro("_GLFW_X11", null); + raylib.linkSystemLibrary("X11"); + }, + .Wayland => { + raylib.defineCMacro("_GLFW_WAYLAND", null); + raylib.linkSystemLibrary("wayland-client"); + raylib.linkSystemLibrary("wayland-cursor"); + raylib.linkSystemLibrary("wayland-egl"); + raylib.linkSystemLibrary("xkbcommon"); + raylib.addIncludePath(.{ .path = srcdir }); + try waylandGenerate(gpa, "wayland.xml", "wayland-client-protocol"); + try waylandGenerate(gpa, "xdg-shell.xml", "xdg-shell-client-protocol"); + try waylandGenerate(gpa, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol"); + try waylandGenerate(gpa, "viewporter.xml", "viewporter-client-protocol"); + try waylandGenerate(gpa, "relative-pointer-unstable-v1.xml", "relative-pointer-unstable-v1-client-protocol"); + try waylandGenerate(gpa, "pointer-constraints-unstable-v1.xml", "pointer-constraints-unstable-v1-client-protocol"); + try waylandGenerate(gpa, "fractional-scale-v1.xml", "fractional-scale-v1-client-protocol"); + try waylandGenerate(gpa, "xdg-activation-v1.xml", "xdg-activation-v1-client-protocol"); + try waylandGenerate(gpa, "idle-inhibit-unstable-v1.xml", "idle-inhibit-unstable-v1-client-protocol"); + }, + } + raylib.defineCMacro("PLATFORM_DESKTOP", null); } else { raylib.linkSystemLibrary("GLESv2"); @@ -201,6 +225,12 @@ pub const Options = struct { raygui: bool = false, platform_drm: bool = false, shared: bool = false, + linux_display_backend: LinuxDisplayBackend = .X11, +}; + +pub const LinuxDisplayBackend = enum { + X11, + Wayland, }; pub fn build(b: *std.Build) !void { @@ -245,6 +275,8 @@ const srcdir = struct { } }.getSrcDir(); +const waylandDir = srcdir ++ "/external/glfw/deps/wayland"; + fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { if (comptime builtin.zig_version.minor >= 12) { return target.result.os.tag; @@ -273,6 +305,27 @@ fn addCSourceFilesVersioned( } } +fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { + _ = try std.process.Child.run(.{ + .allocator = allocator, + .argv = &[_][]const u8{ + "wayland-scanner", + "client-header", + waylandDir ++ "/" ++ protocol, + srcdir ++ "/" ++ basename ++ ".h", + }, + }); + _ = try std.process.Child.run(.{ + .allocator = allocator, + .argv = &[_][]const u8{ + "wayland-scanner", + "private-code", + waylandDir ++ "/" ++ protocol, + srcdir ++ "/" ++ basename ++ "-code.h", + }, + }); +} + fn join2(allocator: std.mem.Allocator, path1: []const u8, path2: []const u8) ![]u8 { const joinedPath = try std.fs.path.join(allocator, &[_][]const u8{ path1, path2 }); return joinedPath; From 3b353da3ab8742c5a2cf386bc96989d4a1fdc2dd Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 1 Apr 2024 18:00:52 +0200 Subject: [PATCH 253/790] Address parsing issue when generating XML #3893 --- src/raylib.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 0f6fdf514..edf4f1384 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1663,10 +1663,10 @@ RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data -RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as s +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream -RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as s +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline #if defined(__cplusplus) From 1b047995d1046a869fb0f1e8ecf430573e0207e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Apr 2024 16:01:29 +0000 Subject: [PATCH 254/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 4 ++-- parser/output/raylib_api.lua | 4 ++-- parser/output/raylib_api.txt | 4 ++-- parser/output/raylib_api.xml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index ab12a43ed..1517846b9 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -11669,7 +11669,7 @@ }, { "name": "AttachAudioStreamProcessor", - "description": "Attach audio stream processor to stream, receives the samples as s", + "description": "Attach audio stream processor to stream, receives the samples as 'float'", "returnType": "void", "params": [ { @@ -11699,7 +11699,7 @@ }, { "name": "AttachAudioMixedProcessor", - "description": "Attach audio stream processor to the entire audio pipeline, receives the samples as s", + "description": "Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'", "returnType": "void", "params": [ { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index f64e8eb0e..1423e237d 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -8021,7 +8021,7 @@ return { }, { name = "AttachAudioStreamProcessor", - description = "Attach audio stream processor to stream, receives the samples as s", + description = "Attach audio stream processor to stream, receives the samples as 'float'", returnType = "void", params = { {type = "AudioStream", name = "stream"}, @@ -8039,7 +8039,7 @@ return { }, { name = "AttachAudioMixedProcessor", - description = "Attach audio stream processor to the entire audio pipeline, receives the samples as s", + description = "Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'", returnType = "void", params = { {type = "AudioCallback", name = "processor"} diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 6a1c17c05..1feba41e3 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -4500,7 +4500,7 @@ Function 557: SetAudioStreamCallback() (2 input parameters) Function 558: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void - Description: Attach audio stream processor to stream, receives the samples as s + Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) Function 559: DetachAudioStreamProcessor() (2 input parameters) @@ -4512,7 +4512,7 @@ Function 559: DetachAudioStreamProcessor() (2 input parameters) Function 560: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void - Description: Attach audio stream processor to the entire audio pipeline, receives the samples as s + Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) Function 561: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index d4dddbcdf..492e30a89 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -2988,7 +2988,7 @@ - + @@ -2996,7 +2996,7 @@ - + From 646d70e93a5a049cb9f603c3b94ee1ba98c9161e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Apr 2024 09:38:06 +0200 Subject: [PATCH 255/790] Remove trailing spaces --- src/CMakeLists.txt | 2 +- src/platforms/rcore_desktop.c | 2 +- src/raudio.c | 8 ++++---- src/raymath.h | 8 ++++---- src/rcore.c | 12 ++++++------ src/rlgl.h | 6 +++--- src/rmodels.c | 4 ++-- src/utils.c | 4 ++-- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 919efeb4d..387665705 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,7 +15,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) endif() message(STATUS "Setting build type to '${default_build_type}' as none was specified.") - + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") endif() diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index e9d372f73..04b73355e 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1739,7 +1739,7 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int // but future releases may add more actions (i.e. GLFW_REPEAT) CORE.Input.Mouse.currentButtonState[button] = action; CORE.Input.Touch.currentTouchState[button] = action; - + #if defined(SUPPORT_GESTURES_SYSTEM) && defined(SUPPORT_MOUSE_GESTURES) // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; diff --git a/src/raudio.c b/src/raudio.c index 4d0de45a5..0e9e043d1 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -942,13 +942,13 @@ Sound LoadSoundAlias(Sound source) if (source.stream.buffer->data != NULL) { AudioBuffer *audioBuffer = LoadAudioBuffer(AUDIO_DEVICE_FORMAT, AUDIO_DEVICE_CHANNELS, AUDIO.System.device.sampleRate, 0, AUDIO_BUFFER_USAGE_STATIC); - + if (audioBuffer == NULL) { TRACELOG(LOG_WARNING, "SOUND: Failed to create buffer"); return sound; // Early return to avoid dereferencing the audioBuffer null pointer } - + audioBuffer->sizeInFrames = source.stream.buffer->sizeInFrames; audioBuffer->volume = source.stream.buffer->volume; audioBuffer->data = source.stream.buffer->data; @@ -1081,7 +1081,7 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) int waveDataSize = wave.frameCount*wave.channels*wave.sampleSize/8; // NOTE: Text data buffer size is estimated considering wave data size in bytes - // and requiring 12 char bytes for every byte; the actual size varies, but + // and requiring 12 char bytes for every byte; the actual size varies, but // the longest possible char being appended is "%.4ff,\n ", which is 12 bytes. char *txtData = (char *)RL_CALLOC(waveDataSize*12 + 2000, sizeof(char)); @@ -2752,7 +2752,7 @@ static bool SaveFileData(const char *fileName, void *data, int dataSize) return false; } } - else + else { TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); return false; diff --git a/src/raymath.h b/src/raymath.h index 52c11b21c..96f2c2cdd 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -777,7 +777,7 @@ RMAPI Vector3 Vector3Normalize(Vector3 v) RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) { Vector3 result = { 0 }; - + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); @@ -794,7 +794,7 @@ RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) { Vector3 result = { 0 }; - + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); @@ -1213,7 +1213,7 @@ RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) RMAPI Vector4 Vector4Zero(void) { Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; - return result; + return result; } RMAPI Vector4 Vector4One(void) @@ -1296,7 +1296,7 @@ RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) // Calculate square distance between two vectors RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) { - float result = + float result = (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); diff --git a/src/rcore.c b/src/rcore.c index aa9724cb1..b7147745a 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -118,12 +118,12 @@ #if defined(SUPPORT_GESTURES_SYSTEM) #define RGESTURES_IMPLEMENTATION - #include "rgestures.h" // Gestures detection functionality + #include "rgestures.h" // Gestures detection functionality #endif #if defined(SUPPORT_CAMERA_SYSTEM) #define RCAMERA_IMPLEMENTATION - #include "rcamera.h" // Camera system functionality + #include "rcamera.h" // Camera system functionality #endif #if defined(SUPPORT_GIF_RECORDING) @@ -1799,7 +1799,7 @@ void TakeScreenshot(const char *fileName) char path[512] = { 0 }; strcpy(path, TextFormat("%s/%s", CORE.Storage.basePath, GetFileName(fileName))); - + ExportImage(image, path); // WARNING: Module required: rtextures RL_FREE(imgData); @@ -1955,7 +1955,7 @@ const char *GetFileName(const char *filePath) const char *GetFileNameWithoutExt(const char *filePath) { #define MAX_FILENAME_LENGTH 256 - + static char fileName[MAX_FILENAME_LENGTH] = { 0 }; memset(fileName, 0, MAX_FILENAME_LENGTH); @@ -1963,7 +1963,7 @@ const char *GetFileNameWithoutExt(const char *filePath) { strcpy(fileName, GetFileName(filePath)); // Get filename.ext without path int size = (int)strlen(fileName); // Get size in bytes - + for (int i = size; i > 0; i--) // Reverse search '.' { if (fileName[i] == '.') @@ -1974,7 +1974,7 @@ const char *GetFileNameWithoutExt(const char *filePath) } } } - + return fileName; } diff --git a/src/rlgl.h b/src/rlgl.h index 0f7840259..87cff4ef6 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -623,7 +623,7 @@ RLAPI void rlDisableFramebuffer(void); // Disable render textur RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer -RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) // General render state RLAPI void rlEnableColorBlend(void); // Enable color blending @@ -3828,8 +3828,8 @@ void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool norma { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT - // Additional types (depends on OpenGL version or extensions): - // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); #endif diff --git a/src/rmodels.c b/src/rmodels.c index d94754f1f..77bb19aa1 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5804,7 +5804,7 @@ static Model LoadM3D(const char *fileName) // If no map is provided, or we have colors defined, we allocate storage for vertex colors // M3D specs only consider vertex colors if no material is provided, however raylib uses both and mixes the colors if ((mi == M3D_UNDEF) || vcolor) model.meshes[k].colors = RL_CALLOC(model.meshes[k].vertexCount*4, sizeof(unsigned char)); - + // If no map is provided and we allocated vertex colors, set them to white if ((mi == M3D_UNDEF) && (model.meshes[k].colors != NULL)) { @@ -6076,7 +6076,7 @@ static ModelAnimation *LoadModelAnimationsM3D(const char *fileName, int *animCou animations[a].framePoses = RL_MALLOC(animations[a].frameCount*sizeof(Transform *)); strncpy(animations[a].name, m3d->action[a].name, sizeof(animations[a].name)); animations[a].name[sizeof(animations[a].name) - 1] = '\0'; - + TRACELOG(LOG_INFO, "MODEL: [%s] animation #%i: %i msec, %i frames", fileName, a, m3d->action[a].durationmsec, animations[a].frameCount); for (i = 0; i < (int)m3d->numbone; i++) diff --git a/src/utils.c b/src/utils.c index 2c26c114a..895f77775 100644 --- a/src/utils.c +++ b/src/utils.c @@ -211,13 +211,13 @@ unsigned char *LoadFileData(const char *fileName, int *dataSize) { // NOTE: fread() returns number of read elements instead of bytes, so we read [1 byte, size elements] size_t count = fread(data, sizeof(unsigned char), size, file); - + // WARNING: fread() returns a size_t value, usually 'unsigned int' (32bit compilation) and 'unsigned long long' (64bit compilation) // dataSize is unified along raylib as a 'int' type, so, for file-sizes > INT_MAX (2147483647 bytes) we have a limitation if (count > 2147483647) { TRACELOG(LOG_WARNING, "FILEIO: [%s] File is bigger than 2147483647 bytes, avoid using LoadFileData()", fileName); - + RL_FREE(data); data = NULL; } From c9d71689edb2ea7bae79b204337a3f3dadac1b43 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 2 Apr 2024 09:40:19 +0200 Subject: [PATCH 256/790] Remove TABS --- src/raylib.dll.rc | 10 +++++----- src/raylib.rc | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/raylib.dll.rc b/src/raylib.dll.rc index e1455af7a..ba2f5bbf4 100644 --- a/src/raylib.dll.rc +++ b/src/raylib.dll.rc @@ -6,10 +6,10 @@ PRODUCTVERSION 5,0,0,0 BEGIN BLOCK "StringFileInfo" BEGIN - //BLOCK "080904E4" // English UK - BLOCK "040904E4" // English US + //BLOCK "080904E4" // English UK + BLOCK "040904E4" // English US BEGIN - //VALUE "CompanyName", "raylib technologies" + //VALUE "CompanyName", "raylib technologies" VALUE "FileDescription", "raylib dynamic library (www.raylib.com)" VALUE "FileVersion", "5.0.0" VALUE "InternalName", "raylib.dll" @@ -21,7 +21,7 @@ BEGIN END BLOCK "VarFileInfo" BEGIN - //VALUE "Translation", 0x809, 1252 // English UK - VALUE "Translation", 0x409, 1252 // English US + //VALUE "Translation", 0x809, 1252 // English UK + VALUE "Translation", 0x409, 1252 // English US END END diff --git a/src/raylib.rc b/src/raylib.rc index 8612a9561..12f35aaed 100644 --- a/src/raylib.rc +++ b/src/raylib.rc @@ -6,10 +6,10 @@ PRODUCTVERSION 5,0,0,0 BEGIN BLOCK "StringFileInfo" BEGIN - //BLOCK "080904E4" // English UK - BLOCK "040904E4" // English US + //BLOCK "080904E4" // English UK + BLOCK "040904E4" // English US BEGIN - //VALUE "CompanyName", "raylib technologies" + //VALUE "CompanyName", "raylib technologies" VALUE "FileDescription", "raylib application (www.raylib.com)" VALUE "FileVersion", "5.0.0" VALUE "InternalName", "raylib app" @@ -21,7 +21,7 @@ BEGIN END BLOCK "VarFileInfo" BEGIN - //VALUE "Translation", 0x809, 1252 // English UK - VALUE "Translation", 0x409, 1252 // English US + //VALUE "Translation", 0x809, 1252 // English UK + VALUE "Translation", 0x409, 1252 // English US END END From 9070eb9a132a4404e7d5247ff7bd2d2c2d77f3ad Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Wed, 3 Apr 2024 06:10:52 -0400 Subject: [PATCH 257/790] Fix framerate recording for .gifs (#3894) --- src/rcore.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index b7147745a..3645c6179 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -849,23 +849,33 @@ void EndDrawing(void) // Draw record indicator if (gifRecording) { + #ifndef GIF_RECORD_FRAMERATE #define GIF_RECORD_FRAMERATE 10 - gifFrameCounter++; + #endif + gifFrameCounter += GetFrameTime()*1000; - // NOTE: We record one gif frame every 10 game frames - if ((gifFrameCounter%GIF_RECORD_FRAMERATE) == 0) + // NOTE: We record one gif frame depending on the desired gif framerate + if (gifFrameCounter > 1000/GIF_RECORD_FRAMERATE) { // Get image data for the current frame (from backbuffer) // NOTE: This process is quite slow... :( Vector2 scale = GetWindowScaleDPI(); unsigned char *screenData = rlReadScreenPixels((int)((float)CORE.Window.render.width*scale.x), (int)((float)CORE.Window.render.height*scale.y)); - msf_gif_frame(&gifState, screenData, 10, 16, (int)((float)CORE.Window.render.width*scale.x)*4); + + #ifndef GIF_RECORD_BITRATE + #define GIF_RECORD_BITRATE 16 + #endif + + // Add the frame to the gif recording, given how many frames have passed in centiseconds + msf_gif_frame(&gifState, screenData, gifFrameCounter/10, GIF_RECORD_BITRATE, (int)((float)CORE.Window.render.width*scale.x)*4); + gifFrameCounter -= 1000/GIF_RECORD_FRAMERATE; RL_FREE(screenData); // Free image data } #if defined(SUPPORT_MODULE_RSHAPES) && defined(SUPPORT_MODULE_RTEXT) - if (((gifFrameCounter/15)%2) == 1) + // Display the recording indicator every half-second + if ((int)(GetTime()/0.5)%2 == 1) { DrawCircle(30, CORE.Window.screen.height - 20, 10, MAROON); // WARNING: Module required: rshapes DrawText("GIF RECORDING", 50, CORE.Window.screen.height - 25, 10, RED); // WARNING: Module required: rtext From d30cfea82da302b394006b45e80707f90ad1a956 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 3 Apr 2024 20:10:15 +0200 Subject: [PATCH 258/790] REVIEWED: `GetScreenToWorldRayEx()` --- src/raylib.h | 2 +- src/rcore.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index edf4f1384..e351d33fd 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1051,7 +1051,7 @@ RLAPI void UnloadShader(Shader shader); // Un // Screen-space-related functions #define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) -RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height); // Get a ray trace from screen position (i.e mouse) in a viewport +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position diff --git a/src/rcore.c b/src/rcore.c index 3645c6179..9705495ee 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1419,18 +1419,18 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) // Get a ray trace from screen position (i.e mouse) Ray GetScreenToWorldRay(Vector2 position, Camera camera) { - return GetScreenToWorldRayEx(position, camera, (float)GetScreenWidth(), (float)GetScreenHeight()); + return GetScreenToWorldRayEx(position, camera, GetScreenWidth(), GetScreenHeight()); } // Get a ray trace from the screen position (i.e mouse) within a specific section of the screen -Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, float width, float height) +Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height) { Ray ray = { 0 }; // Calculate normalized device coordinates // NOTE: y value is negative - float x = (2.0f*position.x)/width - 1.0f; - float y = 1.0f - (2.0f*position.y)/height; + float x = (2.0f*position.x)/(float)width - 1.0f; + float y = 1.0f - (2.0f*position.y)/(float)height; float z = 1.0f; // Store values in a vector From 1987c90c736d74c28f79d19b0408c691982dc0b0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 3 Apr 2024 18:10:31 +0000 Subject: [PATCH 259/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 4 ++-- parser/output/raylib_api.lua | 4 ++-- parser/output/raylib_api.txt | 4 ++-- parser/output/raylib_api.xml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 1517846b9..2b339512b 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -3906,11 +3906,11 @@ "name": "camera" }, { - "type": "float", + "type": "int", "name": "width" }, { - "type": "float", + "type": "int", "name": "height" } ] diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 1423e237d..8f0a62957 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -3656,8 +3656,8 @@ return { params = { {type = "Vector2", name = "position"}, {type = "Camera", name = "camera"}, - {type = "float", name = "width"}, - {type = "float", name = "height"} + {type = "int", name = "width"}, + {type = "int", name = "height"} } }, { diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 1feba41e3..8031f874c 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -1438,8 +1438,8 @@ Function 085: GetScreenToWorldRayEx() (4 input parameters) Description: Get a ray trace from screen position (i.e mouse) in a viewport Param[1]: position (type: Vector2) Param[2]: camera (type: Camera) - Param[3]: width (type: float) - Param[4]: height (type: float) + Param[3]: width (type: int) + Param[4]: height (type: int) Function 086: GetWorldToScreen() (2 input parameters) Name: GetWorldToScreen Return type: Vector2 diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 492e30a89..2f536db32 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -910,8 +910,8 @@ - - + + From 890058abcd6e3c03fe2c59ebb416db1e8b75446f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Apr 2024 13:18:28 +0200 Subject: [PATCH 260/790] Update raylib.h --- src/raylib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index e351d33fd..0d862a022 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1050,7 +1050,7 @@ RLAPI void UnloadShader(Shader shader); // Un // Screen-space-related functions #define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions -RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position From 414229bcf93816daaa253a82cd54fbd7b18e6449 Mon Sep 17 00:00:00 2001 From: iarkn <76028749+iarkn@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:55:23 +0700 Subject: [PATCH 261/790] Fix #3891 breaking builds for Zig v0.11.0 (#3896) The changes brought by #3891 uses `std.process.Child.run` which was renamed from `std.process.Child.exec` in Zig version 0.11.0. This commit adds a version check to use the appropriate function names. Additionally, the `linux_display_backend` configuration option is added so users can set it when running `zig build` with the `-D` option or when using raylib as a dependency. --- src/build.zig | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/build.zig b/src/build.zig index 93ffe47a2..91cd9cb1f 100644 --- a/src/build.zig +++ b/src/build.zig @@ -254,6 +254,7 @@ pub fn build(b: *std.Build) !void { .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, .raygui = b.option(bool, "raygui", "Compile with raygui support") orelse defaults.raygui, .shared = b.option(bool, "shared", "Compile as shared library") orelse defaults.shared, + .linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend, }; const lib = try addRaylib(b, target, optimize, options); @@ -306,24 +307,28 @@ fn addCSourceFilesVersioned( } fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { - _ = try std.process.Child.run(.{ - .allocator = allocator, - .argv = &[_][]const u8{ - "wayland-scanner", - "client-header", - waylandDir ++ "/" ++ protocol, - srcdir ++ "/" ++ basename ++ ".h", - }, - }); - _ = try std.process.Child.run(.{ - .allocator = allocator, - .argv = &[_][]const u8{ - "wayland-scanner", - "private-code", - waylandDir ++ "/" ++ protocol, - srcdir ++ "/" ++ basename ++ "-code.h", - }, - }); + const protocolDir = waylandDir ++ "/" ++ protocol; + const clientHeader = srcdir ++ "/" ++ basename ++ ".h"; + const privateCode = srcdir ++ "/" ++ basename ++ "-code.h"; + if (comptime builtin.zig_version.minor >= 12) { + _ = try std.process.Child.run(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, + }); + _ = try std.process.Child.run(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, + }); + } else { + _ = try std.process.Child.exec(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, + }); + _ = try std.process.Child.exec(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, + }); + } } fn join2(allocator: std.mem.Allocator, path1: []const u8, path2: []const u8) ![]u8 { From 1b14c082ed92db66a2fea40f415b506aefdab084 Mon Sep 17 00:00:00 2001 From: jtainer <92753845+jtainer@users.noreply.github.com> Date: Sat, 6 Apr 2024 07:56:20 -0400 Subject: [PATCH 262/790] Remove redundant axis length calculation (#3900) --- src/raymath.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index 96f2c2cdd..3bafab510 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -2338,8 +2338,7 @@ RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) float ilength = 0.0f; // Vector3Normalize(axis) - Vector3 v = axis; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + length = axisLength; if (length == 0.0f) length = 1.0f; ilength = 1.0f/length; axis.x *= ilength; From aca9ab0ebb545a85f1959dfb27a7ebc6af0e3dd7 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Apr 2024 09:47:28 +0200 Subject: [PATCH 263/790] Update cgltf.h --- src/external/cgltf.h | 230 +++++++++++++++++++++++++++++++------------ 1 file changed, 168 insertions(+), 62 deletions(-) diff --git a/src/external/cgltf.h b/src/external/cgltf.h index ddec501b6..323120145 100644 --- a/src/external/cgltf.h +++ b/src/external/cgltf.h @@ -63,9 +63,14 @@ * By passing null for the output pointer, users can find out how many floats are required in the * output buffer. * + * `cgltf_accessor_unpack_indices` reads in the index data from an accessor. Assumes that + * `cgltf_load_buffers` has already been called. By passing null for the output pointer, users can + * find out how many indices are required in the output buffer. Returns 0 if the accessor is + * sparse or if the output component size is less than the accessor's component size. + * * `cgltf_num_components` is a tiny utility that tells you the dimensionality of * a certain accessor type. This can be used before `cgltf_accessor_unpack_floats` to help allocate - * the necessary amount of memory. `cgltf_component_size` and `cgltf_calc_size` exist for + * the necessary amount of memory. `cgltf_component_size` and `cgltf_calc_size` exist for * similar purposes. * * `cgltf_accessor_read_float` reads a certain element from a non-sparse accessor and converts it to @@ -75,7 +80,7 @@ * * `cgltf_accessor_read_uint` is similar to its floating-point counterpart, but limited to reading * vector types and does not support matrix types. The passed-in element size is the number of uints - * in the output buffer, which should be in the range [1, 4]. Returns false if the passed-in + * in the output buffer, which should be in the range [1, 4]. Returns false if the passed-in * element_size is too small, or if the accessor is sparse. * * `cgltf_accessor_read_index` is similar to its floating-point counterpart, but it returns size_t @@ -197,6 +202,7 @@ typedef enum cgltf_type typedef enum cgltf_primitive_type { + cgltf_primitive_type_invalid, cgltf_primitive_type_points, cgltf_primitive_type_lines, cgltf_primitive_type_line_loop, @@ -499,6 +505,11 @@ typedef struct cgltf_anisotropy cgltf_texture_view anisotropy_texture; } cgltf_anisotropy; +typedef struct cgltf_dispersion +{ + cgltf_float dispersion; +} cgltf_dispersion; + typedef struct cgltf_material { char* name; @@ -513,6 +524,7 @@ typedef struct cgltf_material cgltf_bool has_emissive_strength; cgltf_bool has_iridescence; cgltf_bool has_anisotropy; + cgltf_bool has_dispersion; cgltf_pbr_metallic_roughness pbr_metallic_roughness; cgltf_pbr_specular_glossiness pbr_specular_glossiness; cgltf_clearcoat clearcoat; @@ -524,6 +536,7 @@ typedef struct cgltf_material cgltf_emissive_strength emissive_strength; cgltf_iridescence iridescence; cgltf_anisotropy anisotropy; + cgltf_dispersion dispersion; cgltf_texture_view normal_texture; cgltf_texture_view occlusion_texture; cgltf_texture_view emissive_texture; @@ -838,7 +851,7 @@ cgltf_size cgltf_component_size(cgltf_component_type component_type); cgltf_size cgltf_calc_size(cgltf_type type, cgltf_component_type component_type); cgltf_size cgltf_accessor_unpack_floats(const cgltf_accessor* accessor, cgltf_float* out, cgltf_size float_count); -cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_uint* out, cgltf_size index_count); +cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, void* out, cgltf_size out_component_size, cgltf_size index_count); /* this function is deprecated and will be removed in the future; use cgltf_extras::data instead */ cgltf_result cgltf_copy_extras_json(const cgltf_data* data, const cgltf_extras* extras, char* dest, cgltf_size* dest_size); @@ -938,8 +951,8 @@ static int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, jsmntok_t #ifndef CGLTF_CONSTS -static const cgltf_size GlbHeaderSize = 12; -static const cgltf_size GlbChunkHeaderSize = 8; +#define GlbHeaderSize 12 +#define GlbChunkHeaderSize 8 static const uint32_t GlbVersion = 2; static const uint32_t GlbMagic = 0x46546C67; static const uint32_t GlbMagicJsonChunk = 0x4E4F534A; @@ -1033,7 +1046,7 @@ static cgltf_result cgltf_default_file_read(const struct cgltf_memory_options* m fclose(file); return cgltf_result_out_of_memory; } - + cgltf_size read_size = fread(file_data, 1, file_size, file); fclose(file); @@ -1141,7 +1154,7 @@ cgltf_result cgltf_parse(const cgltf_options* options, const void* data, cgltf_s // JSON chunk: length uint32_t json_length; memcpy(&json_length, json_chunk, 4); - if (GlbHeaderSize + GlbChunkHeaderSize + json_length > size) + if (json_length > size - GlbHeaderSize - GlbChunkHeaderSize) { return cgltf_result_data_too_short; } @@ -1158,7 +1171,7 @@ cgltf_result cgltf_parse(const cgltf_options* options, const void* data, cgltf_s const void* bin = NULL; cgltf_size bin_size = 0; - if (GlbHeaderSize + GlbChunkHeaderSize + json_length + GlbChunkHeaderSize <= size) + if (GlbChunkHeaderSize <= size - GlbHeaderSize - GlbChunkHeaderSize - json_length) { // We can read another chunk const uint8_t* bin_chunk = json_chunk + json_length; @@ -1166,7 +1179,7 @@ cgltf_result cgltf_parse(const cgltf_options* options, const void* data, cgltf_s // Bin chunk: length uint32_t bin_length; memcpy(&bin_length, bin_chunk, 4); - if (GlbHeaderSize + GlbChunkHeaderSize + json_length + GlbChunkHeaderSize + bin_length > size) + if (bin_length > size - GlbHeaderSize - GlbChunkHeaderSize - json_length - GlbChunkHeaderSize) { return cgltf_result_data_too_short; } @@ -1552,6 +1565,9 @@ cgltf_result cgltf_validate(cgltf_data* data) { cgltf_accessor* accessor = &data->accessors[i]; + CGLTF_ASSERT_IF(data->accessors[i].component_type == cgltf_component_type_invalid, cgltf_result_invalid_gltf); + CGLTF_ASSERT_IF(data->accessors[i].type == cgltf_type_invalid, cgltf_result_invalid_gltf); + cgltf_size element_size = cgltf_calc_size(accessor->type, accessor->component_type); if (accessor->buffer_view) @@ -1565,7 +1581,7 @@ cgltf_result cgltf_validate(cgltf_data* data) { cgltf_accessor_sparse* sparse = &accessor->sparse; - cgltf_size indices_component_size = cgltf_calc_size(cgltf_type_scalar, sparse->indices_component_type); + cgltf_size indices_component_size = cgltf_component_size(sparse->indices_component_type); cgltf_size indices_req_size = sparse->indices_byte_offset + indices_component_size * sparse->count; cgltf_size values_req_size = sparse->values_byte_offset + element_size * sparse->count; @@ -1631,43 +1647,48 @@ cgltf_result cgltf_validate(cgltf_data* data) for (cgltf_size j = 0; j < data->meshes[i].primitives_count; ++j) { + CGLTF_ASSERT_IF(data->meshes[i].primitives[j].type == cgltf_primitive_type_invalid, cgltf_result_invalid_gltf); CGLTF_ASSERT_IF(data->meshes[i].primitives[j].targets_count != data->meshes[i].primitives[0].targets_count, cgltf_result_invalid_gltf); - if (data->meshes[i].primitives[j].attributes_count) + CGLTF_ASSERT_IF(data->meshes[i].primitives[j].attributes_count == 0, cgltf_result_invalid_gltf); + + cgltf_accessor* first = data->meshes[i].primitives[j].attributes[0].data; + + CGLTF_ASSERT_IF(first->count == 0, cgltf_result_invalid_gltf); + + for (cgltf_size k = 0; k < data->meshes[i].primitives[j].attributes_count; ++k) { - cgltf_accessor* first = data->meshes[i].primitives[j].attributes[0].data; + CGLTF_ASSERT_IF(data->meshes[i].primitives[j].attributes[k].data->count != first->count, cgltf_result_invalid_gltf); + } - for (cgltf_size k = 0; k < data->meshes[i].primitives[j].attributes_count; ++k) + for (cgltf_size k = 0; k < data->meshes[i].primitives[j].targets_count; ++k) + { + for (cgltf_size m = 0; m < data->meshes[i].primitives[j].targets[k].attributes_count; ++m) { - CGLTF_ASSERT_IF(data->meshes[i].primitives[j].attributes[k].data->count != first->count, cgltf_result_invalid_gltf); + CGLTF_ASSERT_IF(data->meshes[i].primitives[j].targets[k].attributes[m].data->count != first->count, cgltf_result_invalid_gltf); } + } - for (cgltf_size k = 0; k < data->meshes[i].primitives[j].targets_count; ++k) - { - for (cgltf_size m = 0; m < data->meshes[i].primitives[j].targets[k].attributes_count; ++m) - { - CGLTF_ASSERT_IF(data->meshes[i].primitives[j].targets[k].attributes[m].data->count != first->count, cgltf_result_invalid_gltf); - } - } + cgltf_accessor* indices = data->meshes[i].primitives[j].indices; - cgltf_accessor* indices = data->meshes[i].primitives[j].indices; + CGLTF_ASSERT_IF(indices && + indices->component_type != cgltf_component_type_r_8u && + indices->component_type != cgltf_component_type_r_16u && + indices->component_type != cgltf_component_type_r_32u, cgltf_result_invalid_gltf); - CGLTF_ASSERT_IF(indices && - indices->component_type != cgltf_component_type_r_8u && - indices->component_type != cgltf_component_type_r_16u && - indices->component_type != cgltf_component_type_r_32u, cgltf_result_invalid_gltf); + CGLTF_ASSERT_IF(indices && indices->type != cgltf_type_scalar, cgltf_result_invalid_gltf); + CGLTF_ASSERT_IF(indices && indices->stride != cgltf_component_size(indices->component_type), cgltf_result_invalid_gltf); - if (indices && indices->buffer_view && indices->buffer_view->buffer->data) - { - cgltf_size index_bound = cgltf_calc_index_bound(indices->buffer_view, indices->offset, indices->component_type, indices->count); + if (indices && indices->buffer_view && indices->buffer_view->buffer->data) + { + cgltf_size index_bound = cgltf_calc_index_bound(indices->buffer_view, indices->offset, indices->component_type, indices->count); - CGLTF_ASSERT_IF(index_bound >= first->count, cgltf_result_data_too_short); - } + CGLTF_ASSERT_IF(index_bound >= first->count, cgltf_result_data_too_short); + } - for (cgltf_size k = 0; k < data->meshes[i].primitives[j].mappings_count; ++k) - { - CGLTF_ASSERT_IF(data->meshes[i].primitives[j].mappings[k].variant >= data->variants_count, cgltf_result_invalid_gltf); - } + for (cgltf_size k = 0; k < data->meshes[i].primitives[j].mappings_count; ++k) + { + CGLTF_ASSERT_IF(data->meshes[i].primitives[j].mappings[k].variant >= data->variants_count, cgltf_result_invalid_gltf); } } } @@ -1724,10 +1745,15 @@ cgltf_result cgltf_validate(cgltf_data* data) cgltf_size values = channel->sampler->interpolation == cgltf_interpolation_type_cubic_spline ? 3 : 1; - CGLTF_ASSERT_IF(channel->sampler->input->count * components * values != channel->sampler->output->count, cgltf_result_data_too_short); + CGLTF_ASSERT_IF(channel->sampler->input->count * components * values != channel->sampler->output->count, cgltf_result_invalid_gltf); } } + for (cgltf_size i = 0; i < data->variants_count; ++i) + { + CGLTF_ASSERT_IF(!data->variants[i].name, cgltf_result_invalid_gltf); + } + return cgltf_result_success; } @@ -1902,7 +1928,7 @@ void cgltf_free(cgltf_data* data) data->memory.free_func(data->memory.user_data, data->materials); - for (cgltf_size i = 0; i < data->images_count; ++i) + for (cgltf_size i = 0; i < data->images_count; ++i) { data->memory.free_func(data->memory.user_data, data->images[i].name); data->memory.free_func(data->memory.user_data, data->images[i].uri); @@ -2550,7 +2576,7 @@ cgltf_size cgltf_animation_channel_index(const cgltf_animation* animation, const return (cgltf_size)(object - animation->channels); } -cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_uint* out, cgltf_size index_count) +cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, void* out, cgltf_size out_component_size, cgltf_size index_count) { if (out == NULL) { @@ -2558,6 +2584,7 @@ cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_u } index_count = accessor->count < index_count ? accessor->count : index_count; + cgltf_size index_component_size = cgltf_component_size(accessor->component_type); if (accessor->is_sparse) { @@ -2567,6 +2594,10 @@ cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_u { return 0; } + if (index_component_size > out_component_size) + { + return 0; + } const uint8_t* element = cgltf_buffer_view_data(accessor->buffer_view); if (element == NULL) { @@ -2574,18 +2605,29 @@ cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_u } element += accessor->offset; - if (accessor->component_type == cgltf_component_type_r_32u && accessor->stride == sizeof(cgltf_uint)) + if (index_component_size == out_component_size && accessor->stride == out_component_size) { - memcpy(out, element, index_count * sizeof(cgltf_uint)); + memcpy(out, element, index_count * index_component_size); + return index_count; } - else - { - cgltf_uint* dest = out; - for (cgltf_size index = 0; index < index_count; index++, dest++, element += accessor->stride) + // The component size of the output array is larger than the component size of the index data, so index data will be padded. + switch (out_component_size) + { + case 2: + for (cgltf_size index = 0; index < index_count; index++, element += accessor->stride) { - *dest = (cgltf_uint)cgltf_component_read_index(element, accessor->component_type); + ((uint16_t*)out)[index] = (uint16_t)cgltf_component_read_index(element, accessor->component_type); } + break; + case 4: + for (cgltf_size index = 0; index < index_count; index++, element += accessor->stride) + { + ((uint32_t*)out)[index] = (uint32_t)cgltf_component_read_index(element, accessor->component_type); + } + break; + default: + break; } return index_count; @@ -2596,7 +2638,7 @@ cgltf_size cgltf_accessor_unpack_indices(const cgltf_accessor* accessor, cgltf_u #define CGLTF_ERROR_LEGACY -3 #define CGLTF_CHECK_TOKTYPE(tok_, type_) if ((tok_).type != (type_)) { return CGLTF_ERROR_JSON; } -#define CGLTF_CHECK_TOKTYPE_RETTYPE(tok_, type_, ret_) if ((tok_).type != (type_)) { return (ret_)CGLTF_ERROR_JSON; } +#define CGLTF_CHECK_TOKTYPE_RET(tok_, type_, ret_) if ((tok_).type != (type_)) { return ret_; } #define CGLTF_CHECK_KEY(tok_) if ((tok_).type != JSMN_STRING || (tok_).size == 0) { return CGLTF_ERROR_JSON; } /* checking size for 0 verifies that a value follows the key */ #define CGLTF_PTRINDEX(type, idx) (type*)((cgltf_size)idx + 1) @@ -2623,12 +2665,13 @@ static int cgltf_json_to_int(jsmntok_t const* tok, const uint8_t* json_chunk) static cgltf_size cgltf_json_to_size(jsmntok_t const* tok, const uint8_t* json_chunk) { - CGLTF_CHECK_TOKTYPE_RETTYPE(*tok, JSMN_PRIMITIVE, cgltf_size); + CGLTF_CHECK_TOKTYPE_RET(*tok, JSMN_PRIMITIVE, 0); char tmp[128]; int size = (size_t)(tok->end - tok->start) < sizeof(tmp) ? (int)(tok->end - tok->start) : (int)(sizeof(tmp) - 1); strncpy(tmp, (const char*)json_chunk + tok->start, size); tmp[size] = 0; - return (cgltf_size)CGLTF_ATOLL(tmp); + long long res = CGLTF_ATOLL(tmp); + return res < 0 ? 0 : (cgltf_size)res; } static cgltf_float cgltf_json_to_float(jsmntok_t const* tok, const uint8_t* json_chunk) @@ -2810,6 +2853,11 @@ static void cgltf_parse_attribute_type(const char* name, cgltf_attribute_type* o if (us && *out_type != cgltf_attribute_type_invalid) { *out_index = CGLTF_ATOI(us + 1); + if (*out_index < 0) + { + *out_type = cgltf_attribute_type_invalid; + *out_index = 0; + } } } @@ -3142,6 +3190,31 @@ static int cgltf_parse_json_material_mappings(cgltf_options* options, jsmntok_t return i; } +static cgltf_primitive_type cgltf_json_to_primitive_type(jsmntok_t const* tok, const uint8_t* json_chunk) +{ + int type = cgltf_json_to_int(tok, json_chunk); + + switch (type) + { + case 0: + return cgltf_primitive_type_points; + case 1: + return cgltf_primitive_type_lines; + case 2: + return cgltf_primitive_type_line_loop; + case 3: + return cgltf_primitive_type_line_strip; + case 4: + return cgltf_primitive_type_triangles; + case 5: + return cgltf_primitive_type_triangle_strip; + case 6: + return cgltf_primitive_type_triangle_fan; + default: + return cgltf_primitive_type_invalid; + } +} + static int cgltf_parse_json_primitive(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_primitive* out_prim) { CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); @@ -3158,9 +3231,7 @@ static int cgltf_parse_json_primitive(cgltf_options* options, jsmntok_t const* t if (cgltf_json_strcmp(tokens+i, json_chunk, "mode") == 0) { ++i; - out_prim->type - = (cgltf_primitive_type) - cgltf_json_to_int(tokens+i, json_chunk); + out_prim->type = cgltf_json_to_primitive_type(tokens+i, json_chunk); ++i; } else if (cgltf_json_strcmp(tokens+i, json_chunk, "indices") == 0) @@ -3410,7 +3481,7 @@ static int cgltf_parse_json_accessor_sparse(jsmntok_t const* tokens, int i, cons if (cgltf_json_strcmp(tokens+i, json_chunk, "count") == 0) { ++i; - out_sparse->count = cgltf_json_to_int(tokens + i, json_chunk); + out_sparse->count = cgltf_json_to_size(tokens + i, json_chunk); ++i; } else if (cgltf_json_strcmp(tokens+i, json_chunk, "indices") == 0) @@ -3546,8 +3617,7 @@ static int cgltf_parse_json_accessor(cgltf_options* options, jsmntok_t const* to else if (cgltf_json_strcmp(tokens+i, json_chunk, "count") == 0) { ++i; - out_accessor->count = - cgltf_json_to_int(tokens+i, json_chunk); + out_accessor->count = cgltf_json_to_size(tokens+i, json_chunk); ++i; } else if (cgltf_json_strcmp(tokens+i, json_chunk, "type") == 0) @@ -3700,7 +3770,7 @@ static int cgltf_parse_json_texture_view(cgltf_options* options, jsmntok_t const out_texture_view->texcoord = cgltf_json_to_int(tokens + i, json_chunk); ++i; } - else if (cgltf_json_strcmp(tokens + i, json_chunk, "scale") == 0) + else if (cgltf_json_strcmp(tokens + i, json_chunk, "scale") == 0) { ++i; out_texture_view->scale = cgltf_json_to_float(tokens + i, json_chunk); @@ -3769,11 +3839,11 @@ static int cgltf_parse_json_pbr_metallic_roughness(cgltf_options* options, jsmnt if (cgltf_json_strcmp(tokens+i, json_chunk, "metallicFactor") == 0) { ++i; - out_pbr->metallic_factor = + out_pbr->metallic_factor = cgltf_json_to_float(tokens + i, json_chunk); ++i; } - else if (cgltf_json_strcmp(tokens+i, json_chunk, "roughnessFactor") == 0) + else if (cgltf_json_strcmp(tokens+i, json_chunk, "roughnessFactor") == 0) { ++i; out_pbr->roughness_factor = @@ -4234,6 +4304,37 @@ static int cgltf_parse_json_anisotropy(cgltf_options* options, jsmntok_t const* return i; } +static int cgltf_parse_json_dispersion(jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_dispersion* out_dispersion) +{ + CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); + int size = tokens[i].size; + ++i; + + + for (int j = 0; j < size; ++j) + { + CGLTF_CHECK_KEY(tokens[i]); + + if (cgltf_json_strcmp(tokens + i, json_chunk, "dispersion") == 0) + { + ++i; + out_dispersion->dispersion = cgltf_json_to_float(tokens + i, json_chunk); + ++i; + } + else + { + i = cgltf_skip_json(tokens, i + 1); + } + + if (i < 0) + { + return i; + } + } + + return i; +} + static int cgltf_parse_json_image(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_image* out_image) { CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); @@ -4241,11 +4342,11 @@ static int cgltf_parse_json_image(cgltf_options* options, jsmntok_t const* token int size = tokens[i].size; ++i; - for (int j = 0; j < size; ++j) + for (int j = 0; j < size; ++j) { CGLTF_CHECK_KEY(tokens[i]); - if (cgltf_json_strcmp(tokens + i, json_chunk, "uri") == 0) + if (cgltf_json_strcmp(tokens + i, json_chunk, "uri") == 0) { i = cgltf_parse_json_string(options, tokens, i + 1, json_chunk, &out_image->uri); } @@ -4325,7 +4426,7 @@ static int cgltf_parse_json_sampler(cgltf_options* options, jsmntok_t const* tok = cgltf_json_to_int(tokens + i, json_chunk); ++i; } - else if (cgltf_json_strcmp(tokens + i, json_chunk, "wrapT") == 0) + else if (cgltf_json_strcmp(tokens + i, json_chunk, "wrapT") == 0) { ++i; out_sampler->wrap_t @@ -4375,7 +4476,7 @@ static int cgltf_parse_json_texture(cgltf_options* options, jsmntok_t const* tok out_texture->sampler = CGLTF_PTRINDEX(cgltf_sampler, cgltf_json_to_int(tokens + i, json_chunk)); ++i; } - else if (cgltf_json_strcmp(tokens + i, json_chunk, "source") == 0) + else if (cgltf_json_strcmp(tokens + i, json_chunk, "source") == 0) { ++i; out_texture->image = CGLTF_PTRINDEX(cgltf_image, cgltf_json_to_int(tokens + i, json_chunk)); @@ -4627,6 +4728,11 @@ static int cgltf_parse_json_material(cgltf_options* options, jsmntok_t const* to out_material->has_anisotropy = 1; i = cgltf_parse_json_anisotropy(options, tokens, i + 1, json_chunk, &out_material->anisotropy); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "KHR_materials_dispersion") == 0) + { + out_material->has_dispersion = 1; + i = cgltf_parse_json_dispersion(tokens, i + 1, json_chunk, &out_material->dispersion); + } else { i = cgltf_parse_json_unprocessed_extension(options, tokens, i, json_chunk, &(out_material->extensions[out_material->extensions_count++])); @@ -4786,7 +4892,7 @@ static int cgltf_parse_json_meshopt_compression(cgltf_options* options, jsmntok_ else if (cgltf_json_strcmp(tokens+i, json_chunk, "count") == 0) { ++i; - out_meshopt_compression->count = cgltf_json_to_int(tokens+i, json_chunk); + out_meshopt_compression->count = cgltf_json_to_size(tokens+i, json_chunk); ++i; } else if (cgltf_json_strcmp(tokens+i, json_chunk, "mode") == 0) From 8bcf044983cb209f358617b6e952bdbeede3dd1a Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Apr 2024 10:01:25 +0200 Subject: [PATCH 264/790] Remove broken-link bindings #3899 --- BINDINGS.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 275087b82..9f0c33a8b 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -17,17 +17,14 @@ Some people ported raylib to other languages in form of bindings or wrappers to | chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib | | raylib-cr | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | | ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | -| raylib-c3 | **5.0** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 | | dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | | bindbc-raylib3 | **5.0** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | | dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | | raylib-d | **5.0** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | -| dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib | | rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex | | raylib-factor | 4.5 | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | | raylib-freebasic | **5.0** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic | | fortran-raylib | 4.5 | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib | -| raylib for Pascal | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib | | raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | | raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile | | gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | **???** | https://github.com/ArnautDaniel/gforth-raylib | @@ -43,7 +40,6 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-lua | 4.5 | [Lua](http://www.lua.org/) | ISC | https://github.com/TSnake41/raylib-lua | | raylua | 4.0 | [Lua](http://www.lua.org/) | MIT | https://github.com/Rabios/raylua | | raylib-matte | 4.6-dev | [Matte](https://github.com/jcorks/matte/) | MIT | https://github.com/jcorks/raylib-matte | -| nelua-raylib | 4.0 | [nelua](https://nelua.io/) | MIT | https://github.com/AKDev21/nelua-raylib | | Raylib.nelua | **5.0** | [nelua](https://nelua.io/) | Zlib | https://github.com/AuzFox/Raylib.nelua | | NimraylibNow! | 4.2 | [Nim](https://nim-lang.org/) | MIT | https://github.com/greenfork/nimraylib_now | | raylib-bindings | 4.5 | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings | @@ -58,11 +54,11 @@ Some people ported raylib to other languages in form of bindings or wrappers to | Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal | | pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib | | raylib-python-cffi | 4.2 | [Python](https://www.python.org/) | EPL-2.0 | https://github.com/electronstudio/raylib-python-cffi | -| raylibpyctbg | **4.5** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylibpyctbg | +| raylibpyctbg | 4.5 | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylibpyctbg | | raylib-py | **5.0b1** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylib-py | | raylib-python-ctypes | 4.6-dev | [Python](https://www.python.org/) | MIT | https://github.com/sDos280/raylib-python-ctypes | | raylib-pkpy-bindings | 4.6-dev | [pocketpy](https://pocketpy.dev/) | MIT | https://github.com/blueloveTH/pkpy-bindings | -| raylib-php | **4.5** | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/joseph-montanez/raylib-php | +| raylib-php | 4.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/joseph-montanez/raylib-php | | raylib-phpcpp | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/oraoto/raylib-phpcpp | | raylibr | 4.0 | [R](https://www.r-project.org) | MIT | https://github.com/jeroenjanssens/raylibr | | raylib-ffi | 4.5 | [Rust](https://www.rust-lang.org/) | GPLv3 | https://github.com/ewpratten/raylib-ffi | @@ -72,7 +68,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-swift | 4.0 | [Swift](https://swift.org/) | MIT | https://github.com/STREGAsGate/Raylib | | raylib-scopes | auto | [Scopes](http://scopes.rocks) | MIT | https://github.com/salotz/raylib-scopes | | raylib-SmallBASIC | 5.0 | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib | -| raylib-umka | **4.5** | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka | +| raylib-umka | 4.5 | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka | | raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | | raylib-vapi | 5.0 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | | raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | From 3e658ef502cf334e0f1803445002ffafd4b217da Mon Sep 17 00:00:00 2001 From: Belllg <102824244+Belllg@users.noreply.github.com> Date: Sun, 7 Apr 2024 09:48:32 -0300 Subject: [PATCH 265/790] Update Makefile RAYLIB_VERSION (#3901) Changed the raylib version from 4.2.0 to 5.1-dev, just like the raylib.h file --- projects/VSCode/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/VSCode/Makefile b/projects/VSCode/Makefile index 25e00c0b4..2f43c9ead 100644 --- a/projects/VSCode/Makefile +++ b/projects/VSCode/Makefile @@ -25,7 +25,7 @@ # Define required raylib variables PROJECT_NAME ?= game -RAYLIB_VERSION ?= 4.2.0 +RAYLIB_VERSION ?= 5.1-dev RAYLIB_PATH ?= ..\.. # Define compiler path on Windows From 892e57d46e92d43533d11c608d554b56375b8517 Mon Sep 17 00:00:00 2001 From: Nikolas Date: Sun, 7 Apr 2024 23:03:39 +0200 Subject: [PATCH 266/790] Update raylib-zig version (#3902) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 9f0c33a8b..178fd987c 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -72,7 +72,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | | raylib-vapi | 5.0 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | | raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | -| raylib-zig | 4.6-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | +| raylib-zig | 5.0 | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | | raylib.zig | 5.1-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | | hare-raylib | **auto** | [Hare](https://harelang.org/) | Zlib | https://git.sr.ht/~evantj/hare-raylib | | raylib-sunder | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | https://github.com/ashn-dot-dev/raylib-sunder | From 04afba260f64ee2ea9ef0b4a6d2058c9ffdad66d Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 8 Apr 2024 11:27:56 +0200 Subject: [PATCH 267/790] REVIEWED: Window positioning, avoid out-of-screen window-bar --- src/platforms/rcore_desktop.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 04b73355e..64e79c6dc 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1515,7 +1515,15 @@ int InitPlatform(void) // If graphic device is no properly initialized, we end program if (!CORE.Window.ready) { TRACELOG(LOG_FATAL, "PLATFORM: Failed to initialize graphic device"); return -1; } - else SetWindowPosition(GetMonitorWidth(GetCurrentMonitor())/2 - CORE.Window.screen.width/2, GetMonitorHeight(GetCurrentMonitor())/2 - CORE.Window.screen.height/2); + else + { + // Try to center window on screen but avoiding window-bar outside of screen + int posX = GetMonitorWidth(GetCurrentMonitor())/2 - CORE.Window.screen.width/2; + int posY = GetMonitorHeight(GetCurrentMonitor())/2 - CORE.Window.screen.height/2; + if (posX < 0) posX = 0; + if (posY < 0) posY = 0; + SetWindowPosition(posX, posY); + } // Load OpenGL extensions // NOTE: GL procedures address loader is required to load extensions From a1f5e34d81af38a0829880c517ecf76f5bd5c524 Mon Sep 17 00:00:00 2001 From: Aria Date: Wed, 10 Apr 2024 01:34:05 -0700 Subject: [PATCH 268/790] Update rcore_android.c (#3910) add gamepad previous button state tracking to Android --- src/platforms/rcore_android.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/platforms/rcore_android.c b/src/platforms/rcore_android.c index 23b8f4369..d8568d929 100644 --- a/src/platforms/rcore_android.c +++ b/src/platforms/rcore_android.c @@ -651,6 +651,16 @@ void PollInputEvents(void) CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN //CORE.Input.Gamepad.axisCount = 0; + for (int i = 0; i < MAX_GAMEPADS; i++) + { + if (CORE.Input.Gamepad.ready[i]) // Check if gamepad is available + { + // Register previous gamepad states + for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) + CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; + } + } + // Register previous touch states for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i]; From a4819f99cbf191d132e4dacea1f0ba1574fe2a7e Mon Sep 17 00:00:00 2001 From: Yousif <82059810+He-Is-HaZaRdOuS@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:36:03 +0300 Subject: [PATCH 269/790] Update shaders_hybrid_render.c (#3908) Fix typo --- examples/shaders/shaders_hybrid_render.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/shaders/shaders_hybrid_render.c b/examples/shaders/shaders_hybrid_render.c index 97c773f1d..5bf2e49a8 100644 --- a/examples/shaders/shaders_hybrid_render.c +++ b/examples/shaders/shaders_hybrid_render.c @@ -116,7 +116,7 @@ int main(void) DrawRectangleRec((Rectangle){0,0, (float)screenWidth, (float)screenHeight},WHITE); EndShaderMode(); - // Raserize Scene + // Rasterize Scene BeginMode3D(camera); BeginShaderMode(shdrRaster); DrawCubeWiresV((Vector3){ 0.0f, 0.5f, 1.0f }, (Vector3){ 1.0f, 1.0f, 1.0f }, RED); @@ -205,4 +205,4 @@ void UnloadRenderTextureDepthTex(RenderTexture2D target) // queried and deleted before deleting framebuffer rlUnloadFramebuffer(target.id); } -} \ No newline at end of file +} From b3dfa2d8abff549a9a9129f7ef2462ef1261ac4d Mon Sep 17 00:00:00 2001 From: freakmangd <53349189+freakmangd@users.noreply.github.com> Date: Wed, 10 Apr 2024 04:36:18 -0400 Subject: [PATCH 270/790] Update to latest zig and simplify build.zig (#3905) * update to latest zig, and don't use srcdir * preserve compatibility, simplify Child.run compatibility --- src/build.zig | 107 +++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 58 deletions(-) diff --git a/src/build.zig b/src/build.zig index 91cd9cb1f..fe6365ef1 100644 --- a/src/build.zig +++ b/src/build.zig @@ -3,8 +3,7 @@ const builtin = @import("builtin"); // This has been tested with zig version(s): // 0.11.0 -// 0.12.0-dev.2075+f5978181e -// 0.12.0-dev.2990+31763d28c +// 0.12.0-dev.3580+e204a6edb // // Anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type // was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows @@ -51,37 +50,37 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // No GLFW required on PLATFORM_DRM if (!options.platform_drm) { - raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "/external/glfw/include" }); + raylib.addIncludePath(.{ .path = "src/external/glfw/include" }); } addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rcore.c"), - try join2(gpa, srcdir, "utils.c"), + "src/rcore.c", + "src/utils.c", }, raylib_flags_arr.items); if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "raudio.c"), + "src/raudio.c", }, raylib_flags_arr.items); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rmodels.c"), + "src/rmodels.c", }, raylib_flags_arr.items); } if (options.rshapes) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rshapes.c"), + "src/rshapes.c", }, raylib_flags_arr.items); } if (options.rtext) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rtext.c"), + "src/rtext.c", }, raylib_flags_arr.items); } if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rtextures.c"), + "src/rtextures.c", }, raylib_flags_arr.items); } @@ -91,14 +90,14 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM if (options.raygui) { const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); - raylib.addIncludePath(.{ .cwd_relative = srcdir }); - raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "/../../raygui/src" }); + raylib.addIncludePath(.{ .path = "src" }); + raylib.addIncludePath(.{ .path = "../raygui/src" }); } switch (getOsTagVersioned(target)) { .windows => { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rglfw.c"), + "src/rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); @@ -109,7 +108,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .linux => { if (!options.platform_drm) { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rglfw.c"), + "src/rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -130,7 +129,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("wayland-cursor"); raylib.linkSystemLibrary("wayland-egl"); raylib.linkSystemLibrary("xkbcommon"); - raylib.addIncludePath(.{ .path = srcdir }); + raylib.addIncludePath(.{ .path = "src" }); try waylandGenerate(gpa, "wayland.xml", "wayland-client-protocol"); try waylandGenerate(gpa, "xdg-shell.xml", "xdg-shell-client-protocol"); try waylandGenerate(gpa, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol"); @@ -163,7 +162,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .freebsd, .openbsd, .netbsd, .dragonfly => { addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rglfw.c"), + "src/rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -182,7 +181,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // On macos rglfw.c include Objective-C files. try raylib_flags_arr.append("-ObjC"); addCSourceFilesVersioned(raylib, &.{ - try join2(gpa, srcdir, "rglfw.c"), + "src/rglfw.c", }, raylib_flags_arr.items); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); @@ -259,24 +258,18 @@ pub fn build(b: *std.Build) !void { const lib = try addRaylib(b, target, optimize, options); - lib.installHeader("src/raylib.h", "raylib.h"); - lib.installHeader("src/raymath.h", "raymath.h"); - lib.installHeader("src/rlgl.h", "rlgl.h"); + installHeaderVersioned(lib, "src/raylib.h", "raylib.h"); + installHeaderVersioned(lib, "src/raymath.h", "raymath.h"); + installHeaderVersioned(lib, "src/rlgl.h", "rlgl.h"); if (options.raygui) { - lib.installHeader("../raygui/src/raygui.h", "raygui.h"); + installHeaderVersioned(lib, "../raygui/src/raygui.h", "raygui.h"); } b.installArtifact(lib); } -const srcdir = struct { - fn getSrcDir() []const u8 { - return std.fs.path.dirname(@src().file).?; - } -}.getSrcDir(); - -const waylandDir = srcdir ++ "/external/glfw/deps/wayland"; +const waylandDir = "src/external/glfw/deps/wayland"; fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { if (comptime builtin.zig_version.minor >= 12) { @@ -291,14 +284,11 @@ fn addCSourceFilesVersioned( files: []const []const u8, flags: []const []const u8, ) void { - //- HACK(cabarger): I hate this so much!!! if (comptime builtin.zig_version.minor >= 12) { - for (files) |file| { - exe.addCSourceFile(.{ - .file = .{ .path = file }, - .flags = flags, - }); - } + exe.addCSourceFiles(.{ + .files = files, + .flags = flags, + }); } else if (comptime builtin.zig_version.minor == 11) { exe.addCSourceFiles(files, flags); } else { @@ -306,32 +296,33 @@ fn addCSourceFilesVersioned( } } -fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { - const protocolDir = waylandDir ++ "/" ++ protocol; - const clientHeader = srcdir ++ "/" ++ basename ++ ".h"; - const privateCode = srcdir ++ "/" ++ basename ++ "-code.h"; +fn installHeaderVersioned( + lib: *std.Build.Step.Compile, + source: []const u8, + dest: []const u8, +) void { if (comptime builtin.zig_version.minor >= 12) { - _ = try std.process.Child.run(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, - }); - _ = try std.process.Child.run(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, - }); + lib.installHeader(.{ .path = source }, dest); } else { - _ = try std.process.Child.exec(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, - }); - _ = try std.process.Child.exec(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, - }); + lib.installHeader(source, dest); } } -fn join2(allocator: std.mem.Allocator, path1: []const u8, path2: []const u8) ![]u8 { - const joinedPath = try std.fs.path.join(allocator, &[_][]const u8{ path1, path2 }); - return joinedPath; +const childRunVersioned = if (builtin.zig_version.minor >= 12) + std.process.Child.run +else + std.process.Child.exec; + +fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { + const protocolDir = waylandDir ++ "/" ++ protocol; + const clientHeader = "src/" ++ basename ++ ".h"; + const privateCode = "src/" ++ basename ++ "-code.h"; + _ = try childRunVersioned(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, + }); + _ = try childRunVersioned(.{ + .allocator = allocator, + .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, + }); } From 214b1997a8fba0e60ed92352c908823a53eb3a8d Mon Sep 17 00:00:00 2001 From: Mute Date: Sat, 13 Apr 2024 23:33:21 +0200 Subject: [PATCH 271/790] Changed RLGL_VERSION from "4.5" to "5.0 (#3914) Line 110 of file rlgl.h is the one in question. --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index 87cff4ef6..c5c51319a 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -107,7 +107,7 @@ #ifndef RLGL_H #define RLGL_H -#define RLGL_VERSION "4.5" +#define RLGL_VERSION "5.0" // Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll From ba2a103011b47438ee05427c1f33dd7d52b07efa Mon Sep 17 00:00:00 2001 From: freakmangd <53349189+freakmangd@users.noreply.github.com> Date: Sat, 13 Apr 2024 17:34:14 -0400 Subject: [PATCH 272/790] [build.zig] Fix local dependency breakage (#3913) * fix local dependency breakage * revert accidental change in include path --- build.zig | 2 +- src/build.zig | 54 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/build.zig b/build.zig index 1cf9e9503..4c8ede79d 100644 --- a/build.zig +++ b/build.zig @@ -1,7 +1,7 @@ const std = @import("std"); const raylib = @import("src/build.zig"); -// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.2075+f5978181e +// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.3632+7fb5a0b18 pub fn build(b: *std.Build) !void { try raylib.build(b); } diff --git a/src/build.zig b/src/build.zig index fe6365ef1..bd6dd032f 100644 --- a/src/build.zig +++ b/src/build.zig @@ -3,7 +3,7 @@ const builtin = @import("builtin"); // This has been tested with zig version(s): // 0.11.0 -// 0.12.0-dev.3580+e204a6edb +// 0.12.0-dev.3632+7fb5a0b18 // // Anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type // was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows @@ -50,37 +50,37 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // No GLFW required on PLATFORM_DRM if (!options.platform_drm) { - raylib.addIncludePath(.{ .path = "src/external/glfw/include" }); + raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "external/glfw/include" }); } addCSourceFilesVersioned(raylib, &.{ - "src/rcore.c", - "src/utils.c", + "rcore.c", + "utils.c", }, raylib_flags_arr.items); if (options.raudio) { addCSourceFilesVersioned(raylib, &.{ - "src/raudio.c", + "raudio.c", }, raylib_flags_arr.items); } if (options.rmodels) { addCSourceFilesVersioned(raylib, &.{ - "src/rmodels.c", + "rmodels.c", }, raylib_flags_arr.items); } if (options.rshapes) { addCSourceFilesVersioned(raylib, &.{ - "src/rshapes.c", + "rshapes.c", }, raylib_flags_arr.items); } if (options.rtext) { addCSourceFilesVersioned(raylib, &.{ - "src/rtext.c", + "rtext.c", }, raylib_flags_arr.items); } if (options.rtextures) { addCSourceFilesVersioned(raylib, &.{ - "src/rtextures.c", + "rtextures.c", }, raylib_flags_arr.items); } @@ -90,14 +90,14 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM if (options.raygui) { const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); - raylib.addIncludePath(.{ .path = "src" }); - raylib.addIncludePath(.{ .path = "../raygui/src" }); + raylib.addIncludePath(.{ .cwd_relative = srcdir }); + raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "../../raygui/src" }); } switch (getOsTagVersioned(target)) { .windows => { addCSourceFilesVersioned(raylib, &.{ - "src/rglfw.c", + "rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); @@ -108,7 +108,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM .linux => { if (!options.platform_drm) { addCSourceFilesVersioned(raylib, &.{ - "src/rglfw.c", + "rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -129,7 +129,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("wayland-cursor"); raylib.linkSystemLibrary("wayland-egl"); raylib.linkSystemLibrary("xkbcommon"); - raylib.addIncludePath(.{ .path = "src" }); + raylib.addIncludePath(.{ .path = srcdir }); try waylandGenerate(gpa, "wayland.xml", "wayland-client-protocol"); try waylandGenerate(gpa, "xdg-shell.xml", "xdg-shell-client-protocol"); try waylandGenerate(gpa, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol"); @@ -162,7 +162,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .freebsd, .openbsd, .netbsd, .dragonfly => { addCSourceFilesVersioned(raylib, &.{ - "src/rglfw.c", + "rglfw.c", }, raylib_flags_arr.items); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); @@ -181,7 +181,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // On macos rglfw.c include Objective-C files. try raylib_flags_arr.append("-ObjC"); addCSourceFilesVersioned(raylib, &.{ - "src/rglfw.c", + "rglfw.c", }, raylib_flags_arr.items); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); @@ -269,7 +269,13 @@ pub fn build(b: *std.Build) !void { b.installArtifact(lib); } -const waylandDir = "src/external/glfw/deps/wayland"; +const srcdir = struct { + fn getSrcDir() []const u8 { + return std.fs.path.dirname(@src().file).?; + } +}.getSrcDir() ++ "/"; + +const waylandDir = srcdir ++ "external/glfw/deps/wayland"; fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { if (comptime builtin.zig_version.minor >= 12) { @@ -279,18 +285,24 @@ fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { } } -fn addCSourceFilesVersioned( +inline fn addCSourceFilesVersioned( exe: *std.Build.Step.Compile, files: []const []const u8, flags: []const []const u8, ) void { if (comptime builtin.zig_version.minor >= 12) { exe.addCSourceFiles(.{ + .root = .{ .path = srcdir }, .files = files, .flags = flags, }); } else if (comptime builtin.zig_version.minor == 11) { - exe.addCSourceFiles(files, flags); + inline for (files) |file| { + exe.addCSourceFile(.{ + .file = .{ .path = srcdir ++ file }, + .flags = flags, + }); + } } else { @compileError("Expected zig version 11 or 12"); } @@ -315,8 +327,8 @@ else fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { const protocolDir = waylandDir ++ "/" ++ protocol; - const clientHeader = "src/" ++ basename ++ ".h"; - const privateCode = "src/" ++ basename ++ "-code.h"; + const clientHeader = srcdir ++ basename ++ ".h"; + const privateCode = srcdir ++ basename ++ "-code.h"; _ = try childRunVersioned(.{ .allocator = allocator, .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, From 583f81f4587d612eb187dea899b432be4af60508 Mon Sep 17 00:00:00 2001 From: Dylan Date: Sat, 13 Apr 2024 17:35:23 -0400 Subject: [PATCH 273/790] Fix FileNotFound: .../src/raylib.h (#3915) --- src/build.zig | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/build.zig b/src/build.zig index bd6dd032f..4134c4a84 100644 --- a/src/build.zig +++ b/src/build.zig @@ -258,12 +258,12 @@ pub fn build(b: *std.Build) !void { const lib = try addRaylib(b, target, optimize, options); - installHeaderVersioned(lib, "src/raylib.h", "raylib.h"); - installHeaderVersioned(lib, "src/raymath.h", "raymath.h"); - installHeaderVersioned(lib, "src/rlgl.h", "rlgl.h"); + installHeaderVersioned(b, lib, "src/raylib.h", "raylib.h"); + installHeaderVersioned(b, lib, "src/raymath.h", "raymath.h"); + installHeaderVersioned(b, lib, "src/rlgl.h", "rlgl.h"); if (options.raygui) { - installHeaderVersioned(lib, "../raygui/src/raygui.h", "raygui.h"); + installHeaderVersioned(b, lib, "../raygui/src/raygui.h", "raygui.h"); } b.installArtifact(lib); @@ -309,12 +309,16 @@ inline fn addCSourceFilesVersioned( } fn installHeaderVersioned( + b: *std.Build, lib: *std.Build.Step.Compile, source: []const u8, dest: []const u8, ) void { if (comptime builtin.zig_version.minor >= 12) { - lib.installHeader(.{ .path = source }, dest); + lib.installHeader(.{ .src_path = .{ + .owner = b, + .sub_path = source, + } }, dest); } else { lib.installHeader(source, dest); } From 289e7d3a6c5b9ee05ff9e4f77db6de7f897e49ec Mon Sep 17 00:00:00 2001 From: veins1 <19636663+veins1@users.noreply.github.com> Date: Sun, 14 Apr 2024 03:15:50 +0500 Subject: [PATCH 274/790] Reset music.ctxType if loading wasn't succesful (#3917) Fixes some crashes, e.g. calling StopMusicStream after trying to load Music from a non-existant .mp3 file --- src/raudio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/raudio.c b/src/raudio.c index 0e9e043d1..555dfe505 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1461,6 +1461,7 @@ Music LoadMusicStream(const char *fileName) #endif music.ctxData = NULL; + music.ctxType = MUSIC_AUDIO_NONE; TRACELOG(LOG_WARNING, "FILEIO: [%s] Music file could not be opened", fileName); } else @@ -1670,6 +1671,7 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, #endif music.ctxData = NULL; + music.ctxType = MUSIC_AUDIO_NONE; TRACELOG(LOG_WARNING, "FILEIO: Music data could not be loaded"); } else From 4e37c8e370f9c3846dc1136047809ed5d8886a90 Mon Sep 17 00:00:00 2001 From: Benji <64439681+benjitrosch@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:08:09 -0400 Subject: [PATCH 275/790] Added missing interpolation types for GLTF animation channels (#3919) --- src/raymath.h | 28 +++++++++++++ src/rmodels.c | 114 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 120 insertions(+), 22 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index 3bafab510..8b2bbed5b 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -955,6 +955,22 @@ RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) return result; } +// Calculate cubic hermite interpolation between two vectors and their tangents +// taken directly from: https://en.wikipedia.org/wiki/Cubic_Hermite_spline +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount * amount; + float amountPow3 = amount * amount * amount; + + result.x = (2 * amountPow3 - 3 * amountPow2 + 1) * v1.x + (amountPow3 - 2 * amountPow2 + amount) * tangent1.x + (-2 * amountPow3 + 3 * amountPow2) * v2.x + (amountPow3 - amountPow2) * tangent2.x; + result.y = (2 * amountPow3 - 3 * amountPow2 + 1) * v1.y + (amountPow3 - 2 * amountPow2 + amount) * tangent1.y + (-2 * amountPow3 + 3 * amountPow2) * v2.y + (amountPow3 - amountPow2) * tangent2.y; + result.z = (2 * amountPow3 - 3 * amountPow2 + 1) * v1.z + (amountPow3 - 2 * amountPow2 + amount) * tangent1.z + (-2 * amountPow3 + 3 * amountPow2) * v2.z + (amountPow3 - amountPow2) * tangent2.z; + + return result; +} + // Calculate reflected vector to normal RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) { @@ -2197,6 +2213,18 @@ RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) return result; } +// Calculate quaternion cubic spline interpolation using the SQUAD algorithm +// roughly adapted from the SQUAD algorithm presented here: https://roboop.sourceforge.io/htmldoc/robotse9.html +RMAPI Quaternion QuaternionCubicSpline(Quaternion q1, Quaternion tangent1, Quaternion q2, Quaternion tangent2, float amount) +{ + Quaternion slerp1 = QuaternionSlerp(q1, q2, amount); + Quaternion slerp2 = QuaternionSlerp(tangent1, tangent2, amount); + float t = 2 * amount * (1 - amount); + + Quaternion result = QuaternionSlerp(slerp1, slerp2, t); + return result; +} + // Calculate quaternion based on the rotation from one vector to another RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) { diff --git a/src/rmodels.c b/src/rmodels.c index 77bb19aa1..04b2f1291 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5356,8 +5356,10 @@ static Model LoadGLTF(const char *fileName) } // Get interpolated pose for bone sampler at a specific time. Returns true on success. -static bool GetPoseAtTimeGLTF(cgltf_accessor *input, cgltf_accessor *output, float time, void *data) +static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_accessor *input, cgltf_accessor *output, float time, void *data) { + if (interpolationType >= cgltf_interpolation_type_max_enum) return false; + // Input and output should have the same count float tstart = 0.0f; float tend = 0.0f; @@ -5377,7 +5379,7 @@ static bool GetPoseAtTimeGLTF(cgltf_accessor *input, cgltf_accessor *output, flo break; } } - + float t = (time - tstart)/fmax((tend - tstart), EPSILON); t = (t < 0.0f)? 0.0f : t; t = (t > 1.0f)? 1.0f : t; @@ -5386,25 +5388,90 @@ static bool GetPoseAtTimeGLTF(cgltf_accessor *input, cgltf_accessor *output, flo if (output->type == cgltf_type_vec3) { - float tmp[3] = { 0.0f }; - cgltf_accessor_read_float(output, keyframe, tmp, 3); - Vector3 v1 = {tmp[0], tmp[1], tmp[2]}; - cgltf_accessor_read_float(output, keyframe+1, tmp, 3); - Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; - Vector3 *r = data; - *r = Vector3Lerp(v1, v2, t); + switch (interpolationType) + { + case cgltf_interpolation_type_step: + { + float tmp[3] = { 0.0f }; + cgltf_accessor_read_float(output, keyframe, tmp, 3); + Vector3 v1 = {tmp[0], tmp[1], tmp[2]}; + Vector3 *r = data; + + *r = v1; + } break; + + case cgltf_interpolation_type_linear: + { + float tmp[3] = { 0.0f }; + cgltf_accessor_read_float(output, keyframe, tmp, 3); + Vector3 v1 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, keyframe+1, tmp, 3); + Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; + Vector3 *r = data; + + *r = Vector3Lerp(v1, v2, t); + } break; + + case cgltf_interpolation_type_cubic_spline: + { + float tmp[3] = { 0.0f }; + cgltf_accessor_read_float(output, 3*keyframe+1, tmp, 3); + Vector3 v1 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 3); + Vector3 tangent1 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 3); + Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 3); + Vector3 tangent2 = {tmp[0], tmp[1], tmp[2]}; + Vector3 *r = data; + + *r = Vector3CubicHermite(v1, tangent1, v2, tangent2, t); + } break; + } } else if (output->type == cgltf_type_vec4) { - float tmp[4] = { 0.0f }; - cgltf_accessor_read_float(output, keyframe, tmp, 4); - Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]}; - cgltf_accessor_read_float(output, keyframe+1, tmp, 4); - Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; - Vector4 *r = data; - // Only v4 is for rotations, so we know it's a quaternion - *r = QuaternionSlerp(v1, v2, t); + switch (interpolationType) + { + case cgltf_interpolation_type_step: + { + float tmp[4] = { 0.0f }; + cgltf_accessor_read_float(output, keyframe, tmp, 4); + Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + Vector4 *r = data; + + *r = v1; + } break; + + case cgltf_interpolation_type_linear: + { + float tmp[4] = { 0.0f }; + cgltf_accessor_read_float(output, keyframe, tmp, 4); + Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + cgltf_accessor_read_float(output, keyframe+1, tmp, 4); + Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + Vector4 *r = data; + + *r = QuaternionSlerp(v1, v2, t); + } break; + + case cgltf_interpolation_type_cubic_spline: + { + float tmp[4] = { 0.0f }; + cgltf_accessor_read_float(output, 3*keyframe+1, tmp, 4); + Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 4); + Vector4 tangent1 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 4); + Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 4); + Vector4 tangent2 = {tmp[0], tmp[1], tmp[2]}; + Vector4 *r = data; + + *r = QuaternionCubicSpline(v1, tangent1, v2, tangent2, t); + } break; + } } return true; @@ -5455,6 +5522,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo cgltf_animation_channel *translate; cgltf_animation_channel *rotate; cgltf_animation_channel *scale; + cgltf_interpolation_type interpolationType; }; struct Channels *boneChannels = RL_CALLOC(animations[i].boneCount, sizeof(struct Channels)); @@ -5480,7 +5548,9 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo continue; } - if (animData.channels[j].sampler->interpolation == cgltf_interpolation_type_linear) + boneChannels[boneIndex].interpolationType = animData.channels[j].sampler->interpolation; + + if (animData.channels[j].sampler->interpolation != cgltf_interpolation_type_max_enum) { if (channel.target_path == cgltf_animation_path_type_translation) { @@ -5499,7 +5569,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo TRACELOG(LOG_WARNING, "MODEL: [%s] Unsupported target_path on channel %d's sampler for animation %d. Skipping.", fileName, j, i); } } - else TRACELOG(LOG_WARNING, "MODEL: [%s] Only linear interpolation curves are supported for GLTF animation.", fileName); + else TRACELOG(LOG_WARNING, "MODEL: [%s] Invalid interpolation curve encountered for GLTF animation.", fileName); float t = 0.0f; cgltf_bool r = cgltf_accessor_read_float(channel.sampler->input, channel.sampler->input->count - 1, &t, 1); @@ -5532,7 +5602,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo if (boneChannels[k].translate) { - if (!GetPoseAtTimeGLTF(boneChannels[k].translate->sampler->input, boneChannels[k].translate->sampler->output, time, &translation)) + if (!GetPoseAtTimeGLTF(boneChannels[k].interpolationType, boneChannels[k].translate->sampler->input, boneChannels[k].translate->sampler->output, time, &translation)) { TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load translate pose data for bone %s", fileName, animations[i].bones[k].name); } @@ -5540,7 +5610,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo if (boneChannels[k].rotate) { - if (!GetPoseAtTimeGLTF(boneChannels[k].rotate->sampler->input, boneChannels[k].rotate->sampler->output, time, &rotation)) + if (!GetPoseAtTimeGLTF(boneChannels[k].interpolationType, boneChannels[k].rotate->sampler->input, boneChannels[k].rotate->sampler->output, time, &rotation)) { TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load rotate pose data for bone %s", fileName, animations[i].bones[k].name); } @@ -5548,7 +5618,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo if (boneChannels[k].scale) { - if (!GetPoseAtTimeGLTF(boneChannels[k].scale->sampler->input, boneChannels[k].scale->sampler->output, time, &scale)) + if (!GetPoseAtTimeGLTF(boneChannels[k].interpolationType, boneChannels[k].scale->sampler->input, boneChannels[k].scale->sampler->output, time, &scale)) { TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load scale pose data for bone %s", fileName, animations[i].bones[k].name); } From e42f9263b81e925d4a8023673c5983e83ae094f7 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 15 Apr 2024 23:09:20 +0200 Subject: [PATCH 276/790] Fix GetKeyPressed for PLATFORM_DESKTOP_SDL (#3869) The key handling in PLATFORM_DESKTOP_SDL was faulty in two ways, which led to GetKeyPressed returning incorrect data. CORE.Input.Keyboard.keyPressedQueue was updated only on SDL_TEXTINPUT, meaning only text characters were registered as a pressed key, but not function keys (eg. tab, backspace...). Also on such event, both CORE.Input.Keyboard.keyPressedQueue and CORE.Input.Keyboard.charPressedQueue were assigned the key's corresponding codepoint, when CORE.Input.Keyboard.keyPressedQueue should get the raylib keycode instead. CORE.Input.Keyboard.keyPressedQueue is now updated on SDL_KEYDOWN event instead. Co-authored-by: Arthur --- src/platforms/rcore_desktop_sdl.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 1aea68546..9dfdd53ab 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1131,7 +1131,17 @@ void PollInputEvents(void) case SDL_KEYDOWN: { KeyboardKey key = ConvertScancodeToKey(event.key.keysym.scancode); - if (key != KEY_NULL) CORE.Input.Keyboard.currentKeyState[key] = 1; + + if (key != KEY_NULL) { + // If key was up, add it to the key pressed queue + if ((CORE.Input.Keyboard.currentKeyState[key] == 0) && (CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE)) + { + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = key; + CORE.Input.Keyboard.keyPressedQueueCount++; + } + + CORE.Input.Keyboard.currentKeyState[key] = 1; + } if (event.key.repeat) CORE.Input.Keyboard.keyRepeatInFrame[key] = 1; @@ -1154,14 +1164,6 @@ void PollInputEvents(void) int codepointSize = 0; - // Check if there is space available in the key queue - if (CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE) - { - // Add character (key) to the queue - CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = GetCodepointNext(event.text.text, &codepointSize); - CORE.Input.Keyboard.keyPressedQueueCount++; - } - // Check if there is space available in the queue if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) { From 4491ff04262d11cf8f66e1bd6145c1a8d30bb503 Mon Sep 17 00:00:00 2001 From: Benji <64439681+benjitrosch@users.noreply.github.com> Date: Wed, 17 Apr 2024 02:10:48 -0400 Subject: [PATCH 277/790] Replaced SQUAD quat interpolation with cubic hermite to align with gltf 2.0 spec (#3920) --- src/raymath.h | 30 ++++++++++++++++++++++-------- src/rmodels.c | 28 ++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index 8b2bbed5b..19625f10a 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -956,7 +956,7 @@ RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) } // Calculate cubic hermite interpolation between two vectors and their tangents -// taken directly from: https://en.wikipedia.org/wiki/Cubic_Hermite_spline +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) { Vector3 result = { 0 }; @@ -2213,15 +2213,29 @@ RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) return result; } -// Calculate quaternion cubic spline interpolation using the SQUAD algorithm -// roughly adapted from the SQUAD algorithm presented here: https://roboop.sourceforge.io/htmldoc/robotse9.html -RMAPI Quaternion QuaternionCubicSpline(Quaternion q1, Quaternion tangent1, Quaternion q2, Quaternion tangent2, float amount) +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) { - Quaternion slerp1 = QuaternionSlerp(q1, q2, amount); - Quaternion slerp2 = QuaternionSlerp(tangent1, tangent2, amount); - float t = 2 * amount * (1 - amount); + float t2 = t * t; + float t3 = t2 * t; + float h00 = 2 * t3 - 3 * t2 + 1; + float h10 = t3 - 2 * t2 + t; + float h01 = -2 * t3 + 3 * t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); - Quaternion result = QuaternionSlerp(slerp1, slerp2, t); return result; } diff --git a/src/rmodels.c b/src/rmodels.c index 04b2f1291..0154a36fb 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5380,7 +5380,8 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ } } - float t = (time - tstart)/fmax((tend - tstart), EPSILON); + float duration = fmax((tend - tstart), EPSILON); + float t = (time - tstart)/duration; t = (t < 0.0f)? 0.0f : t; t = (t > 1.0f)? 1.0f : t; @@ -5419,9 +5420,9 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ Vector3 v1 = {tmp[0], tmp[1], tmp[2]}; cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 3); Vector3 tangent1 = {tmp[0], tmp[1], tmp[2]}; - cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 3); - Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 3); + Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; + cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 3); Vector3 tangent2 = {tmp[0], tmp[1], tmp[2]}; Vector3 *r = data; @@ -5462,14 +5463,25 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ cgltf_accessor_read_float(output, 3*keyframe+1, tmp, 4); Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]}; cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 4); - Vector4 tangent1 = {tmp[0], tmp[1], tmp[2]}; - cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 4); - Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + Vector4 outTangent1 = {tmp[0], tmp[1], tmp[2]}; cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 4); - Vector4 tangent2 = {tmp[0], tmp[1], tmp[2]}; + Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; + cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 4); + Vector4 inTangent2 = {tmp[0], tmp[1], tmp[2]}; Vector4 *r = data; - *r = QuaternionCubicSpline(v1, tangent1, v2, tangent2, t); + v1 = QuaternionNormalize(v1); + v2 = QuaternionNormalize(v2); + + if (Vector4DotProduct(v1, v2) < 0.0f) + { + v2 = Vector4Negate(v2); + } + + outTangent1 = Vector4Scale(outTangent1, duration); + inTangent2 = Vector4Scale(inTangent2, duration); + + *r = QuaternionCubicHermiteSpline(v1, outTangent1, v2, inTangent2, t); } break; } } From a6a08c75ebf222ee34a5a09f9623d1025c252f0d Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 17 Apr 2024 18:30:02 +0200 Subject: [PATCH 278/790] Update corrupted-header sounds #3554 --- examples/audio/resources/coin.wav | Bin 4776 -> 18114 bytes examples/audio/resources/spring.wav | Bin 10850 -> 31262 bytes examples/audio/resources/weird.wav | Bin 6246 -> 24388 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/audio/resources/coin.wav b/examples/audio/resources/coin.wav index 6007509bf42e0b4623a13a00160ae1b96db0e784..ad95bfb55a2e50da93fdb1e639b4635dfcc2b463 100644 GIT binary patch literal 18114 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 J|9Ai4e*s?d4dVa+ literal 4776 zcmb8nNmEp36vpv(mt{Uc7O7OSa9B7jG+8(-KvSh4GmeNsXlQ6!=mzXNH9gPWOwBwa z21hheH^fEMR7Kqw7g6&?vdq2reV+RY_9lOdTYY|Y-c$QyW#w1jxm-;r8Y|j+{9k|R za=CVyf8R8^?EhV^FI;V{{?>oLb-Die`0?Y14({Sdz4|kB`0$Y&pE!|x_UzejW?NfZ3l$X=m6eqzPo6w=>fzI;PoF$_^7!%NU;9s= zK7)FGkN}GClD$$N zO06E$u8G9#if=UtgE{vIUu=L>OHA-BX^xL^-kv;ynDCH z(fXj|WvTVEl0%ZO-I294IK`w+IM~pzE;%6CC-sihhT?6fOrz5U2XEi@INGR?+hOel zg-dI;Y-|)QXfi8qh}NvZN&#%Ni@B+tpa7cIAO%7JunK5aenuV5q7H%rXkLXB2nE0@ zq0Et6BIO)f0Tc)YzzRVD+;T(Qgl$LG&GP5Yi}KcFwv73_BIfmVH^fa)xUvk%6L93F zedL0fauao0lUXN0u}AZ>1j!TffF;7tBNsc@ka7_%0rG@AV3DBmO&6q#pmJq#Rg}Ag za)3pG3RvxebP-gpEI_s$SutC<3tTSr>VJj+P6 zCaZZsR*WqzS-?C&zw z4?*S1EF??F0=6GnFzdN0>ahkZ6>xP%%nKPp1~5ZV0iPY2w~qW|H8U^D*pvCm0Hz5l zVBQPy5>&2CLvW<6Ei)&YZbK?y&I|AoRIW@x(u6c%ilEKSih8e!dNI#xfNN8bG$9R` zBxroI?Z}Lo){Z8v$t+Dsi+N^}paEul5Ff!gQi51VI;_&uqLMwC9}O_=gZKyrF+WeigGh{sBsK>haU@$?fkfM*nvBqRZ&gq=sa`^S;ijYa`ULJ}}S z(D}v>@e_2ejEs-jC3;Xo%wr=29WdsH_z5~!ijeI`Mn^}BUZk6YT>uau=v*m65`+Yx zK=|}XuT@|K>Go)T3V=8v4k!?Gz8QcF5OBoj%NIp)ABqF=1RYQufD90Hu9P`au*+RX zx|j=v0l*+Z=SmI|C&U3ej^y+C!9LNT`P)th^ko4tLJW{4=zy|E`t7ngQA~{e{V_m> zpaXJ4kRgK3l?((&{Qg*0l<^}SkR1XH5p=GkAyGmUkR}+}jOa!{bOUq700h#IC?N_+ z5e&ZBek7ev8v`h14pvb@RLtoV!2qO#kRZW1l7yH?2JNCLQBsV9g9acKgaio&SCWtj zAp%GMhKwXqhC~X%01PD{5kdrzAe1|jurqF;xR?_WLIe;e7=VNdQ3*Sa#N**03dcn; zf&qxD5S3tXB?c*bM6ohrNV7*p(Fg`Wi9*7JFd$0Uc|_Hs$WRd>ObA0Fgb-JBh)xJ` zB@&I;4Qpsv%#jEoM9?8RA;gt1Wap7^SVy5SG5`i4#1+CYVVFYr^oU_Mj6z~GjL#rM O;f4czvlBx9tN#F)s7Ijy diff --git a/examples/audio/resources/spring.wav b/examples/audio/resources/spring.wav index c7fbf1b9cf68f82d73debba77d128b0d3ed14654..b6f17f1170bd35d82fdfe631bae7e4741ce114ec 100644 GIT binary patch literal 31262 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 yd5N4vZj2m|4KfipsT^IA!@?&$;p73pue< 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 bu>R0N4hBbuM~7&1&OIM{ufD76*0uiy=x#J9 literal 6246 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 Date: Wed, 17 Apr 2024 19:12:47 +0200 Subject: [PATCH 279/790] FIX: #3918 --- examples/Makefile.Android | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/examples/Makefile.Android b/examples/Makefile.Android index 08cdf1515..01d88fa49 100644 --- a/examples/Makefile.Android +++ b/examples/Makefile.Android @@ -158,7 +158,8 @@ LDLIBS = -lm -lc -lraylib -llog -landroid -lEGL -lGLESv2 -lOpenSLES -ldl OBJS = $(patsubst %.c, $(PROJECT_BUILD_PATH)/obj/%.o, $(PROJECT_SOURCE_FILES)) # Android APK building process... some steps required... -# NOTE: typing 'make' will invoke the default target entry called 'all', +# NOTE: typing 'make' will invoke the default target entry called 'all' +# TODO: Use apksigner for APK signing, jarsigner is not recommended all: create_temp_project_dirs \ copy_project_required_libs \ copy_project_resources \ @@ -170,8 +171,14 @@ all: create_temp_project_dirs \ compile_project_class \ compile_project_class_dex \ create_project_apk_package \ - zipalign_project_apk_package \ - sign_project_apk_package + sign_project_apk_package \ + zipalign_project_apk_package + +# WARNING: About build signing process: +# - If using apksigner, zipalign must be used before the APK file has been signed. +# - If using jarsigner (not recommended), zipalign must be used after the APK file has been signed. +# REF: https://developer.android.com/tools/zipalign +# REF: https://developer.android.com/tools/apksigner # Create required temp directories for APK building create_temp_project_dirs: From c1fd98591d7996dd45a5ce9ecbb4b571607d417b Mon Sep 17 00:00:00 2001 From: Benji <64439681+benjitrosch@users.noreply.github.com> Date: Wed, 17 Apr 2024 13:26:18 -0400 Subject: [PATCH 280/790] Build specific example using -DBUILD_EXAMPLE cmake flag (#3921) --- CMakeLists.txt | 5 ++++- CMakeOptions.txt | 1 + examples/CMakeLists.txt | 20 +++++++++++++++++--- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57719691a..d5c066045 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,7 +59,10 @@ if(NOT TARGET uninstall) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() -if (${BUILD_EXAMPLES}) +if (NOT ${BUILD_EXAMPLE} STREQUAL "") + MESSAGE(STATUS "Building example '${BUILD_EXAMPLE}'") + add_subdirectory(examples) +elseif (${BUILD_EXAMPLES}) MESSAGE(STATUS "Building examples is enabled") add_subdirectory(examples) endif() diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 2c58cd5cc..76fa411ff 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -8,6 +8,7 @@ enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific # Configuration options option(BUILD_EXAMPLES "Build the examples." ${RAYLIB_IS_MAIN}) +option(BUILD_EXAMPLE "Build a specific example by filename." "") option(CUSTOMIZE_BUILD "Show options for customizing your Raylib library build." OFF) option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF) option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 922323674..0f4be2187 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -48,10 +48,24 @@ endif () # into a CMake variable set(example_sources) set(example_resources) +set(example_found FALSE) foreach (example_dir ${example_dirs}) - # Get the .c files - file(GLOB sources ${example_dir}/*.c) - list(APPEND example_sources ${sources}) + if (BUILD_EXAMPLE) + if (NOT example_found) + file(GLOB sources ${example_dir}/${BUILD_EXAMPLE}.c) + if (EXISTS ${sources}) + list(APPEND example_sources ${sources}) + set(example_found TRUE) + message("Raylib example '${BUILD_EXAMPLE}.c' found in ${example_dir}!") + else() + message("Raylib example '${BUILD_EXAMPLE}.c' not found in ${example_dir}...") + endif() + endif() + else() + # Get the .c files + file(GLOB sources ${example_dir}/*.c) + list(APPEND example_sources ${sources}) + endif() # Any any resources file(GLOB resources ${example_dir}/resources/*) From b00e4674949e6005e26a7f4088c491b50ec45886 Mon Sep 17 00:00:00 2001 From: Benji <64439681+benjitrosch@users.noreply.github.com> Date: Fri, 19 Apr 2024 02:43:24 -0400 Subject: [PATCH 281/790] Revert "Build specific example using -DBUILD_EXAMPLE cmake flag (#3921)" (#3922) This reverts commit c1fd98591d7996dd45a5ce9ecbb4b571607d417b. --- CMakeLists.txt | 5 +---- CMakeOptions.txt | 1 - examples/CMakeLists.txt | 20 +++----------------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d5c066045..57719691a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,10 +59,7 @@ if(NOT TARGET uninstall) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() -if (NOT ${BUILD_EXAMPLE} STREQUAL "") - MESSAGE(STATUS "Building example '${BUILD_EXAMPLE}'") - add_subdirectory(examples) -elseif (${BUILD_EXAMPLES}) +if (${BUILD_EXAMPLES}) MESSAGE(STATUS "Building examples is enabled") add_subdirectory(examples) endif() diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 76fa411ff..2c58cd5cc 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -8,7 +8,6 @@ enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific # Configuration options option(BUILD_EXAMPLES "Build the examples." ${RAYLIB_IS_MAIN}) -option(BUILD_EXAMPLE "Build a specific example by filename." "") option(CUSTOMIZE_BUILD "Show options for customizing your Raylib library build." OFF) option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF) option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 0f4be2187..922323674 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -48,24 +48,10 @@ endif () # into a CMake variable set(example_sources) set(example_resources) -set(example_found FALSE) foreach (example_dir ${example_dirs}) - if (BUILD_EXAMPLE) - if (NOT example_found) - file(GLOB sources ${example_dir}/${BUILD_EXAMPLE}.c) - if (EXISTS ${sources}) - list(APPEND example_sources ${sources}) - set(example_found TRUE) - message("Raylib example '${BUILD_EXAMPLE}.c' found in ${example_dir}!") - else() - message("Raylib example '${BUILD_EXAMPLE}.c' not found in ${example_dir}...") - endif() - endif() - else() - # Get the .c files - file(GLOB sources ${example_dir}/*.c) - list(APPEND example_sources ${sources}) - endif() + # Get the .c files + file(GLOB sources ${example_dir}/*.c) + list(APPEND example_sources ${sources}) # Any any resources file(GLOB resources ${example_dir}/resources/*) From 88f77629218c71b21cd8ce5cb74bc0a1b38ce1e6 Mon Sep 17 00:00:00 2001 From: Rafael Bordoni <49042948+eldskald@users.noreply.github.com> Date: Fri, 19 Apr 2024 10:17:22 -0300 Subject: [PATCH 282/790] Fix window not initializing on primary monitor on GLFW backend (#3923) The way the current code worked was by calling `GetCurrentMonitor()`, which would always return the monitor at position (0,0). This isn't the primary monitor on all platforms, on Linux in particular it isn't the case. This isn't the case on the SDL backend, after calling `InitWindow()` the window would always show up on the primary monitor. Even on the GLFW backend, if the full screen flag was set it would attempt to put it on the primary monitor as it would call `glfwGetPrimaryMonitor()` to do it, so for consistency's sake we should do it on windowed mode too. --- src/platforms/rcore_desktop.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 64e79c6dc..211a6cbb3 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1518,10 +1518,16 @@ int InitPlatform(void) else { // Try to center window on screen but avoiding window-bar outside of screen - int posX = GetMonitorWidth(GetCurrentMonitor())/2 - CORE.Window.screen.width/2; - int posY = GetMonitorHeight(GetCurrentMonitor())/2 - CORE.Window.screen.height/2; - if (posX < 0) posX = 0; - if (posY < 0) posY = 0; + int monitorX = 0; + int monitorY = 0; + int monitorWidth = 0; + int monitorHeight = 0; + glfwGetMonitorWorkarea(monitor, &monitorX, &monitorY, &monitorWidth, &monitorHeight); + + int posX = monitorX + (monitorWidth - CORE.Window.screen.width)/2; + int posY = monitorY + (monitorHeight - CORE.Window.screen.height)/2; + if (posX < monitorX) posX = monitorX; + if (posY < monitorY) posY = monitorY; SetWindowPosition(posX, posY); } From b88365fb01eb255be3d7acfab5af2cbadf90730e Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 19 Apr 2024 21:13:28 +0200 Subject: [PATCH 283/790] Disable some font formats support --- src/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.h b/src/config.h index 10aca978a..6d8169ba6 100644 --- a/src/config.h +++ b/src/config.h @@ -180,9 +180,9 @@ // NOTE: If enabled, uses external module functions to load default raylib font #define SUPPORT_DEFAULT_FONT 1 // Selected desired font fileformats to be supported for loading -#define SUPPORT_FILEFORMAT_FNT 1 #define SUPPORT_FILEFORMAT_TTF 1 -#define SUPPORT_FILEFORMAT_BDF 1 +//#define SUPPORT_FILEFORMAT_FNT 1 +//#define SUPPORT_FILEFORMAT_BDF 1 // Support text management functions // If not defined, still some functions are supported: TextLength(), TextFormat() From 51486a060654e042c3f5c177bb87875e8de8ebec Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 19 Apr 2024 21:13:36 +0200 Subject: [PATCH 284/790] Update rtext.c --- src/rtext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rtext.c b/src/rtext.c index 87b991025..51c10b55d 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2508,6 +2508,6 @@ static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, i return glyphs; } -#endif +#endif // SUPPORT_FILEFORMAT_BDF #endif // SUPPORT_MODULE_RTEXT From a17a81f05b62d92af1bff103721d17a180aa84e5 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 19 Apr 2024 21:13:52 +0200 Subject: [PATCH 285/790] Review code formating --- src/rmodels.c | 38 +++++++++++++++++++++----------------- src/rtextures.c | 38 ++++++++++++++++++++++---------------- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 0154a36fb..969920c00 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -570,8 +570,9 @@ void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float e rlBegin(RL_TRIANGLES); rlColor4ub(color.r, color.g, color.b, color.a); - for (int i = 0; i < sides; i++) { - // compute the four vertices + for (int i = 0; i < sides; i++) + { + // Compute the four vertices float s1 = sinf(baseAngle*(i + 0))*startRadius; float c1 = cosf(baseAngle*(i + 0))*startRadius; Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z }; @@ -585,11 +586,12 @@ void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float e float c4 = cosf(baseAngle*(i + 1))*endRadius; Vector3 w4 = { endPos.x + s4*b1.x + c4*b2.x, endPos.y + s4*b1.y + c4*b2.y, endPos.z + s4*b1.z + c4*b2.z }; - if (startRadius > 0) { // + if (startRadius > 0) + { rlVertex3f(startPos.x, startPos.y, startPos.z); // | rlVertex3f(w2.x, w2.y, w2.z); // T0 rlVertex3f(w1.x, w1.y, w1.z); // | - } // + } // w2 x.-----------x startPos rlVertex3f(w1.x, w1.y, w1.z); // | |\'. T0 / rlVertex3f(w2.x, w2.y, w2.z); // T1 | \ '. / @@ -599,7 +601,8 @@ void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float e rlVertex3f(w4.x, w4.y, w4.z); // T2 '. \ |T3/ rlVertex3f(w3.x, w3.y, w3.z); // | '. \ | / // '.\|/ - if (endRadius > 0) { // 'x w3 + if (endRadius > 0) // 'x w3 + { rlVertex3f(endPos.x, endPos.y, endPos.z); // | rlVertex3f(w3.x, w3.y, w3.z); // T3 rlVertex3f(w4.x, w4.y, w4.z); // | @@ -657,8 +660,9 @@ void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, fl rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - for (int i = 0; i < sides; i++) { - // compute the four vertices + for (int i = 0; i < sides; i++) + { + // Compute the four vertices float s1 = sinf(baseAngle*(i + 0))*startRadius; float c1 = cosf(baseAngle*(i + 0))*startRadius; Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z }; @@ -4749,7 +4753,8 @@ static cgltf_result LoadFileGLTFCallback(const struct cgltf_memory_options *memo } // Release file data callback for cgltf -static void ReleaseFileGLTFCallback(const struct cgltf_memory_options *memoryOptions, const struct cgltf_file_options *fileOptions, void *data) { +static void ReleaseFileGLTFCallback(const struct cgltf_memory_options *memoryOptions, const struct cgltf_file_options *fileOptions, void *data) +{ UnloadFileData(data); } @@ -5335,7 +5340,8 @@ static Model LoadGLTF(const char *fileName) model.meshes[meshIndex].animVertices = RL_CALLOC(model.meshes[meshIndex].vertexCount*3, sizeof(float)); memcpy(model.meshes[meshIndex].animVertices, model.meshes[meshIndex].vertices, model.meshes[meshIndex].vertexCount*3*sizeof(float)); model.meshes[meshIndex].animNormals = RL_CALLOC(model.meshes[meshIndex].vertexCount*3, sizeof(float)); - if (model.meshes[meshIndex].normals != NULL) { + if (model.meshes[meshIndex].normals != NULL) + { memcpy(model.meshes[meshIndex].animNormals, model.meshes[meshIndex].normals, model.meshes[meshIndex].vertexCount*3*sizeof(float)); } @@ -5379,7 +5385,7 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ break; } } - + float duration = fmax((tend - tstart), EPSILON); float t = (time - tstart)/duration; t = (t < 0.0f)? 0.0f : t; @@ -5400,7 +5406,6 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ *r = v1; } break; - case cgltf_interpolation_type_linear: { float tmp[3] = { 0.0f }; @@ -5409,10 +5414,9 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ cgltf_accessor_read_float(output, keyframe+1, tmp, 3); Vector3 v2 = {tmp[0], tmp[1], tmp[2]}; Vector3 *r = data; - + *r = Vector3Lerp(v1, v2, t); } break; - case cgltf_interpolation_type_cubic_spline: { float tmp[3] = { 0.0f }; @@ -5428,6 +5432,7 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ *r = Vector3CubicHermite(v1, tangent1, v2, tangent2, t); } break; + default: break; } } else if (output->type == cgltf_type_vec4) @@ -5444,7 +5449,6 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ *r = v1; } break; - case cgltf_interpolation_type_linear: { float tmp[4] = { 0.0f }; @@ -5453,10 +5457,9 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ cgltf_accessor_read_float(output, keyframe+1, tmp, 4); Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]}; Vector4 *r = data; - + *r = QuaternionSlerp(v1, v2, t); } break; - case cgltf_interpolation_type_cubic_spline: { float tmp[4] = { 0.0f }; @@ -5477,12 +5480,13 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ { v2 = Vector4Negate(v2); } - + outTangent1 = Vector4Scale(outTangent1, duration); inTangent2 = Vector4Scale(inTangent2, duration); *r = QuaternionCubicHermiteSpline(v1, outTangent1, v2, inTangent2, t); } break; + default: break; } } diff --git a/src/rtextures.c b/src/rtextures.c index 832164819..8abcb4538 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -1993,8 +1993,9 @@ void ImageAlphaPremultiply(Image *image) ImageFormat(image, format); } -// Apply box blur -void ImageBlurGaussian(Image *image, int blurSize) { +// Apply box blur to image +void ImageBlurGaussian(Image *image, int blurSize) +{ // Security check to avoid program crash if ((image->data == NULL) || (image->width == 0) || (image->height == 0)) return; @@ -2006,7 +2007,8 @@ void ImageBlurGaussian(Image *image, int blurSize) { Vector4 *pixelsCopy1 = RL_MALLOC((image->height)*(image->width)*sizeof(Vector4)); Vector4 *pixelsCopy2 = RL_MALLOC((image->height)*(image->width)*sizeof(Vector4)); - for (int i = 0; i < (image->height)*(image->width); i++) { + for (int i = 0; i < (image->height*image->width); i++) + { pixelsCopy1[i].x = pixels[i].r; pixelsCopy1[i].y = pixels[i].g; pixelsCopy1[i].z = pixels[i].b; @@ -2014,7 +2016,8 @@ void ImageBlurGaussian(Image *image, int blurSize) { } // Repeated convolution of rectangular window signal by itself converges to a gaussian distribution - for (int j = 0; j < GAUSSIAN_BLUR_ITERATIONS; j++) { + for (int j = 0; j < GAUSSIAN_BLUR_ITERATIONS; j++) + { // Horizontal motion blur for (int row = 0; row < image->height; row++) { @@ -4997,22 +5000,25 @@ int GetPixelDataSize(int width, int height, int format) //---------------------------------------------------------------------------------- // Module specific Functions Definition //---------------------------------------------------------------------------------- -// From https://stackoverflow.com/questions/1659440/32-bit-to-16-bit-floating-point-conversion/60047308#60047308 - -static float HalfToFloat(unsigned short x) { - const unsigned int e = (x&0x7C00)>>10; // exponent - const unsigned int m = (x&0x03FF)<<13; // mantissa +// Convert half-float (stored as unsigned short) to float +// REF: https://stackoverflow.com/questions/1659440/32-bit-to-16-bit-floating-point-conversion/60047308#60047308 +static float HalfToFloat(unsigned short x) +{ + const unsigned int e = (x & 0x7C00) >> 10; // Exponent + const unsigned int m = (x & 0x03FF) << 13; // Mantissa const float fm = (float)m; - const unsigned int v = (*(unsigned int*)&fm)>>23; // evil log2 bit hack to count leading zeros in denormalized format - const unsigned int r = (x&0x8000)<<16 | (e!=0)*((e+112)<<23|m) | ((e==0)&(m!=0))*((v-37)<<23|((m<<(150-v))&0x007FE000)); // sign : normalized : denormalized + const unsigned int v = (*(unsigned int*)&fm) >> 23; // Evil log2 bit hack to count leading zeros in denormalized format + const unsigned int r = (x & 0x8000) << 16 | (e != 0)*((e + 112) << 23 | m) | ((e == 0)&(m != 0))*((v - 37) << 23 | ((m << (150 - v)) & 0x007FE000)); // sign : normalized : denormalized return *(float*)&r; } -static unsigned short FloatToHalf(float x) { - const unsigned int b = (*(unsigned int*)&x)+0x00001000; // round-to-nearest-even: add last bit after truncated mantissa - const unsigned int e = (b&0x7F800000)>>23; // exponent - const unsigned int m = b&0x007FFFFF; // mantissa; in line below: 0x007FF000 = 0x00800000-0x00001000 = decimal indicator flag - initial rounding - return (b&0x80000000)>>16 | (e>112)*((((e-112)<<10)&0x7C00)|m>>13) | ((e<113)&(e>101))*((((0x007FF000+m)>>(125-e))+1)>>1) | (e>143)*0x7FFF; // sign : normalized : denormalized : saturate +// Convert float to half-float (stored as unsigned short) +static unsigned short FloatToHalf(float x) +{ + const unsigned int b = (*(unsigned int*) & x) + 0x00001000; // Round-to-nearest-even: add last bit after truncated mantissa + const unsigned int e = (b & 0x7F800000) >> 23; // Exponent + const unsigned int m = b & 0x007FFFFF; // Mantissa; in line below: 0x007FF000 = 0x00800000-0x00001000 = decimal indicator flag - initial rounding + return (b & 0x80000000) >> 16 | (e > 112)*((((e - 112) << 10) & 0x7C00) | m >> 13) | ((e < 113) & (e > 101))*((((0x007FF000 + m) >> (125 - e)) + 1) >> 1) | (e > 143)*0x7FFF; // sign : normalized : denormalized : saturate } // Get pixel data from image as Vector4 array (float normalized) From 2754c80596eda7b322ba0ce8bd33c0e130ee5cbb Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 13:50:34 +0200 Subject: [PATCH 286/790] Added security checks #3924 --- src/rtextures.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/rtextures.c b/src/rtextures.c index 8abcb4538..c82232d8b 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -457,6 +457,9 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat { Image image = { 0 }; int frameCount = 0; + + // Security check for input data + if ((fileType == NULL) || (fileData == NULL) || (dataSize == 0)) return image; #if defined(SUPPORT_FILEFORMAT_GIF) if ((strcmp(fileType, ".gif") == 0) || (strcmp(fileType, ".GIF") == 0)) From 29ce13b77736f4eb2fa6018d9c164d76c4df54bc Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 13:53:13 +0200 Subject: [PATCH 287/790] Code gardening - Review formatting - Improve readability for some functions result return - Minimize early returns - Align LoadFileData() to UnloadFileData() --- src/raudio.c | 36 ++++++++++++------- src/rcore.c | 45 ++++++++++++++++-------- src/rmodels.c | 40 ++++++++++++--------- src/rshapes.c | 15 +++++--- src/rtext.c | 12 +++---- src/rtextures.c | 92 +++++++++++++++++++++++++++++++++++-------------- 6 files changed, 160 insertions(+), 80 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 555dfe505..afb076af3 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -752,7 +752,7 @@ Wave LoadWave(const char *fileName) // Loading wave from memory data if (fileData != NULL) wave = LoadWaveFromMemory(GetFileExtension(fileName), fileData, dataSize); - RL_FREE(fileData); + UnloadFileData(fileData); return wave; } @@ -870,11 +870,15 @@ Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int // Checks if wave data is ready bool IsWaveReady(Wave wave) { - return ((wave.data != NULL) && // Validate wave data available - (wave.frameCount > 0) && // Validate frame count - (wave.sampleRate > 0) && // Validate sample rate is supported - (wave.sampleSize > 0) && // Validate sample size is supported - (wave.channels > 0)); // Validate number of channels supported + bool result = false; + + if ((wave.data != NULL) && // Validate wave data available + (wave.frameCount > 0) && // Validate frame count + (wave.sampleRate > 0) && // Validate sample rate is supported + (wave.sampleSize > 0) && // Validate sample size is supported + (wave.channels > 0)) result = true; // Validate number of channels supported + + return result; } // Load sound from file @@ -967,11 +971,15 @@ Sound LoadSoundAlias(Sound source) // Checks if a sound is ready bool IsSoundReady(Sound sound) { - return ((sound.frameCount > 0) && // Validate frame count - (sound.stream.buffer != NULL) && // Validate stream buffer - (sound.stream.sampleRate > 0) && // Validate sample rate is supported - (sound.stream.sampleSize > 0) && // Validate sample size is supported - (sound.stream.channels > 0)); // Validate number of channels supported + bool result = false; + + if ((sound.frameCount > 0) && // Validate frame count + (sound.stream.buffer != NULL) && // Validate stream buffer + (sound.stream.sampleRate > 0) && // Validate sample rate is supported + (sound.stream.sampleSize > 0) && // Validate sample size is supported + (sound.stream.channels > 0)) result = true; // Validate number of channels supported + + return result; } // Unload wave data @@ -1163,7 +1171,11 @@ void StopSound(Sound sound) // Check if a sound is playing bool IsSoundPlaying(Sound sound) { - return IsAudioBufferPlaying(sound.stream.buffer); + bool result = false; + + if (IsAudioBufferPlaying(sound.stream.buffer)) result = true; + + return result; } // Set volume for a sound diff --git a/src/rcore.c b/src/rcore.c index 9705495ee..b4aaed683 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1419,7 +1419,9 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) // Get a ray trace from screen position (i.e mouse) Ray GetScreenToWorldRay(Vector2 position, Camera camera) { - return GetScreenToWorldRayEx(position, camera, GetScreenWidth(), GetScreenHeight()); + Ray ray = GetScreenToWorldRayEx(position, camera, GetScreenWidth(), GetScreenHeight()); + + return ray; } // Get a ray trace from the screen position (i.e mouse) within a specific section of the screen @@ -1480,7 +1482,9 @@ Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height // Get transform matrix for camera Matrix GetCameraMatrix(Camera camera) { - return MatrixLookAt(camera.position, camera.target, camera.up); + Matrix mat = MatrixLookAt(camera.position, camera.target, camera.up); + + return mat; } // Get camera 2d transform matrix @@ -1661,7 +1665,7 @@ float GetFrameTime(void) // Ref: http://www.geisswerks.com/ryan/FAQS/timing.html --> All about timing on Win32! void WaitTime(double seconds) { - if (seconds < 0) return; + if (seconds < 0) return; // Security check #if defined(SUPPORT_BUSY_WAIT_LOOP) || defined(SUPPORT_PARTIALBUSY_WAIT_LOOP) double destinationTime = GetTime() + seconds; @@ -1754,7 +1758,7 @@ int *LoadRandomSequence(unsigned int count, int min, int max) #if defined(SUPPORT_RPRAND_GENERATOR) values = rprand_load_sequence(count, min, max); #else - if (count > ((unsigned int)abs(max - min) + 1)) return values; + if (count > ((unsigned int)abs(max - min) + 1)) return values; // Security check values = (int *)RL_CALLOC(count, sizeof(int)); @@ -1946,7 +1950,9 @@ const char *GetFileExtension(const char *fileName) static const char *strprbrk(const char *s, const char *charset) { const char *latestMatch = NULL; + for (; s = strpbrk(s, charset), s != NULL; latestMatch = s++) { } + return latestMatch; } @@ -1954,9 +1960,10 @@ static const char *strprbrk(const char *s, const char *charset) const char *GetFileName(const char *filePath) { const char *fileName = NULL; + if (filePath != NULL) fileName = strprbrk(filePath, "\\/"); - - if (!fileName) return filePath; + + if (fileName != NULL) return filePath; return fileName + 1; } @@ -2235,8 +2242,11 @@ bool IsPathFile(const char *path) // Check if a file has been dropped into window bool IsFileDropped(void) { - if (CORE.Window.dropFileCount > 0) return true; - else return false; + bool result = false; + + if (CORE.Window.dropFileCount > 0) result = true; + + return result; } // Load dropped filepaths @@ -2270,15 +2280,16 @@ void UnloadDroppedFiles(FilePathList files) long GetFileModTime(const char *fileName) { struct stat result = { 0 }; + long modTime = 0; if (stat(fileName, &result) == 0) { time_t mod = result.st_mtime; - return (long)mod; + modTime = (long)mod; } - return 0; + return modTime; } //---------------------------------------------------------------------------------- @@ -2347,7 +2358,7 @@ char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize) char *encodedData = (char *)RL_MALLOC(*outputSize); - if (encodedData == NULL) return NULL; + if (encodedData == NULL) return NULL; // Security check for (int i = 0, j = 0; i < dataSize;) { @@ -2949,13 +2960,15 @@ bool IsMouseButtonUp(int button) // Get mouse position X int GetMouseX(void) { - return (int)((CORE.Input.Mouse.currentPosition.x + CORE.Input.Mouse.offset.x)*CORE.Input.Mouse.scale.x); + int mouseX = (int)((CORE.Input.Mouse.currentPosition.x + CORE.Input.Mouse.offset.x)*CORE.Input.Mouse.scale.x); + return mouseX; } // Get mouse position Y int GetMouseY(void) { - return (int)((CORE.Input.Mouse.currentPosition.y + CORE.Input.Mouse.offset.y)*CORE.Input.Mouse.scale.y); + int mouseY = (int)((CORE.Input.Mouse.currentPosition.y + CORE.Input.Mouse.offset.y)*CORE.Input.Mouse.scale.y); + return mouseY; } // Get mouse position XY @@ -3022,13 +3035,15 @@ Vector2 GetMouseWheelMoveV(void) // Get touch position X for touch point 0 (relative to screen size) int GetTouchX(void) { - return (int)CORE.Input.Touch.position[0].x; + int touchX = (int)CORE.Input.Touch.position[0].x; + return touchX; } // Get touch position Y for touch point 0 (relative to screen size) int GetTouchY(void) { - return (int)CORE.Input.Touch.position[0].y; + int touchY = (int)CORE.Input.Touch.position[0].y; + return touchY; } // Get touch position XY for a touch point index (relative to screen size) diff --git a/src/rmodels.c b/src/rmodels.c index 969920c00..4bbceaf27 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -228,7 +228,7 @@ void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color) // Draw a triangle strip defined by points void DrawTriangleStrip3D(Vector3 *points, int pointCount, Color color) { - if (pointCount < 3) return; + if (pointCount < 3) return; // Security check rlBegin(RL_TRIANGLES); rlColor4ub(color.r, color.g, color.b, color.a); @@ -559,7 +559,7 @@ void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float e if (sides < 3) sides = 3; Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z }; - if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0)) return; + if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0)) return; // Security check // Construct a basis of the base and the top face: Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction)); @@ -649,7 +649,7 @@ void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, fl if (sides < 3) sides = 3; Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z }; - if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0))return; + if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0)) return; // Security check // Construct a basis of the base and the top face: Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction)); @@ -755,8 +755,8 @@ void DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int capCenter.z + (sinf(baseRingAngle * ( i + 1 ))*b0.z + ringSin4*b1.z + ringCos4*b2.z) * radius }; - // make sure cap triangle normals are facing outwards - if(c == 0) + // Make sure cap triangle normals are facing outwards + if (c == 0) { rlVertex3f(w1.x, w1.y, w1.z); rlVertex3f(w2.x, w2.y, w2.z); @@ -1104,13 +1104,17 @@ Model LoadModelFromMesh(Mesh mesh) // Check if a model is ready bool IsModelReady(Model model) { - return ((model.meshes != NULL) && // Validate model contains some mesh - (model.materials != NULL) && // Validate model contains some material (at least default one) - (model.meshMaterial != NULL) && // Validate mesh-material linkage - (model.meshCount > 0) && // Validate mesh count - (model.materialCount > 0)); // Validate material count + bool result = false; + + if ((model.meshes != NULL) && // Validate model contains some mesh + (model.materials != NULL) && // Validate model contains some material (at least default one) + (model.meshMaterial != NULL) && // Validate mesh-material linkage + (model.meshCount > 0) && // Validate mesh count + (model.materialCount > 0)) result = true; // Validate material count // NOTE: This is a very general model validation, many elements could be validated from a model... + + return result; } // Unload model (meshes/materials) from memory (RAM and/or VRAM) @@ -2033,8 +2037,12 @@ Material LoadMaterialDefault(void) // Check if a material is ready bool IsMaterialReady(Material material) { - return ((material.maps != NULL) && // Validate material contain some map - (material.shader.id > 0)); // Validate material shader is valid + bool result = false; + + if ((material.maps != NULL) && // Validate material contain some map + (material.shader.id > 0)) result = true; // Validate material shader is valid + + return result; } // Unload material from memory @@ -2230,7 +2238,7 @@ Mesh GenMeshPoly(int sides, float radius) { Mesh mesh = { 0 }; - if (sides < 3) return mesh; + if (sides < 3) return mesh; // Security check int vertexCount = sides*3; @@ -4493,7 +4501,7 @@ static Model LoadIQM(const char *fileName) BuildPoseFromParentJoints(model.bones, model.boneCount, model.bindPose); - RL_FREE(fileData); + UnloadFileData(fileData); RL_FREE(imesh); RL_FREE(tri); @@ -4725,7 +4733,7 @@ static ModelAnimation *LoadModelAnimationsIQM(const char *fileName, int *animCou } } - RL_FREE(fileData); + UnloadFileData(fileData); RL_FREE(joints); RL_FREE(framedata); @@ -6102,7 +6110,7 @@ static Model LoadM3D(const char *fileName) // called, but not before, however DrawMesh uses these if they exist (so not good if they are left empty). if (m3d->numbone && m3d->numskin) { - for(i = 0; i < model.meshCount; i++) + for (i = 0; i < model.meshCount; i++) { memcpy(model.meshes[i].animVertices, model.meshes[i].vertices, model.meshes[i].vertexCount*3*sizeof(float)); memcpy(model.meshes[i].animNormals, model.meshes[i].normals, model.meshes[i].vertexCount*3*sizeof(float)); diff --git a/src/rshapes.c b/src/rshapes.c index 5c6900b2f..bb3a736c2 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2345,11 +2345,16 @@ Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) // NOTE: Used by DrawLineBezier() only static float EaseCubicInOut(float t, float b, float c, float d) { - if ((t /= 0.5f*d) < 1) return 0.5f*c*t*t*t + b; - - t -= 2; - - return 0.5f*c*(t*t*t + 2.0f) + b; + float result = 0.0f; + + if ((t /= 0.5f*d) < 1) result = 0.5f*c*t*t*t + b; + else + { + t -= 2; + result = 0.5f*c*(t*t*t + 2.0f) + b; + } + + return result; } #endif // SUPPORT_MODULE_RSHAPES diff --git a/src/rtext.c b/src/rtext.c index 51c10b55d..2ff6fd92b 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -434,7 +434,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) if (!COLOR_EQUAL(pixels[y*image.width + x], key)) break; } - if ((x == 0) || (y == 0)) return font; + if ((x == 0) || (y == 0)) return font; // Security check charSpacing = x; lineSpacing = y; @@ -823,7 +823,7 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp if (offsetY > (atlas.height - fontSize - padding)) { - for(int j = i + 1; j < glyphCount; j++) + for (int j = i + 1; j < glyphCount; j++) { TRACELOG(LOG_WARNING, "FONT: Failed to package character (%i)", j); // Make sure remaining recs contain valid data @@ -1282,7 +1282,7 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing { Vector2 textSize = { 0 }; - if ((font.texture.id == 0) || (text == NULL)) return textSize; + if ((font.texture.id == 0) || (text == NULL)) return textSize; // Security check int size = TextLength(text); // Get size in bytes of text int tempByteCounter = 0; // Used to count longer text line num chars @@ -2029,21 +2029,21 @@ int GetCodepointNext(const char *text, int *codepointSize) if (0xf0 == (0xf8 & ptr[0])) { // 4 byte UTF-8 codepoint - if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); *codepointSize = 4; } else if (0xe0 == (0xf0 & ptr[0])) { // 3 byte UTF-8 codepoint */ - if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks + if (((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); *codepointSize = 3; } else if (0xc0 == (0xe0 & ptr[0])) { // 2 byte UTF-8 codepoint - if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } // 10xxxxxx checks + if ((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } // 10xxxxxx checks codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); *codepointSize = 2; } diff --git a/src/rtextures.c b/src/rtextures.c index c82232d8b..d47df7628 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -71,10 +71,10 @@ #if defined(SUPPORT_MODULE_RTEXTURES) #include "utils.h" // Required for: TRACELOG() -#include "rlgl.h" // OpenGL abstraction layer to OpenGL 1.1, 3.3 or ES2 +#include "rlgl.h" // OpenGL abstraction layer to multiple versions -#include // Required for: malloc(), free() -#include // Required for: strlen() [Used in ImageTextEx()], strcmp() [Used in LoadImageFromMemory()] +#include // Required for: malloc(), calloc(), free() +#include // Required for: strlen() [Used in ImageTextEx()], strcmp() [Used in LoadImageFromMemory()/LoadImageAnimFromMemory()/ExportImageToMemory()] #include // Required for: fabsf() [Used in DrawTextureRec()] #include // Required for: sprintf() [Used in ExportImageAsCode()] @@ -293,9 +293,12 @@ Image LoadImage(const char *fileName) unsigned char *fileData = LoadFileData(fileName, &dataSize); // Loading image from memory data - if (fileData != NULL) image = LoadImageFromMemory(GetFileExtension(fileName), fileData, dataSize); + if (fileData != NULL) + { + image = LoadImageFromMemory(GetFileExtension(fileName), fileData, dataSize); - RL_FREE(fileData); + UnloadFileData(fileData); + } return image; } @@ -322,7 +325,7 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int image.mipmaps = 1; image.format = format; - RL_FREE(fileData); + UnloadFileData(fileData); } return image; @@ -431,7 +434,7 @@ Image LoadImageAnim(const char *fileName, int *frames) image.mipmaps = 1; image.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; - RL_FREE(fileData); + UnloadFileData(fileData); RL_FREE(delays); // NOTE: Frames delays are discarded } } @@ -494,6 +497,9 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize) { Image image = { 0 }; + + // Security check for input data + if ((fileType == NULL) || (fileData == NULL) || (dataSize == 0)) return image; if ((false) #if defined(SUPPORT_FILEFORMAT_PNG) @@ -699,11 +705,15 @@ Image LoadImageFromScreen(void) // Check if an image is ready bool IsImageReady(Image image) { - return ((image.data != NULL) && // Validate pixel data available - (image.width > 0) && - (image.height > 0) && // Validate image size - (image.format > 0) && // Validate image format - (image.mipmaps > 0)); // Validate image mipmaps (at least 1 for basic mipmap level) + bool result = false; + + if ((image.data != NULL) && // Validate pixel data available + (image.width > 0) && + (image.height > 0) && // Validate image size + (image.format > 0) && // Validate image format + (image.mipmaps > 0)) result = true; // Validate image mipmaps (at least 1 for basic mipmap level) + + return result; } // Unload image from CPU memory (RAM) @@ -718,6 +728,7 @@ bool ExportImage(Image image, const char *fileName) { int result = 0; + // Security check for input data if ((image.width == 0) || (image.height == 0) || (image.data == NULL)) return result; #if defined(SUPPORT_IMAGE_EXPORT) @@ -805,6 +816,7 @@ unsigned char *ExportImageToMemory(Image image, const char *fileType, int *dataS unsigned char *fileData = NULL; *dataSize = 0; + // Security check for input data if ((image.width == 0) || (image.height == 0) || (image.data == NULL)) return NULL; #if defined(SUPPORT_IMAGE_EXPORT) @@ -2184,7 +2196,7 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) endRange = kernelWidth/2 + 1; } - for(int x = 0; x < image->height; x++) + for (int x = 0; x < image->height; x++) { for (int y = 0; y < image->width; y++) { @@ -3940,13 +3952,17 @@ RenderTexture2D LoadRenderTexture(int width, int height) // Check if a texture is ready bool IsTextureReady(Texture2D texture) { + bool result = false; + // TODO: Validate maximum texture size supported by GPU? - return ((texture.id > 0) && // Validate OpenGL id - (texture.width > 0) && - (texture.height > 0) && // Validate texture size - (texture.format > 0) && // Validate texture pixel format - (texture.mipmaps > 0)); // Validate texture mipmaps (at least 1 for basic mipmap level) + if ((texture.id > 0) && // Validate OpenGL id + (texture.width > 0) && + (texture.height > 0) && // Validate texture size + (texture.format > 0) && // Validate texture pixel format + (texture.mipmaps > 0)) result = true; // Validate texture mipmaps (at least 1 for basic mipmap level) + + return result; } // Unload texture from GPU memory (VRAM) @@ -3963,9 +3979,13 @@ void UnloadTexture(Texture2D texture) // Check if a render texture is ready bool IsRenderTextureReady(RenderTexture2D target) { - return ((target.id > 0) && // Validate OpenGL id - IsTextureReady(target.depth) && // Validate FBO depth texture/renderbuffer - IsTextureReady(target.texture)); // Validate FBO texture + bool result = false; + + if ((target.id > 0) && // Validate OpenGL id + IsTextureReady(target.depth) && // Validate FBO depth texture/renderbuffer + IsTextureReady(target.texture)) result = true; // Validate FBO texture + + return result; } // Unload render texture from GPU memory (VRAM) @@ -4473,16 +4493,22 @@ bool ColorIsEqual(Color col1, Color col2) // Get color with alpha applied, alpha goes from 0.0f to 1.0f Color Fade(Color color, float alpha) { + Color result = color; + if (alpha < 0.0f) alpha = 0.0f; else if (alpha > 1.0f) alpha = 1.0f; + + result.a = (unsigned char)(255.0f*alpha); - return (Color){ color.r, color.g, color.b, (unsigned char)(255.0f*alpha) }; + return result; } // Get hexadecimal value for a Color int ColorToInt(Color color) { - return (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); + int result = (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); + + return result; } // Get color normalized as float [0..1] @@ -4701,10 +4727,14 @@ Color ColorContrast(Color color, float contrast) // Get color with alpha applied, alpha goes from 0.0f to 1.0f Color ColorAlpha(Color color, float alpha) { + Color result = color; + if (alpha < 0.0f) alpha = 0.0f; else if (alpha > 1.0f) alpha = 1.0f; - return (Color){color.r, color.g, color.b, (unsigned char)(255.0f*alpha)}; + result.a = (unsigned char)(255.0f*alpha); + + return result; } // Get src alpha-blended into dst color with tint @@ -5007,21 +5037,31 @@ int GetPixelDataSize(int width, int height, int format) // REF: https://stackoverflow.com/questions/1659440/32-bit-to-16-bit-floating-point-conversion/60047308#60047308 static float HalfToFloat(unsigned short x) { + float result = 0.0f; + const unsigned int e = (x & 0x7C00) >> 10; // Exponent const unsigned int m = (x & 0x03FF) << 13; // Mantissa const float fm = (float)m; const unsigned int v = (*(unsigned int*)&fm) >> 23; // Evil log2 bit hack to count leading zeros in denormalized format const unsigned int r = (x & 0x8000) << 16 | (e != 0)*((e + 112) << 23 | m) | ((e == 0)&(m != 0))*((v - 37) << 23 | ((m << (150 - v)) & 0x007FE000)); // sign : normalized : denormalized - return *(float*)&r; + + result = *(float *)&r; + + return result; } // Convert float to half-float (stored as unsigned short) static unsigned short FloatToHalf(float x) { + unsigned short result = 0; + const unsigned int b = (*(unsigned int*) & x) + 0x00001000; // Round-to-nearest-even: add last bit after truncated mantissa const unsigned int e = (b & 0x7F800000) >> 23; // Exponent const unsigned int m = b & 0x007FFFFF; // Mantissa; in line below: 0x007FF000 = 0x00800000-0x00001000 = decimal indicator flag - initial rounding - return (b & 0x80000000) >> 16 | (e > 112)*((((e - 112) << 10) & 0x7C00) | m >> 13) | ((e < 113) & (e > 101))*((((0x007FF000 + m) >> (125 - e)) + 1) >> 1) | (e > 143)*0x7FFF; // sign : normalized : denormalized : saturate + + result = (b & 0x80000000) >> 16 | (e > 112)*((((e - 112) << 10) & 0x7C00) | m >> 13) | ((e < 113) & (e > 101))*((((0x007FF000 + m) >> (125 - e)) + 1) >> 1) | (e > 143)*0x7FFF; // sign : normalized : denormalized : saturate + + return result; } // Get pixel data from image as Vector4 array (float normalized) From b51f4db8c29eba3506e953b351bedbf41f2a5c95 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 19:53:59 +0200 Subject: [PATCH 288/790] REVIEWED: `DrawRectangleLines()` #3884 For consistency, now _almost_ all `Draw*Lines()` functions use `RL_LINES` mode for drawing. It solves the linked issue but it can have other implications, as mentioned in the WARNING comment in `DrawRectangleLines()`. Side note: `DrawRectangleRoundedLines()` now should be reviewed for consistency. --- src/raylib.h | 3 ++- src/rshapes.c | 41 +++++++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 0d862a022..b9463228b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1255,7 +1255,8 @@ RLAPI void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline RLAPI void DrawRectangleLinesEx(Rectangle rec, float lineThick, Color color); // Draw rectangle outline with extended parameters RLAPI void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle with rounded edges -RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline +RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline (vertex in counter-clockwise order!) RLAPI void DrawTriangleFan(Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) diff --git a/src/rshapes.c b/src/rshapes.c index bb3a736c2..956ca735d 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -196,18 +196,17 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) // Draw lines sequuence (using gl lines) void DrawLineStrip(Vector2 *points, int pointCount, Color color) { - if (pointCount >= 2) - { - rlBegin(RL_LINES); - rlColor4ub(color.r, color.g, color.b, color.a); + if (pointCount < 2) return; // Security check - for (int i = 0; i < pointCount - 1; i++) - { - rlVertex2f(points[i].x, points[i].y); - rlVertex2f(points[i + 1].x, points[i + 1].y); - } - rlEnd(); - } + rlBegin(RL_LINES); + rlColor4ub(color.r, color.g, color.b, color.a); + + for (int i = 0; i < pointCount - 1; i++) + { + rlVertex2f(points[i].x, points[i].y); + rlVertex2f(points[i + 1].x, points[i + 1].y); + } + rlEnd(); } // Draw line using cubic-bezier spline, in-out interpolation, no control points @@ -807,15 +806,11 @@ void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, } // Draw rectangle outline -// NOTE: On OpenGL 3.3 and ES2 we use QUADS to avoid drawing order issues +// WARNING: All Draw*Lines() functions use RL_LINES for drawing, +// it implies flushing the current batch and changing draw mode to RL_LINES +// but it solves another issue: https://github.com/raysan5/raylib/issues/3884 void DrawRectangleLines(int posX, int posY, int width, int height, Color color) { -#if defined(SUPPORT_QUADS_DRAW_MODE) - DrawRectangle(posX, posY, width, 1, color); - DrawRectangle(posX + width - 1, posY + 1, 1, height - 2, color); - DrawRectangle(posX, posY + height - 1, width, 1, color); - DrawRectangle(posX, posY + 1, 1, height - 2, color); -#else rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); rlVertex2f(posX + 1, posY + 1); @@ -830,7 +825,6 @@ void DrawRectangleLines(int posX, int posY, int width, int height, Color color) rlVertex2f(posX + 1, posY + height); rlVertex2f(posX + 1, posY + 1); rlEnd(); -#endif } // Draw rectangle outline with extended parameters @@ -1090,8 +1084,15 @@ void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color co #endif } +// Draw rectangle with rounded edges +// TODO: This function should be refactored to use RL_LINES, for consistency with other Draw*Lines() +void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, Color color) +{ + DrawRectangleRoundedLinesEx(rec, roundness, segments, 1.0f, color); +} + // Draw rectangle with rounded edges outline -void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, float lineThick, Color color) +void DrawRectangleRoundedLinesEx(Rectangle rec, float roundness, int segments, float lineThick, Color color) { if (lineThick < 0) lineThick = 0; From 349ff166005ad5eb8f6cb97be2e99c9b8220e14b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 20 Apr 2024 17:54:14 +0000 Subject: [PATCH 289/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 23 ++ parser/output/raylib_api.lua | 11 + parser/output/raylib_api.txt | 666 +++++++++++++++++----------------- parser/output/raylib_api.xml | 10 +- 4 files changed, 379 insertions(+), 331 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 2b339512b..c7caabfac 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -5911,6 +5911,29 @@ }, { "name": "DrawRectangleRoundedLines", + "description": "Draw rectangle lines with rounded edges", + "returnType": "void", + "params": [ + { + "type": "Rectangle", + "name": "rec" + }, + { + "type": "float", + "name": "roundness" + }, + { + "type": "int", + "name": "segments" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "DrawRectangleRoundedLinesEx", "description": "Draw rectangle with rounded edges outline", "returnType": "void", "params": [ diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 8f0a62957..607904bbc 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -4891,6 +4891,17 @@ return { }, { name = "DrawRectangleRoundedLines", + description = "Draw rectangle lines with rounded edges", + returnType = "void", + params = { + {type = "Rectangle", name = "rec"}, + {type = "float", name = "roundness"}, + {type = "int", name = "segments"}, + {type = "Color", name = "color"} + } + }, + { + name = "DrawRectangleRoundedLinesEx", description = "Draw rectangle with rounded edges outline", returnType = "void", params = { diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 8031f874c..631be9a8b 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 561 +Functions found: 562 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -2318,16 +2318,24 @@ Function 233: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 234: DrawRectangleRoundedLines() (5 input parameters) +Function 234: DrawRectangleRoundedLines() (4 input parameters) Name: DrawRectangleRoundedLines Return type: void + Description: Draw rectangle lines with rounded edges + Param[1]: rec (type: Rectangle) + Param[2]: roundness (type: float) + Param[3]: segments (type: int) + Param[4]: color (type: Color) +Function 235: DrawRectangleRoundedLinesEx() (5 input parameters) + Name: DrawRectangleRoundedLinesEx + Return type: void Description: Draw rectangle with rounded edges outline Param[1]: rec (type: Rectangle) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 235: DrawTriangle() (4 input parameters) +Function 236: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2335,7 +2343,7 @@ Function 235: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 236: DrawTriangleLines() (4 input parameters) +Function 237: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2343,21 +2351,21 @@ Function 236: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 237: DrawTriangleFan() (3 input parameters) +Function 238: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 238: DrawTriangleStrip() (3 input parameters) +Function 239: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 239: DrawPoly() (5 input parameters) +Function 240: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2366,7 +2374,7 @@ Function 239: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 240: DrawPolyLines() (5 input parameters) +Function 241: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2375,7 +2383,7 @@ Function 240: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 241: DrawPolyLinesEx() (6 input parameters) +Function 242: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2385,7 +2393,7 @@ Function 241: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 242: DrawSplineLinear() (4 input parameters) +Function 243: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points @@ -2393,7 +2401,7 @@ Function 242: DrawSplineLinear() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 243: DrawSplineBasis() (4 input parameters) +Function 244: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points @@ -2401,7 +2409,7 @@ Function 243: DrawSplineBasis() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 244: DrawSplineCatmullRom() (4 input parameters) +Function 245: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points @@ -2409,7 +2417,7 @@ Function 244: DrawSplineCatmullRom() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 245: DrawSplineBezierQuadratic() (4 input parameters) +Function 246: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] @@ -2417,7 +2425,7 @@ Function 245: DrawSplineBezierQuadratic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 246: DrawSplineBezierCubic() (4 input parameters) +Function 247: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] @@ -2425,7 +2433,7 @@ Function 246: DrawSplineBezierCubic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 247: DrawSplineSegmentLinear() (4 input parameters) +Function 248: DrawSplineSegmentLinear() (4 input parameters) Name: DrawSplineSegmentLinear Return type: void Description: Draw spline segment: Linear, 2 points @@ -2433,7 +2441,7 @@ Function 247: DrawSplineSegmentLinear() (4 input parameters) Param[2]: p2 (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 248: DrawSplineSegmentBasis() (6 input parameters) +Function 249: DrawSplineSegmentBasis() (6 input parameters) Name: DrawSplineSegmentBasis Return type: void Description: Draw spline segment: B-Spline, 4 points @@ -2443,7 +2451,7 @@ Function 248: DrawSplineSegmentBasis() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 249: DrawSplineSegmentCatmullRom() (6 input parameters) +Function 250: DrawSplineSegmentCatmullRom() (6 input parameters) Name: DrawSplineSegmentCatmullRom Return type: void Description: Draw spline segment: Catmull-Rom, 4 points @@ -2453,7 +2461,7 @@ Function 249: DrawSplineSegmentCatmullRom() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 250: DrawSplineSegmentBezierQuadratic() (5 input parameters) +Function 251: DrawSplineSegmentBezierQuadratic() (5 input parameters) Name: DrawSplineSegmentBezierQuadratic Return type: void Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point @@ -2462,7 +2470,7 @@ Function 250: DrawSplineSegmentBezierQuadratic() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: thick (type: float) Param[5]: color (type: Color) -Function 251: DrawSplineSegmentBezierCubic() (6 input parameters) +Function 252: DrawSplineSegmentBezierCubic() (6 input parameters) Name: DrawSplineSegmentBezierCubic Return type: void Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points @@ -2472,14 +2480,14 @@ Function 251: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 252: GetSplinePointLinear() (3 input parameters) +Function 253: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 253: GetSplinePointBasis() (5 input parameters) +Function 254: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2488,7 +2496,7 @@ Function 253: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 254: GetSplinePointCatmullRom() (5 input parameters) +Function 255: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2497,7 +2505,7 @@ Function 254: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 255: GetSplinePointBezierQuad() (4 input parameters) +Function 256: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2505,7 +2513,7 @@ Function 255: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 256: GetSplinePointBezierCubic() (5 input parameters) +Function 257: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2514,13 +2522,13 @@ Function 256: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 257: CheckCollisionRecs() (2 input parameters) +Function 258: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 258: CheckCollisionCircles() (4 input parameters) +Function 259: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2528,27 +2536,27 @@ Function 258: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 259: CheckCollisionCircleRec() (3 input parameters) +Function 260: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 260: CheckCollisionPointRec() (2 input parameters) +Function 261: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 261: CheckCollisionPointCircle() (3 input parameters) +Function 262: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 262: CheckCollisionPointTriangle() (4 input parameters) +Function 263: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2556,14 +2564,14 @@ Function 262: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 263: CheckCollisionPointPoly() (3 input parameters) +Function 264: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 264: CheckCollisionLines() (5 input parameters) +Function 265: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2572,7 +2580,7 @@ Function 264: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 265: CheckCollisionPointLine() (4 input parameters) +Function 266: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2580,18 +2588,18 @@ Function 265: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 266: GetCollisionRec() (2 input parameters) +Function 267: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 267: LoadImage() (1 input parameters) +Function 268: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 268: LoadImageRaw() (5 input parameters) +Function 269: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2600,20 +2608,20 @@ Function 268: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 269: LoadImageSvg() (3 input parameters) +Function 270: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 270: LoadImageAnim() (2 input parameters) +Function 271: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 271: LoadImageAnimFromMemory() (4 input parameters) +Function 272: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2621,60 +2629,60 @@ Function 271: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 272: LoadImageFromMemory() (3 input parameters) +Function 273: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 273: LoadImageFromTexture() (1 input parameters) +Function 274: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 274: LoadImageFromScreen() (0 input parameters) +Function 275: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 275: IsImageReady() (1 input parameters) +Function 276: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 276: UnloadImage() (1 input parameters) +Function 277: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 277: ExportImage() (2 input parameters) +Function 278: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 278: ExportImageToMemory() (3 input parameters) +Function 279: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 279: ExportImageAsCode() (2 input parameters) +Function 280: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 280: GenImageColor() (3 input parameters) +Function 281: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 281: GenImageGradientLinear() (5 input parameters) +Function 282: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2683,7 +2691,7 @@ Function 281: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 282: GenImageGradientRadial() (5 input parameters) +Function 283: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2692,7 +2700,7 @@ Function 282: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 283: GenImageGradientSquare() (5 input parameters) +Function 284: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2701,7 +2709,7 @@ Function 283: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 284: GenImageChecked() (6 input parameters) +Function 285: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2711,14 +2719,14 @@ Function 284: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 285: GenImageWhiteNoise() (3 input parameters) +Function 286: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 286: GenImagePerlinNoise() (5 input parameters) +Function 287: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2727,39 +2735,39 @@ Function 286: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 287: GenImageCellular() (3 input parameters) +Function 288: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 288: GenImageText() (3 input parameters) +Function 289: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 289: ImageCopy() (1 input parameters) +Function 290: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 290: ImageFromImage() (2 input parameters) +Function 291: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 291: ImageText() (3 input parameters) +Function 292: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 292: ImageTextEx() (5 input parameters) +Function 293: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2768,76 +2776,76 @@ Function 292: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 293: ImageFormat() (2 input parameters) +Function 294: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 294: ImageToPOT() (2 input parameters) +Function 295: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 295: ImageCrop() (2 input parameters) +Function 296: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 296: ImageAlphaCrop() (2 input parameters) +Function 297: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 297: ImageAlphaClear() (3 input parameters) +Function 298: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 298: ImageAlphaMask() (2 input parameters) +Function 299: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 299: ImageAlphaPremultiply() (1 input parameters) +Function 300: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 300: ImageBlurGaussian() (2 input parameters) +Function 301: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 301: ImageKernelConvolution() (3 input parameters) +Function 302: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 302: ImageResize() (3 input parameters) +Function 303: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 303: ImageResizeNN() (3 input parameters) +Function 304: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 304: ImageResizeCanvas() (6 input parameters) +Function 305: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2847,12 +2855,12 @@ Function 304: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 305: ImageMipmaps() (1 input parameters) +Function 306: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 306: ImageDither() (5 input parameters) +Function 307: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2861,109 +2869,109 @@ Function 306: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 307: ImageFlipVertical() (1 input parameters) +Function 308: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 308: ImageFlipHorizontal() (1 input parameters) +Function 309: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 309: ImageRotate() (2 input parameters) +Function 310: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 310: ImageRotateCW() (1 input parameters) +Function 311: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 311: ImageRotateCCW() (1 input parameters) +Function 312: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 312: ImageColorTint() (2 input parameters) +Function 313: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 313: ImageColorInvert() (1 input parameters) +Function 314: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 314: ImageColorGrayscale() (1 input parameters) +Function 315: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 315: ImageColorContrast() (2 input parameters) +Function 316: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 316: ImageColorBrightness() (2 input parameters) +Function 317: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 317: ImageColorReplace() (3 input parameters) +Function 318: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 318: LoadImageColors() (1 input parameters) +Function 319: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 319: LoadImagePalette() (3 input parameters) +Function 320: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 320: UnloadImageColors() (1 input parameters) +Function 321: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 321: UnloadImagePalette() (1 input parameters) +Function 322: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 322: GetImageAlphaBorder() (2 input parameters) +Function 323: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 323: GetImageColor() (3 input parameters) +Function 324: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 324: ImageClearBackground() (2 input parameters) +Function 325: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 325: ImageDrawPixel() (4 input parameters) +Function 326: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2971,14 +2979,14 @@ Function 325: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 326: ImageDrawPixelV() (3 input parameters) +Function 327: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 327: ImageDrawLine() (6 input parameters) +Function 328: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2988,7 +2996,7 @@ Function 327: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 328: ImageDrawLineV() (4 input parameters) +Function 329: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -2996,7 +3004,7 @@ Function 328: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 329: ImageDrawCircle() (5 input parameters) +Function 330: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3005,7 +3013,7 @@ Function 329: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 330: ImageDrawCircleV() (4 input parameters) +Function 331: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3013,7 +3021,7 @@ Function 330: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 331: ImageDrawCircleLines() (5 input parameters) +Function 332: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3022,7 +3030,7 @@ Function 331: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 332: ImageDrawCircleLinesV() (4 input parameters) +Function 333: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3030,7 +3038,7 @@ Function 332: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 333: ImageDrawRectangle() (6 input parameters) +Function 334: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3040,7 +3048,7 @@ Function 333: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 334: ImageDrawRectangleV() (4 input parameters) +Function 335: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3048,14 +3056,14 @@ Function 334: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 335: ImageDrawRectangleRec() (3 input parameters) +Function 336: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 336: ImageDrawRectangleLines() (4 input parameters) +Function 337: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3063,7 +3071,7 @@ Function 336: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 337: ImageDraw() (5 input parameters) +Function 338: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3072,7 +3080,7 @@ Function 337: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 338: ImageDrawText() (6 input parameters) +Function 339: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3082,7 +3090,7 @@ Function 338: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 339: ImageDrawTextEx() (7 input parameters) +Function 340: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3093,79 +3101,79 @@ Function 339: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 340: LoadTexture() (1 input parameters) +Function 341: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 341: LoadTextureFromImage() (1 input parameters) +Function 342: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 342: LoadTextureCubemap() (2 input parameters) +Function 343: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 343: LoadRenderTexture() (2 input parameters) +Function 344: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 344: IsTextureReady() (1 input parameters) +Function 345: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 345: UnloadTexture() (1 input parameters) +Function 346: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 346: IsRenderTextureReady() (1 input parameters) +Function 347: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 347: UnloadRenderTexture() (1 input parameters) +Function 348: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 348: UpdateTexture() (2 input parameters) +Function 349: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 349: UpdateTextureRec() (3 input parameters) +Function 350: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 350: GenTextureMipmaps() (1 input parameters) +Function 351: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 351: SetTextureFilter() (2 input parameters) +Function 352: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 352: SetTextureWrap() (2 input parameters) +Function 353: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 353: DrawTexture() (4 input parameters) +Function 354: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3173,14 +3181,14 @@ Function 353: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 354: DrawTextureV() (3 input parameters) +Function 355: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 355: DrawTextureEx() (5 input parameters) +Function 356: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3189,7 +3197,7 @@ Function 355: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 356: DrawTextureRec() (4 input parameters) +Function 357: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3197,7 +3205,7 @@ Function 356: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 357: DrawTexturePro() (6 input parameters) +Function 358: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3207,7 +3215,7 @@ Function 357: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 358: DrawTextureNPatch() (6 input parameters) +Function 359: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3217,112 +3225,112 @@ Function 358: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 359: ColorIsEqual() (2 input parameters) +Function 360: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 360: Fade() (2 input parameters) +Function 361: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 361: ColorToInt() (1 input parameters) +Function 362: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 362: ColorNormalize() (1 input parameters) +Function 363: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 363: ColorFromNormalized() (1 input parameters) +Function 364: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 364: ColorToHSV() (1 input parameters) +Function 365: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 365: ColorFromHSV() (3 input parameters) +Function 366: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 366: ColorTint() (2 input parameters) +Function 367: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 367: ColorBrightness() (2 input parameters) +Function 368: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 368: ColorContrast() (2 input parameters) +Function 369: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 369: ColorAlpha() (2 input parameters) +Function 370: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 370: ColorAlphaBlend() (3 input parameters) +Function 371: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 371: GetColor() (1 input parameters) +Function 372: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 372: GetPixelColor() (2 input parameters) +Function 373: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 373: SetPixelColor() (3 input parameters) +Function 374: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 374: GetPixelDataSize() (3 input parameters) +Function 375: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 375: GetFontDefault() (0 input parameters) +Function 376: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 376: LoadFont() (1 input parameters) +Function 377: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 377: LoadFontEx() (4 input parameters) +Function 378: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3330,14 +3338,14 @@ Function 377: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 378: LoadFontFromImage() (3 input parameters) +Function 379: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 379: LoadFontFromMemory() (6 input parameters) +Function 380: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3347,12 +3355,12 @@ Function 379: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 380: IsFontReady() (1 input parameters) +Function 381: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 381: LoadFontData() (6 input parameters) +Function 382: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3362,7 +3370,7 @@ Function 381: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 382: GenImageFontAtlas() (6 input parameters) +Function 383: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3372,30 +3380,30 @@ Function 382: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 383: UnloadFontData() (2 input parameters) +Function 384: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 384: UnloadFont() (1 input parameters) +Function 385: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 385: ExportFontAsCode() (2 input parameters) +Function 386: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 386: DrawFPS() (2 input parameters) +Function 387: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 387: DrawText() (5 input parameters) +Function 388: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3404,7 +3412,7 @@ Function 387: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 388: DrawTextEx() (6 input parameters) +Function 389: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3414,7 +3422,7 @@ Function 388: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 389: DrawTextPro() (8 input parameters) +Function 390: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3426,7 +3434,7 @@ Function 389: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 390: DrawTextCodepoint() (5 input parameters) +Function 391: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3435,7 +3443,7 @@ Function 390: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 391: DrawTextCodepoints() (7 input parameters) +Function 392: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3446,18 +3454,18 @@ Function 391: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 392: SetTextLineSpacing() (1 input parameters) +Function 393: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 393: MeasureText() (2 input parameters) +Function 394: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 394: MeasureTextEx() (4 input parameters) +Function 395: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3465,185 +3473,185 @@ Function 394: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 395: GetGlyphIndex() (2 input parameters) +Function 396: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 396: GetGlyphInfo() (2 input parameters) +Function 397: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 397: GetGlyphAtlasRec() (2 input parameters) +Function 398: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 398: LoadUTF8() (2 input parameters) +Function 399: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 399: UnloadUTF8() (1 input parameters) +Function 400: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 400: LoadCodepoints() (2 input parameters) +Function 401: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 401: UnloadCodepoints() (1 input parameters) +Function 402: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 402: GetCodepointCount() (1 input parameters) +Function 403: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 403: GetCodepoint() (2 input parameters) +Function 404: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 404: GetCodepointNext() (2 input parameters) +Function 405: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 405: GetCodepointPrevious() (2 input parameters) +Function 406: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 406: CodepointToUTF8() (2 input parameters) +Function 407: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 407: TextCopy() (2 input parameters) +Function 408: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 408: TextIsEqual() (2 input parameters) +Function 409: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 409: TextLength() (1 input parameters) +Function 410: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 410: TextFormat() (2 input parameters) +Function 411: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 411: TextSubtext() (3 input parameters) +Function 412: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 412: TextReplace() (3 input parameters) +Function 413: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 413: TextInsert() (3 input parameters) +Function 414: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 414: TextJoin() (3 input parameters) +Function 415: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 415: TextSplit() (3 input parameters) +Function 416: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 416: TextAppend() (3 input parameters) +Function 417: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 417: TextFindIndex() (2 input parameters) +Function 418: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 418: TextToUpper() (1 input parameters) +Function 419: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 419: TextToLower() (1 input parameters) +Function 420: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 420: TextToPascal() (1 input parameters) +Function 421: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 421: TextToInteger() (1 input parameters) +Function 422: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 422: TextToFloat() (1 input parameters) +Function 423: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 423: DrawLine3D() (3 input parameters) +Function 424: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 424: DrawPoint3D() (2 input parameters) +Function 425: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 425: DrawCircle3D() (5 input parameters) +Function 426: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3652,7 +3660,7 @@ Function 425: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 426: DrawTriangle3D() (4 input parameters) +Function 427: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3660,14 +3668,14 @@ Function 426: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 427: DrawTriangleStrip3D() (3 input parameters) +Function 428: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 428: DrawCube() (5 input parameters) +Function 429: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3676,14 +3684,14 @@ Function 428: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 429: DrawCubeV() (3 input parameters) +Function 430: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 430: DrawCubeWires() (5 input parameters) +Function 431: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3692,21 +3700,21 @@ Function 430: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 431: DrawCubeWiresV() (3 input parameters) +Function 432: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 432: DrawSphere() (3 input parameters) +Function 433: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 433: DrawSphereEx() (5 input parameters) +Function 434: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3715,7 +3723,7 @@ Function 433: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 434: DrawSphereWires() (5 input parameters) +Function 435: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3724,7 +3732,7 @@ Function 434: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 435: DrawCylinder() (6 input parameters) +Function 436: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3734,7 +3742,7 @@ Function 435: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 436: DrawCylinderEx() (6 input parameters) +Function 437: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3744,7 +3752,7 @@ Function 436: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 437: DrawCylinderWires() (6 input parameters) +Function 438: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3754,7 +3762,7 @@ Function 437: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 438: DrawCylinderWiresEx() (6 input parameters) +Function 439: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3764,7 +3772,7 @@ Function 438: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 439: DrawCapsule() (6 input parameters) +Function 440: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3774,7 +3782,7 @@ Function 439: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 440: DrawCapsuleWires() (6 input parameters) +Function 441: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3784,51 +3792,51 @@ Function 440: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 441: DrawPlane() (3 input parameters) +Function 442: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 442: DrawRay() (2 input parameters) +Function 443: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 443: DrawGrid() (2 input parameters) +Function 444: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 444: LoadModel() (1 input parameters) +Function 445: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 445: LoadModelFromMesh() (1 input parameters) +Function 446: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 446: IsModelReady() (1 input parameters) +Function 447: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 447: UnloadModel() (1 input parameters) +Function 448: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 448: GetModelBoundingBox() (1 input parameters) +Function 449: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 449: DrawModel() (4 input parameters) +Function 450: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3836,7 +3844,7 @@ Function 449: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 450: DrawModelEx() (6 input parameters) +Function 451: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3846,7 +3854,7 @@ Function 450: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 451: DrawModelWires() (4 input parameters) +Function 452: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3854,7 +3862,7 @@ Function 451: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 452: DrawModelWiresEx() (6 input parameters) +Function 453: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3864,13 +3872,13 @@ Function 452: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 453: DrawBoundingBox() (2 input parameters) +Function 454: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 454: DrawBillboard() (5 input parameters) +Function 455: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3879,7 +3887,7 @@ Function 454: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 455: DrawBillboardRec() (6 input parameters) +Function 456: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3889,7 +3897,7 @@ Function 455: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 456: DrawBillboardPro() (9 input parameters) +Function 457: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3902,13 +3910,13 @@ Function 456: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 457: UploadMesh() (2 input parameters) +Function 458: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 458: UpdateMeshBuffer() (5 input parameters) +Function 459: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3917,19 +3925,19 @@ Function 458: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 459: UnloadMesh() (1 input parameters) +Function 460: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 460: DrawMesh() (3 input parameters) +Function 461: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 461: DrawMeshInstanced() (4 input parameters) +Function 462: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3937,35 +3945,35 @@ Function 461: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 462: GetMeshBoundingBox() (1 input parameters) +Function 463: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 463: GenMeshTangents() (1 input parameters) +Function 464: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 464: ExportMesh() (2 input parameters) +Function 465: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 465: ExportMeshAsCode() (2 input parameters) +Function 466: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 466: GenMeshPoly() (2 input parameters) +Function 467: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 467: GenMeshPlane() (4 input parameters) +Function 468: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3973,42 +3981,42 @@ Function 467: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 468: GenMeshCube() (3 input parameters) +Function 469: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 469: GenMeshSphere() (3 input parameters) +Function 470: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 470: GenMeshHemiSphere() (3 input parameters) +Function 471: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 471: GenMeshCylinder() (3 input parameters) +Function 472: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 472: GenMeshCone() (3 input parameters) +Function 473: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 473: GenMeshTorus() (4 input parameters) +Function 474: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4016,7 +4024,7 @@ Function 473: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 474: GenMeshKnot() (4 input parameters) +Function 475: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4024,84 +4032,84 @@ Function 474: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 475: GenMeshHeightmap() (2 input parameters) +Function 476: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 476: GenMeshCubicmap() (2 input parameters) +Function 477: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 477: LoadMaterials() (2 input parameters) +Function 478: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 478: LoadMaterialDefault() (0 input parameters) +Function 479: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 479: IsMaterialReady() (1 input parameters) +Function 480: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 480: UnloadMaterial() (1 input parameters) +Function 481: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 481: SetMaterialTexture() (3 input parameters) +Function 482: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 482: SetModelMeshMaterial() (3 input parameters) +Function 483: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 483: LoadModelAnimations() (2 input parameters) +Function 484: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 484: UpdateModelAnimation() (3 input parameters) +Function 485: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 485: UnloadModelAnimation() (1 input parameters) +Function 486: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 486: UnloadModelAnimations() (2 input parameters) +Function 487: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 487: IsModelAnimationValid() (2 input parameters) +Function 488: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 488: CheckCollisionSpheres() (4 input parameters) +Function 489: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4109,40 +4117,40 @@ Function 488: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 489: CheckCollisionBoxes() (2 input parameters) +Function 490: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 490: CheckCollisionBoxSphere() (3 input parameters) +Function 491: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 491: GetRayCollisionSphere() (3 input parameters) +Function 492: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 492: GetRayCollisionBox() (2 input parameters) +Function 493: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 493: GetRayCollisionMesh() (3 input parameters) +Function 494: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 494: GetRayCollisionTriangle() (4 input parameters) +Function 495: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4150,7 +4158,7 @@ Function 494: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 495: GetRayCollisionQuad() (5 input parameters) +Function 496: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4159,158 +4167,158 @@ Function 495: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 496: InitAudioDevice() (0 input parameters) +Function 497: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 497: CloseAudioDevice() (0 input parameters) +Function 498: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 498: IsAudioDeviceReady() (0 input parameters) +Function 499: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 499: SetMasterVolume() (1 input parameters) +Function 500: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 500: GetMasterVolume() (0 input parameters) +Function 501: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 501: LoadWave() (1 input parameters) +Function 502: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 502: LoadWaveFromMemory() (3 input parameters) +Function 503: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 503: IsWaveReady() (1 input parameters) +Function 504: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 504: LoadSound() (1 input parameters) +Function 505: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 505: LoadSoundFromWave() (1 input parameters) +Function 506: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 506: LoadSoundAlias() (1 input parameters) +Function 507: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 507: IsSoundReady() (1 input parameters) +Function 508: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 508: UpdateSound() (3 input parameters) +Function 509: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 509: UnloadWave() (1 input parameters) +Function 510: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 510: UnloadSound() (1 input parameters) +Function 511: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 511: UnloadSoundAlias() (1 input parameters) +Function 512: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 512: ExportWave() (2 input parameters) +Function 513: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 513: ExportWaveAsCode() (2 input parameters) +Function 514: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 514: PlaySound() (1 input parameters) +Function 515: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 515: StopSound() (1 input parameters) +Function 516: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 516: PauseSound() (1 input parameters) +Function 517: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 517: ResumeSound() (1 input parameters) +Function 518: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 518: IsSoundPlaying() (1 input parameters) +Function 519: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 519: SetSoundVolume() (2 input parameters) +Function 520: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 520: SetSoundPitch() (2 input parameters) +Function 521: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 521: SetSoundPan() (2 input parameters) +Function 522: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 522: WaveCopy() (1 input parameters) +Function 523: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 523: WaveCrop() (3 input parameters) +Function 524: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined samples range Param[1]: wave (type: Wave *) Param[2]: initSample (type: int) Param[3]: finalSample (type: int) -Function 524: WaveFormat() (4 input parameters) +Function 525: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4318,203 +4326,203 @@ Function 524: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 525: LoadWaveSamples() (1 input parameters) +Function 526: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 526: UnloadWaveSamples() (1 input parameters) +Function 527: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 527: LoadMusicStream() (1 input parameters) +Function 528: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 528: LoadMusicStreamFromMemory() (3 input parameters) +Function 529: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 529: IsMusicReady() (1 input parameters) +Function 530: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 530: UnloadMusicStream() (1 input parameters) +Function 531: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 531: PlayMusicStream() (1 input parameters) +Function 532: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 532: IsMusicStreamPlaying() (1 input parameters) +Function 533: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 533: UpdateMusicStream() (1 input parameters) +Function 534: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 534: StopMusicStream() (1 input parameters) +Function 535: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 535: PauseMusicStream() (1 input parameters) +Function 536: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 536: ResumeMusicStream() (1 input parameters) +Function 537: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 537: SeekMusicStream() (2 input parameters) +Function 538: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 538: SetMusicVolume() (2 input parameters) +Function 539: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 539: SetMusicPitch() (2 input parameters) +Function 540: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 540: SetMusicPan() (2 input parameters) +Function 541: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 541: GetMusicTimeLength() (1 input parameters) +Function 542: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 542: GetMusicTimePlayed() (1 input parameters) +Function 543: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 543: LoadAudioStream() (3 input parameters) +Function 544: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 544: IsAudioStreamReady() (1 input parameters) +Function 545: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 545: UnloadAudioStream() (1 input parameters) +Function 546: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 546: UpdateAudioStream() (3 input parameters) +Function 547: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 547: IsAudioStreamProcessed() (1 input parameters) +Function 548: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 548: PlayAudioStream() (1 input parameters) +Function 549: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 549: PauseAudioStream() (1 input parameters) +Function 550: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 550: ResumeAudioStream() (1 input parameters) +Function 551: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 551: IsAudioStreamPlaying() (1 input parameters) +Function 552: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 552: StopAudioStream() (1 input parameters) +Function 553: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 553: SetAudioStreamVolume() (2 input parameters) +Function 554: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 554: SetAudioStreamPitch() (2 input parameters) +Function 555: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 555: SetAudioStreamPan() (2 input parameters) +Function 556: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 556: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 557: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 557: SetAudioStreamCallback() (2 input parameters) +Function 558: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 558: AttachAudioStreamProcessor() (2 input parameters) +Function 559: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 559: DetachAudioStreamProcessor() (2 input parameters) +Function 560: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 560: AttachAudioMixedProcessor() (1 input parameters) +Function 561: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 561: DetachAudioMixedProcessor() (1 input parameters) +Function 562: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 2f536db32..8183d5cf8 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -1464,7 +1464,13 @@ - + + + + + + + From 41b0c5c4f9dcd80ab1228bee7eac35f9ab9f08e7 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 19:58:10 +0200 Subject: [PATCH 290/790] REVIEWED: `DrawRectangleLines()` pixel offset This could be actually very tricky and GPU/drivers dependant... --- src/rshapes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rshapes.c b/src/rshapes.c index 956ca735d..e2b55bc32 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -813,7 +813,7 @@ void DrawRectangleLines(int posX, int posY, int width, int height, Color color) { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - rlVertex2f(posX + 1, posY + 1); + rlVertex2f(posX, posY); rlVertex2f(posX + width, posY + 1); rlVertex2f(posX + width, posY + 1); From 68201c10c292ccc9a66bd301fb8cdded34e7c1ce Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 19:58:14 +0200 Subject: [PATCH 291/790] Update models_cubicmap.c --- examples/models/models_cubicmap.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/examples/models/models_cubicmap.c b/examples/models/models_cubicmap.c index 2cbb7bf32..8e1c1fa1a 100644 --- a/examples/models/models_cubicmap.c +++ b/examples/models/models_cubicmap.c @@ -46,6 +46,8 @@ int main(void) Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position UnloadImage(image); // Unload cubesmap image from RAM, already uploaded to VRAM + + bool pause = false; // Pause camera orbital rotation (and zoom) SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -55,7 +57,9 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - UpdateCamera(&camera, CAMERA_ORBITAL); + if (IsKeyPressed(KEY_P)) pause = !pause; + + if (!pause) UpdateCamera(&camera, CAMERA_ORBITAL); //---------------------------------------------------------------------------------- // Draw @@ -72,10 +76,10 @@ int main(void) DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4.0f - 20, 20.0f }, 0.0f, 4.0f, WHITE); DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); - + DrawText("cubicmap image used to", 658, 90, 10, GRAY); DrawText("generate map 3d model", 658, 104, 10, GRAY); - + DrawFPS(10, 10); EndDrawing(); From d80a622972deaaa1185d2c37d82cb21f0c16e697 Mon Sep 17 00:00:00 2001 From: Christian Haas Date: Sat, 20 Apr 2024 20:15:09 +0200 Subject: [PATCH 292/790] [raudio] Fix 3664: crash in raudio from multithreading issues (#3907) * Flip release of buffer; First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization. * Add mutex locks to audio buffer functions; Separate those used from both threads * Flip release of buffer; First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization. * Remove TODO marker; The buffer is in stopped state and its data won't be accessed * Add mutex locks to music/stream functions directly operating on buffer * Secure UpdateMusicStream/PlayMusicStream/UpdateAudioStream; This change is twofold: * Add locks to UpdateMusicStream/UpdateAudioStream (second one needed separation) * Remove unnecessary hack to restart music - inlining the statements resulted in a no-op Especially the second part made it easier to ensure thread-safety overall * Remove redundant check; Already checked at beginning of function --- src/raudio.c | 124 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 92 insertions(+), 32 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index afb076af3..6f7e9a72f 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -431,8 +431,10 @@ static bool SaveFileText(const char *fileName, char *text); // Save text AudioBuffer *LoadAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 sizeInFrames, int usage); void UnloadAudioBuffer(AudioBuffer *buffer); +bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer); bool IsAudioBufferPlaying(AudioBuffer *buffer); void PlayAudioBuffer(AudioBuffer *buffer); +void StopAudioBufferInLockedState(AudioBuffer *buffer); void StopAudioBuffer(AudioBuffer *buffer); void PauseAudioBuffer(AudioBuffer *buffer); void ResumeAudioBuffer(AudioBuffer *buffer); @@ -442,6 +444,11 @@ void SetAudioBufferPan(AudioBuffer *buffer, float pan); void TrackAudioBuffer(AudioBuffer *buffer); void UntrackAudioBuffer(AudioBuffer *buffer); +//---------------------------------------------------------------------------------- +// AudioStream management functions declaration +//---------------------------------------------------------------------------------- +void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount); + //---------------------------------------------------------------------------------- // Module Functions Definition - Audio Device initialization and Closing //---------------------------------------------------------------------------------- @@ -612,15 +619,15 @@ void UnloadAudioBuffer(AudioBuffer *buffer) { if (buffer != NULL) { - ma_data_converter_uninit(&buffer->converter, NULL); UntrackAudioBuffer(buffer); + ma_data_converter_uninit(&buffer->converter, NULL); RL_FREE(buffer->data); RL_FREE(buffer); } } -// Check if an audio buffer is playing -bool IsAudioBufferPlaying(AudioBuffer *buffer) +// Check if an audio buffer is playing, assuming the audio system mutex has been locked. +bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer) { bool result = false; @@ -629,6 +636,16 @@ bool IsAudioBufferPlaying(AudioBuffer *buffer) return result; } +// Check if an audio buffer is playing from a program state without lock. +bool IsAudioBufferPlaying(AudioBuffer *buffer) +{ + bool result = false; + ma_mutex_lock(&AUDIO.System.lock); + result = IsAudioBufferPlayingInLockedState(buffer); + ma_mutex_unlock(&AUDIO.System.lock); + return result; +} + // Play an audio buffer // NOTE: Buffer is restarted to the start. // Use PauseAudioBuffer() and ResumeAudioBuffer() if the playback position should be maintained. @@ -636,18 +653,20 @@ void PlayAudioBuffer(AudioBuffer *buffer) { if (buffer != NULL) { + ma_mutex_lock(&AUDIO.System.lock); buffer->playing = true; buffer->paused = false; buffer->frameCursorPos = 0; + ma_mutex_unlock(&AUDIO.System.lock); } } -// Stop an audio buffer -void StopAudioBuffer(AudioBuffer *buffer) +// Stop an audio buffer, assuming the audio system mutex has been locked. +void StopAudioBufferInLockedState(AudioBuffer *buffer) { if (buffer != NULL) { - if (IsAudioBufferPlaying(buffer)) + if (IsAudioBufferPlayingInLockedState(buffer)) { buffer->playing = false; buffer->paused = false; @@ -659,22 +678,45 @@ void StopAudioBuffer(AudioBuffer *buffer) } } +// Stop an audio buffer from a program state without lock. +void StopAudioBuffer(AudioBuffer *buffer) +{ + ma_mutex_lock(&AUDIO.System.lock); + StopAudioBufferInLockedState(buffer); + ma_mutex_unlock(&AUDIO.System.lock); +} + // Pause an audio buffer void PauseAudioBuffer(AudioBuffer *buffer) { - if (buffer != NULL) buffer->paused = true; + if (buffer != NULL) + { + ma_mutex_lock(&AUDIO.System.lock); + buffer->paused = true; + ma_mutex_unlock(&AUDIO.System.lock); + } } // Resume an audio buffer void ResumeAudioBuffer(AudioBuffer *buffer) { - if (buffer != NULL) buffer->paused = false; + if (buffer != NULL) + { + ma_mutex_lock(&AUDIO.System.lock); + buffer->paused = false; + ma_mutex_unlock(&AUDIO.System.lock); + } } // Set volume for an audio buffer void SetAudioBufferVolume(AudioBuffer *buffer, float volume) { - if (buffer != NULL) buffer->volume = volume; + if (buffer != NULL) + { + ma_mutex_lock(&AUDIO.System.lock); + buffer->volume = volume; + ma_mutex_unlock(&AUDIO.System.lock); + } } // Set pitch for an audio buffer @@ -682,6 +724,7 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch) { if ((buffer != NULL) && (pitch > 0.0f)) { + ma_mutex_lock(&AUDIO.System.lock); // Pitching is just an adjustment of the sample rate. // Note that this changes the duration of the sound: // - higher pitches will make the sound faster @@ -690,6 +733,7 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch) ma_data_converter_set_rate(&buffer->converter, buffer->converter.sampleRateIn, outputSampleRate); buffer->pitch = pitch; + ma_mutex_unlock(&AUDIO.System.lock); } } @@ -699,7 +743,12 @@ void SetAudioBufferPan(AudioBuffer *buffer, float pan) if (pan < 0.0f) pan = 0.0f; else if (pan > 1.0f) pan = 1.0f; - if (buffer != NULL) buffer->pan = pan; + if (buffer != NULL) + { + ma_mutex_lock(&AUDIO.System.lock); + buffer->pan = pan; + ma_mutex_unlock(&AUDIO.System.lock); + } } // Track audio buffer to linked list next position @@ -1001,8 +1050,8 @@ void UnloadSoundAlias(Sound alias) // Untrack and unload just the sound buffer, not the sample data, it is shared with the source for the alias if (alias.stream.buffer != NULL) { - ma_data_converter_uninit(&alias.stream.buffer->converter, NULL); UntrackAudioBuffer(alias.stream.buffer); + ma_data_converter_uninit(&alias.stream.buffer->converter, NULL); RL_FREE(alias.stream.buffer); } } @@ -1014,7 +1063,6 @@ void UpdateSound(Sound sound, const void *data, int frameCount) { StopAudioBuffer(sound.stream.buffer); - // TODO: May want to lock/unlock this since this data buffer is read at mixing time memcpy(sound.stream.buffer->data, data, frameCount*ma_get_bytes_per_frame(sound.stream.buffer->converter.formatIn, sound.stream.buffer->converter.channelsIn)); } } @@ -1741,19 +1789,10 @@ void UnloadMusicStream(Music music) } } -// Start music playing (open stream) +// Start music playing (open stream) from beginning void PlayMusicStream(Music music) { - if (music.stream.buffer != NULL) - { - // For music streams, we need to make sure we maintain the frame cursor position - // This is a hack for this section of code in UpdateMusicStream() - // NOTE: In case window is minimized, music stream is stopped, just make sure to - // play again on window restore: if (IsMusicStreamPlaying(music)) PlayMusicStream(music); - ma_uint32 frameCursorPos = music.stream.buffer->frameCursorPos; - PlayAudioStream(music.stream); // WARNING: This resets the cursor position. - music.stream.buffer->frameCursorPos = frameCursorPos; - } + PlayAudioStream(music.stream); } // Pause music playing @@ -1835,7 +1874,9 @@ void SeekMusicStream(Music music, float position) default: break; } + ma_mutex_lock(&AUDIO.System.lock); music.stream.buffer->framesProcessed = positionInFrames; + ma_mutex_unlock(&AUDIO.System.lock); } // Update (re-fill) music buffers if data already processed @@ -1843,6 +1884,8 @@ void UpdateMusicStream(Music music) { if (music.stream.buffer == NULL) return; + ma_mutex_lock(&AUDIO.System.lock); + unsigned int subBufferSizeInFrames = music.stream.buffer->sizeInFrames/2; // On first call of this function we lazily pre-allocated a temp buffer to read audio files/memory data in @@ -1859,7 +1902,7 @@ void UpdateMusicStream(Music music) // Check both sub-buffers to check if they require refilling for (int i = 0; i < 2; i++) { - if ((music.stream.buffer != NULL) && !music.stream.buffer->isSubBufferProcessed[i]) continue; // No refilling required, move to next sub-buffer + if (!music.stream.buffer->isSubBufferProcessed[i]) continue; // No refilling required, move to next sub-buffer unsigned int framesLeft = music.frameCount - music.stream.buffer->framesProcessed; // Frames left to be processed unsigned int framesToStream = 0; // Total frames to be streamed @@ -1978,7 +2021,7 @@ void UpdateMusicStream(Music music) default: break; } - UpdateAudioStream(music.stream, AUDIO.System.pcmBuffer, framesToStream); + UpdateAudioStreamInLockedState(music.stream, AUDIO.System.pcmBuffer, framesToStream); music.stream.buffer->framesProcessed = music.stream.buffer->framesProcessed%music.frameCount; @@ -1986,6 +2029,7 @@ void UpdateMusicStream(Music music) { if (!music.looping) { + ma_mutex_unlock(&AUDIO.System.lock); // Streaming is ending, we filled latest frames from input StopMusicStream(music); return; @@ -1993,9 +2037,7 @@ void UpdateMusicStream(Music music) } } - // NOTE: In case window is minimized, music stream is stopped, - // just make sure to play again on window restore - if (IsMusicStreamPlaying(music)) PlayMusicStream(music); + ma_mutex_unlock(&AUDIO.System.lock); } // Check if any music is playing @@ -2049,6 +2091,7 @@ float GetMusicTimePlayed(Music music) else #endif { + ma_mutex_lock(&AUDIO.System.lock); //ma_uint32 frameSizeInBytes = ma_get_bytes_per_sample(music.stream.buffer->dsp.formatConverterIn.config.formatIn)*music.stream.buffer->dsp.formatConverterIn.config.channels; int framesProcessed = (int)music.stream.buffer->framesProcessed; int subBufferSize = (int)music.stream.buffer->sizeInFrames/2; @@ -2058,6 +2101,7 @@ float GetMusicTimePlayed(Music music) int framesPlayed = (framesProcessed - framesInFirstBuffer - framesInSecondBuffer + framesSentToMix)%(int)music.frameCount; if (framesPlayed < 0) framesPlayed += music.frameCount; secondsPlayed = (float)framesPlayed/music.stream.sampleRate; + ma_mutex_unlock(&AUDIO.System.lock); } } @@ -2117,6 +2161,13 @@ void UnloadAudioStream(AudioStream stream) // NOTE 1: Only updates one buffer of the stream source: dequeue -> update -> queue // NOTE 2: To dequeue a buffer it needs to be processed: IsAudioStreamProcessed() void UpdateAudioStream(AudioStream stream, const void *data, int frameCount) +{ + ma_mutex_lock(&AUDIO.System.lock); + UpdateAudioStreamInLockedState(stream, data, frameCount); + ma_mutex_unlock(&AUDIO.System.lock); +} + +void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount) { if (stream.buffer != NULL) { @@ -2170,7 +2221,11 @@ bool IsAudioStreamProcessed(AudioStream stream) { if (stream.buffer == NULL) return false; - return (stream.buffer->isSubBufferProcessed[0] || stream.buffer->isSubBufferProcessed[1]); + bool result = false; + ma_mutex_lock(&AUDIO.System.lock); + result = stream.buffer->isSubBufferProcessed[0] || stream.buffer->isSubBufferProcessed[1]; + ma_mutex_unlock(&AUDIO.System.lock); + return result; } // Play audio stream @@ -2230,7 +2285,12 @@ void SetAudioStreamBufferSizeDefault(int size) // Audio thread callback to request new data void SetAudioStreamCallback(AudioStream stream, AudioCallback callback) { - if (stream.buffer != NULL) stream.buffer->callback = callback; + if (stream.buffer != NULL) + { + ma_mutex_lock(&AUDIO.System.lock); + stream.buffer->callback = callback; + ma_mutex_unlock(&AUDIO.System.lock); + } } // Add processor to audio stream. Contrary to buffers, the order of processors is important. @@ -2424,7 +2484,7 @@ static ma_uint32 ReadAudioBufferFramesInInternalFormat(AudioBuffer *audioBuffer, // We need to break from this loop if we're not looping if (!audioBuffer->looping) { - StopAudioBuffer(audioBuffer); + StopAudioBufferInLockedState(audioBuffer); break; } } @@ -2560,7 +2620,7 @@ static void OnSendAudioDataToDevice(ma_device *pDevice, void *pFramesOut, const { if (!audioBuffer->looping) { - StopAudioBuffer(audioBuffer); + StopAudioBufferInLockedState(audioBuffer); break; } else From c1943f0f7c253cd839c7633e02d3d7f3aa3a6833 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 20:30:35 +0200 Subject: [PATCH 293/790] REVIEWED: Move some functions, made them static --- src/raudio.c | 212 ++++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 104 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 6f7e9a72f..b3874dbe1 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -410,9 +410,18 @@ static AudioData AUDIO = { // Global AUDIO context // Module specific Functions Declaration //---------------------------------------------------------------------------------- static void OnLog(void *pUserData, ma_uint32 level, const char *pMessage); + +// Reads audio data from an AudioBuffer object in internal/device formats +static ma_uint32 ReadAudioBufferFramesInInternalFormat(AudioBuffer *audioBuffer, void *framesOut, ma_uint32 frameCount); +static ma_uint32 ReadAudioBufferFramesInMixingFormat(AudioBuffer *audioBuffer, float *framesOut, ma_uint32 frameCount); + static void OnSendAudioDataToDevice(ma_device *pDevice, void *pFramesOut, const void *pFramesInput, ma_uint32 frameCount); static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 frameCount, AudioBuffer *buffer); +static bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer); +static void StopAudioBufferInLockedState(AudioBuffer *buffer); +static void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount); + #if defined(RAUDIO_STANDALONE) static bool IsFileExtension(const char *fileName, const char *ext); // Check file extension static const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes the dot: .png) @@ -431,10 +440,8 @@ static bool SaveFileText(const char *fileName, char *text); // Save text AudioBuffer *LoadAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 sizeInFrames, int usage); void UnloadAudioBuffer(AudioBuffer *buffer); -bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer); bool IsAudioBufferPlaying(AudioBuffer *buffer); void PlayAudioBuffer(AudioBuffer *buffer); -void StopAudioBufferInLockedState(AudioBuffer *buffer); void StopAudioBuffer(AudioBuffer *buffer); void PauseAudioBuffer(AudioBuffer *buffer); void ResumeAudioBuffer(AudioBuffer *buffer); @@ -444,10 +451,6 @@ void SetAudioBufferPan(AudioBuffer *buffer, float pan); void TrackAudioBuffer(AudioBuffer *buffer); void UntrackAudioBuffer(AudioBuffer *buffer); -//---------------------------------------------------------------------------------- -// AudioStream management functions declaration -//---------------------------------------------------------------------------------- -void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount); //---------------------------------------------------------------------------------- // Module Functions Definition - Audio Device initialization and Closing @@ -467,12 +470,12 @@ void InitAudioDevice(void) } // Init audio device - // NOTE: Using the default device. Format is floating point because it simplifies mixing. + // NOTE: Using the default device. Format is floating point because it simplifies mixing ma_device_config config = ma_device_config_init(ma_device_type_playback); - config.playback.pDeviceID = NULL; // NULL for the default playback AUDIO.System.device. + config.playback.pDeviceID = NULL; // NULL for the default playback AUDIO.System.device config.playback.format = AUDIO_DEVICE_FORMAT; config.playback.channels = AUDIO_DEVICE_CHANNELS; - config.capture.pDeviceID = NULL; // NULL for the default capture AUDIO.System.device. + config.capture.pDeviceID = NULL; // NULL for the default capture AUDIO.System.device config.capture.format = ma_format_s16; config.capture.channels = 1; config.sampleRate = AUDIO_DEVICE_SAMPLE_RATE; @@ -488,7 +491,7 @@ void InitAudioDevice(void) } // Mixing happens on a separate thread which means we need to synchronize. I'm using a mutex here to make things simple, but may - // want to look at something a bit smarter later on to keep everything real-time, if that's necessary. + // want to look at something a bit smarter later on to keep everything real-time, if that's necessary if (ma_mutex_init(&AUDIO.System.lock) != MA_SUCCESS) { TRACELOG(LOG_WARNING, "AUDIO: Failed to create mutex for mixing"); @@ -498,7 +501,7 @@ void InitAudioDevice(void) } // Keep the device running the whole time. May want to consider doing something a bit smarter and only have the device running - // while there's at least one sound being played. + // while there's at least one sound being played result = ma_device_start(&AUDIO.System.device); if (result != MA_SUCCESS) { @@ -626,17 +629,7 @@ void UnloadAudioBuffer(AudioBuffer *buffer) } } -// Check if an audio buffer is playing, assuming the audio system mutex has been locked. -bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer) -{ - bool result = false; - - if (buffer != NULL) result = (buffer->playing && !buffer->paused); - - return result; -} - -// Check if an audio buffer is playing from a program state without lock. +// Check if an audio buffer is playing from a program state without lock bool IsAudioBufferPlaying(AudioBuffer *buffer) { bool result = false; @@ -647,8 +640,8 @@ bool IsAudioBufferPlaying(AudioBuffer *buffer) } // Play an audio buffer -// NOTE: Buffer is restarted to the start. -// Use PauseAudioBuffer() and ResumeAudioBuffer() if the playback position should be maintained. +// NOTE: Buffer is restarted to the start +// Use PauseAudioBuffer() and ResumeAudioBuffer() if the playback position should be maintained void PlayAudioBuffer(AudioBuffer *buffer) { if (buffer != NULL) @@ -661,24 +654,7 @@ void PlayAudioBuffer(AudioBuffer *buffer) } } -// Stop an audio buffer, assuming the audio system mutex has been locked. -void StopAudioBufferInLockedState(AudioBuffer *buffer) -{ - if (buffer != NULL) - { - if (IsAudioBufferPlayingInLockedState(buffer)) - { - buffer->playing = false; - buffer->paused = false; - buffer->frameCursorPos = 0; - buffer->framesProcessed = 0; - buffer->isSubBufferProcessed[0] = true; - buffer->isSubBufferProcessed[1] = true; - } - } -} - -// Stop an audio buffer from a program state without lock. +// Stop an audio buffer from a program state without lock void StopAudioBuffer(AudioBuffer *buffer) { ma_mutex_lock(&AUDIO.System.lock); @@ -725,7 +701,7 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch) if ((buffer != NULL) && (pitch > 0.0f)) { ma_mutex_lock(&AUDIO.System.lock); - // Pitching is just an adjustment of the sample rate. + // Pitching is just an adjustment of the sample rate // Note that this changes the duration of the sound: // - higher pitches will make the sound faster // - lower pitches make it slower @@ -951,15 +927,15 @@ Sound LoadSoundFromWave(Wave wave) if (wave.data != NULL) { - // When using miniaudio we need to do our own mixing. + // When using miniaudio we need to do our own mixing // To simplify this we need convert the format of each sound to be consistent with // the format used to open the playback AUDIO.System.device. We can do this two ways: // - // 1) Convert the whole sound in one go at load time (here). - // 2) Convert the audio data in chunks at mixing time. + // 1) Convert the whole sound in one go at load time (here) + // 2) Convert the audio data in chunks at mixing time // - // First option has been selected, format conversion is done on the loading stage. - // The downside is that it uses more memory if the original sound is u8 or s16. + // First option has been selected, format conversion is done on the loading stage + // The downside is that it uses more memory if the original sound is u8 or s16 ma_format formatIn = ((wave.sampleSize == 8)? ma_format_u8 : ((wave.sampleSize == 16)? ma_format_s16 : ma_format_f32)); ma_uint32 frameCountIn = wave.frameCount; @@ -2167,55 +2143,6 @@ void UpdateAudioStream(AudioStream stream, const void *data, int frameCount) ma_mutex_unlock(&AUDIO.System.lock); } -void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount) -{ - if (stream.buffer != NULL) - { - if (stream.buffer->isSubBufferProcessed[0] || stream.buffer->isSubBufferProcessed[1]) - { - ma_uint32 subBufferToUpdate = 0; - - if (stream.buffer->isSubBufferProcessed[0] && stream.buffer->isSubBufferProcessed[1]) - { - // Both buffers are available for updating. - // Update the first one and make sure the cursor is moved back to the front. - subBufferToUpdate = 0; - stream.buffer->frameCursorPos = 0; - } - else - { - // Just update whichever sub-buffer is processed. - subBufferToUpdate = (stream.buffer->isSubBufferProcessed[0])? 0 : 1; - } - - ma_uint32 subBufferSizeInFrames = stream.buffer->sizeInFrames/2; - unsigned char *subBuffer = stream.buffer->data + ((subBufferSizeInFrames*stream.channels*(stream.sampleSize/8))*subBufferToUpdate); - - // Total frames processed in buffer is always the complete size, filled with 0 if required - stream.buffer->framesProcessed += subBufferSizeInFrames; - - // Does this API expect a whole buffer to be updated in one go? - // Assuming so, but if not will need to change this logic. - if (subBufferSizeInFrames >= (ma_uint32)frameCount) - { - ma_uint32 framesToWrite = (ma_uint32)frameCount; - - ma_uint32 bytesToWrite = framesToWrite*stream.channels*(stream.sampleSize/8); - memcpy(subBuffer, data, bytesToWrite); - - // Any leftover frames should be filled with zeros. - ma_uint32 leftoverFrameCount = subBufferSizeInFrames - framesToWrite; - - if (leftoverFrameCount > 0) memset(subBuffer + bytesToWrite, 0, leftoverFrameCount*stream.channels*(stream.sampleSize/8)); - - stream.buffer->isSubBufferProcessed[subBufferToUpdate] = false; - } - else TRACELOG(LOG_WARNING, "STREAM: Attempting to write too many frames to buffer"); - } - else TRACELOG(LOG_WARNING, "STREAM: Buffer not available for updating"); - } -} - // Check if any audio stream buffers requires refill bool IsAudioStreamProcessed(AudioStream stream) { @@ -2246,7 +2173,7 @@ void ResumeAudioStream(AudioStream stream) ResumeAudioBuffer(stream.buffer); } -// Check if audio stream is playing. +// Check if audio stream is playing bool IsAudioStreamPlaying(AudioStream stream) { return IsAudioBufferPlaying(stream.buffer); @@ -2293,9 +2220,9 @@ void SetAudioStreamCallback(AudioStream stream, AudioCallback callback) } } -// Add processor to audio stream. Contrary to buffers, the order of processors is important. +// Add processor to audio stream. Contrary to buffers, the order of processors is important // The new processor must be added at the end. As there aren't supposed to be a lot of processors attached to -// a given stream, we iterate through the list to find the end. That way we don't need a pointer to the last element. +// a given stream, we iterate through the list to find the end. That way we don't need a pointer to the last element void AttachAudioStreamProcessor(AudioStream stream, AudioCallback process) { ma_mutex_lock(&AUDIO.System.lock); @@ -2410,7 +2337,7 @@ static void OnLog(void *pUserData, ma_uint32 level, const char *pMessage) TRACELOG(LOG_WARNING, "miniaudio: %s", pMessage); // All log messages from miniaudio are errors } -// Reads audio data from an AudioBuffer object in internal format. +// Reads audio data from an AudioBuffer object in internal format static ma_uint32 ReadAudioBufferFramesInInternalFormat(AudioBuffer *audioBuffer, void *framesOut, ma_uint32 frameCount) { // Using audio buffer callback @@ -2498,20 +2425,20 @@ static ma_uint32 ReadAudioBufferFramesInInternalFormat(AudioBuffer *audioBuffer, // For static buffers we can fill the remaining frames with silence for safety, but we don't want // to report those frames as "read". The reason for this is that the caller uses the return value - // to know whether a non-looping sound has finished playback. + // to know whether a non-looping sound has finished playback if (audioBuffer->usage != AUDIO_BUFFER_USAGE_STATIC) framesRead += totalFramesRemaining; } return framesRead; } -// Reads audio data from an AudioBuffer object in device format. Returned data will be in a format appropriate for mixing. +// Reads audio data from an AudioBuffer object in device format, returned data will be in a format appropriate for mixing static ma_uint32 ReadAudioBufferFramesInMixingFormat(AudioBuffer *audioBuffer, float *framesOut, ma_uint32 frameCount) { // What's going on here is that we're continuously converting data from the AudioBuffer's internal format to the mixing format, which // should be defined by the output format of the data converter. We do this until frameCount frames have been output. The important // detail to remember here is that we never, ever attempt to read more input data than is required for the specified number of output - // frames. This can be achieved with ma_data_converter_get_required_input_frame_count(). + // frames. This can be achieved with ma_data_converter_get_required_input_frame_count() ma_uint8 inputBuffer[4096] = { 0 }; ma_uint32 inputBufferFrameCap = sizeof(inputBuffer)/ma_get_bytes_per_frame(audioBuffer->converter.formatIn, audioBuffer->converter.channelsIn); @@ -2693,6 +2620,83 @@ static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 fr } } +// Check if an audio buffer is playing, assuming the audio system mutex has been locked +static bool IsAudioBufferPlayingInLockedState(AudioBuffer *buffer) +{ + bool result = false; + + if (buffer != NULL) result = (buffer->playing && !buffer->paused); + + return result; +} + +// Stop an audio buffer, assuming the audio system mutex has been locked +static void StopAudioBufferInLockedState(AudioBuffer *buffer) +{ + if (buffer != NULL) + { + if (IsAudioBufferPlayingInLockedState(buffer)) + { + buffer->playing = false; + buffer->paused = false; + buffer->frameCursorPos = 0; + buffer->framesProcessed = 0; + buffer->isSubBufferProcessed[0] = true; + buffer->isSubBufferProcessed[1] = true; + } + } +} + +// Update audio stream, assuming the audio system mutex has been locked +static void UpdateAudioStreamInLockedState(AudioStream stream, const void *data, int frameCount) +{ + if (stream.buffer != NULL) + { + if (stream.buffer->isSubBufferProcessed[0] || stream.buffer->isSubBufferProcessed[1]) + { + ma_uint32 subBufferToUpdate = 0; + + if (stream.buffer->isSubBufferProcessed[0] && stream.buffer->isSubBufferProcessed[1]) + { + // Both buffers are available for updating + // Update the first one and make sure the cursor is moved back to the front + subBufferToUpdate = 0; + stream.buffer->frameCursorPos = 0; + } + else + { + // Just update whichever sub-buffer is processed + subBufferToUpdate = (stream.buffer->isSubBufferProcessed[0])? 0 : 1; + } + + ma_uint32 subBufferSizeInFrames = stream.buffer->sizeInFrames/2; + unsigned char *subBuffer = stream.buffer->data + ((subBufferSizeInFrames*stream.channels*(stream.sampleSize/8))*subBufferToUpdate); + + // Total frames processed in buffer is always the complete size, filled with 0 if required + stream.buffer->framesProcessed += subBufferSizeInFrames; + + // Does this API expect a whole buffer to be updated in one go? + // Assuming so, but if not will need to change this logic + if (subBufferSizeInFrames >= (ma_uint32)frameCount) + { + ma_uint32 framesToWrite = (ma_uint32)frameCount; + + ma_uint32 bytesToWrite = framesToWrite*stream.channels*(stream.sampleSize/8); + memcpy(subBuffer, data, bytesToWrite); + + // Any leftover frames should be filled with zeros + ma_uint32 leftoverFrameCount = subBufferSizeInFrames - framesToWrite; + + if (leftoverFrameCount > 0) memset(subBuffer + bytesToWrite, 0, leftoverFrameCount*stream.channels*(stream.sampleSize/8)); + + stream.buffer->isSubBufferProcessed[subBufferToUpdate] = false; + } + else TRACELOG(LOG_WARNING, "STREAM: Attempting to write too many frames to buffer"); + } + else TRACELOG(LOG_WARNING, "STREAM: Buffer not available for updating"); + } +} + // Some required functions for audio standalone module version #if defined(RAUDIO_STANDALONE) // Check file extension From e85f245ad43283a46bab866d8612569c3246883b Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 20:31:06 +0200 Subject: [PATCH 294/790] REVIEWED: Remove final punctuation in code comments --- src/rcore.c | 41 ++++++++++++++++------------------------- src/rmodels.c | 22 +++++++++++----------- src/rtext.c | 4 ++-- src/rtextures.c | 8 ++++---- src/utils.c | 2 +- 5 files changed, 34 insertions(+), 43 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index b4aaed683..d2e4a35e7 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -296,7 +296,7 @@ typedef struct CoreData { char previousKeyState[MAX_KEYBOARD_KEYS]; // Registers previous frame key state // NOTE: Since key press logic involves comparing prev vs cur key state, we need to handle key repeats specially - char keyRepeatInFrame[MAX_KEYBOARD_KEYS]; // Registers key repeats for current frame. + char keyRepeatInFrame[MAX_KEYBOARD_KEYS]; // Registers key repeats for current frame int keyPressedQueue[MAX_KEY_PRESSED_QUEUE]; // Input keys queue int keyPressedQueueCount; // Input keys queue count @@ -806,7 +806,7 @@ bool IsCursorHidden(void) return CORE.Input.Mouse.cursorHidden; } -// Check if cursor is on the current screen. +// Check if cursor is on the current screen bool IsCursorOnScreen(void) { return CORE.Input.Mouse.cursorOnScreen; @@ -1213,9 +1213,9 @@ VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device) config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f)); // Compute camera transformation matrices - // NOTE: Camera movement might seem more natural if we model the head. + // NOTE: Camera movement might seem more natural if we model the head // Our axis of rotation is the base of our head, so we might want to add - // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions. + // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions config.viewOffset[0] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f); config.viewOffset[1] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f); @@ -1462,9 +1462,10 @@ Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height Vector3 nearPoint = Vector3Unproject((Vector3){ deviceCoords.x, deviceCoords.y, 0.0f }, matProj, matView); Vector3 farPoint = Vector3Unproject((Vector3){ deviceCoords.x, deviceCoords.y, 1.0f }, matProj, matView); - // Unproject the mouse cursor in the near plane. - // We need this as the source position because orthographic projects, compared to perspective doesn't have a - // convergence point, meaning that the "eye" of the camera is more like a plane than a point. + // Unproject the mouse cursor in the near plane + // We need this as the source position because orthographic projects, + // compared to perspective doesn't have a convergence point, + // meaning that the "eye" of the camera is more like a plane than a point Vector3 cameraPlanePointerPos = Vector3Unproject((Vector3){ deviceCoords.x, deviceCoords.y, -1.0f }, matProj, matView); // Calculate normalized direction vector @@ -1495,12 +1496,12 @@ Matrix GetCameraMatrix2D(Camera2D camera) // 1. Move it to target // 2. Rotate by -rotation and scale by (1/zoom) // When setting higher scale, it's more intuitive for the world to become bigger (= camera become smaller), - // not for the camera getting bigger, hence the invert. Same deal with rotation. + // not for the camera getting bigger, hence the invert. Same deal with rotation // 3. Move it by (-offset); // Offset defines target transform relative to screen, but since we're effectively "moving" screen (camera) // we need to do it into opposite direction (inverse transform) - // Having camera transform in world-space, inverse of it gives the modelview transform. + // Having camera transform in world-space, inverse of it gives the modelview transform // Since (A*B*C)' = C'*B'*A', the modelview is // 1. Move to offset // 2. Rotate and Scale @@ -1691,7 +1692,7 @@ void WaitTime(double seconds) req.tv_sec = sec; req.tv_nsec = nsec; - // NOTE: Use nanosleep() on Unix platforms... usleep() it's deprecated. + // NOTE: Use nanosleep() on Unix platforms... usleep() it's deprecated while (nanosleep(&req, &req) == -1) continue; #endif #if defined(__APPLE__) @@ -1826,7 +1827,7 @@ void TakeScreenshot(const char *fileName) // Setup window configuration flags (view FLAGS) // NOTE: This function is expected to be called before window creation, -// because it sets up some flags for the window creation process. +// because it sets up some flags for the window creation process // To configure window states after creation, just use SetWindowState() void SetConfigFlags(unsigned int flags) { @@ -3085,10 +3086,10 @@ int GetTouchPointCount(void) // Initialize hi-resolution timer void InitTimer(void) { - // Setting a higher resolution can improve the accuracy of time-out intervals in wait functions. - // However, it can also reduce overall system performance, because the thread scheduler switches tasks more often. - // High resolutions can also prevent the CPU power management system from entering power-saving modes. - // Setting a higher resolution does not improve the accuracy of the high-resolution performance counter. + // Setting a higher resolution can improve the accuracy of time-out intervals in wait functions + // However, it can also reduce overall system performance, because the thread scheduler switches tasks more often + // High resolutions can also prevent the CPU power management system from entering power-saving modes + // Setting a higher resolution does not improve the accuracy of the high-resolution performance counter #if defined(_WIN32) && defined(SUPPORT_WINMM_HIGHRES_TIMER) && !defined(SUPPORT_BUSY_WAIT_LOOP) && !defined(PLATFORM_DESKTOP_SDL) timeBeginPeriod(1); // Setup high-resolution timer to 1ms (granularity of 1-2 ms) #endif @@ -3572,16 +3573,6 @@ static void RecordAutomationEvent(void) } //------------------------------------------------------------------------------------- #endif - - // Window events recording - //------------------------------------------------------------------------------------- - // TODO. - //------------------------------------------------------------------------------------- - - // Custom actions events recording - //------------------------------------------------------------------------------------- - // TODO. - //------------------------------------------------------------------------------------- } #endif diff --git a/src/rmodels.c b/src/rmodels.c index 4bbceaf27..804b230f3 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1593,7 +1593,7 @@ void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, i // Enable mesh VAO to attach new buffer rlEnableVertexArray(mesh.vaoId); - // This could alternatively use a static VBO and either glMapBuffer() or glBufferSubData(). + // This could alternatively use a static VBO and either glMapBuffer() or glBufferSubData() // It isn't clear which would be reliably faster in all cases and on all platforms, // anecdotally glMapBuffer() seems very slow (syncs) while glBufferSubData() seems // no faster, since we're transferring all the transform matrices anyway @@ -2695,7 +2695,7 @@ Mesh GenMeshCylinder(float radius, float height, int slices) { // Instance a cylinder that sits on the Z=0 plane using the given tessellation // levels across the UV domain. Think of "slices" like a number of pizza - // slices, and "stacks" like a number of stacked rings. + // slices, and "stacks" like a number of stacked rings // Height and radius are both 1.0, but they can easily be changed with par_shapes_scale par_shapes_mesh *cylinder = par_shapes_create_cylinder(slices, 8); par_shapes_scale(cylinder, radius, radius, height); @@ -2759,7 +2759,7 @@ Mesh GenMeshCone(float radius, float height, int slices) { // Instance a cone that sits on the Z=0 plane using the given tessellation // levels across the UV domain. Think of "slices" like a number of pizza - // slices, and "stacks" like a number of stacked rings. + // slices, and "stacks" like a number of stacked rings // Height and radius are both 1.0, but they can easily be changed with par_shapes_scale par_shapes_mesh *cone = par_shapes_create_cone(slices, 8); par_shapes_scale(cone, radius, radius, height); @@ -3813,7 +3813,7 @@ RayCollision GetRayCollisionBox(Ray ray, BoundingBox box) RayCollision collision = { 0 }; // Note: If ray.position is inside the box, the distance is negative (as if the ray was reversed) - // Reversing ray.direction will give use the correct result. + // Reversing ray.direction will give use the correct result bool insideBox = (ray.position.x > box.min.x) && (ray.position.x < box.max.x) && (ray.position.y > box.min.y) && (ray.position.y < box.max.y) && (ray.position.z > box.min.z) && (ray.position.z < box.max.z); @@ -5068,7 +5068,7 @@ static Model LoadGLTF(const char *fileName) { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - // WARNING: SPECS: POSITION accessor MUST have its min and max properties defined. + // WARNING: SPECS: POSITION accessor MUST have its min and max properties defined if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec3)) { @@ -5129,7 +5129,7 @@ static Model LoadGLTF(const char *fileName) { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - // WARNING: SPECS: All components of each COLOR_n accessor element MUST be clamped to [0.0, 1.0] range. + // WARNING: SPECS: All components of each COLOR_n accessor element MUST be clamped to [0.0, 1.0] range if ((attribute->component_type == cgltf_component_type_r_8u) && (attribute->type == cgltf_type_vec4)) { @@ -5369,7 +5369,7 @@ static Model LoadGLTF(const char *fileName) return model; } -// Get interpolated pose for bone sampler at a specific time. Returns true on success. +// Get interpolated pose for bone sampler at a specific time. Returns true on success static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_accessor *input, cgltf_accessor *output, float time, void *data) { if (interpolationType >= cgltf_interpolation_type_max_enum) return false; @@ -5833,7 +5833,7 @@ static Model LoadM3D(const char *fileName) // We always need a default material, so we add +1 model.materialCount++; - // Faces must be in non-decreasing materialid order. Verify that quickly, sorting them otherwise. + // Faces must be in non-decreasing materialid order. Verify that quickly, sorting them otherwise // WARNING: Sorting is not needed, valid M3D model files should already be sorted // Just keeping the sorting function for reference (Check PR #3363 #3385) /* @@ -5841,12 +5841,12 @@ static Model LoadM3D(const char *fileName) { if (m3d->face[i-1].materialid <= m3d->face[i].materialid) continue; - // face[i-1] > face[i]. slide face[i] lower. + // face[i-1] > face[i]. slide face[i] lower m3df_t slider = m3d->face[i]; j = i-1; do - { // face[j] > slider, face[j+1] is svailable vacant gap. + { // face[j] > slider, face[j+1] is svailable vacant gap m3d->face[j+1] = m3d->face[j]; j = j-1; } @@ -6107,7 +6107,7 @@ static Model LoadM3D(const char *fileName) } // Load bone-pose default mesh into animation vertices. These will be updated when UpdateModelAnimation gets - // called, but not before, however DrawMesh uses these if they exist (so not good if they are left empty). + // called, but not before, however DrawMesh uses these if they exist (so not good if they are left empty) if (m3d->numbone && m3d->numskin) { for (i = 0; i < model.meshCount; i++) diff --git a/src/rtext.c b/src/rtext.c index 2ff6fd92b..47f3e062a 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -119,7 +119,7 @@ //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- -// ... +//... //---------------------------------------------------------------------------------- // Global variables @@ -1077,7 +1077,7 @@ bool ExportFontAsCode(Font font, const char *fileName) #endif // We have two possible mechanisms to assign font.recs and font.glyphs data, // that data is already available as global arrays, we two options to assign that data: - // - 1. Data copy. This option consumes more memory and Font MUST be unloaded by user, requiring additional code. + // - 1. Data copy. This option consumes more memory and Font MUST be unloaded by user, requiring additional code // - 2. Data assignment. This option consumes less memory and Font MUST NOT be unloaded by user because data is on protected DATA segment //#define SUPPORT_FONT_DATA_COPY #if defined(SUPPORT_FONT_DATA_COPY) diff --git a/src/rtextures.c b/src/rtextures.c index d47df7628..35757ba18 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -920,8 +920,8 @@ Image GenImageColor(int width, int height, Color color) #if defined(SUPPORT_IMAGE_GENERATION) // Generate image: linear gradient // The direction value specifies the direction of the gradient (in degrees) -// with 0 being vertical (from top to bottom), 90 being horizontal (from left to right). -// The gradient effectively rotates counter-clockwise by the specified amount. +// with 0 being vertical (from top to bottom), 90 being horizontal (from left to right) +// The gradient effectively rotates counter-clockwise by the specified amount Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end) { Color *pixels = (Color *)RL_MALLOC(width*height*sizeof(Color)); @@ -2152,7 +2152,7 @@ void ImageBlurGaussian(Image *image, int blurSize) ImageFormat(image, format); } -// The kernel matrix is assumed to be square. Only supply the width of the kernel. +// The kernel matrix is assumed to be square. Only supply the width of the kernel void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) { if ((image->data == NULL) || (image->width == 0) || (image->height == 0) || kernel == NULL) return; @@ -4243,7 +4243,7 @@ void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 // NOTE: Vertex position can be transformed using matrices // but the process is way more costly than just calculating - // the vertex positions manually, like done above. + // the vertex positions manually, like done above // I leave here the old implementation for educational purposes, // just in case someone wants to do some performance test /* diff --git a/src/utils.c b/src/utils.c index 895f77775..fcbdba005 100644 --- a/src/utils.c +++ b/src/utils.c @@ -41,7 +41,7 @@ #if defined(PLATFORM_ANDROID) #include // Required for: Android error types #include // Required for: Android log system: __android_log_vprint() - #include // Required for: Android assets manager: AAsset, AAssetManager_open(), ... + #include // Required for: Android assets manager: AAsset, AAssetManager_open()... #endif #include // Required for: exit() From 77cabc8bf21393073b37ae062c0885b541fcd2d1 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 20:32:37 +0200 Subject: [PATCH 295/790] Update shapes_draw_rectangle_rounded.c --- examples/shapes/shapes_draw_rectangle_rounded.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/shapes/shapes_draw_rectangle_rounded.c b/examples/shapes/shapes_draw_rectangle_rounded.c index 2add780a7..19280ed00 100644 --- a/examples/shapes/shapes_draw_rectangle_rounded.c +++ b/examples/shapes/shapes_draw_rectangle_rounded.c @@ -62,7 +62,7 @@ int main(void) if (drawRect) DrawRectangleRec(rec, Fade(GOLD, 0.6f)); if (drawRoundedRect) DrawRectangleRounded(rec, roundness, (int)segments, Fade(MAROON, 0.2f)); - if (drawRoundedLines) DrawRectangleRoundedLines(rec, roundness, (int)segments, lineThick, Fade(MAROON, 0.4f)); + if (drawRoundedLines) DrawRectangleRoundedLinesEx(rec, roundness, (int)segments, lineThick, Fade(MAROON, 0.4f)); // Draw GUI controls //------------------------------------------------------------------------------ From f6d85e5df70f13b1070d95d19b119c8686b770ae Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 21:21:31 +0200 Subject: [PATCH 296/790] Update project --- .../examples/core_random_values.vcxproj | 2 +- projects/VS2022/raylib.sln | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/projects/VS2022/examples/core_random_values.vcxproj b/projects/VS2022/examples/core_random_values.vcxproj index bb6a4911c..356248e42 100644 --- a/projects/VS2022/examples/core_random_values.vcxproj +++ b/projects/VS2022/examples/core_random_values.vcxproj @@ -35,7 +35,7 @@ - {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A} + {B332DCA8-3599-4A99-917A-82261BDC27AC} Win32Proj core_random_values 10.0 diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index c9f50f6b6..294d0e84d 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -55,7 +55,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_loading_thread", "exam EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_sequence", "examples\core_random_sequence.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{B332DCA8-3599-4A99-917A-82261BDC27AC}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_scissor_test", "examples\core_scissor_test.vcxproj", "{59089B0C-AAB4-4532-B294-44DEAE7178B7}" EndProject @@ -709,6 +709,22 @@ Global {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Release|x64.Build.0 = Release|x64 {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Release|x86.ActiveCfg = Release|Win32 {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}.Release|x86.Build.0 = Release|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug|x64.ActiveCfg = Debug|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug|x64.Build.0 = Debug|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug|x86.ActiveCfg = Debug|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Debug|x86.Build.0 = Debug|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release.DLL|x64.Build.0 = Release.DLL|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release.DLL|x86.Build.0 = Release.DLL|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release|x64.ActiveCfg = Release|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release|x64.Build.0 = Release|x64 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release|x86.ActiveCfg = Release|Win32 + {B332DCA8-3599-4A99-917A-82261BDC27AC}.Release|x86.Build.0 = Release|Win32 {59089B0C-AAB4-4532-B294-44DEAE7178B7}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 {59089B0C-AAB4-4532-B294-44DEAE7178B7}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 {59089B0C-AAB4-4532-B294-44DEAE7178B7}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 @@ -2544,6 +2560,7 @@ Global {A643BB06-735D-47F3-BFE7-B6D3C36F7097} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {F026020F-7B00-40C8-91C3-5DE85EC45A95} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} + {B332DCA8-3599-4A99-917A-82261BDC27AC} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {59089B0C-AAB4-4532-B294-44DEAE7178B7} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {C298876B-6C12-4EA4-903B-33450BCD9884} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} {83F586FA-C801-4979-ACCA-006BD628CC88} = {6C82BAAE-BDDF-457D-8FA8-7E2490B07035} From 6435ef43f5df40cc96139cd64593d16895d75de6 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 21:22:49 +0200 Subject: [PATCH 297/790] REVIEWED: `LoadGLTF()`, JOINTS loading #3836 Support all JOINT formats supported by glTF specs --- src/rmodels.c | 64 ++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 804b230f3..6266de605 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5277,51 +5277,43 @@ static Model LoadGLTF(const char *fileName) { // NOTE: JOINTS_1 + WEIGHT_1 will be used for +4 joints influencing a vertex -> Not supported by raylib - if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_joints) // JOINTS_n (vec4: 4 bones max per vertex / u8, u16) + if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_joints) // JOINTS_n (vec4: 4 bones max per vertex / u8, u16) { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->component_type == cgltf_component_type_r_8u) && (attribute->type == cgltf_type_vec4)) + // NOTE: JOINTS_n can only be vec4 and u8/u16 + // SPECS: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#meshes-overview + + // WARNING: raylib only supports model.meshes[].boneIds as u8 (unsigned char), + // if data is provided in any other format, it is converted to supported format but + // it could imply data loss (a warning message is issued in that case) + + if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_8u)) { - // Handle 8-bit unsigned byte, vec4 format + // Load attribute: vec4, u8 (unsigned char) model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].boneIds) } - else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec2)) + else if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_16u)) { - // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Load attribute: vec4, u16 (unsigned short) + unsigned short *boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 4, unsigned short, boneIds); - // Handle 16-bit unsigned short, vec2 format - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(unsigned short)); - unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; - LOAD_ATTRIBUTE(attribute, 2, unsigned short, ptr) - } - else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec4)) - { - // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! + // Convert and update boneIds to required data format + bool boneIdOverflowWarning = false; + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); + for (int b = 0; b < model.meshes[meshIndex].vertexCount*4; b++) + { + if ((boneIds[b] > 255) && !boneIdOverflowWarning) + { + TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format (u16) overflow", fileName); + boneIdOverflowWarning = true; + } - // Handle 16-bit unsigned short, vec4 format - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); - unsigned short *ptr = (unsigned short *)model.meshes[meshIndex].boneIds; - LOAD_ATTRIBUTE(attribute, 4, unsigned short, ptr) - } - else if ((attribute->component_type == cgltf_component_type_r_32u) && (attribute->type == cgltf_type_vec4)) - { - // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - - // Handle 32-bit unsigned int, vec4 format - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned int)); - unsigned int *ptr = (unsigned int *)model.meshes[meshIndex].boneIds; - LOAD_ATTRIBUTE(attribute, 4, unsigned int, ptr) - } - else if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec2)) - { - // TODO: WARNING: model.meshes[].boneIds is an (unsigned char *) --> Conversion required! - - // Handle 32-bit float, vec2 format - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*2, sizeof(float)); - float *ptr = (float *)model.meshes[meshIndex].boneIds; - LOAD_ATTRIBUTE(attribute, 2, float, ptr) + // Despite the possible overflow, we convert data to unsigned char + model.meshes[meshIndex].boneIds[b] = (unsigned char)boneIds[b]; + } } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } @@ -5329,7 +5321,7 @@ static Model LoadGLTF(const char *fileName) { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec4)) + if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_32f)) { // Init raylib mesh bone weight to copy glTF attribute data model.meshes[meshIndex].boneWeights = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(float)); From e543b78bb78266e95c88b17e94a9ede55cc7be6a Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 22:01:59 +0200 Subject: [PATCH 298/790] REVIEWED: `LoadGLTF()`, support additional vertex attributes data formats #3890 --- src/rmodels.c | 279 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 212 insertions(+), 67 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 6266de605..207fb1afe 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5064,13 +5064,13 @@ static Model LoadGLTF(const char *fileName) for (unsigned int j = 0; j < data->meshes[i].primitives[p].attributes_count; j++) { // Check the different attributes for every primitive - if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_position) // POSITION + if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_position) // POSITION, vec3, float { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; // WARNING: SPECS: POSITION accessor MUST have its min and max properties defined - if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec3)) + if ((attribute->type == cgltf_type_vec3) && (attribute->component_type == cgltf_component_type_r_32f)) { // Init raylib mesh vertices to copy glTF attribute data model.meshes[meshIndex].vertexCount = (int)attribute->count; @@ -5081,11 +5081,11 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Vertices attribute data format not supported, use vec3 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_normal) // NORMAL + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_normal) // NORMAL, vec3, float { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec3)) + if ((attribute->type == cgltf_type_vec3) && (attribute->component_type == cgltf_component_type_r_32f)) { // Init raylib mesh normals to copy glTF attribute data model.meshes[meshIndex].normals = RL_MALLOC(attribute->count*3*sizeof(float)); @@ -5095,11 +5095,11 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Normal attribute data format not supported, use vec3 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_tangent) // TANGENT + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_tangent) // TANGENT, vec3, float { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec4)) + if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_32f)) { // Init raylib mesh tangent to copy glTF attribute data model.meshes[meshIndex].tangents = RL_MALLOC(attribute->count*4*sizeof(float)); @@ -5109,65 +5109,167 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Tangent attribute data format not supported, use vec4 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_0 + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_0, vec2, float/u8n/u16n { // TODO: Support additional texture coordinates: TEXCOORD_1 -> mesh.texcoords2 cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec2)) + if (attribute->type == cgltf_type_vec2) { - // Init raylib mesh texcoords to copy glTF attribute data - model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + if (attribute->component_type == cgltf_component_type_r_32f) // vec2, float + { + // Init raylib mesh texcoords to copy glTF attribute data + model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); - // Load 3 components of float data type into mesh.texcoords - LOAD_ATTRIBUTE(attribute, 2, float, model.meshes[meshIndex].texcoords) + // Load 3 components of float data type into mesh.texcoords + LOAD_ATTRIBUTE(attribute, 2, float, model.meshes[meshIndex].texcoords) + } + else if (attribute->component_type == cgltf_component_type_r_8u) // vec2, u8n + { + // Init raylib mesh texcoords to copy glTF attribute data + model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned char)); + LOAD_ATTRIBUTE(attribute, 2, unsigned char, temp); + + // Convert data to raylib texcoord data type (float) + for (unsigned int t = 0; t < attribute->count*2; t++) model.meshes[meshIndex].texcoords[t] = (float)temp[t]/255.0f; + + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_16u) // vec2, u16n + { + // Init raylib mesh texcoords to copy glTF attribute data + model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 2, unsigned short, temp); + + // Convert data to raylib texcoord data type (float) + for (unsigned int t = 0; t < attribute->count*2; t++) model.meshes[meshIndex].texcoords[t] = (float)temp[t]/65535.0f; + + RL_FREE(temp); + } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_0 + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_0, vec3/vec4, float/u8n/u16n { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; // WARNING: SPECS: All components of each COLOR_n accessor element MUST be clamped to [0.0, 1.0] range - if ((attribute->component_type == cgltf_component_type_r_8u) && (attribute->type == cgltf_type_vec4)) + if (attribute->type == cgltf_type_vec3) // RGB { - // Init raylib mesh color to copy glTF attribute data - model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + if (attribute->component_type == cgltf_component_type_r_8u) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); - // Load 4 components of unsigned char data type into mesh.colors - LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].colors) + // Load data into a temp buffer to be converted to raylib data type + unsigned char *temp = RL_MALLOC(attribute->count*3*sizeof(unsigned char)); + LOAD_ATTRIBUTE(attribute, 3, unsigned char, temp); + + // Convert data to raylib color data type (4 bytes) + for (unsigned int c = 0, k = 0; c < (attribute->count*4 - 3); c += 4, k += 3) + { + model.meshes[meshIndex].colors[c] = temp[k]; + model.meshes[meshIndex].colors[c + 1] = temp[k + 1]; + model.meshes[meshIndex].colors[c + 2] = temp[k + 2]; + model.meshes[meshIndex].colors[c + 3] = 255; + } + + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_16u) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_MALLOC(attribute->count*3*sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 3, unsigned short, temp); + + // Convert data to raylib color data type (4 bytes) + for (unsigned int c = 0, k = 0; c < (attribute->count*4 - 3); c += 4, k += 3) + { + model.meshes[meshIndex].colors[c] = (unsigned char)(((float)temp[k]/65535.0f)*255.0f); + model.meshes[meshIndex].colors[c + 1] = (unsigned char)(((float)temp[k + 1]/65535.0f)*255.0f); + model.meshes[meshIndex].colors[c + 2] = (unsigned char)(((float)temp[k + 2]/65535.0f)*255.0f); + model.meshes[meshIndex].colors[c + 3] = 255; + } + + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_32f) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + + // Load data into a temp buffer to be converted to raylib data type + float *temp = RL_MALLOC(attribute->count*3*sizeof(float)); + LOAD_ATTRIBUTE(attribute, 3, float, temp); + + // Convert data to raylib color data type (4 bytes) + for (unsigned int c = 0, k = 0; c < (attribute->count*4 - 3); c += 4, k += 3) + { + model.meshes[meshIndex].colors[c] = (unsigned char)(temp[k]*255.0f); + model.meshes[meshIndex].colors[c + 1] = (unsigned char)(temp[k + 1]*255.0f); + model.meshes[meshIndex].colors[c + 2] = (unsigned char)(temp[k + 2]*255.0f); + model.meshes[meshIndex].colors[c + 3] = 255; + } + + RL_FREE(temp); + } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Color attribute data format not supported", fileName); } - else if ((attribute->component_type == cgltf_component_type_r_16u) && (attribute->type == cgltf_type_vec4)) + else if (attribute->type == cgltf_type_vec4) // RGBA { - // Init raylib mesh color to copy glTF attribute data - model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + if (attribute->component_type == cgltf_component_type_r_8u) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); - // Load data into a temp buffer to be converted to raylib data type - unsigned short *temp = RL_MALLOC(attribute->count*4*sizeof(unsigned short)); - LOAD_ATTRIBUTE(attribute, 4, unsigned short, temp); + // Load 4 components of unsigned char data type into mesh.colors + LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].colors) + } + else if (attribute->component_type == cgltf_component_type_r_16u) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); - // Convert data to raylib color data type (4 bytes) - for (unsigned int c = 0; c < attribute->count*4; c++) model.meshes[meshIndex].colors[c] = (unsigned char)(((float)temp[c]/65535.0f)*255.0f); + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_MALLOC(attribute->count*4*sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 4, unsigned short, temp); - RL_FREE(temp); - } - else if ((attribute->component_type == cgltf_component_type_r_32f) && (attribute->type == cgltf_type_vec4)) - { - // Init raylib mesh color to copy glTF attribute data - model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + // Convert data to raylib color data type (4 bytes) + for (unsigned int c = 0; c < attribute->count*4; c++) model.meshes[meshIndex].colors[c] = (unsigned char)(((float)temp[c]/65535.0f)*255.0f); - // Load data into a temp buffer to be converted to raylib data type - float *temp = RL_MALLOC(attribute->count*4*sizeof(float)); - LOAD_ATTRIBUTE(attribute, 4, float, temp); + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_32f) + { + // Init raylib mesh color to copy glTF attribute data + model.meshes[meshIndex].colors = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); - // Convert data to raylib color data type (4 bytes), we expect the color data normalized - for (unsigned int c = 0; c < attribute->count*4; c++) model.meshes[meshIndex].colors[c] = (unsigned char)(temp[c]*255.0f); + // Load data into a temp buffer to be converted to raylib data type + float *temp = RL_MALLOC(attribute->count*4*sizeof(float)); + LOAD_ATTRIBUTE(attribute, 4, float, temp); - RL_FREE(temp); + // Convert data to raylib color data type (4 bytes), we expect the color data normalized + for (unsigned int c = 0; c < attribute->count*4; c++) model.meshes[meshIndex].colors[c] = (unsigned char)(temp[c]*255.0f); + + RL_FREE(temp); + } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Color attribute data format not supported", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Color attribute data format not supported", fileName); + + } // NOTE: Attributes related to animations are processed separately @@ -5288,49 +5390,92 @@ static Model LoadGLTF(const char *fileName) // if data is provided in any other format, it is converted to supported format but // it could imply data loss (a warning message is issued in that case) - if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_8u)) + if (attribute->type == cgltf_type_vec4) { - // Load attribute: vec4, u8 (unsigned char) - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); - LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].boneIds) - } - else if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_16u)) - { - // Load attribute: vec4, u16 (unsigned short) - unsigned short *boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); - LOAD_ATTRIBUTE(attribute, 4, unsigned short, boneIds); - - // Convert and update boneIds to required data format - bool boneIdOverflowWarning = false; - model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); - for (int b = 0; b < model.meshes[meshIndex].vertexCount*4; b++) + if (attribute->component_type == cgltf_component_type_r_8u) { - if ((boneIds[b] > 255) && !boneIdOverflowWarning) + // Init raylib mesh boneIds to copy glTF attribute data + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); + + // Load attribute: vec4, u8 (unsigned char) + LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].boneIds) + } + else if (attribute->component_type == cgltf_component_type_r_16u) + { + // Init raylib mesh boneIds to copy glTF attribute data + model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); + + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 4, unsigned short, temp); + + // Convert data to raylib color data type (4 bytes) + bool boneIdOverflowWarning = false; + for (int b = 0; b < model.meshes[meshIndex].vertexCount*4; b++) { - TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format (u16) overflow", fileName); - boneIdOverflowWarning = true; + if ((temp[b] > 255) && !boneIdOverflowWarning) + { + TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format (u16) overflow", fileName); + boneIdOverflowWarning = true; + } + + // Despite the possible overflow, we convert data to unsigned char + model.meshes[meshIndex].boneIds[b] = (unsigned char)temp[b]; } - // Despite the possible overflow, we convert data to unsigned char - model.meshes[meshIndex].boneIds[b] = (unsigned char)boneIds[b]; + RL_FREE(temp); } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_weights) // WEIGHTS_n (vec4 / u8, u16, f32) + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_weights) // WEIGHTS_n (vec4, u8n/u16n/f32) { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; - if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_32f)) + if (attribute->type == cgltf_type_vec4) { - // Init raylib mesh bone weight to copy glTF attribute data - model.meshes[meshIndex].boneWeights = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(float)); + // TODO: Support component types: u8, u16? + if (attribute->component_type == cgltf_component_type_r_8u) + { + // Init raylib mesh bone weight to copy glTF attribute data + model.meshes[meshIndex].boneWeights = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(float)); - // Load 4 components of float data type into mesh.boneWeights - // for cgltf_attribute_type_weights we have: - // - data.meshes[0] (256 vertices) - // - 256 values, provided as cgltf_type_vec4 of float (4 byte per joint, stride 16) - LOAD_ATTRIBUTE(attribute, 4, float, model.meshes[meshIndex].boneWeights) + // Load data into a temp buffer to be converted to raylib data type + unsigned char *temp = RL_MALLOC(attribute->count*4*sizeof(unsigned char)); + LOAD_ATTRIBUTE(attribute, 4, unsigned char, temp); + + // Convert data to raylib bone weight data type (4 bytes) + for (unsigned int b = 0; b < attribute->count*4; b++) model.meshes[meshIndex].boneWeights[b] = (float)temp[b]/255.0f; + + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_16u) + { + // Init raylib mesh bone weight to copy glTF attribute data + model.meshes[meshIndex].boneWeights = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(float)); + + // Load data into a temp buffer to be converted to raylib data type + unsigned short *temp = RL_MALLOC(attribute->count*4*sizeof(unsigned short)); + LOAD_ATTRIBUTE(attribute, 4, unsigned short, temp); + + // Convert data to raylib bone weight data type + for (unsigned int b = 0; b < attribute->count*4; b++) model.meshes[meshIndex].boneWeights[b] = (float)temp[b]/65535.0f; + + RL_FREE(temp); + } + else if (attribute->component_type == cgltf_component_type_r_32f) + { + // Init raylib mesh bone weight to copy glTF attribute data + model.meshes[meshIndex].boneWeights = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(float)); + + // Load 4 components of float data type into mesh.boneWeights + // for cgltf_attribute_type_weights we have: + // - data.meshes[0] (256 vertices) + // - 256 values, provided as cgltf_type_vec4 of float (4 byte per joint, stride 16) + LOAD_ATTRIBUTE(attribute, 4, float, model.meshes[meshIndex].boneWeights) + } + else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint weight attribute data format not supported, use vec4 float", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint weight attribute data format not supported, use vec4 float", fileName); } From 5cfcf13d4bc4723055f1d6b329148abb92b6b383 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 23:23:30 +0200 Subject: [PATCH 299/790] REVIEWED: `LoadGLTF()`, support 2nd texture coordinates loading --- src/rmodels.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 207fb1afe..cfe7f84c7 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5109,9 +5109,18 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Tangent attribute data format not supported, use vec4 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_0, vec2, float/u8n/u16n + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_n, vec2, float/u8n/u16n { - // TODO: Support additional texture coordinates: TEXCOORD_1 -> mesh.texcoords2 + // Support up to 2 texture coordinates attributes + float *texcoordPtr = NULL; + int index = data->meshes[i].primitives[p].attributes[j].index; + if (index == 0) texcoordPtr = model.meshes[meshIndex].texcoords; + else if (index == 1) texcoordPtr = model.meshes[meshIndex].texcoords2; + else + { + TRACELOG(LOG_WARNING, "MODEL: [%s] No more than 2 texture coordinates attributes supported", fileName); + continue; + } cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; @@ -5120,44 +5129,44 @@ static Model LoadGLTF(const char *fileName) if (attribute->component_type == cgltf_component_type_r_32f) // vec2, float { // Init raylib mesh texcoords to copy glTF attribute data - model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); // Load 3 components of float data type into mesh.texcoords - LOAD_ATTRIBUTE(attribute, 2, float, model.meshes[meshIndex].texcoords) + LOAD_ATTRIBUTE(attribute, 2, float, texcoordPtr) } else if (attribute->component_type == cgltf_component_type_r_8u) // vec2, u8n { // Init raylib mesh texcoords to copy glTF attribute data - model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); // Load data into a temp buffer to be converted to raylib data type unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned char)); LOAD_ATTRIBUTE(attribute, 2, unsigned char, temp); // Convert data to raylib texcoord data type (float) - for (unsigned int t = 0; t < attribute->count*2; t++) model.meshes[meshIndex].texcoords[t] = (float)temp[t]/255.0f; + for (unsigned int t = 0; t < attribute->count*2; t++) texcoordPtr[t] = (float)temp[t]/255.0f; RL_FREE(temp); } else if (attribute->component_type == cgltf_component_type_r_16u) // vec2, u16n { // Init raylib mesh texcoords to copy glTF attribute data - model.meshes[meshIndex].texcoords = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); // Load data into a temp buffer to be converted to raylib data type unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned short)); LOAD_ATTRIBUTE(attribute, 2, unsigned short, temp); // Convert data to raylib texcoord data type (float) - for (unsigned int t = 0; t < attribute->count*2; t++) model.meshes[meshIndex].texcoords[t] = (float)temp[t]/65535.0f; + for (unsigned int t = 0; t < attribute->count*2; t++) texcoordPtr[t] = (float)temp[t]/65535.0f; RL_FREE(temp); } - else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); + else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_0, vec3/vec4, float/u8n/u16n + else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_n, vec3/vec4, float/u8n/u16n { cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; From f795941521d038840461e96779aaa097e8a2407a Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 23:37:31 +0200 Subject: [PATCH 300/790] REVIEWED: `rlSetVertexAttribute()`, define last parameter as offset #3800 --- src/rlgl.h | 6 +++--- src/rmodels.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index c5c51319a..a645aa038 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -696,7 +696,7 @@ RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dat RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) @@ -3824,14 +3824,14 @@ unsigned int rlLoadVertexArray(void) } // Set vertex attribute -void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer) +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT // Additional types (depends on OpenGL version or extensions): // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV - glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offset); #endif } diff --git a/src/rmodels.c b/src/rmodels.c index cfe7f84c7..e669a2f0c 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1603,7 +1603,7 @@ void DrawMeshInstanced(Mesh mesh, Material material, const Matrix *transforms, i for (unsigned int i = 0; i < 4; i++) { rlEnableVertexAttribute(material.shader.locs[SHADER_LOC_MATRIX_MODEL] + i); - rlSetVertexAttribute(material.shader.locs[SHADER_LOC_MATRIX_MODEL] + i, 4, RL_FLOAT, 0, sizeof(Matrix), (void *)(i*sizeof(Vector4))); + rlSetVertexAttribute(material.shader.locs[SHADER_LOC_MATRIX_MODEL] + i, 4, RL_FLOAT, 0, sizeof(Matrix), i*sizeof(Vector4)); rlSetVertexAttributeDivisor(material.shader.locs[SHADER_LOC_MATRIX_MODEL] + i, 1); } From 8f24d86c1f1ca282672ba467c17abf74415c4500 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 23:44:07 +0200 Subject: [PATCH 301/790] REVIEWED: `LoadImageRaw()` #3926 --- src/rtextures.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index 35757ba18..0899accda 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -316,7 +316,8 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int unsigned char *dataPtr = fileData; unsigned int size = GetPixelDataSize(width, height, format); - if (headerSize > 0) dataPtr += headerSize; + // Offset file data to expected raw image by header size + if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize; image.data = RL_MALLOC(size); // Allocate required memory in bytes memcpy(image.data, dataPtr, size); // Copy required data to image From cf47fbb20bbaacb986fcfe05f0c0e6c6d89c5690 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 20 Apr 2024 23:58:22 +0200 Subject: [PATCH 302/790] REVIEWED: `LoadImageRaw()` #3926 --- src/rtextures.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 0899accda..90c0de21c 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -316,15 +316,18 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int unsigned char *dataPtr = fileData; unsigned int size = GetPixelDataSize(width, height, format); - // Offset file data to expected raw image by header size - if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize; + if (size <= dataSize) // Security check + { + // Offset file data to expected raw image by header size + if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize; - image.data = RL_MALLOC(size); // Allocate required memory in bytes - memcpy(image.data, dataPtr, size); // Copy required data to image - image.width = width; - image.height = height; - image.mipmaps = 1; - image.format = format; + image.data = RL_MALLOC(size); // Allocate required memory in bytes + memcpy(image.data, dataPtr, size); // Copy required data to image + image.width = width; + image.height = height; + image.mipmaps = 1; + image.format = format; + } UnloadFileData(fileData); } From 3caa424ad4656b8c8ef8885a234a1a60ade80159 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 21 Apr 2024 12:29:09 +0200 Subject: [PATCH 303/790] Review formatting --- examples/models/models_cubicmap.c | 8 +-- src/platforms/rcore_desktop.c | 4 +- src/raudio.c | 14 ++-- src/rcore.c | 20 +++--- src/rmodels.c | 112 +++++++++++++++--------------- src/rshapes.c | 6 +- src/rtextures.c | 78 ++++++++++----------- 7 files changed, 122 insertions(+), 120 deletions(-) diff --git a/examples/models/models_cubicmap.c b/examples/models/models_cubicmap.c index 8e1c1fa1a..2c6267ede 100644 --- a/examples/models/models_cubicmap.c +++ b/examples/models/models_cubicmap.c @@ -46,7 +46,7 @@ int main(void) Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position UnloadImage(image); // Unload cubesmap image from RAM, already uploaded to VRAM - + bool pause = false; // Pause camera orbital rotation (and zoom) SetTargetFPS(60); // Set our game to run at 60 frames-per-second @@ -58,7 +58,7 @@ int main(void) // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_P)) pause = !pause; - + if (!pause) UpdateCamera(&camera, CAMERA_ORBITAL); //---------------------------------------------------------------------------------- @@ -76,10 +76,10 @@ int main(void) DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4.0f - 20, 20.0f }, 0.0f, 4.0f, WHITE); DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); - + DrawText("cubicmap image used to", 658, 90, 10, GRAY); DrawText("generate map 3d model", 658, 104, 10, GRAY); - + DrawFPS(10, 10); EndDrawing(); diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 211a6cbb3..de289ca0a 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1377,7 +1377,7 @@ int InitPlatform(void) if (CORE.Window.fullscreen) { - // remember center for switchinging from fullscreen to window + // Remember center for switchinging from fullscreen to window if ((CORE.Window.screen.height == CORE.Window.display.height) && (CORE.Window.screen.width == CORE.Window.display.width)) { // If screen width/height equal to the display, we can't calculate the window pos for toggling full-screened/windowed. @@ -1515,7 +1515,7 @@ int InitPlatform(void) // If graphic device is no properly initialized, we end program if (!CORE.Window.ready) { TRACELOG(LOG_FATAL, "PLATFORM: Failed to initialize graphic device"); return -1; } - else + else { // Try to center window on screen but avoiding window-bar outside of screen int monitorX = 0; diff --git a/src/raudio.c b/src/raudio.c index b3874dbe1..032cfadeb 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -512,7 +512,7 @@ void InitAudioDevice(void) } TRACELOG(LOG_INFO, "AUDIO: Device initialized successfully"); - TRACELOG(LOG_INFO, " > Backend: miniaudio / %s", ma_get_backend_name(AUDIO.System.context.backend)); + TRACELOG(LOG_INFO, " > Backend: miniaudio | %s", ma_get_backend_name(AUDIO.System.context.backend)); TRACELOG(LOG_INFO, " > Format: %s -> %s", ma_get_format_name(AUDIO.System.device.playback.format), ma_get_format_name(AUDIO.System.device.playback.internalFormat)); TRACELOG(LOG_INFO, " > Channels: %d -> %d", AUDIO.System.device.playback.channels, AUDIO.System.device.playback.internalChannels); TRACELOG(LOG_INFO, " > Sample rate: %d -> %d", AUDIO.System.device.sampleRate, AUDIO.System.device.playback.internalSampleRate); @@ -896,13 +896,13 @@ Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int bool IsWaveReady(Wave wave) { bool result = false; - + if ((wave.data != NULL) && // Validate wave data available (wave.frameCount > 0) && // Validate frame count (wave.sampleRate > 0) && // Validate sample rate is supported (wave.sampleSize > 0) && // Validate sample size is supported (wave.channels > 0)) result = true; // Validate number of channels supported - + return result; } @@ -997,13 +997,13 @@ Sound LoadSoundAlias(Sound source) bool IsSoundReady(Sound sound) { bool result = false; - + if ((sound.frameCount > 0) && // Validate frame count (sound.stream.buffer != NULL) && // Validate stream buffer (sound.stream.sampleRate > 0) && // Validate sample rate is supported (sound.stream.sampleSize > 0) && // Validate sample size is supported (sound.stream.channels > 0)) result = true; // Validate number of channels supported - + return result; } @@ -1196,9 +1196,9 @@ void StopSound(Sound sound) bool IsSoundPlaying(Sound sound) { bool result = false; - + if (IsAudioBufferPlaying(sound.stream.buffer)) result = true; - + return result; } diff --git a/src/rcore.c b/src/rcore.c index d2e4a35e7..a68067fe8 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1420,7 +1420,7 @@ void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) Ray GetScreenToWorldRay(Vector2 position, Camera camera) { Ray ray = GetScreenToWorldRayEx(position, camera, GetScreenWidth(), GetScreenHeight()); - + return ray; } @@ -1463,8 +1463,8 @@ Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height Vector3 farPoint = Vector3Unproject((Vector3){ deviceCoords.x, deviceCoords.y, 1.0f }, matProj, matView); // Unproject the mouse cursor in the near plane - // We need this as the source position because orthographic projects, - // compared to perspective doesn't have a convergence point, + // We need this as the source position because orthographic projects, + // compared to perspective doesn't have a convergence point, // meaning that the "eye" of the camera is more like a plane than a point Vector3 cameraPlanePointerPos = Vector3Unproject((Vector3){ deviceCoords.x, deviceCoords.y, -1.0f }, matProj, matView); @@ -1484,7 +1484,7 @@ Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height Matrix GetCameraMatrix(Camera camera) { Matrix mat = MatrixLookAt(camera.position, camera.target, camera.up); - + return mat; } @@ -1951,9 +1951,9 @@ const char *GetFileExtension(const char *fileName) static const char *strprbrk(const char *s, const char *charset) { const char *latestMatch = NULL; - + for (; s = strpbrk(s, charset), s != NULL; latestMatch = s++) { } - + return latestMatch; } @@ -1961,9 +1961,9 @@ static const char *strprbrk(const char *s, const char *charset) const char *GetFileName(const char *filePath) { const char *fileName = NULL; - + if (filePath != NULL) fileName = strprbrk(filePath, "\\/"); - + if (fileName != NULL) return filePath; return fileName + 1; @@ -2244,9 +2244,9 @@ bool IsPathFile(const char *path) bool IsFileDropped(void) { bool result = false; - + if (CORE.Window.dropFileCount > 0) result = true; - + return result; } diff --git a/src/rmodels.c b/src/rmodels.c index e669a2f0c..c50c878bf 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -706,7 +706,7 @@ void DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int Vector3 capCenter = endPos; float baseSliceAngle = (2.0f*PI)/slices; - float baseRingAngle = PI * 0.5f / rings; + float baseRingAngle = PI*0.5f/rings; rlBegin(RL_TRIANGLES); rlColor4ub(color.r, color.g, color.b, color.a); @@ -725,34 +725,34 @@ void DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int // as we iterate through the rings they must get smaller by the cos(angle(i)) // compute the four vertices - float ringSin1 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 0 )); - float ringCos1 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 0 )); + float ringSin1 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 0 )); + float ringCos1 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 0 )); Vector3 w1 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 0 ))*b0.x + ringSin1*b1.x + ringCos1*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 0 ))*b0.y + ringSin1*b1.y + ringCos1*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 0 ))*b0.z + ringSin1*b1.z + ringCos1*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 0 ))*b0.x + ringSin1*b1.x + ringCos1*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 0 ))*b0.y + ringSin1*b1.y + ringCos1*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 0 ))*b0.z + ringSin1*b1.z + ringCos1*b2.z)*radius }; - float ringSin2 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 0 )); - float ringCos2 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 0 )); + float ringSin2 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 0 )); + float ringCos2 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 0 )); Vector3 w2 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 0 ))*b0.x + ringSin2*b1.x + ringCos2*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 0 ))*b0.y + ringSin2*b1.y + ringCos2*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 0 ))*b0.z + ringSin2*b1.z + ringCos2*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 0 ))*b0.x + ringSin2*b1.x + ringCos2*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 0 ))*b0.y + ringSin2*b1.y + ringCos2*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 0 ))*b0.z + ringSin2*b1.z + ringCos2*b2.z)*radius }; - float ringSin3 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 1 )); - float ringCos3 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 1 )); + float ringSin3 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 1 )); + float ringCos3 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 1 )); Vector3 w3 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 1 ))*b0.x + ringSin3*b1.x + ringCos3*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 1 ))*b0.y + ringSin3*b1.y + ringCos3*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 1 ))*b0.z + ringSin3*b1.z + ringCos3*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 1 ))*b0.x + ringSin3*b1.x + ringCos3*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 1 ))*b0.y + ringSin3*b1.y + ringCos3*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 1 ))*b0.z + ringSin3*b1.z + ringCos3*b2.z)*radius }; - float ringSin4 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 1 )); - float ringCos4 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 1 )); + float ringSin4 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 1 )); + float ringCos4 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 1 )); Vector3 w4 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 1 ))*b0.x + ringSin4*b1.x + ringCos4*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 1 ))*b0.y + ringSin4*b1.y + ringCos4*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 1 ))*b0.z + ringSin4*b1.z + ringCos4*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 1 ))*b0.x + ringSin4*b1.x + ringCos4*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 1 ))*b0.y + ringSin4*b1.y + ringCos4*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 1 ))*b0.z + ringSin4*b1.z + ringCos4*b2.z)*radius }; // Make sure cap triangle normals are facing outwards @@ -849,7 +849,7 @@ void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices Vector3 capCenter = endPos; float baseSliceAngle = (2.0f*PI)/slices; - float baseRingAngle = PI * 0.5f / rings; + float baseRingAngle = PI*0.5f/rings; rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); @@ -868,34 +868,34 @@ void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices // as we iterate through the rings they must get smaller by the cos(angle(i)) // compute the four vertices - float ringSin1 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 0 )); - float ringCos1 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 0 )); + float ringSin1 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 0 )); + float ringCos1 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 0 )); Vector3 w1 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 0 ))*b0.x + ringSin1*b1.x + ringCos1*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 0 ))*b0.y + ringSin1*b1.y + ringCos1*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 0 ))*b0.z + ringSin1*b1.z + ringCos1*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 0 ))*b0.x + ringSin1*b1.x + ringCos1*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 0 ))*b0.y + ringSin1*b1.y + ringCos1*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 0 ))*b0.z + ringSin1*b1.z + ringCos1*b2.z)*radius }; - float ringSin2 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 0 )); - float ringCos2 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 0 )); + float ringSin2 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 0 )); + float ringCos2 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 0 )); Vector3 w2 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 0 ))*b0.x + ringSin2*b1.x + ringCos2*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 0 ))*b0.y + ringSin2*b1.y + ringCos2*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 0 ))*b0.z + ringSin2*b1.z + ringCos2*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 0 ))*b0.x + ringSin2*b1.x + ringCos2*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 0 ))*b0.y + ringSin2*b1.y + ringCos2*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 0 ))*b0.z + ringSin2*b1.z + ringCos2*b2.z)*radius }; - float ringSin3 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 1 )); - float ringCos3 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle * ( i + 1 )); + float ringSin3 = sinf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 1 )); + float ringCos3 = cosf(baseSliceAngle*(j + 0))*cosf(baseRingAngle*( i + 1 )); Vector3 w3 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 1 ))*b0.x + ringSin3*b1.x + ringCos3*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 1 ))*b0.y + ringSin3*b1.y + ringCos3*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 1 ))*b0.z + ringSin3*b1.z + ringCos3*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 1 ))*b0.x + ringSin3*b1.x + ringCos3*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 1 ))*b0.y + ringSin3*b1.y + ringCos3*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 1 ))*b0.z + ringSin3*b1.z + ringCos3*b2.z)*radius }; - float ringSin4 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 1 )); - float ringCos4 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle * ( i + 1 )); + float ringSin4 = sinf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 1 )); + float ringCos4 = cosf(baseSliceAngle*(j + 1))*cosf(baseRingAngle*( i + 1 )); Vector3 w4 = (Vector3){ - capCenter.x + (sinf(baseRingAngle * ( i + 1 ))*b0.x + ringSin4*b1.x + ringCos4*b2.x) * radius, - capCenter.y + (sinf(baseRingAngle * ( i + 1 ))*b0.y + ringSin4*b1.y + ringCos4*b2.y) * radius, - capCenter.z + (sinf(baseRingAngle * ( i + 1 ))*b0.z + ringSin4*b1.z + ringCos4*b2.z) * radius + capCenter.x + (sinf(baseRingAngle*( i + 1 ))*b0.x + ringSin4*b1.x + ringCos4*b2.x)*radius, + capCenter.y + (sinf(baseRingAngle*( i + 1 ))*b0.y + ringSin4*b1.y + ringCos4*b2.y)*radius, + capCenter.z + (sinf(baseRingAngle*( i + 1 ))*b0.z + ringSin4*b1.z + ringCos4*b2.z)*radius }; rlVertex3f(w1.x, w1.y, w1.z); @@ -1105,7 +1105,7 @@ Model LoadModelFromMesh(Mesh mesh) bool IsModelReady(Model model) { bool result = false; - + if ((model.meshes != NULL) && // Validate model contains some mesh (model.materials != NULL) && // Validate model contains some material (at least default one) (model.meshMaterial != NULL) && // Validate mesh-material linkage @@ -1113,7 +1113,7 @@ bool IsModelReady(Model model) (model.materialCount > 0)) result = true; // Validate material count // NOTE: This is a very general model validation, many elements could be validated from a model... - + return result; } @@ -1966,18 +1966,18 @@ static void ProcessMaterialsOBJ(Material *materials, tinyobj_material_t *mats, i materials[m].maps[MATERIAL_MAP_DIFFUSE].texture = (Texture2D){ rlGetTextureIdDefault(), 1, 1, 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 }; if (mats[m].diffuse_texname != NULL) materials[m].maps[MATERIAL_MAP_DIFFUSE].texture = LoadTexture(mats[m].diffuse_texname); //char *diffuse_texname; // map_Kd - else materials[m].maps[MATERIAL_MAP_DIFFUSE].color = (Color){ (unsigned char)(mats[m].diffuse[0]*255.0f), (unsigned char)(mats[m].diffuse[1]*255.0f), (unsigned char)(mats[m].diffuse[2] * 255.0f), 255 }; //float diffuse[3]; + else materials[m].maps[MATERIAL_MAP_DIFFUSE].color = (Color){ (unsigned char)(mats[m].diffuse[0]*255.0f), (unsigned char)(mats[m].diffuse[1]*255.0f), (unsigned char)(mats[m].diffuse[2]*255.0f), 255 }; //float diffuse[3]; materials[m].maps[MATERIAL_MAP_DIFFUSE].value = 0.0f; if (mats[m].specular_texname != NULL) materials[m].maps[MATERIAL_MAP_SPECULAR].texture = LoadTexture(mats[m].specular_texname); //char *specular_texname; // map_Ks - materials[m].maps[MATERIAL_MAP_SPECULAR].color = (Color){ (unsigned char)(mats[m].specular[0]*255.0f), (unsigned char)(mats[m].specular[1]*255.0f), (unsigned char)(mats[m].specular[2] * 255.0f), 255 }; //float specular[3]; + materials[m].maps[MATERIAL_MAP_SPECULAR].color = (Color){ (unsigned char)(mats[m].specular[0]*255.0f), (unsigned char)(mats[m].specular[1]*255.0f), (unsigned char)(mats[m].specular[2]*255.0f), 255 }; //float specular[3]; materials[m].maps[MATERIAL_MAP_SPECULAR].value = 0.0f; if (mats[m].bump_texname != NULL) materials[m].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture(mats[m].bump_texname); //char *bump_texname; // map_bump, bump materials[m].maps[MATERIAL_MAP_NORMAL].color = WHITE; materials[m].maps[MATERIAL_MAP_NORMAL].value = mats[m].shininess; - materials[m].maps[MATERIAL_MAP_EMISSION].color = (Color){ (unsigned char)(mats[m].emission[0]*255.0f), (unsigned char)(mats[m].emission[1]*255.0f), (unsigned char)(mats[m].emission[2] * 255.0f), 255 }; //float emission[3]; + materials[m].maps[MATERIAL_MAP_EMISSION].color = (Color){ (unsigned char)(mats[m].emission[0]*255.0f), (unsigned char)(mats[m].emission[1]*255.0f), (unsigned char)(mats[m].emission[2]*255.0f), 255 }; //float emission[3]; if (mats[m].displacement_texname != NULL) materials[m].maps[MATERIAL_MAP_HEIGHT].texture = LoadTexture(mats[m].displacement_texname); //char *displacement_texname; // disp } @@ -2038,10 +2038,10 @@ Material LoadMaterialDefault(void) bool IsMaterialReady(Material material) { bool result = false; - + if ((material.maps != NULL) && // Validate material contain some map (material.shader.id > 0)) result = true; // Validate material shader is valid - + return result; } @@ -2349,7 +2349,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ) for (int face = 0; face < numFaces; face++) { // Retrieve lower left corner from face ind - int i = face + face / (resX - 1); + int i = face + face/(resX - 1); triangles[t++] = i + resX; triangles[t++] = i + 1; @@ -3038,7 +3038,7 @@ Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize) Color *pixels = LoadImageColors(cubicmap); // NOTE: Max possible number of triangles numCubes*(12 triangles by cube) - int maxTriangles = cubicmap.width * cubicmap.height * 12; + int maxTriangles = cubicmap.width*cubicmap.height*12; int vCounter = 0; // Used to count vertices int tcCounter = 0; // Used to count texcoords @@ -3588,6 +3588,8 @@ void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector DrawBillboardPro(camera, texture, source, position, up, size, Vector2Zero(), 0.0f, tint); } +// Draw a billboard with additional parameters +// NOTE: Size defines the destination rectangle size, stretching the source texture as required void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint) { // NOTE: Billboard size will maintain source rectangle aspect ratio, size will represent billboard width @@ -3657,7 +3659,7 @@ void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector rlBegin(RL_QUADS); rlColor4ub(tint.r, tint.g, tint.b, tint.a); - if (sizeRatio.x * sizeRatio.y >= 0.0f) + if (sizeRatio.x*sizeRatio.y >= 0.0f) { // Bottom-left corner for texture and quad rlTexCoord2f((float)source.x/texture.width, (float)source.y/texture.height); @@ -5278,7 +5280,7 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Color attribute data format not supported", fileName); - + } // NOTE: Attributes related to animations are processed separately @@ -5405,7 +5407,7 @@ static Model LoadGLTF(const char *fileName) { // Init raylib mesh boneIds to copy glTF attribute data model.meshes[meshIndex].boneIds = RL_CALLOC(model.meshes[meshIndex].vertexCount*4, sizeof(unsigned char)); - + // Load attribute: vec4, u8 (unsigned char) LOAD_ATTRIBUTE(attribute, 4, unsigned char, model.meshes[meshIndex].boneIds) } @@ -6310,7 +6312,7 @@ static ModelAnimation *LoadModelAnimationsM3D(const char *fileName, int *animCou for (unsigned int a = 0; a < m3d->numaction; a++) { - animations[a].frameCount = m3d->action[a].durationmsec / M3D_ANIMDELAY; + animations[a].frameCount = m3d->action[a].durationmsec/M3D_ANIMDELAY; animations[a].boneCount = m3d->numbone + 1; animations[a].bones = RL_MALLOC((m3d->numbone + 1)*sizeof(BoneInfo)); animations[a].framePoses = RL_MALLOC(animations[a].frameCount*sizeof(Transform *)); diff --git a/src/rshapes.c b/src/rshapes.c index e2b55bc32..902019599 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2202,7 +2202,7 @@ bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount) for (int i = 0, j = pointCount - 1; i < pointCount; j = i++) { if ((points[i].y > point.y) != (points[j].y > point.y) && - (point.x < (points[j].x - points[i].x) * (point.y - points[i].y) / (points[j].y - points[i].y) + points[i].x)) + (point.x < (points[j].x - points[i].x)*(point.y - points[i].y)/(points[j].y - points[i].y) + points[i].x)) { inside = !inside; } @@ -2347,14 +2347,14 @@ Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) static float EaseCubicInOut(float t, float b, float c, float d) { float result = 0.0f; - + if ((t /= 0.5f*d) < 1) result = 0.5f*c*t*t*t + b; else { t -= 2; result = 0.5f*c*(t*t*t + 2.0f) + b; } - + return result; } diff --git a/src/rtextures.c b/src/rtextures.c index 90c0de21c..0658a6807 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -293,7 +293,7 @@ Image LoadImage(const char *fileName) unsigned char *fileData = LoadFileData(fileName, &dataSize); // Loading image from memory data - if (fileData != NULL) + if (fileData != NULL) { image = LoadImageFromMemory(GetFileExtension(fileName), fileData, dataSize); @@ -318,7 +318,7 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int if (size <= dataSize) // Security check { - // Offset file data to expected raw image by header size + // Offset file data to expected raw image by header size if ((headerSize > 0) && ((headerSize + size) <= dataSize)) dataPtr += headerSize; image.data = RL_MALLOC(size); // Allocate required memory in bytes @@ -385,8 +385,8 @@ Image LoadImageSvg(const char *fileNameOrString, int width, int height) int offsetX = 0; int offsetY = 0; - if (scaleHeight > scaleWidth) offsetY = (height - svgImage->height*scale) / 2; - else offsetX = (width - svgImage->width*scale) / 2; + if (scaleHeight > scaleWidth) offsetY = (height - svgImage->height*scale)/2; + else offsetX = (width - svgImage->width*scale)/2; // Rasterize struct NSVGrasterizer *rast = nsvgCreateRasterizer(); @@ -464,7 +464,7 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat { Image image = { 0 }; int frameCount = 0; - + // Security check for input data if ((fileType == NULL) || (fileData == NULL) || (dataSize == 0)) return image; @@ -501,7 +501,7 @@ Image LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileDat Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize) { Image image = { 0 }; - + // Security check for input data if ((fileType == NULL) || (fileData == NULL) || (dataSize == 0)) return image; @@ -710,13 +710,13 @@ Image LoadImageFromScreen(void) bool IsImageReady(Image image) { bool result = false; - + if ((image.data != NULL) && // Validate pixel data available (image.width > 0) && (image.height > 0) && // Validate image size (image.format > 0) && // Validate image format (image.mipmaps > 0)) result = true; // Validate image mipmaps (at least 1 for basic mipmap level) - + return result; } @@ -1018,8 +1018,8 @@ Image GenImageGradientSquare(int width, int height, float density, Color inner, float distY = fabsf(y - centerY); // Normalize the distances by the dimensions of the gradient rectangle - float normalizedDistX = distX / centerX; - float normalizedDistY = distY / centerY; + float normalizedDistX = distX/centerX; + float normalizedDistY = distY/centerY; // Calculate the total normalized Manhattan distance float manhattanDist = fmaxf(normalizedDistX, normalizedDistY); @@ -1615,7 +1615,7 @@ Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Co // Scale image depending on text size if (textSize.y != imSize.y) { - float scaleFactor = textSize.y / imSize.y; + float scaleFactor = textSize.y/imSize.y; TRACELOG(LOG_INFO, "IMAGE: Text scaled by factor: %f", scaleFactor); // Using nearest-neighbor scaling algorithm for default font @@ -2214,17 +2214,17 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) if (imgindex >= (unsigned int)(image->width*image->height)) { - temp[kernelWidth * xkabs + ykabs].x = 0.0f; - temp[kernelWidth * xkabs + ykabs].y = 0.0f; - temp[kernelWidth * xkabs + ykabs].z = 0.0f; - temp[kernelWidth * xkabs + ykabs].w = 0.0f; + temp[kernelWidth*xkabs + ykabs].x = 0.0f; + temp[kernelWidth*xkabs + ykabs].y = 0.0f; + temp[kernelWidth*xkabs + ykabs].z = 0.0f; + temp[kernelWidth*xkabs + ykabs].w = 0.0f; } else { - temp[kernelWidth * xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f*kernel[kernelWidth*xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].y = ((float)pixels[imgindex].g)/255.0f*kernel[kernelWidth*xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].z = ((float)pixels[imgindex].b)/255.0f*kernel[kernelWidth*xkabs + ykabs]; - temp[kernelWidth * xkabs + ykabs].w = ((float)pixels[imgindex].a)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth*xkabs + ykabs].x = ((float)pixels[imgindex].r)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth*xkabs + ykabs].y = ((float)pixels[imgindex].g)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth*xkabs + ykabs].z = ((float)pixels[imgindex].b)/255.0f*kernel[kernelWidth*xkabs + ykabs]; + temp[kernelWidth*xkabs + ykabs].w = ((float)pixels[imgindex].a)/255.0f*kernel[kernelWidth*xkabs + ykabs]; } } } @@ -2672,7 +2672,7 @@ void ImageColorTint(Image *image, Color color) float cB = (float)color.b/255; float cA = (float)color.a/255; - for (int i = 0; i < image->width * image->height; i++) + for (int i = 0; i < image->width*image->height; i++) { unsigned char r = (unsigned char)(((float)pixels[i].r/255*cR)*255.0f); unsigned char g = (unsigned char)(((float)pixels[i].g/255*cG)*255.0f); @@ -2702,7 +2702,7 @@ void ImageColorInvert(Image *image) Color *pixels = LoadImageColors(*image); - for (int i = 0; i < image->width * image->height; i++) + for (int i = 0; i < image->width*image->height; i++) { pixels[i].r = 255 - pixels[i].r; pixels[i].g = 255 - pixels[i].g; @@ -2739,7 +2739,7 @@ void ImageColorContrast(Image *image, float contrast) Color *pixels = LoadImageColors(*image); - for (int i = 0; i < image->width * image->height; i++) + for (int i = 0; i < image->width*image->height; i++) { float pR = (float)pixels[i].r/255.0f; pR -= 0.5f; @@ -2791,7 +2791,7 @@ void ImageColorBrightness(Image *image, int brightness) Color *pixels = LoadImageColors(*image); - for (int i = 0; i < image->width * image->height; i++) + for (int i = 0; i < image->width*image->height; i++) { int cR = pixels[i].r + brightness; int cG = pixels[i].g + brightness; @@ -2828,7 +2828,7 @@ void ImageColorReplace(Image *image, Color color, Color replace) Color *pixels = LoadImageColors(*image); - for (int i = 0; i < image->width * image->height; i++) + for (int i = 0; i < image->width*image->height; i++) { if ((pixels[i].r == color.r) && (pixels[i].g == color.g) && @@ -3616,7 +3616,7 @@ void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color) } // Repeat the first row data for all other rows - int bytesPerRow = bytesPerPixel * (int)rec.width; + int bytesPerRow = bytesPerPixel*(int)rec.width; for (int y = 1; y < (int)rec.height; y++) { memcpy(pSrcPixel + (y*dst->width)*bytesPerPixel, pSrcPixel, bytesPerRow); @@ -3957,7 +3957,7 @@ RenderTexture2D LoadRenderTexture(int width, int height) bool IsTextureReady(Texture2D texture) { bool result = false; - + // TODO: Validate maximum texture size supported by GPU? if ((texture.id > 0) && // Validate OpenGL id @@ -3965,7 +3965,7 @@ bool IsTextureReady(Texture2D texture) (texture.height > 0) && // Validate texture size (texture.format > 0) && // Validate texture pixel format (texture.mipmaps > 0)) result = true; // Validate texture mipmaps (at least 1 for basic mipmap level) - + return result; } @@ -3984,11 +3984,11 @@ void UnloadTexture(Texture2D texture) bool IsRenderTextureReady(RenderTexture2D target) { bool result = false; - + if ((target.id > 0) && // Validate OpenGL id IsTextureReady(target.depth) && // Validate FBO depth texture/renderbuffer IsTextureReady(target.texture)) result = true; // Validate FBO texture - + return result; } @@ -4498,10 +4498,10 @@ bool ColorIsEqual(Color col1, Color col2) Color Fade(Color color, float alpha) { Color result = color; - + if (alpha < 0.0f) alpha = 0.0f; else if (alpha > 1.0f) alpha = 1.0f; - + result.a = (unsigned char)(255.0f*alpha); return result; @@ -4511,7 +4511,7 @@ Color Fade(Color color, float alpha) int ColorToInt(Color color) { int result = (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); - + return result; } @@ -4732,7 +4732,7 @@ Color ColorContrast(Color color, float contrast) Color ColorAlpha(Color color, float alpha) { Color result = color; - + if (alpha < 0.0f) alpha = 0.0f; else if (alpha > 1.0f) alpha = 1.0f; @@ -5042,15 +5042,15 @@ int GetPixelDataSize(int width, int height, int format) static float HalfToFloat(unsigned short x) { float result = 0.0f; - + const unsigned int e = (x & 0x7C00) >> 10; // Exponent const unsigned int m = (x & 0x03FF) << 13; // Mantissa const float fm = (float)m; const unsigned int v = (*(unsigned int*)&fm) >> 23; // Evil log2 bit hack to count leading zeros in denormalized format const unsigned int r = (x & 0x8000) << 16 | (e != 0)*((e + 112) << 23 | m) | ((e == 0)&(m != 0))*((v - 37) << 23 | ((m << (150 - v)) & 0x007FE000)); // sign : normalized : denormalized - + result = *(float *)&r; - + return result; } @@ -5058,13 +5058,13 @@ static float HalfToFloat(unsigned short x) static unsigned short FloatToHalf(float x) { unsigned short result = 0; - + const unsigned int b = (*(unsigned int*) & x) + 0x00001000; // Round-to-nearest-even: add last bit after truncated mantissa const unsigned int e = (b & 0x7F800000) >> 23; // Exponent const unsigned int m = b & 0x007FFFFF; // Mantissa; in line below: 0x007FF000 = 0x00800000-0x00001000 = decimal indicator flag - initial rounding - + result = (b & 0x80000000) >> 16 | (e > 112)*((((e - 112) << 10) & 0x7C00) | m >> 13) | ((e < 113) & (e > 101))*((((0x007FF000 + m) >> (125 - e)) + 1) >> 1) | (e > 143)*0x7FFF; // sign : normalized : denormalized : saturate - + return result; } From e0f6faa151589a185a04c2c723c01daff1b0a78f Mon Sep 17 00:00:00 2001 From: freakmangd <53349189+freakmangd@users.noreply.github.com> Date: Mon, 22 Apr 2024 03:13:01 -0400 Subject: [PATCH 304/790] [build.zig] Drop support for 0.11.0 and use more idiomatic build script code (#3927) * Remove support for 0.11.0, and make build script more idiomatic + remove all 0.11.0 compatibility functions + remove most LazyPath .path variants + I didn't touch emscripten, I don't know if its relative or absolute + change all absolute paths to use .cwd_relative + only use the builder allocator + have local dependencies use the package manager + make adding raygui more flexible + use zig-cache for generated wayland files * Remove support for 0.11.0 in examples/build.zig * update examples further and add clarifying comment on addRaygui --- build.zig | 6 +- examples/build.zig | 56 +++------- src/build.zig | 265 +++++++++++++++++++-------------------------- 3 files changed, 131 insertions(+), 196 deletions(-) diff --git a/build.zig b/build.zig index 4c8ede79d..01e7b49fb 100644 --- a/build.zig +++ b/build.zig @@ -1,7 +1,11 @@ const std = @import("std"); const raylib = @import("src/build.zig"); -// This has been tested to work with zig 0.11.0 and zig 0.12.0-dev.3632+7fb5a0b18 +// This has been tested to work with zig 0.12.0 pub fn build(b: *std.Build) !void { try raylib.build(b); } + +// expose helper functions to user's build.zig +pub const addRaylib = raylib.addRaylib; +pub const addRaygui = raylib.addRaygui; diff --git a/examples/build.zig b/examples/build.zig index e56ac0d54..5a17382ca 100644 --- a/examples/build.zig +++ b/examples/build.zig @@ -1,24 +1,14 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested to work with zig 0.11.0 (67709b6, Aug 4 2023) and zig 0.12.0-dev.2075+f5978181e (Jan 8 2024) -// -// anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type -// was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows -// us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. -fn add_module(comptime module: []const u8, b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode) !*std.Build.Step { - if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { - @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'add_module', found '" ++ @typeName(@TypeOf(target)) ++ "'"); - } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { - @compileError("Expected 'std.zig.CrossTarget' for argument 2 'target' in 'add_module', found '" ++ @typeName(@TypeOf(target)) ++ "'"); - } - - if (getOsTagVersioned(target) == .emscripten) { +// This has been tested to work with zig 0.12.0 +fn add_module(comptime module: []const u8, b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) !*std.Build.Step { + if (target.result.os.tag == .emscripten) { @panic("Emscripten building via Zig unsupported"); } const all = b.step(module, "All " ++ module ++ " examples"); - var dir = try openIterableDirVersioned(std.fs.cwd(), module); + var dir = try std.fs.cwd().openDir(module, .{ .iterate = true }); defer if (comptime builtin.zig_version.minor >= 12) dir.close(); var iter = dir.iterate(); @@ -29,28 +19,28 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: anytype, optim const path = try std.fs.path.join(b.allocator, &.{ module, entry.name }); // zig's mingw headers do not include pthread.h - if (std.mem.eql(u8, "core_loading_thread", name) and getOsTagVersioned(target) == .windows) continue; + if (std.mem.eql(u8, "core_loading_thread", name) and target.result.os.tag == .windows) continue; const exe = b.addExecutable(.{ .name = name, .target = target, .optimize = optimize, }); - exe.addCSourceFile(.{ .file = .{ .path = path }, .flags = &.{} }); + exe.addCSourceFile(.{ .file = b.path(path), .flags = &.{} }); exe.linkLibC(); - exe.addObjectFile(switch (getOsTagVersioned(target)) { - .windows => .{ .path = "../zig-out/lib/raylib.lib" }, - .linux => .{ .path = "../zig-out/lib/libraylib.a" }, - .macos => .{ .path = "../zig-out/lib/libraylib.a" }, - .emscripten => .{ .path = "../zig-out/lib/libraylib.a" }, + exe.addObjectFile(switch (target.result.os.tag) { + .windows => b.path("../zig-out/lib/raylib.lib"), + .linux => b.path("../zig-out/lib/libraylib.a"), + .macos => b.path("../zig-out/lib/libraylib.a"), + .emscripten => b.path("../zig-out/lib/libraylib.a"), else => @panic("Unsupported OS"), }); - exe.addIncludePath(.{ .path = "../src" }); - exe.addIncludePath(.{ .path = "../src/external" }); - exe.addIncludePath(.{ .path = "../src/external/glfw/include" }); + exe.addIncludePath(b.path("../src")); + exe.addIncludePath(b.path("../src/external")); + exe.addIncludePath(b.path("../src/external/glfw/include")); - switch (getOsTagVersioned(target)) { + switch (target.result.os.tag) { .windows => { exe.linkSystemLibrary("winmm"); exe.linkSystemLibrary("gdi32"); @@ -117,19 +107,3 @@ pub fn build(b: *std.Build) !void { all.dependOn(try add_module("text", b, target, optimize)); all.dependOn(try add_module("textures", b, target, optimize)); } - -fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { - if (comptime builtin.zig_version.minor >= 12) { - return target.result.os.tag; - } else { - return target.getOsTag(); - } -} - -fn openIterableDirVersioned(dir: std.fs.Dir, path: []const u8) !(if (builtin.zig_version.minor >= 12) std.fs.Dir else std.fs.IterableDir) { - if (comptime builtin.zig_version.minor >= 12) { - return dir.openDir(path, .{ .iterate = true }); - } else { - return dir.openIterableDir(path, .{}); - } -} diff --git a/src/build.zig b/src/build.zig index 4134c4a84..9fa1c57cd 100644 --- a/src/build.zig +++ b/src/build.zig @@ -1,37 +1,53 @@ const std = @import("std"); const builtin = @import("builtin"); -// This has been tested with zig version(s): -// 0.11.0 -// 0.12.0-dev.3632+7fb5a0b18 -// -// Anytype is used here to preserve compatibility, in 0.12.0dev the std.zig.CrossTarget type -// was reworked into std.Target.Query and std.Build.ResolvedTarget. Using anytype allows -// us to accept both CrossTarget and ResolvedTarget and act accordingly in getOsTagVersioned. -pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { - var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){}; - const gpa = general_purpose_allocator.allocator(); +comptime { + if (builtin.zig_version.minor < 12) @compileError("Raylib requires zig version 0.12.0"); +} - if (comptime builtin.zig_version.minor >= 12 and @TypeOf(target) != std.Build.ResolvedTarget) { - @compileError("Expected 'std.Build.ResolvedTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); - } else if (comptime builtin.zig_version.minor == 11 and @TypeOf(target) != std.zig.CrossTarget) { - @compileError("Expected 'std.zig.CrossTarget' for argument 2 'target' in 'addRaylib', found '" ++ @typeName(@TypeOf(target)) ++ "'"); +// NOTE(freakmangd): I don't like using a global here, but it prevents having to +// get the flags a second time when adding raygui +var raylib_flags_arr: std.ArrayListUnmanaged([]const u8) = .{}; + +// This has been tested with zig version 0.12.0 +pub fn addRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { + const raylib_dep = b.dependency(options.raylib_dependency_name, .{ + .target = target, + .optimize = optimize, + .raudio = options.raudio, + .rmodels = options.rmodels, + .rshapes = options.rshapes, + .rtext = options.rtext, + .rtextures = options.rtextures, + .platform_drm = options.platform_drm, + .shared = options.shared, + .linux_display_backend = options.linux_display_backend, + }); + const raylib = raylib_dep.artifact("raylib"); + + if (options.raygui) { + const raygui_dep = b.dependency(options.raygui_dependency_name, .{}); + addRaygui(b, raylib, raygui_dep); } + return raylib; +} + +fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile { + raylib_flags_arr.clearRetainingCapacity(); + const shared_flags = &[_][]const u8{ "-fPIC", "-DBUILD_LIBTYPE_SHARED", }; - var raylib_flags_arr = std.ArrayList([]const u8).init(std.heap.page_allocator); - defer raylib_flags_arr.deinit(); - try raylib_flags_arr.appendSlice(&[_][]const u8{ + try raylib_flags_arr.appendSlice(b.allocator, &[_][]const u8{ "-std=gnu99", "-D_GNU_SOURCE", "-DGL_SILENCE_DEPRECATION=199309L", "-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674 }); if (options.shared) { - try raylib_flags_arr.appendSlice(shared_flags); + try raylib_flags_arr.appendSlice(b.allocator, shared_flags); } const raylib = if (options.shared) @@ -50,55 +66,31 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM // No GLFW required on PLATFORM_DRM if (!options.platform_drm) { - raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "external/glfw/include" }); + raylib.addIncludePath(b.path("src/external/glfw/include")); } - addCSourceFilesVersioned(raylib, &.{ - "rcore.c", - "utils.c", - }, raylib_flags_arr.items); + var c_source_files = try std.ArrayList([]const u8).initCapacity(b.allocator, 2); + c_source_files.appendSliceAssumeCapacity(&.{ "rcore.c", "utils.c" }); if (options.raudio) { - addCSourceFilesVersioned(raylib, &.{ - "raudio.c", - }, raylib_flags_arr.items); + try c_source_files.append("raudio.c"); } if (options.rmodels) { - addCSourceFilesVersioned(raylib, &.{ - "rmodels.c", - }, raylib_flags_arr.items); + try c_source_files.append("rmodels.c"); } if (options.rshapes) { - addCSourceFilesVersioned(raylib, &.{ - "rshapes.c", - }, raylib_flags_arr.items); + try c_source_files.append("rshapes.c"); } if (options.rtext) { - addCSourceFilesVersioned(raylib, &.{ - "rtext.c", - }, raylib_flags_arr.items); + try c_source_files.append("rtext.c"); } if (options.rtextures) { - addCSourceFilesVersioned(raylib, &.{ - "rtextures.c", - }, raylib_flags_arr.items); + try c_source_files.append("rtextures.c"); } - var gen_step = b.addWriteFiles(); - raylib.step.dependOn(&gen_step.step); - - if (options.raygui) { - const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); - raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); - raylib.addIncludePath(.{ .cwd_relative = srcdir }); - raylib.addIncludePath(.{ .cwd_relative = srcdir ++ "../../raygui/src" }); - } - - switch (getOsTagVersioned(target)) { + switch (target.result.os.tag) { .windows => { - addCSourceFilesVersioned(raylib, &.{ - "rglfw.c", - }, raylib_flags_arr.items); + try c_source_files.append("rglfw.c"); raylib.linkSystemLibrary("winmm"); raylib.linkSystemLibrary("gdi32"); raylib.linkSystemLibrary("opengl32"); @@ -107,16 +99,14 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .linux => { if (!options.platform_drm) { - addCSourceFilesVersioned(raylib, &.{ - "rglfw.c", - }, raylib_flags_arr.items); + try c_source_files.append("rglfw.c"); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("dl"); raylib.linkSystemLibrary("m"); - raylib.addLibraryPath(.{ .path = "/usr/lib" }); - raylib.addIncludePath(.{ .path = "/usr/include" }); + raylib.addLibraryPath(.{ .cwd_relative = "/usr/lib" }); + raylib.addIncludePath(.{ .cwd_relative = "/usr/include" }); switch (options.linux_display_backend) { .X11 => { @@ -129,16 +119,16 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("wayland-cursor"); raylib.linkSystemLibrary("wayland-egl"); raylib.linkSystemLibrary("xkbcommon"); - raylib.addIncludePath(.{ .path = srcdir }); - try waylandGenerate(gpa, "wayland.xml", "wayland-client-protocol"); - try waylandGenerate(gpa, "xdg-shell.xml", "xdg-shell-client-protocol"); - try waylandGenerate(gpa, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol"); - try waylandGenerate(gpa, "viewporter.xml", "viewporter-client-protocol"); - try waylandGenerate(gpa, "relative-pointer-unstable-v1.xml", "relative-pointer-unstable-v1-client-protocol"); - try waylandGenerate(gpa, "pointer-constraints-unstable-v1.xml", "pointer-constraints-unstable-v1-client-protocol"); - try waylandGenerate(gpa, "fractional-scale-v1.xml", "fractional-scale-v1-client-protocol"); - try waylandGenerate(gpa, "xdg-activation-v1.xml", "xdg-activation-v1-client-protocol"); - try waylandGenerate(gpa, "idle-inhibit-unstable-v1.xml", "idle-inhibit-unstable-v1-client-protocol"); + raylib.addIncludePath(b.path("src")); + waylandGenerate(b, raylib, "wayland.xml", "wayland-client-protocol"); + waylandGenerate(b, raylib, "xdg-shell.xml", "xdg-shell-client-protocol"); + waylandGenerate(b, raylib, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol"); + waylandGenerate(b, raylib, "viewporter.xml", "viewporter-client-protocol"); + waylandGenerate(b, raylib, "relative-pointer-unstable-v1.xml", "relative-pointer-unstable-v1-client-protocol"); + waylandGenerate(b, raylib, "pointer-constraints-unstable-v1.xml", "pointer-constraints-unstable-v1-client-protocol"); + waylandGenerate(b, raylib, "fractional-scale-v1.xml", "fractional-scale-v1-client-protocol"); + waylandGenerate(b, raylib, "xdg-activation-v1.xml", "xdg-activation-v1-client-protocol"); + waylandGenerate(b, raylib, "idle-inhibit-unstable-v1.xml", "idle-inhibit-unstable-v1-client-protocol"); }, } @@ -152,7 +142,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("m"); raylib.linkSystemLibrary("dl"); - raylib.addIncludePath(.{ .path = "/usr/include/libdrm" }); + raylib.addIncludePath(.{ .cwd_relative = "/usr/include/libdrm" }); raylib.defineCMacro("PLATFORM_DRM", null); raylib.defineCMacro("GRAPHICS_API_OPENGL_ES2", null); @@ -161,9 +151,7 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM } }, .freebsd, .openbsd, .netbsd, .dragonfly => { - addCSourceFilesVersioned(raylib, &.{ - "rglfw.c", - }, raylib_flags_arr.items); + try c_source_files.append("rglfw.c"); raylib.linkSystemLibrary("GL"); raylib.linkSystemLibrary("rt"); raylib.linkSystemLibrary("dl"); @@ -179,10 +167,12 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, .macos => { // On macos rglfw.c include Objective-C files. - try raylib_flags_arr.append("-ObjC"); - addCSourceFilesVersioned(raylib, &.{ - "rglfw.c", - }, raylib_flags_arr.items); + try raylib_flags_arr.append(b.allocator, "-ObjC"); + raylib.root_module.addCSourceFile(.{ + .file = b.path("src/rglfw.c"), + .flags = raylib_flags_arr.items, + }); + _ = raylib_flags_arr.pop(); raylib.linkFramework("Foundation"); raylib.linkFramework("CoreServices"); raylib.linkFramework("CoreGraphics"); @@ -212,9 +202,33 @@ pub fn addRaylib(b: *std.Build, target: anytype, optimize: std.builtin.OptimizeM }, } + raylib.root_module.addCSourceFiles(.{ + .root = b.path("src"), + .files = c_source_files.items, + .flags = raylib_flags_arr.items, + }); + return raylib; } +/// This function does not need to be called if you passed .raygui = true to addRaylib +pub fn addRaygui(b: *std.Build, raylib: *std.Build.Step.Compile, raygui_dep: *std.Build.Dependency) void { + if (raylib_flags_arr.items.len == 0) { + @panic( + \\argument 2 `raylib` in `addRaygui` must come from b.dependency("raylib", ...).artifact("raylib") + ); + } + + var gen_step = b.addWriteFiles(); + raylib.step.dependOn(&gen_step.step); + + const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n"); + raylib.addCSourceFile(.{ .file = raygui_c_path, .flags = raylib_flags_arr.items }); + raylib.addIncludePath(raygui_dep.path("src")); + + raylib.installHeader(raygui_dep.path("src/raygui.h"), "raygui.h"); +} + pub const Options = struct { raudio: bool = true, rmodels: bool = true, @@ -225,6 +239,9 @@ pub const Options = struct { platform_drm: bool = false, shared: bool = false, linux_display_backend: LinuxDisplayBackend = .X11, + + raylib_dependency_name: []const u8 = "raylib", + raygui_dependency_name: []const u8 = "raygui", }; pub const LinuxDisplayBackend = enum { @@ -251,94 +268,34 @@ pub fn build(b: *std.Build) !void { .rtext = b.option(bool, "rtext", "Compile with text support") orelse defaults.rtext, .rtextures = b.option(bool, "rtextures", "Compile with textures support") orelse defaults.rtextures, .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, - .raygui = b.option(bool, "raygui", "Compile with raygui support") orelse defaults.raygui, .shared = b.option(bool, "shared", "Compile as shared library") orelse defaults.shared, .linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend, }; - const lib = try addRaylib(b, target, optimize, options); + const lib = try compileRaylib(b, target, optimize, options); - installHeaderVersioned(b, lib, "src/raylib.h", "raylib.h"); - installHeaderVersioned(b, lib, "src/raymath.h", "raymath.h"); - installHeaderVersioned(b, lib, "src/rlgl.h", "rlgl.h"); - - if (options.raygui) { - installHeaderVersioned(b, lib, "../raygui/src/raygui.h", "raygui.h"); - } + lib.installHeader(b.path("src/raylib.h"), "raylib.h"); + lib.installHeader(b.path("src/raymath.h"), "raymath.h"); + lib.installHeader(b.path("src/rlgl.h"), "rlgl.h"); b.installArtifact(lib); } -const srcdir = struct { - fn getSrcDir() []const u8 { - return std.fs.path.dirname(@src().file).?; - } -}.getSrcDir() ++ "/"; +const waylandDir = "src/external/glfw/deps/wayland"; -const waylandDir = srcdir ++ "external/glfw/deps/wayland"; - -fn getOsTagVersioned(target: anytype) std.Target.Os.Tag { - if (comptime builtin.zig_version.minor >= 12) { - return target.result.os.tag; - } else { - return target.getOsTag(); - } -} - -inline fn addCSourceFilesVersioned( - exe: *std.Build.Step.Compile, - files: []const []const u8, - flags: []const []const u8, -) void { - if (comptime builtin.zig_version.minor >= 12) { - exe.addCSourceFiles(.{ - .root = .{ .path = srcdir }, - .files = files, - .flags = flags, - }); - } else if (comptime builtin.zig_version.minor == 11) { - inline for (files) |file| { - exe.addCSourceFile(.{ - .file = .{ .path = srcdir ++ file }, - .flags = flags, - }); - } - } else { - @compileError("Expected zig version 11 or 12"); - } -} - -fn installHeaderVersioned( - b: *std.Build, - lib: *std.Build.Step.Compile, - source: []const u8, - dest: []const u8, -) void { - if (comptime builtin.zig_version.minor >= 12) { - lib.installHeader(.{ .src_path = .{ - .owner = b, - .sub_path = source, - } }, dest); - } else { - lib.installHeader(source, dest); - } -} - -const childRunVersioned = if (builtin.zig_version.minor >= 12) - std.process.Child.run -else - std.process.Child.exec; - -fn waylandGenerate(allocator: std.mem.Allocator, comptime protocol: []const u8, comptime basename: []const u8) !void { +fn waylandGenerate(b: *std.Build, raylib: *std.Build.Step.Compile, comptime protocol: []const u8, comptime basename: []const u8) void { const protocolDir = waylandDir ++ "/" ++ protocol; - const clientHeader = srcdir ++ basename ++ ".h"; - const privateCode = srcdir ++ basename ++ "-code.h"; - _ = try childRunVersioned(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "client-header", protocolDir, clientHeader }, - }); - _ = try childRunVersioned(.{ - .allocator = allocator, - .argv = &[_][]const u8{ "wayland-scanner", "private-code", protocolDir, privateCode }, - }); + const clientHeader = basename ++ ".h"; + const privateCode = basename ++ "-code.h"; + + const client_step = b.addSystemCommand(&.{ "wayland-scanner", "client-header" }); + client_step.addFileArg(b.path(protocolDir)); + raylib.addIncludePath(client_step.addOutputFileArg(clientHeader).dirname()); + + const private_step = b.addSystemCommand(&.{ "wayland-scanner", "private-code" }); + private_step.addFileArg(b.path(protocolDir)); + raylib.addIncludePath(private_step.addOutputFileArg(privateCode).dirname()); + + raylib.step.dependOn(&client_step.step); + raylib.step.dependOn(&private_step.step); } From d80febde7de940d74a37a47729a15ad29b40cafb Mon Sep 17 00:00:00 2001 From: bohonghuang <1281299809@qq.com> Date: Tue, 23 Apr 2024 20:22:29 +0800 Subject: [PATCH 305/790] [rlgl] Implement vertex normals for RLGL immediate drawing mode (#3866) * Fix several non-functional `target_compile_definitions` * Avoid hardcoding the default vertex attribute locations * Implement functional `rlNormal3f` * Add normal definitions for `DrawCube` * Update the basic lighting example to use `DrawCube` and `DrawPlane` --- cmake/CompileDefinitions.cmake | 19 +- examples/shaders/shaders_basic_lighting.c | 18 +- src/config.h | 20 +- src/rlgl.h | 298 ++++++++++++++++++---- src/rmodels.c | 50 ++-- 5 files changed, 303 insertions(+), 102 deletions(-) diff --git a/cmake/CompileDefinitions.cmake b/cmake/CompileDefinitions.cmake index 68c53d7a1..cc8324c4b 100644 --- a/cmake/CompileDefinitions.cmake +++ b/cmake/CompileDefinitions.cmake @@ -99,12 +99,19 @@ if (${CUSTOMIZE_BUILD}) target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_NEAR=0.01") target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_FAR=1000.0") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_POSITION=\"vertexPosition\"") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD=\"vertexTexCoord\"") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_NORMAL=\"vertexNormal\"") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_COLOR=\"vertexColor\"") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TANGENT=\"vertexTangent\"") - target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2=\"vertexTexCoord2\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION=0") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD=1") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL=2") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR=3") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT=4") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2=5") + + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION=\"vertexPosition\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD=\"vertexTexCoord\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL=\"vertexNormal\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR=\"vertexColor\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT=\"vertexTangent\"") + target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2=\"vertexTexCoord2\"") target_compile_definitions("raylib" PUBLIC "MAX_TEXT_BUFFER_LENGTH=1024") target_compile_definitions("raylib" PUBLIC "MAX_TEXT_UNICODE_CHARS=512") diff --git a/examples/shaders/shaders_basic_lighting.c b/examples/shaders/shaders_basic_lighting.c index 5b567f651..77fedfeb9 100644 --- a/examples/shaders/shaders_basic_lighting.c +++ b/examples/shaders/shaders_basic_lighting.c @@ -52,10 +52,6 @@ int main(void) camera.fovy = 45.0f; // Camera field-of-view Y camera.projection = CAMERA_PERSPECTIVE; // Camera projection type - // Load plane model from a generated mesh - Model model = LoadModelFromMesh(GenMeshPlane(10.0f, 10.0f, 3, 3)); - Model cube = LoadModelFromMesh(GenMeshCube(2.0f, 4.0f, 2.0f)); - // Load basic lighting shader Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/lighting.vs", GLSL_VERSION), TextFormat("resources/shaders/glsl%i/lighting.fs", GLSL_VERSION)); @@ -69,10 +65,6 @@ int main(void) int ambientLoc = GetShaderLocation(shader, "ambient"); SetShaderValue(shader, ambientLoc, (float[4]){ 0.1f, 0.1f, 0.1f, 1.0f }, SHADER_UNIFORM_VEC4); - // Assign out lighting shader to model - model.materials[0].shader = shader; - cube.materials[0].shader = shader; - // Create lights Light lights[MAX_LIGHTS] = { 0 }; lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, -2 }, Vector3Zero(), YELLOW, shader); @@ -112,8 +104,12 @@ int main(void) BeginMode3D(camera); - DrawModel(model, Vector3Zero(), 1.0f, WHITE); - DrawModel(cube, Vector3Zero(), 1.0f, WHITE); + BeginShaderMode(shader); + + DrawPlane(Vector3Zero(), (Vector2) { 10.0, 10.0 }, WHITE); + DrawCube(Vector3Zero(), 2.0, 4.0, 2.0, WHITE); + + EndShaderMode(); // Draw spheres to show where the lights are for (int i = 0; i < MAX_LIGHTS; i++) @@ -136,8 +132,6 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadModel(model); // Unload the model - UnloadModel(cube); // Unload the model UnloadShader(shader); // Unload shader CloseWindow(); // Close window and OpenGL context diff --git a/src/config.h b/src/config.h index 6d8169ba6..1fe21454f 100644 --- a/src/config.h +++ b/src/config.h @@ -112,14 +112,22 @@ #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance +// Default shader vertex attribute locations +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 + // Default shader vertex attribute names to set location points // NOTE: When a new shader is loaded, the following locations are tried to be set for convenience -#define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -#define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -#define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -#define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 +#define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +#define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +#define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix diff --git a/src/rlgl.h b/src/rlgl.h index a645aa038..1787d97a8 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -62,12 +62,12 @@ * When loading a shader, the following vertex attributes and uniform * location names are tried to be set automatically: * -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix * #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix @@ -349,6 +349,7 @@ typedef struct rlVertexBuffer { 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 *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) @@ -357,7 +358,7 @@ typedef struct rlVertexBuffer { unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) #endif unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[4]; // OpenGL Vertex Buffer Objects id (4 types of vertex data) + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) } rlVertexBuffer; // Draw call type @@ -930,24 +931,44 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif #endif +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif + // Default shader vertex attribute names to set location points #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT #endif #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 #endif #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP @@ -1092,8 +1113,15 @@ static const char *rlGetCompressedFormatName(int format); // Get compressed form static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) // Auxiliar matrix math functions +typedef struct rl_float16 { + float v[16]; +} rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix static Matrix rlMatrixIdentity(void); // Get identity matrix static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix //---------------------------------------------------------------------------------- // Module Functions Definition - Matrix operations @@ -1456,7 +1484,10 @@ void rlVertex3f(float x, float y, float z) RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - // WARNING: By default rlVertexBuffer struct does not store normals + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; // Add current color RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; @@ -1492,9 +1523,26 @@ void rlTexCoord2f(float x, float y) // NOTE: Normals limited to TRIANGLES only? void rlNormal3f(float x, float y, float z) { - RLGL.State.normalx = x; - RLGL.State.normaly = y; - RLGL.State.normalz = z; + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f / length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; } // Define one vertex (color) @@ -2163,7 +2211,10 @@ void rlglInit(int width, int height) RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; RLGL.currentBatch = &RLGL.defaultBatch; // Init stack matrices (emulating OpenGL 1.1) @@ -2608,6 +2659,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad #if defined(GRAPHICS_API_OPENGL_33) batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) @@ -2618,6 +2670,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; int k = 0; @@ -2667,16 +2720,23 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - // Vertex color buffer (shader-location = 3) + // Vertex normal buffer (shader-location = 2) glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); // Fill index buffer - glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); #if defined(GRAPHICS_API_OPENGL_33) glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); #endif @@ -2731,10 +2791,10 @@ void rlUnloadRenderBatch(rlRenderBatch batch) if (RLGL.ExtSupported.vao) { glBindVertexArray(batch.vertexBuffer[i].vaoId); - glDisableVertexAttribArray(0); - glDisableVertexAttribArray(1); - glDisableVertexAttribArray(2); - glDisableVertexAttribArray(3); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); glBindVertexArray(0); } @@ -2743,6 +2803,7 @@ void rlUnloadRenderBatch(rlRenderBatch batch) glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); // Delete VAOs from GPU (VRAM) if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); @@ -2750,6 +2811,7 @@ void rlUnloadRenderBatch(rlRenderBatch batch) // Free vertex arrays memory from CPU (RAM) RL_FREE(batch.vertexBuffer[i].vertices); RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); RL_FREE(batch.vertexBuffer[i].colors); RL_FREE(batch.vertexBuffer[i].indices); } @@ -2784,8 +2846,13 @@ void rlDrawRenderBatch(rlRenderBatch *batch) glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer - // Colors buffer + // Normals buffer glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer @@ -2838,13 +2905,30 @@ void rlDrawRenderBatch(rlRenderBatch *batch) // Create modelview-projection matrix and upload to shader Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); - float matMVPfloat[16] = { - matMVP.m0, matMVP.m1, matMVP.m2, matMVP.m3, - matMVP.m4, matMVP.m5, matMVP.m6, matMVP.m7, - matMVP.m8, matMVP.m9, matMVP.m10, matMVP.m11, - matMVP.m12, matMVP.m13, matMVP.m14, matMVP.m15 - }; - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, matMVPfloat); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix and rlPopMatrix. + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); else @@ -2859,12 +2943,17 @@ void rlDrawRenderBatch(rlRenderBatch *batch) glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - // Bind vertex attrib: color (shader-location = 3) + // Bind vertex attrib: normal (shader-location = 2) glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); } // Setup some default shader values @@ -4014,12 +4103,12 @@ unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) glAttachShader(program, fShaderId); // NOTE: Default attribute shader locations must be Bound before linking - glBindAttribLocation(program, 0, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(program, 1, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(program, 2, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(program, 3, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(program, 4, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(program, 5, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); // NOTE: If some attrib name is no found on the shader, it locations becomes -1 @@ -4482,10 +4571,10 @@ void rlLoadDrawQuad(void) glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); // Bind vertex attributes (position, texcoords) - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords // Draw quad glBindVertexArray(quadVAO); @@ -4556,12 +4645,12 @@ void rlLoadDrawCube(void) // Bind vertex attributes (position, normals, texcoords) glBindVertexArray(cubeVAO); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals - glEnableVertexAttribArray(2); - glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); @@ -4709,14 +4798,14 @@ static void rlLoadShaderDefault(void) TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); // Set default shader locations: attributes locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexPosition"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexTexCoord"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexColor"); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); // Set default shader locations: uniform locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, "mvp"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "colDiffuse"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "texture0"); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); } else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); } @@ -4868,6 +4957,31 @@ static int rlGetPixelDataSize(int width, int height, int format) // Auxiliar math functions +// Get float array of matrix data +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + // Get identity matrix static Matrix rlMatrixIdentity(void) { @@ -4907,4 +5021,76 @@ static Matrix rlMatrixMultiply(Matrix left, Matrix right) return result; } +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + #endif // RLGL_IMPLEMENTATION diff --git a/src/rmodels.c b/src/rmodels.c index c50c878bf..293aee9b1 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -269,6 +269,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlColor4ub(color.r, color.g, color.b, color.a); // Front face + rlNormal3f(0.0f, 0.0f, 1.0f); rlVertex3f(x - width/2, y - height/2, z + length/2); // Bottom Left rlVertex3f(x + width/2, y - height/2, z + length/2); // Bottom Right rlVertex3f(x - width/2, y + height/2, z + length/2); // Top Left @@ -278,6 +279,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlVertex3f(x + width/2, y - height/2, z + length/2); // Bottom Right // Back face + rlNormal3f(0.0f, 0.0f, -1.0f); rlVertex3f(x - width/2, y - height/2, z - length/2); // Bottom Left rlVertex3f(x - width/2, y + height/2, z - length/2); // Top Left rlVertex3f(x + width/2, y - height/2, z - length/2); // Bottom Right @@ -287,6 +289,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlVertex3f(x - width/2, y + height/2, z - length/2); // Top Left // Top face + rlNormal3f(0.0f, 1.0f, 0.0f); rlVertex3f(x - width/2, y + height/2, z - length/2); // Top Left rlVertex3f(x - width/2, y + height/2, z + length/2); // Bottom Left rlVertex3f(x + width/2, y + height/2, z + length/2); // Bottom Right @@ -296,6 +299,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlVertex3f(x + width/2, y + height/2, z + length/2); // Bottom Right // Bottom face + rlNormal3f(0.0f, -1.0f, 0.0f); rlVertex3f(x - width/2, y - height/2, z - length/2); // Top Left rlVertex3f(x + width/2, y - height/2, z + length/2); // Bottom Right rlVertex3f(x - width/2, y - height/2, z + length/2); // Bottom Left @@ -305,6 +309,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlVertex3f(x - width/2, y - height/2, z - length/2); // Top Left // Right face + rlNormal3f(1.0f, 0.0f, 0.0f); rlVertex3f(x + width/2, y - height/2, z - length/2); // Bottom Right rlVertex3f(x + width/2, y + height/2, z - length/2); // Top Right rlVertex3f(x + width/2, y + height/2, z + length/2); // Top Left @@ -314,6 +319,7 @@ void DrawCube(Vector3 position, float width, float height, float length, Color c rlVertex3f(x + width/2, y + height/2, z + length/2); // Top Left // Left face + rlNormal3f(-1.0f, 0.0f, 0.0f); rlVertex3f(x - width/2, y - height/2, z - length/2); // Bottom Right rlVertex3f(x - width/2, y + height/2, z + length/2); // Top Left rlVertex3f(x - width/2, y + height/2, z - length/2); // Top Right @@ -1208,13 +1214,13 @@ void UploadMesh(Mesh *mesh, bool dynamic) // Enable vertex attributes: position (shader-location = 0) void *vertices = (mesh->animVertices != NULL)? mesh->animVertices : mesh->vertices; mesh->vboId[0] = rlLoadVertexBuffer(vertices, mesh->vertexCount*3*sizeof(float), dynamic); - rlSetVertexAttribute(0, 3, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(0); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); // Enable vertex attributes: texcoords (shader-location = 1) mesh->vboId[1] = rlLoadVertexBuffer(mesh->texcoords, mesh->vertexCount*2*sizeof(float), dynamic); - rlSetVertexAttribute(1, 2, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(1); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); // WARNING: When setting default vertex attribute values, the values for each generic vertex attribute // is part of current state, and it is maintained even if a different program object is used @@ -1224,64 +1230,64 @@ void UploadMesh(Mesh *mesh, bool dynamic) // Enable vertex attributes: normals (shader-location = 2) void *normals = (mesh->animNormals != NULL)? mesh->animNormals : mesh->normals; mesh->vboId[2] = rlLoadVertexBuffer(normals, mesh->vertexCount*3*sizeof(float), dynamic); - rlSetVertexAttribute(2, 3, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(2); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); } else { // Default vertex attribute: normal // WARNING: Default value provided to shader if location available float value[3] = { 1.0f, 1.0f, 1.0f }; - rlSetVertexAttributeDefault(2, value, SHADER_ATTRIB_VEC3, 3); - rlDisableVertexAttribute(2); + rlSetVertexAttributeDefault(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, value, SHADER_ATTRIB_VEC3, 3); + rlDisableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); } if (mesh->colors != NULL) { // Enable vertex attribute: color (shader-location = 3) mesh->vboId[3] = rlLoadVertexBuffer(mesh->colors, mesh->vertexCount*4*sizeof(unsigned char), dynamic); - rlSetVertexAttribute(3, 4, RL_UNSIGNED_BYTE, 1, 0, 0); - rlEnableVertexAttribute(3); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, 4, RL_UNSIGNED_BYTE, 1, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); } else { // Default vertex attribute: color // WARNING: Default value provided to shader if location available float value[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; // WHITE - rlSetVertexAttributeDefault(3, value, SHADER_ATTRIB_VEC4, 4); - rlDisableVertexAttribute(3); + rlSetVertexAttributeDefault(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, value, SHADER_ATTRIB_VEC4, 4); + rlDisableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); } if (mesh->tangents != NULL) { // Enable vertex attribute: tangent (shader-location = 4) mesh->vboId[4] = rlLoadVertexBuffer(mesh->tangents, mesh->vertexCount*4*sizeof(float), dynamic); - rlSetVertexAttribute(4, 4, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(4); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, 4, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT); } else { // Default vertex attribute: tangent // WARNING: Default value provided to shader if location available float value[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; - rlSetVertexAttributeDefault(4, value, SHADER_ATTRIB_VEC4, 4); - rlDisableVertexAttribute(4); + rlSetVertexAttributeDefault(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, value, SHADER_ATTRIB_VEC4, 4); + rlDisableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT); } if (mesh->texcoords2 != NULL) { // Enable vertex attribute: texcoord2 (shader-location = 5) mesh->vboId[5] = rlLoadVertexBuffer(mesh->texcoords2, mesh->vertexCount*2*sizeof(float), dynamic); - rlSetVertexAttribute(5, 2, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(5); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, 2, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2); } else { // Default vertex attribute: texcoord2 // WARNING: Default value provided to shader if location available float value[2] = { 0.0f, 0.0f }; - rlSetVertexAttributeDefault(5, value, SHADER_ATTRIB_VEC2, 2); - rlDisableVertexAttribute(5); + rlSetVertexAttributeDefault(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, value, SHADER_ATTRIB_VEC2, 2); + rlDisableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2); } if (mesh->indices != NULL) @@ -3504,8 +3510,8 @@ void GenMeshTangents(Mesh *mesh) } rlEnableVertexArray(mesh->vaoId); - rlSetVertexAttribute(4, 4, RL_FLOAT, 0, 0, 0); - rlEnableVertexAttribute(4); + rlSetVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, 4, RL_FLOAT, 0, 0, 0); + rlEnableVertexAttribute(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT); rlDisableVertexArray(); } From 4b0e25d3af79ce4c5cd94e8279473764d969cca3 Mon Sep 17 00:00:00 2001 From: KotzaBoss Date: Tue, 23 Apr 2024 14:24:37 +0200 Subject: [PATCH 306/790] Add rlCullDistance variables/getters and rlSetClipPlanes function (#3912) The `RL_CULL_DISTANCE_` definition remains as the initial value of the variables. Basic usage can be: ```c #include #include rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, MY_CULL_DISTANCE_FAR); if (must_reset_clip_planes) rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); ``` --- examples/models/models_skybox.c | 2 +- src/rcore.c | 14 +++++++------- src/rlgl.h | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index 1b8aad9a9..e0e08f3a1 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -208,7 +208,7 @@ static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int s rlEnableShader(shader.id); // Define projection matrix and send it to shader - Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, rlGetCullDistanceNear(), rlGetCullDistanceFar()); rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], matFboProjection); // Define view matrix for every side of the cubemap diff --git a/src/rcore.c b/src/rcore.c index a68067fe8..29885c397 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -992,10 +992,10 @@ void BeginMode3D(Camera camera) if (camera.projection == CAMERA_PERSPECTIVE) { // Setup perspective projection - double top = RL_CULL_DISTANCE_NEAR*tan(camera.fovy*0.5*DEG2RAD); + double top = rlGetCullDistanceNear()*tan(camera.fovy*0.5*DEG2RAD); double right = top*aspect; - rlFrustum(-right, right, -top, top, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + rlFrustum(-right, right, -top, top, rlGetCullDistanceNear(), rlGetCullDistanceFar()); } else if (camera.projection == CAMERA_ORTHOGRAPHIC) { @@ -1003,7 +1003,7 @@ void BeginMode3D(Camera camera) double top = camera.fovy/2.0; double right = top*aspect; - rlOrtho(-right, right, -top,top, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + rlOrtho(-right, right, -top,top, rlGetCullDistanceNear(), rlGetCullDistanceFar()); } rlMatrixMode(RL_MODELVIEW); // Switch back to modelview matrix @@ -1207,7 +1207,7 @@ VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device) // Compute camera projection matrices float projOffset = 4.0f*lensShift; // Scaled to projection space coordinates [-1..1] - Matrix proj = MatrixPerspective(fovy, aspect, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + Matrix proj = MatrixPerspective(fovy, aspect, rlGetCullDistanceNear(), rlGetCullDistanceFar()); config.projection[0] = MatrixMultiply(proj, MatrixTranslate(projOffset, 0.0f, 0.0f)); config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f)); @@ -1446,7 +1446,7 @@ Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height if (camera.projection == CAMERA_PERSPECTIVE) { // Calculate projection matrix from perspective - matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)width/(double)height), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)width/(double)height), rlGetCullDistanceNear(), rlGetCullDistanceFar()); } else if (camera.projection == CAMERA_ORTHOGRAPHIC) { @@ -1533,7 +1533,7 @@ Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int heigh if (camera.projection == CAMERA_PERSPECTIVE) { // Calculate projection matrix from perspective - matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)width/(double)height), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)width/(double)height), rlGetCullDistanceNear(), rlGetCullDistanceFar()); } else if (camera.projection == CAMERA_ORTHOGRAPHIC) { @@ -1542,7 +1542,7 @@ Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int heigh double right = top*aspect; // Calculate projection matrix from orthographic - matProj = MatrixOrtho(-right, right, -top, top, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + matProj = MatrixOrtho(-right, right, -top, top, rlGetCullDistanceNear(), rlGetCullDistanceFar()); } // Calculate view matrix from camera look at (and transpose it) diff --git a/src/rlgl.h b/src/rlgl.h index 1787d97a8..137dcd20f 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -559,6 +559,10 @@ typedef enum { extern "C" { // Prevents name mangling of functions #endif +RLAPI void rlSetClipPlanes(double near, double far); +RLAPI double rlGetCullDistanceNear(); +RLAPI double rlGetCullDistanceFar(); + RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed RLAPI void rlPushMatrix(void); // Push the current matrix to stack RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack @@ -1083,6 +1087,10 @@ typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- + +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) static rlglData RLGL = { 0 }; #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 @@ -1127,6 +1135,22 @@ static Matrix rlMatrixInvert(Matrix mat); // Invert provided m // Module Functions Definition - Matrix operations //---------------------------------------------------------------------------------- +void rlSetClipPlanes(double near, double far) +{ + rlCullDistanceNear = near; + rlCullDistanceFar = far; +} + +double rlGetCullDistanceFar() +{ + return rlCullDistanceFar; +} + +double rlGetCullDistanceNear() +{ + return rlCullDistanceNear; +} + #if defined(GRAPHICS_API_OPENGL_11) // Fallback to OpenGL 1.1 function calls //--------------------------------------- From f15455552da353dfb7055b6fa020ba73d71de88e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 23 Apr 2024 19:38:45 +0200 Subject: [PATCH 307/790] Review formatting --- src/rlgl.h | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 137dcd20f..9477558c8 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -559,10 +559,6 @@ typedef enum { extern "C" { // Prevents name mangling of functions #endif -RLAPI void rlSetClipPlanes(double near, double far); -RLAPI double rlGetCullDistanceNear(); -RLAPI double rlGetCullDistanceFar(); - RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed RLAPI void rlPushMatrix(void); // Push the current matrix to stack RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack @@ -574,6 +570,9 @@ RLAPI void rlMultMatrixf(const float *matf); // Multiply the current RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double near, double far); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(); // Get cull plane distance far //------------------------------------------------------------------------------------ // Functions Declaration - Vertex level operations @@ -1087,7 +1086,6 @@ typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- - static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; @@ -1135,22 +1133,6 @@ static Matrix rlMatrixInvert(Matrix mat); // Invert provided m // Module Functions Definition - Matrix operations //---------------------------------------------------------------------------------- -void rlSetClipPlanes(double near, double far) -{ - rlCullDistanceNear = near; - rlCullDistanceFar = far; -} - -double rlGetCullDistanceFar() -{ - return rlCullDistanceFar; -} - -double rlGetCullDistanceNear() -{ - return rlCullDistanceNear; -} - #if defined(GRAPHICS_API_OPENGL_11) // Fallback to OpenGL 1.1 function calls //--------------------------------------- @@ -1388,6 +1370,25 @@ void rlViewport(int x, int y, int width, int height) glViewport(x, y, width, height); } +// Set clip planes distances +void rlSetClipPlanes(double near, double far) +{ + rlCullDistanceNear = near; + rlCullDistanceFar = far; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + //---------------------------------------------------------------------------------- // Module Functions Definition - Vertex level operations //---------------------------------------------------------------------------------- From 2e774432090db1be697d2e4e5f49ea91ca038cd3 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 23 Apr 2024 22:55:51 +0200 Subject: [PATCH 308/790] WARNING: Fix breaking issue (introduced some days ago) --- src/rcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index 29885c397..b229589f7 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1964,7 +1964,7 @@ const char *GetFileName(const char *filePath) if (filePath != NULL) fileName = strprbrk(filePath, "\\/"); - if (fileName != NULL) return filePath; + if (fileName == NULL) return filePath; return fileName + 1; } From e47ebec66134800e734710038ea4e5f070f3ef06 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 24 Apr 2024 17:02:03 +0200 Subject: [PATCH 309/790] FIX: Issue with texcoords loading for glTF --- src/rmodels.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 293aee9b1..5efc32283 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5121,14 +5121,6 @@ static Model LoadGLTF(const char *fileName) { // Support up to 2 texture coordinates attributes float *texcoordPtr = NULL; - int index = data->meshes[i].primitives[p].attributes[j].index; - if (index == 0) texcoordPtr = model.meshes[meshIndex].texcoords; - else if (index == 1) texcoordPtr = model.meshes[meshIndex].texcoords2; - else - { - TRACELOG(LOG_WARNING, "MODEL: [%s] No more than 2 texture coordinates attributes supported", fileName); - continue; - } cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; @@ -5137,7 +5129,7 @@ static Model LoadGLTF(const char *fileName) if (attribute->component_type == cgltf_component_type_r_32f) // vec2, float { // Init raylib mesh texcoords to copy glTF attribute data - texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = (float *)RL_MALLOC(attribute->count*2*sizeof(float)); // Load 3 components of float data type into mesh.texcoords LOAD_ATTRIBUTE(attribute, 2, float, texcoordPtr) @@ -5145,10 +5137,10 @@ static Model LoadGLTF(const char *fileName) else if (attribute->component_type == cgltf_component_type_r_8u) // vec2, u8n { // Init raylib mesh texcoords to copy glTF attribute data - texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = (float *)RL_MALLOC(attribute->count*2*sizeof(float)); // Load data into a temp buffer to be converted to raylib data type - unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned char)); + unsigned char *temp = (unsigned char *)RL_MALLOC(attribute->count*2*sizeof(unsigned char)); LOAD_ATTRIBUTE(attribute, 2, unsigned char, temp); // Convert data to raylib texcoord data type (float) @@ -5159,10 +5151,10 @@ static Model LoadGLTF(const char *fileName) else if (attribute->component_type == cgltf_component_type_r_16u) // vec2, u16n { // Init raylib mesh texcoords to copy glTF attribute data - texcoordPtr = RL_MALLOC(attribute->count*2*sizeof(float)); + texcoordPtr = (float *)RL_MALLOC(attribute->count*2*sizeof(float)); // Load data into a temp buffer to be converted to raylib data type - unsigned short *temp = RL_MALLOC(attribute->count*2*sizeof(unsigned short)); + unsigned short *temp = (unsigned short *)RL_MALLOC(attribute->count*2*sizeof(unsigned short)); LOAD_ATTRIBUTE(attribute, 2, unsigned short, temp); // Convert data to raylib texcoord data type (float) @@ -5173,6 +5165,15 @@ static Model LoadGLTF(const char *fileName) else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported", fileName); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); + + int index = data->meshes[i].primitives[p].attributes[j].index; + if (index == 0) model.meshes[meshIndex].texcoords = texcoordPtr; + else if (index == 1) model.meshes[meshIndex].texcoords2 = texcoordPtr; + else + { + TRACELOG(LOG_WARNING, "MODEL: [%s] No more than 2 texture coordinates attributes supported", fileName); + if (texcoordPtr != NULL) RL_FREE(texcoordPtr); + } } else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_n, vec3/vec4, float/u8n/u16n { From 10e702facd84f7558947b4d6780f1b758405ab13 Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi <65001595+lima-limon-inc@users.noreply.github.com> Date: Sun, 28 Apr 2024 15:28:19 -0300 Subject: [PATCH 310/790] FIX: Added CAMERA_CUSTOM check in `UpdateCamera(Camera *camera, int mode)` (#3938) Signed-off-by: Tomas Fabrizio Orsi --- src/rcamera.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rcamera.h b/src/rcamera.h index 8e513ef1c..9c19556c4 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -444,7 +444,8 @@ void UpdateCamera(Camera *camera, int mode) bool lockView = ((mode == CAMERA_FREE) || (mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON) || (mode == CAMERA_ORBITAL)); bool rotateUp = false; - if (mode == CAMERA_ORBITAL) + if (mode == CAMERA_CUSTOM) {} + else if (mode == CAMERA_ORBITAL) { // Orbital can just orbit Matrix rotation = MatrixRotate(GetCameraUp(camera), CAMERA_ORBITAL_SPEED*GetFrameTime()); From f78721991f735a11b2d47faa014748f0f19d0883 Mon Sep 17 00:00:00 2001 From: OetkenPurveyorOfCode Date: Sun, 28 Apr 2024 20:29:45 +0200 Subject: [PATCH 311/790] Use builtin_clz for clang on windows (#3939) --- src/external/sinfl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/external/sinfl.h b/src/external/sinfl.h index 1f6bf6f02..3c7173777 100644 --- a/src/external/sinfl.h +++ b/src/external/sinfl.h @@ -171,7 +171,7 @@ extern int zsinflate(void *out, int cap, const void *in, int size); static int sinfl_bsr(unsigned n) { -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(__clang__) _BitScanReverse(&n, n); return n; #elif defined(__GNUC__) || defined(__clang__) From 80d318461f297c039e3edb5da80a7beee67fc979 Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi <65001595+lima-limon-inc@users.noreply.github.com> Date: Sun, 28 Apr 2024 17:39:28 -0300 Subject: [PATCH 312/790] Made comments on raylib.h match those present in rcamera.h (#3942) Signed-off-by: Tomas Fabrizio Orsi --- src/raylib.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index b9463228b..2fa60a058 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -913,11 +913,11 @@ typedef enum { // Camera system modes typedef enum { - CAMERA_CUSTOM = 0, // Custom camera - CAMERA_FREE, // Free camera - CAMERA_ORBITAL, // Orbital camera - CAMERA_FIRST_PERSON, // First person camera - CAMERA_THIRD_PERSON // Third person camera + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person } CameraMode; // Camera projection From 915dd95d88cb9fe7b47d3d48e61ffcc7bfafce40 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 28 Apr 2024 20:39:44 +0000 Subject: [PATCH 313/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 10 +++++----- parser/output/raylib_api.lua | 10 +++++----- parser/output/raylib_api.xml | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index c7caabfac..d81014e05 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -2957,27 +2957,27 @@ { "name": "CAMERA_CUSTOM", "value": 0, - "description": "Custom camera" + "description": "Camera custom, controlled by user (UpdateCamera() does nothing)" }, { "name": "CAMERA_FREE", "value": 1, - "description": "Free camera" + "description": "Camera free mode" }, { "name": "CAMERA_ORBITAL", "value": 2, - "description": "Orbital camera" + "description": "Camera orbital, around target, zoom supported" }, { "name": "CAMERA_FIRST_PERSON", "value": 3, - "description": "First person camera" + "description": "Camera first person" }, { "name": "CAMERA_THIRD_PERSON", "value": 4, - "description": "Third person camera" + "description": "Camera third person" } ] }, diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 607904bbc..105a20bbb 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -2957,27 +2957,27 @@ return { { name = "CAMERA_CUSTOM", value = 0, - description = "Custom camera" + description = "Camera custom, controlled by user (UpdateCamera() does nothing)" }, { name = "CAMERA_FREE", value = 1, - description = "Free camera" + description = "Camera free mode" }, { name = "CAMERA_ORBITAL", value = 2, - description = "Orbital camera" + description = "Camera orbital, around target, zoom supported" }, { name = "CAMERA_FIRST_PERSON", value = 3, - description = "First person camera" + description = "Camera first person" }, { name = "CAMERA_THIRD_PERSON", value = 4, - description = "Third person camera" + description = "Camera third person" } } }, diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 8183d5cf8..37786d2cf 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -627,11 +627,11 @@ - - - - - + + + + + From e0027eb767031bdf8f4fb688b6bf5a977c250c05 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 28 Apr 2024 22:59:35 +0200 Subject: [PATCH 314/790] REVIEWED: `DrawLine()` to avoid pixel rounding issues #3931 --- src/rshapes.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index 902019599..f13f4b019 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -178,8 +178,9 @@ void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color colo { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - rlVertex2f((float)startPosX, (float)startPosY); - rlVertex2f((float)endPosX, (float)endPosY); + // WARNING: Adding 0.5f offset to "center" point on selected pixel + rlVertex2f((float)startPosX + 0.5f, (float)startPosY + 0.5f); + rlVertex2f((float)endPosX + 0.5f, (float)endPosY + 0.5f); rlEnd(); } @@ -188,8 +189,9 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - rlVertex2f(startPos.x, startPos.y); - rlVertex2f(endPos.x, endPos.y); + // WARNING: Adding 0.5f offset to "center" point on selected pixel + rlVertex2f(startPos.x + 0.5f, startPos.y + 0.5f); + rlVertex2f(endPos.x + 0.5f, endPos.y + 0.5f); rlEnd(); } From b03c8ba945a06ed1ec3d6ed7c3185e1264909323 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 28 Apr 2024 23:07:21 +0200 Subject: [PATCH 315/790] WARNING: BREAKING: REDESIGN: `SetTextLineSpacing()` Redesigned function to only consider separation between the end of vertical size of one line and the beginning of next line --- examples/text/text_codepoints_loading.c | 2 +- examples/text/text_font_loading.c | 2 +- src/rtext.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/text/text_codepoints_loading.c b/examples/text/text_codepoints_loading.c index c69803c12..95a81dfc3 100644 --- a/examples/text/text_codepoints_loading.c +++ b/examples/text/text_codepoints_loading.c @@ -52,7 +52,7 @@ int main(void) // Set bilinear scale filter for better font scaling SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR); - SetTextLineSpacing(54); // Set line spacing for multiline text (when line breaks are included '\n') + SetTextLineSpacing(20); // Set line spacing for multiline text (when line breaks are included '\n') // Free codepoints, atlas has already been generated free(codepointsNoDups); diff --git a/examples/text/text_font_loading.c b/examples/text/text_font_loading.c index 2c8786c42..6b98a4e8a 100644 --- a/examples/text/text_font_loading.c +++ b/examples/text/text_font_loading.c @@ -47,7 +47,7 @@ int main(void) // NOTE: We define a font base size of 32 pixels tall and up-to 250 characters Font fontTtf = LoadFontEx("resources/pixantiqua.ttf", 32, 0, 250); - SetTextLineSpacing(48); // Set line spacing for multiline text (when line breaks are included '\n') + SetTextLineSpacing(16); // Set line spacing for multiline text (when line breaks are included '\n') bool useTtf = false; diff --git a/src/rtext.c b/src/rtext.c index 47f3e062a..3544ff8da 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -144,7 +144,7 @@ static Font LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode #if defined(SUPPORT_FILEFORMAT_BDF) static GlyphInfo *LoadFontDataBDF(const unsigned char *fileData, int dataSize, int *codepoints, int codepointCount, int *outFontSize); #endif -static int textLineSpacing = 15; // Text vertical line spacing in pixels +static int textLineSpacing = 2; // Text vertical line spacing in pixels (between lines) #if defined(SUPPORT_DEFAULT_FONT) extern void LoadFontDefault(void); @@ -1166,7 +1166,7 @@ void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, f if (codepoint == '\n') { // NOTE: Line spacing is a global variable, use SetTextLineSpacing() to setup - textOffsetY += textLineSpacing; + textOffsetY += (fontSize + textLineSpacing); textOffsetX = 0.0f; } else @@ -1237,7 +1237,7 @@ void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Ve if (codepoints[i] == '\n') { // NOTE: Line spacing is a global variable, use SetTextLineSpacing() to setup - textOffsetY += textLineSpacing; + textOffsetY += (fontSize + textLineSpacing); textOffsetX = 0.0f; } else @@ -1319,7 +1319,7 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing textWidth = 0; // NOTE: Line spacing is a global variable, use SetTextLineSpacing() to setup - textHeight += (float)textLineSpacing; + textHeight += (fontSize + textLineSpacing); } if (tempByteCounter < byteCounter) tempByteCounter = byteCounter; From 7246d798adeac4e0d8713cfdaf89fb9a19f71d69 Mon Sep 17 00:00:00 2001 From: UmgefallenesGlas <108078099+UmgefallenesGlas@users.noreply.github.com> Date: Tue, 30 Apr 2024 23:47:11 +0200 Subject: [PATCH 316/790] Changed one minor Comment (#3949) --- src/raylib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 2fa60a058..035f6f2bf 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -726,7 +726,7 @@ typedef enum { GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (one), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) From 27a015d022ecdf771ea64b23f495a3b66101e170 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 Apr 2024 21:47:28 +0000 Subject: [PATCH 317/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 2 +- parser/output/raylib_api.lua | 2 +- parser/output/raylib_api.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index d81014e05..d50085a4a 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -2254,7 +2254,7 @@ { "name": "GAMEPAD_BUTTON_RIGHT_TRIGGER_1", "value": 11, - "description": "Gamepad top/back trigger right (one), it could be a trailing button" + "description": "Gamepad top/back trigger right (first), it could be a trailing button" }, { "name": "GAMEPAD_BUTTON_RIGHT_TRIGGER_2", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 105a20bbb..ef8e1c51e 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -2254,7 +2254,7 @@ return { { name = "GAMEPAD_BUTTON_RIGHT_TRIGGER_1", value = 11, - description = "Gamepad top/back trigger right (one), it could be a trailing button" + description = "Gamepad top/back trigger right (first), it could be a trailing button" }, { name = "GAMEPAD_BUTTON_RIGHT_TRIGGER_2", diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 37786d2cf..e17c59d09 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -476,7 +476,7 @@ - + From 763129e96b0ae8a795f62d40d1b75736e4e6ae46 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 1 May 2024 18:12:57 +0200 Subject: [PATCH 318/790] Reviewed some warnings --- src/rmodels.c | 2 +- src/rshapes.c | 16 ++++++++-------- src/rtext.c | 4 ++-- src/rtextures.c | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 5efc32283..27c19a3c7 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5549,7 +5549,7 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_ } } - float duration = fmax((tend - tstart), EPSILON); + float duration = fmaxf((tend - tstart), EPSILON); float t = (time - tstart)/duration; t = (t < 0.0f)? 0.0f : t; t = (t > 1.0f)? 1.0f : t; diff --git a/src/rshapes.c b/src/rshapes.c index f13f4b019..80df64e2d 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -815,17 +815,17 @@ void DrawRectangleLines(int posX, int posY, int width, int height, Color color) { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - rlVertex2f(posX, posY); - rlVertex2f(posX + width, posY + 1); + rlVertex2f((float)posX, (float)posY); + rlVertex2f((float)posX + (float)width, (float)posY + 1); - rlVertex2f(posX + width, posY + 1); - rlVertex2f(posX + width, posY + height); + rlVertex2f((float)posX + (float)width, (float)posY + 1); + rlVertex2f((float)posX + (float)width, (float)posY + (float)height); - rlVertex2f(posX + width, posY + height); - rlVertex2f(posX + 1, posY + height); + rlVertex2f((float)posX + (float)width, (float)posY + (float)height); + rlVertex2f((float)posX + 1, (float)posY + (float)height); - rlVertex2f(posX + 1, posY + height); - rlVertex2f(posX + 1, posY + 1); + rlVertex2f((float)posX + 1, (float)posY + (float)height); + rlVertex2f((float)posX + 1, (float)posY + 1); rlEnd(); } diff --git a/src/rtext.c b/src/rtext.c index 3544ff8da..b5ba17e3a 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1151,7 +1151,7 @@ void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, f int size = TextLength(text); // Total size in bytes of the text, scanned by codepoints in loop - int textOffsetY = 0; // Offset between lines (on linebreak '\n') + float textOffsetY = 0; // Offset between lines (on linebreak '\n') float textOffsetX = 0.0f; // Offset X to next character to draw float scaleFactor = fontSize/font.baseSize; // Character quad scaling factor @@ -1225,7 +1225,7 @@ void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSiz // Draw multiple character (codepoints) void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint) { - int textOffsetY = 0; // Offset between lines (on linebreak '\n') + float textOffsetY = 0; // Offset between lines (on linebreak '\n') float textOffsetX = 0.0f; // Offset X to next character to draw float scaleFactor = fontSize/font.baseSize; // Character quad scaling factor diff --git a/src/rtextures.c b/src/rtextures.c index 0658a6807..47ff83f5c 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -314,7 +314,7 @@ Image LoadImageRaw(const char *fileName, int width, int height, int format, int if (fileData != NULL) { unsigned char *dataPtr = fileData; - unsigned int size = GetPixelDataSize(width, height, format); + int size = GetPixelDataSize(width, height, format); if (size <= dataSize) // Security check { @@ -697,8 +697,8 @@ Image LoadImageFromScreen(void) Vector2 scale = GetWindowScaleDPI(); Image image = { 0 }; - image.width = GetScreenWidth()*scale.x; - image.height = GetScreenHeight()*scale.y; + image.width = (int)(GetScreenWidth()*scale.x); + image.height = (int)(GetScreenHeight()*scale.y); image.mipmaps = 1; image.format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; image.data = rlReadScreenPixels(image.width, image.height); From c21edadab0e24d9340508329b454abe05227cdec Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 1 May 2024 18:39:38 +0200 Subject: [PATCH 319/790] Update rprand.h --- src/external/rprand.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/external/rprand.h b/src/external/rprand.h index 7e27d980f..8d77bf757 100644 --- a/src/external/rprand.h +++ b/src/external/rprand.h @@ -202,7 +202,7 @@ int *rprand_load_sequence(unsigned int count, int min, int max) { value = ((unsigned int)rprand_xoshiro()%(abs(max - min) + 1)) + min; - for (int j = 0; j < i; j++) + for (unsigned int j = 0; j < i; j++) { if (sequence[j] == value) { From 33b32ca53a7817a9cfdb1840a8ab75fa7cb47723 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 1 May 2024 18:41:28 +0200 Subject: [PATCH 320/790] Default shader attrib locations need to be exposed They need to be exposed on `rlgl.h` header section (not implementation section) because with some specific use cases (custom config.h, rmodels module enabled), building fails otherwise. --- src/rlgl.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 9477558c8..ae53b4efb 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -322,6 +322,26 @@ #define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER #define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -934,26 +954,6 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif #endif -// Default shader vertex attribute locations -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 -#endif - // Default shader vertex attribute names to set location points #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION From f1007554a0a8145060797c0aa8169bdaf2c1c6b8 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 1 May 2024 22:58:33 +0200 Subject: [PATCH 321/790] Set default init values for random #3954 --- src/external/rprand.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/external/rprand.h b/src/external/rprand.h index 8d77bf757..ded6708e5 100644 --- a/src/external/rprand.h +++ b/src/external/rprand.h @@ -147,8 +147,13 @@ RPRANDAPI void rprand_unload_sequence(int *sequence); // Unload pseudo //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -static uint64_t rprand_seed = 0; // SplitMix64 actual seed -static uint32_t rprand_state[4] = { 0 }; // Xoshiro128** state, nitialized by SplitMix64 +static uint64_t rprand_seed = 0xAABBCCDD; // SplitMix64 default seed (aligned to rprand_state) +static uint32_t rprand_state[4] = { // Xoshiro128** state, initialized by SplitMix64 + 0x96ea83c1, + 0x218b21e5, + 0xaa91febd, + 0x976414d4 +}; //---------------------------------------------------------------------------------- // Module internal functions declaration From 34d00d52177230cb3434240c263a0529aa0b4891 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 5 May 2024 19:46:31 +0200 Subject: [PATCH 322/790] Minor formatting tweaks --- .../resources/shaders/glsl100/palette_switch.fs | 16 +++++++++------- .../resources/shaders/glsl330/palette_switch.fs | 13 ++++++++----- src/external/rl_gputex.h | 4 ++-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/examples/shaders/resources/shaders/glsl100/palette_switch.fs b/examples/shaders/resources/shaders/glsl100/palette_switch.fs index 25b496321..d8d696d4f 100644 --- a/examples/shaders/resources/shaders/glsl100/palette_switch.fs +++ b/examples/shaders/resources/shaders/glsl100/palette_switch.fs @@ -2,7 +2,7 @@ precision mediump float; -const int colors = 8; +const int MAX_INDEXED_COLORS = 8; // Input vertex attributes (from vertex shader) varying vec2 fragTexCoord; @@ -10,7 +10,8 @@ varying vec4 fragColor; // Input uniform values uniform sampler2D texture0; -uniform ivec3 palette[colors]; +uniform ivec3 palette[MAX_INDEXED_COLORS]; +//uniform sampler2D palette; // Alternative to ivec3, palette provided as a 256x1 texture void main() { @@ -18,13 +19,13 @@ void main() vec4 texelColor = texture2D(texture0, fragTexCoord)*fragColor; // Convert the (normalized) texel color RED component (GB would work, too) - // to the palette index by scaling up from [0, 1] to [0, 255]. + // to the palette index by scaling up from [0..1] to [0..255] int index = int(texelColor.r*255.0); - + ivec3 color = ivec3(0); // NOTE: On GLSL 100 we are not allowed to index a uniform array by a variable value, - // a constantmust be used, so this logic... + // a constant must be used, so this logic... if (index == 0) color = palette[0]; else if (index == 1) color = palette[1]; else if (index == 2) color = palette[2]; @@ -33,9 +34,10 @@ void main() else if (index == 5) color = palette[5]; else if (index == 6) color = palette[6]; else if (index == 7) color = palette[7]; + + //gl_FragColor = texture2D(palette, texelColor.xy); // Alternative to ivec3 // Calculate final fragment color. Note that the palette color components - // are defined in the range [0, 255] and need to be normalized to [0, 1] - // for OpenGL to work. + // are defined in the range [0..255] and need to be normalized to [0..1] gl_FragColor = vec4(float(color.x)/255.0, float(color.y)/255.0, float(color.z)/255.0, texelColor.a); } diff --git a/examples/shaders/resources/shaders/glsl330/palette_switch.fs b/examples/shaders/resources/shaders/glsl330/palette_switch.fs index 7c8a488cd..6a82529b1 100644 --- a/examples/shaders/resources/shaders/glsl330/palette_switch.fs +++ b/examples/shaders/resources/shaders/glsl330/palette_switch.fs @@ -1,6 +1,6 @@ #version 330 -const int colors = 8; +const int MAX_INDEXED_COLORS = 8; // Input fragment attributes (from fragment shader) in vec2 fragTexCoord; @@ -8,7 +8,8 @@ in vec4 fragColor; // Input uniform values uniform sampler2D texture0; -uniform ivec3 palette[colors]; +uniform ivec3 palette[MAX_INDEXED_COLORS]; +//uniform sampler2D palette; // Alternative to ivec3, palette provided as a 256x1 texture // Output fragment color out vec4 finalColor; @@ -16,15 +17,17 @@ out vec4 finalColor; void main() { // Texel color fetching from texture sampler + // NOTE: The texel is actually the a GRAYSCALE index color vec4 texelColor = texture(texture0, fragTexCoord)*fragColor; // Convert the (normalized) texel color RED component (GB would work, too) - // to the palette index by scaling up from [0, 1] to [0, 255]. + // to the palette index by scaling up from [0..1] to [0..255] int index = int(texelColor.r*255.0); ivec3 color = palette[index]; + + //finalColor = texture(palette, texelColor.xy); // Alternative to ivec3 // Calculate final fragment color. Note that the palette color components - // are defined in the range [0, 255] and need to be normalized to [0, 1] - // for OpenGL to work. + // are defined in the range [0..255] and need to be normalized to [0..1] finalColor = vec4(color/255.0, texelColor.a); } diff --git a/src/external/rl_gputex.h b/src/external/rl_gputex.h index 2cbe59636..c57730552 100644 --- a/src/external/rl_gputex.h +++ b/src/external/rl_gputex.h @@ -229,7 +229,7 @@ void *rl_load_dds_from_memory(const unsigned char *file_data, unsigned int file_ } } } - else if (header->ddspf.flags == 0x40 && header->ddspf.rgb_bit_count == 24) // DDS_RGB, no compressed + else if ((header->ddspf.flags == 0x40) && (header->ddspf.rgb_bit_count == 24)) // DDS_RGB, no compressed { int data_size = image_pixel_size*3*sizeof(unsigned char); image_data = RL_MALLOC(data_size); @@ -238,7 +238,7 @@ void *rl_load_dds_from_memory(const unsigned char *file_data, unsigned int file_ *format = PIXELFORMAT_UNCOMPRESSED_R8G8B8; } - else if (header->ddspf.flags == 0x41 && header->ddspf.rgb_bit_count == 32) // DDS_RGBA, no compressed + else if ((header->ddspf.flags == 0x41) && (header->ddspf.rgb_bit_count == 32)) // DDS_RGBA, no compressed { int data_size = image_pixel_size*4*sizeof(unsigned char); image_data = RL_MALLOC(data_size); From 23385231c6c5ed6e9ace97e7305d3b7002c62171 Mon Sep 17 00:00:00 2001 From: bohonghuang <1281299809@qq.com> Date: Mon, 6 May 2024 02:19:25 +0800 Subject: [PATCH 323/790] [rlgl] Fix incorrect matrix multiplication order in `rlMultMatrixf` (#3935) --- src/rlgl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rlgl.h b/src/rlgl.h index ae53b4efb..513dd3ed7 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1296,7 +1296,7 @@ void rlMultMatrixf(const float *matf) matf[2], matf[6], matf[10], matf[14], matf[3], matf[7], matf[11], matf[15] }; - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, mat); + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); } // Multiply the current matrix by a perspective matrix generated by parameters From 3d9aafed3b5d183f35a1e8060d0985475101f6db Mon Sep 17 00:00:00 2001 From: Christian Haas Date: Sun, 5 May 2024 20:22:58 +0200 Subject: [PATCH 324/790] [rcore_desktop] Fix 3693 initial window geometry (#3950) * Rework window placement and dimensions for multi-monitor setups; - fullscreen apps use primary monitor, exclusively - non-fullscreen apps come in two variants: a) pre-determined window size by user b) use-active-monitor dimensions by user specifying 0x0 Either way, the window shall be centred at the monitor where it was created This may have been the original intent, yet the primary monitor was used also for the second case, regardless where the window opened. * Clean up code, handle error, fix integer-overflow for centering windowed fullscreen --- src/platforms/rcore_desktop.c | 95 +++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 26 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index de289ca0a..f08774165 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1218,6 +1218,19 @@ void PollInputEvents(void) // Module Internal Functions Definition //---------------------------------------------------------------------------------- +static void SetDimensionsFromMonitor(GLFWmonitor *monitor) +{ + const GLFWvidmode *mode = glfwGetVideoMode(monitor); + + // Default display resolution to that of the current mode + CORE.Window.display.width = mode->width; + CORE.Window.display.height = mode->height; + + // Set screen width/height to the display width/height if they are 0 + if (CORE.Window.screen.width == 0) CORE.Window.screen.width = CORE.Window.display.width; + if (CORE.Window.screen.height == 0) CORE.Window.screen.height = CORE.Window.display.height; +} + // Initialize platform: graphics, inputs and more int InitPlatform(void) { @@ -1358,26 +1371,22 @@ int InitPlatform(void) // REF: https://github.com/raysan5/raylib/issues/1554 glfwSetJoystickCallback(NULL); - // Find monitor resolution - GLFWmonitor *monitor = glfwGetPrimaryMonitor(); - if (!monitor) - { - TRACELOG(LOG_WARNING, "GLFW: Failed to get primary monitor"); - return -1; - } - - const GLFWvidmode *mode = glfwGetVideoMode(monitor); - - CORE.Window.display.width = mode->width; - CORE.Window.display.height = mode->height; - - // Set screen width/height to the display width/height if they are 0 - if (CORE.Window.screen.width == 0) CORE.Window.screen.width = CORE.Window.display.width; - if (CORE.Window.screen.height == 0) CORE.Window.screen.height = CORE.Window.display.height; - + GLFWmonitor *monitor = NULL; if (CORE.Window.fullscreen) { - // Remember center for switchinging from fullscreen to window + // According to glfwCreateWindow(), if the user does not have a choice, fullscreen applications + // should default to the primary monitor. + + monitor = glfwGetPrimaryMonitor(); + if (!monitor) + { + TRACELOG(LOG_WARNING, "GLFW: Failed to get primary monitor"); + return -1; + } + + SetDimensionsFromMonitor(monitor); + + // Remember center for switching from fullscreen to window if ((CORE.Window.screen.height == CORE.Window.display.height) && (CORE.Window.screen.width == CORE.Window.display.width)) { // If screen width/height equal to the display, we can't calculate the window pos for toggling full-screened/windowed. @@ -1396,7 +1405,7 @@ int InitPlatform(void) // Obtain recommended CORE.Window.display.width/CORE.Window.display.height from a valid videomode for the monitor int count = 0; - const GLFWvidmode *modes = glfwGetVideoModes(glfwGetPrimaryMonitor(), &count); + const GLFWvidmode *modes = glfwGetVideoModes(monitor, &count); // Get closest video mode to desired CORE.Window.screen.width/CORE.Window.screen.height for (int i = 0; i < count; i++) @@ -1426,21 +1435,55 @@ int InitPlatform(void) // HighDPI monitors are properly considered in a following similar function: SetupViewport() SetupFramebuffer(CORE.Window.display.width, CORE.Window.display.height); - platform.handle = glfwCreateWindow(CORE.Window.display.width, CORE.Window.display.height, (CORE.Window.title != 0)? CORE.Window.title : " ", glfwGetPrimaryMonitor(), NULL); + platform.handle = glfwCreateWindow(CORE.Window.display.width, CORE.Window.display.height, (CORE.Window.title != 0)? CORE.Window.title : " ", monitor, NULL); // NOTE: Full-screen change, not working properly... //glfwSetWindowMonitor(platform.handle, glfwGetPrimaryMonitor(), 0, 0, CORE.Window.screen.width, CORE.Window.screen.height, GLFW_DONT_CARE); } else { - // If we are windowed fullscreen, ensures that window does not minimize when focus is lost - if ((CORE.Window.screen.height == CORE.Window.display.height) && (CORE.Window.screen.width == CORE.Window.display.width)) + // No-fullscreen window creation + bool wantWindowedFullscreen = (CORE.Window.screen.height == 0) && (CORE.Window.screen.width == 0); + + // If we are windowed fullscreen, ensures that window does not minimize when focus is lost. + // This hinting code will not work if the user already specified the correct monitor dimensions; + // at this point we don't know the monitor's dimensions. (Though, how did the user then?) + if (wantWindowedFullscreen) { glfwWindowHint(GLFW_AUTO_ICONIFY, 0); } - // No-fullscreen window creation - platform.handle = glfwCreateWindow(CORE.Window.screen.width, CORE.Window.screen.height, (CORE.Window.title != 0)? CORE.Window.title : " ", NULL, NULL); + // Default to at least one pixel in size, as creation with a zero dimension is not allowed. + int creationWidth = CORE.Window.screen.width != 0 ? CORE.Window.screen.width : 1; + int creationHeight = CORE.Window.screen.height != 0 ? CORE.Window.screen.height : 1; + + platform.handle = glfwCreateWindow(creationWidth, creationHeight, (CORE.Window.title != 0)? CORE.Window.title : " ", NULL, NULL); + + // After the window was created, determine the monitor that the window manager assigned. + // Derive display sizes, and, if possible, window size in case it was zero at beginning. + + int monitorCount = 0; + int monitorIndex = GetCurrentMonitor(); + GLFWmonitor **monitors = glfwGetMonitors(&monitorCount); + + if (monitorIndex < monitorCount) + { + monitor = monitors[monitorIndex]; + SetDimensionsFromMonitor(monitor); + + TRACELOG(LOG_INFO, "wantWindowed: %d, size: %dx%d", wantWindowedFullscreen, CORE.Window.screen.width, CORE.Window.screen.height); + if (wantWindowedFullscreen) + { + glfwSetWindowSize(platform.handle, CORE.Window.screen.width, CORE.Window.screen.height); + } + } + else + { + // The monitor for the window-manager-created window can not be determined, so it can not be centered. + glfwTerminate(); + TRACELOG(LOG_WARNING, "GLFW: Failed to determine Monitor to center Window"); + return -1; + } if (platform.handle) { @@ -1524,8 +1567,8 @@ int InitPlatform(void) int monitorHeight = 0; glfwGetMonitorWorkarea(monitor, &monitorX, &monitorY, &monitorWidth, &monitorHeight); - int posX = monitorX + (monitorWidth - CORE.Window.screen.width)/2; - int posY = monitorY + (monitorHeight - CORE.Window.screen.height)/2; + int posX = monitorX + (monitorWidth - (int)CORE.Window.screen.width)/2; + int posY = monitorY + (monitorHeight - (int)CORE.Window.screen.height)/2; if (posX < monitorX) posX = monitorX; if (posY < monitorY) posY = monitorY; SetWindowPosition(posX, posY); From f69ae583040060ece2e6e4f813e1408c8fd04900 Mon Sep 17 00:00:00 2001 From: MrScautHD <65916181+MrScautHD@users.noreply.github.com> Date: Mon, 6 May 2024 12:50:05 +0200 Subject: [PATCH 325/790] Update BINDINGS.md (#3963) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index 178fd987c..93ae18792 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -82,6 +82,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | Raylib.lean | 4.5 | [Lean4](https://lean-lang.org/) | BSD-3-Clause | https://github.com/KislyjKisel/Raylib.lean | | Raylib-CSharp-Vinculum | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/ZeroElectric/Raylib-CSharp-Vinculum | | raylib-cobol | **auto** | [COBOL](https://gnucobol.sourceforge.io) | Public domain | https://codeberg.org/glowiak/raylib-cobol | +| Raylib-CSharp | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | https://github.com/MrScautHD/Raylib-CSharp | ### Utility Wrapers These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. From fa2b1c8f094db18466079fcd2f8e488bf89095c2 Mon Sep 17 00:00:00 2001 From: gabriel-marques Date: Tue, 7 May 2024 10:33:56 +0200 Subject: [PATCH 326/790] Implementing GetMonitorWidth/Height for DRM (#3956) * Implementing GetMonitorWidth/Height and GetMonitorPhysicalWidth/Height for drm Added implementation for DRM for functions : - GetMonitorWidth() - GetMonitorHeight() - GetMonitorPhysicalWidth() - GetMonitorPhysicalHeight() - GetMonnitorName() These functions take an argument but only the value 0 is accepted. This is because the DRM platform implementation manages only one screen for now * Refactor "GetMonitor" properties for DRM Platform Refactored GetMonitorHeight, GetMonitorWidth, GetMonitorPhysicalHeight, GetMonitorPhysicalWidth and GetMonitorName to accept only argument "0" as more than one screen is not supported in DRM platform. --- src/platforms/rcore_drm.c | 70 +++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index a07ba27f1..ba6071460 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -388,29 +388,69 @@ Vector2 GetMonitorPosition(int monitor) // Get selected monitor width (currently used by monitor) int GetMonitorWidth(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorWidth() not implemented on target platform"); - return 0; + int width = 0; + + if (monitor != 0) + { + TRACELOG(LOG_WARNING, "GetMonitorWidth() implemented for first monitor only"); + } + else if ((platform.connector) && (platform.modeIndex >= 0)) + { + width = platform.connector->modes[platform.modeIndex].hdisplay; + } + + return width; } // Get selected monitor height (currently used by monitor) int GetMonitorHeight(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorHeight() not implemented on target platform"); - return 0; + int height = 0; + + if (monitor != 0) + { + TRACELOG(LOG_WARNING, "GetMonitorHeight() implemented for first monitor only"); + } + else if ((platform.connector) && (platform.modeIndex >= 0)) + { + height = platform.connector->modes[platform.modeIndex].vdisplay; + } + + return height; } // Get selected monitor physical width in millimetres int GetMonitorPhysicalWidth(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorPhysicalWidth() not implemented on target platform"); - return 0; + int physicalWidth = 0; + + if (monitor != 0) + { + TRACELOG(LOG_WARNING, "GetMonitorPhysicalWidth() implemented for first monitor only"); + } + else if ((platform.connector) && (platform.modeIndex >= 0)) + { + physicalWidth = platform.connector->mmWidth; + } + + return physicalWidth; } // Get selected monitor physical height in millimetres int GetMonitorPhysicalHeight(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorPhysicalHeight() not implemented on target platform"); - return 0; + int physicalHeight = 0; + + if (monitor != 0) + { + TRACELOG(LOG_WARNING, "GetMonitorPhysicalHeight() implemented for first monitor only"); + } + else if ((platform.connector) && (platform.modeIndex >= 0)) + { + physicalHeight = platform.connector->mmHeight; + } + + return physicalHeight; } // Get selected monitor refresh rate @@ -429,8 +469,18 @@ int GetMonitorRefreshRate(int monitor) // Get the human-readable, UTF-8 encoded name of the selected monitor const char *GetMonitorName(int monitor) { - TRACELOG(LOG_WARNING, "GetMonitorName() not implemented on target platform"); - return ""; + const char *name = ""; + + if (monitor != 0) + { + TRACELOG(LOG_WARNING, "GetMonitorName() implemented for first monitor only"); + } + else if ((platform.connector) && (platform.modeIndex >= 0)) + { + name = platform.connector->modes[platform.modeIndex].name; + } + + return name; } // Get window position XY on monitor From 9805fe0b1afe8a25a5c7be92468a58bc2fbf8e4a Mon Sep 17 00:00:00 2001 From: Colleague Riley <50218871+ColleagueRiley@users.noreply.github.com> Date: Tue, 7 May 2024 14:30:52 -0400 Subject: [PATCH 327/790] make RGFW a custom platform (#3941) * fix minor bugs and errors (x86) for the RGFW platform, update RGFW platform license, update makefile info for RGFW platform * revert * (RGFW) (winapi) fix mouse hide bug when cursor changes * ensure PLATFORM_SHELL is defined (PLATFORM_RGFW) --------- Co-authored-by: ColleagueRiley --- examples/Makefile | 34 +- src/Makefile | 45 +- src/external/RGFW.h | 6349 ++++++++++++++++++++++++++++ src/platforms/rcore_desktop_rgfw.c | 1519 +++++++ src/rcore.c | 8 +- 5 files changed, 7948 insertions(+), 7 deletions(-) create mode 100644 src/external/RGFW.h create mode 100644 src/platforms/rcore_desktop_rgfw.c diff --git a/examples/Makefile b/examples/Makefile index 9ce05da54..52945c4b4 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -13,6 +13,11 @@ # - Windows (Win32, Win64) # - Linux (X11/Wayland desktop mode) # - Others (not tested) +# > PLATFORM_DESKTOP_RGFW (RGFW backend): +# - Windows (Win32, Win64) +# - Linux (X11 desktop mode) +# - macOS/OSX (x64, arm64 (not tested)) +# - Others (not tested) # > PLATFORM_WEB: # - HTML5 (WebAssembly) # > PLATFORM_DRM: @@ -45,7 +50,7 @@ # Define required environment variables #------------------------------------------------------------------------------------------------ # Define target platform: PLATFORM_DESKTOP, PLATFORM_DESKTOP_SDL, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB -PLATFORM ?= PLATFORM_DESKTOP +PLATFORM ?= PLATFORM_DESKTOP_RGFW # Define required raylib variables PROJECT_NAME ?= raylib_examples @@ -86,7 +91,7 @@ BUILD_WEB_RESOURCES ?= TRUE BUILD_WEB_RESOURCES_PATH ?= $(dir $<)resources@resources # Determine PLATFORM_OS when required -ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB)) +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB PLATFORM_DESKTOP_RGFW)) # No uname.exe on MinGW!, but OS=Windows_NT on Windows! # ifeq ($(UNAME),Msys) -> Windows ifeq ($(OS),Windows_NT) @@ -416,6 +421,31 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_SDL) LDLIBS += -latomic endif endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDLIBS = ..\src\libraylib.a -lgdi32 -lwinmm -lopengl32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compipling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = ../src/libraylib.a -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt + + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = ../src/libraylib.a -lm + LDLIBS += -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo + endif +endif ifeq ($(PLATFORM),PLATFORM_DRM) # Libraries for DRM compiling # NOTE: Required packages: libasound2-dev (ALSA) diff --git a/src/Makefile b/src/Makefile index 7f5dd335d..89d81627a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -13,6 +13,11 @@ # - Windows (Win32, Win64) # - Linux (X11/Wayland desktop mode) # - Others (not tested) +# > PLATFORM_DESKTOP_RGFW (RGFW backend): +# - Windows (Win32, Win64) +# - Linux (X11 desktop mode) +# - macOS/OSX (x64, arm64 (not tested)) +# - Others (not tested) # > PLATFORM_WEB: # - HTML5 (WebAssembly) # > PLATFORM_DRM: @@ -114,7 +119,7 @@ HOST_PLATFORM_OS ?= WINDOWS PLATFORM_OS ?= WINDOWS # Determine PLATFORM_OS when required -ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB PLATFORM_ANDROID)) +ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB PLATFORM_ANDROID PLATFORM_DESKTOP_RGFW)) # No uname.exe on MinGW!, but OS=Windows_NT on Windows! # ifeq ($(UNAME),Msys) -> Windows ifeq ($(OS),Windows_NT) @@ -224,6 +229,14 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) #GRAPHICS = GRAPHICS_API_OPENGL_43 # Uncomment to use OpenGL 4.3 #GRAPHICS = GRAPHICS_API_OPENGL_ES2 # Uncomment to use OpenGL ES 2.0 (ANGLE) endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW) + # By default use OpenGL 3.3 on desktop platforms + GRAPHICS ?= GRAPHICS_API_OPENGL_33 + #GRAPHICS = GRAPHICS_API_OPENGL_11 # Uncomment to use OpenGL 1.1 + #GRAPHICS = GRAPHICS_API_OPENGL_21 # Uncomment to use OpenGL 2.1 + #GRAPHICS = GRAPHICS_API_OPENGL_43 # Uncomment to use OpenGL 4.3 + #GRAPHICS = GRAPHICS_API_OPENGL_ES2 # Uncomment to use OpenGL ES 2.0 (ANGLE) +endif ifeq ($(PLATFORM),PLATFORM_DESKTOP_SDL) # By default use OpenGL 3.3 on desktop platform with SDL backend GRAPHICS ?= GRAPHICS_API_OPENGL_33 @@ -576,6 +589,31 @@ endif ifeq ($(PLATFORM),PLATFORM_ANDROID) LDLIBS = -llog -landroid -lEGL -lGLESv2 -lOpenSLES -lc -lm endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + LDLIBS = ..\src\libraylib.a -lgdi32 -lwinmm -lopengl32 + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compipling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = ../src/libraylib.a -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt + + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + + # NOTE: On ARM 32bit arch, miniaudio requires atomics library + LDLIBS += -latomic + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = ../src/libraylib.a -lm + LDLIBS += -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo + endif +endif # Define source code object files required #------------------------------------------------------------------------------------------------ @@ -583,7 +621,8 @@ OBJS = rcore.o \ rshapes.o \ rtextures.o \ rtext.o \ - utils.o + utils.o + ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(USE_EXTERNAL_GLFW),FALSE) @@ -619,7 +658,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) @echo "raylib library generated (lib$(RAYLIB_LIB_NAME).a)!" else ifeq ($(RAYLIB_LIBTYPE),SHARED) - ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL)) + ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW)) ifeq ($(PLATFORM_OS),WINDOWS) # NOTE: Linking with provided resource file $(CC) -shared -o $(RAYLIB_RELEASE_PATH)/$(RAYLIB_LIB_NAME).dll $(OBJS) $(RAYLIB_RES_FILE) $(LDFLAGS) $(LDLIBS) diff --git a/src/external/RGFW.h b/src/external/RGFW.h new file mode 100644 index 000000000..13b68d98a --- /dev/null +++ b/src/external/RGFW.h @@ -0,0 +1,6349 @@ +/* +* Copyright (C) 2023-24 ColleagueRiley +* +* libpng license +* +* 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. +* +* +*/ + +/* + (MAKE SURE RGFW_IMPLEMENTATION is in exactly one header or you use -D RGFW_IMPLEMENTATION) + #define RGFW_IMPLEMENTATION - makes it so source code is included with header +*/ + +/* + #define RGFW_IMPLEMENTATION - (required) makes it so the source code is included + #define RGFW_PRINT_ERRORS - (optional) makes it so RGFW prints errors when they're found + #define RGFW_OSMESA - (optional) use OSmesa as backend (instead of system's opengl api + regular opengl) + #define RGFW_BUFFER - (optional) just draw directly to (RGFW) window pixel buffer that is drawn to screen (the buffer is in the RGBA format) + #define RGFW_EGL - (optional) use EGL for loading an OpenGL context (instead of the system's opengl api) + #define RGFW_OPENGL_ES1 - (optional) use EGL to load and use Opengl ES (version 1) for backend rendering (instead of the system's opengl api) + #define RGFW_OPENGL_ES2 - (optional) use OpenGL ES (version 2) + #define RGFW_VULKAN - (optional) use vulkan for the rendering backend (rather than opengl) + #define RGFW_DIRECTX - (optional) use directX for the rendering backend (rather than opengl) (windows only, defaults to opengl for unix) + #define RGFW_NO_API - (optional) don't use any rendering API (no opengl, no vulkan, no directX) + + #define RGFW_LINK_EGL (optional) (windows only) if EGL is being used, if EGL functions should be defined dymanically (using GetProcAddress) + #define RGFW_LINK_OSMESA (optional) (windows only) if EGL is being used, if OS Mesa functions should be defined dymanically (using GetProcAddress) + + #define RGFW_X11 (optional) (unix only) if X11 should be used. This option is turned on by default by unix systems except for MacOS + #define RGFW_WGL_LOAD (optional) (windows only) if WGL should be loaded dynamically during runtime + #define RGFW_NO_X11_CURSOR (optional) (unix only) don't use XCursor + #define RGFW_NO_X11_CURSOR_PRELOAD (optional) (unix only) Use XCursor, but don't link it in code, (you'll have to link it with -lXcursor) + + #define RGFW_NO_DPI - Do not include calculate DPI (no XRM nor libShcore included) + + #define RGFW_ALLOC_DROPFILES (optional) if room should be allocating for drop files (by default it's global data) + #define RGFW_MALLOC x - choose what function to use to allocate, by default the standard malloc is used + #define RGFW_CALLOC x - choose what function to use to allocate (calloc), by default the standard calloc is used + #define RGFW_FREE x - choose what function to use to allocated memory, by default the standard free is used +*/ + +/* + Credits : + EimaMei/Sacode : Much of the code for creating windows using winapi, Wrote the Silicon library, helped with MacOS Support + + stb - This project is heavily inspired by the stb single header files + + GLFW: + certain parts of winapi and X11 are very poorly documented, + GLFW's source code was referenced and used throughout the project (used code is marked in some way), + this mainly includes, code for drag and drops, code for setting the icon to a bitmap and the code for managing the clipboard for X11 (as these parts are not documented very well) + + GLFW Copyright, https::/github.com/GLFW/GLFW + + Copyright (c) 2002-2006 Marcus Geelnard + Copyright (c) 2006-2019 Camilla Löwy +*/ + +#ifndef RGFW_MALLOC +#include +#include +#define RGFW_MALLOC malloc +#define RGFW_CALLOC calloc +#define RGFW_FREE free +#endif + +#if !_MSC_VER +#ifndef inline +#ifndef __APPLE__ +#define inline __inline +#endif +#endif +#endif + +#ifndef RGFWDEF +#ifdef __APPLE__ +#define RGFWDEF extern inline +#else +#define RGFWDEF inline +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + /* makes sure the header file part is only defined once by default */ +#ifndef RGFW_HEADER + +#define RGFW_HEADER + +#if !defined(u8) +#include + + typedef uint8_t u8; + typedef int8_t i8; + typedef uint16_t u16; + typedef int16_t i16; + typedef uint32_t u32; + typedef int32_t i32; + typedef uint64_t u64; + typedef int64_t i64; +#endif + +#if defined(RGFW_X11) && defined(__APPLE__) +#define RGFW_MACOS_X11 +#undef __APPLE__ +#endif + +#if defined(_WIN32) && !defined(RGFW_X11) /* (if you're using X11 on windows some how) */ + + /* this name looks better */ + /* plus it helps with cross-compiling because RGFW_X11 won't be accidently defined */ + +#define RGFW_WINDOWS + +#if defined(_WIN32) +#define WIN32 +#endif + +#if defined(_WIN64) +#define WIN64 +#define _AMD64_ +#undef _X86_ +#else +#undef _AMD64_ +#define _X86_ +#endif + +#include + +#ifdef __MINGW32__ +#include +#else +#include +#endif + +#else +#if defined(__unix__) || defined(RGFW_MACOS_X11) || defined(RGFW_X11) +#define RGFW_MACOS_X11 +#define RGFW_X11 +#include +#endif +#endif + +#if defined(__APPLE__) && !defined(RGFW_MACOS_X11) && !defined(RGFW_X11) +#define RGFW_MACOS +#endif + +#if (defined(RGFW_OPENGL_ES1) || defined(RGFW_OPENGL_ES2)) && !defined(RGFW_EGL) +#define RGFW_EGL +#endif +#if defined(RGFW_EGL) && defined(__APPLE__) + #warning EGL is not supported for Cocoa, switching back to the native opengl api +#undef RGFW_EGL +#endif + +#if !defined(RGFW_OSMESA) && !defined(RGFW_EGL) && !defined(RGFW_OPENGL) && !defined (RGFW_VULKAN) && !defined(RGFW_DIRECTX) && !defined(RGFW_BUFFER) && !defined(RGFW_NO_API) +#define RGFW_OPENGL +#endif + +#ifdef RGFW_VULKAN +#ifndef RGFW_MAX_FRAMES_IN_FLIGHT +#define RGFW_MAX_FRAMES_IN_FLIGHT 2 +#endif + +#ifdef RGFW_X11 +#define VK_USE_PLATFORM_XLIB_KHR +#endif +#ifdef RGFW_WINDOWS +#define VK_USE_PLATFORM_WIN32_KHR +#endif +#ifdef RGFW_MACOS +#define VK_USE_PLATFORM_MACOS_MVK +#endif + +#include +#endif + +#if defined(RGFW_X11) && defined(RGFW_OPENGL) +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control +#endif +#include /* GLX defs, xlib.h, gl.h */ +#endif + +#ifdef RGFW_EGL +#include +#endif + +#ifdef RGFW_OSMESA +#ifndef __APPLE__ +#include +#else +#include +#endif +#endif + +#if defined(RGFW_DIRECTX) && defined(RGFW_WINDOWS) +#include +#include +#include +#include + +#ifndef __cplusplus +#define __uuidof(T) IID_##T +#endif +#endif + + /*! Optional arguments for making a windows */ +#define RGFW_TRANSPARENT_WINDOW (1L<<9) /*!< the window is transparent */ +#define RGFW_NO_BORDER (1L<<3) /*!< the window doesn't have border */ +#define RGFW_NO_RESIZE (1L<<4) /*!< the window cannot be resized by the user */ +#define RGFW_ALLOW_DND (1L<<5) /*!< the window supports drag and drop*/ +#define RGFW_HIDE_MOUSE (1L<<6) /*! the window should hide the mouse or not (can be toggled later on) using `RGFW_window_mouseShow*/ +#define RGFW_FULLSCREEN (1L<<8) /* the window is fullscreen by default or not */ +#define RGFW_CENTER (1L<<10) /*! center the window on the screen */ +#define RGFW_OPENGL_SOFTWARE (1L<<11) /*! use OpenGL software rendering */ +#define RGFW_COCOA_MOVE_TO_RESOURCE_DIR (1L << 12) /* (cocoa only), move to resource folder */ +#define RGFW_SCALE_TO_MONITOR (1L << 13) /* scale the window to the screen */ + +#define RGFW_NO_GPU_RENDER (1L<<14) /* don't render (using the GPU based API)*/ +#define RGFW_NO_CPU_RENDER (1L<<15) /* don't render (using the CPU based buffer rendering)*/ + + +/*! event codes */ +#define RGFW_keyPressed 2 /* a key has been pressed */ +#define RGFW_keyReleased 3 /*!< a key has been released*/ +/*! key event note + the code of the key pressed is stored in + RGFW_Event.keyCode + !!Keycodes defined at the bottom of the header file!! + + while a string version is stored in + RGFW_Event.KeyString + + RGFW_Event.lockState holds the current lockState + this means if CapsLock, NumLock are active or not +*/ +#define RGFW_mouseButtonPressed 4 /*!< a mouse button has been pressed (left,middle,right)*/ +#define RGFW_mouseButtonReleased 5 /*!< a mouse button has been released (left,middle,right)*/ +#define RGFW_mousePosChanged 6 /*!< the position of the mouse has been changed*/ +/*! mouse event note + the x and y of the mouse can be found in the vector, RGFW_Event.point + + RGFW_Event.button holds which mouse button was pressed +*/ +#define RGFW_jsButtonPressed 7 /*!< a joystick button was pressed */ +#define RGFW_jsButtonReleased 8 /*!< a joystick button was released */ +#define RGFW_jsAxisMove 9 /*!< an axis of a joystick was moved*/ +/*! joystick event note + RGFW_Event.joystick holds which joystick was altered, if any + RGFW_Event.button holds which joystick button was pressed + + RGFW_Event.axis holds the data of all the axis + RGFW_Event.axisCount says how many axis there are +*/ +#define RGFW_windowAttribsChange 10 /*!< the window was moved or resized (by the user) */ +/* attribs change event note + The event data is sent straight to the window structure + with win->r.x, win->r.y, win->r.w and win->r.h +*/ +#define RGFW_quit 33 /*!< the user clicked the quit button*/ +#define RGFW_dnd 34 /*!< a file has been dropped into the window*/ +#define RGFW_dnd_init 35 /*!< the start of a dnd event, when the place where the file drop is known */ +/* dnd data note + The x and y coords of the drop are stored in the vector RGFW_Event.point + + RGFW_Event.droppedFilesCount holds how many files were dropped + + This is also the size of the array which stores all the dropped file string, + RGFW_Event.droppedFiles +*/ + +/*! mouse button codes (RGFW_Event.button) */ +#define RGFW_mouseLeft 1 /*!< left mouse button is pressed*/ +#define RGFW_mouseMiddle 2 /*!< mouse-wheel-button is pressed*/ +#define RGFW_mouseRight 3 /*!< right mouse button is pressed*/ +#define RGFW_mouseScrollUp 4 /*!< mouse wheel is scrolling up*/ +#define RGFW_mouseScrollDown 5 /*!< mouse wheel is scrolling down*/ + +#ifndef RGFW_MAX_PATH +#define RGFW_MAX_PATH 260 /* max length of a path (for dnd) */ +#endif +#ifndef RGFW_MAX_DROPS +#define RGFW_MAX_DROPS 260 /* max items you can drop at once */ +#endif + + +/* for RGFW_Event.lockstate */ +#define RGFW_CAPSLOCK (1L << 1) +#define RGFW_NUMLOCK (1L << 2) + +/*! joystick button codes (based on xbox/playstation), you may need to change these values per controller */ +#ifndef RGFW_JS_A + +#define RGFW_JS_A 0 /* or PS X button */ +#define RGFW_JS_B 1 /* or PS circle button */ +#define RGFW_JS_Y 2 /* or PS triangle button */ +#define RGFW_JS_X 3 /* or PS square button */ +#define RGFW_JS_START 9 /* start button */ +#define RGFW_JS_SELECT 8 /* select button */ +#define RGFW_JS_HOME 10 /* home button */ +#define RGFW_JS_UP 13 /* dpad up */ +#define RGFW_JS_DOWN 14 /* dpad down*/ +#define RGFW_JS_LEFT 15 /* dpad left */ +#define RGFW_JS_RIGHT 16 /* dpad right */ +#define RGFW_JS_L1 4 /* left bump */ +#define RGFW_JS_L2 5 /* left trigger*/ +#define RGFW_JS_R1 6 /* right bumper */ +#define RGFW_JS_R2 7 /* right trigger */ + +#endif + +/* basic vector type, if there's not already a point/vector type of choice */ +#ifndef RGFW_vector +typedef struct { i32 x, y; } RGFW_vector; +#endif + + /* basic rect type, if there's not already a rect type of choice */ +#ifndef RGFW_rect + typedef struct { i32 x, y, w, h; } RGFW_rect; +#endif + + /* basic area type, if there's not already a area type of choice */ +#ifndef RGFW_area + typedef struct { u32 w, h; } RGFW_area; +#endif + +#define RGFW_VECTOR(x, y) (RGFW_vector){x, y} +#define RGFW_RECT(x, y, w, h) (RGFW_rect){x, y, w, h} +#define RGFW_AREA(w, h) (RGFW_area){w, h} + + typedef struct RGFW_monitor { + char name[128]; /* monitor name */ + RGFW_rect rect; /* monitor Workarea */ + float scaleX, scaleY; /* monitor content scale*/ + float physW, physH; /* monitor physical size */ + } RGFW_monitor; + + /* + NOTE : Monitor functions should be ran only as many times as needed (not in a loop) + */ + + /* get an array of all the monitors (max 6) */ + RGFWDEF RGFW_monitor* RGFW_getMonitors(void); + /* get the primary monitor */ + RGFWDEF RGFW_monitor RGFW_getPrimaryMonitor(void); + + /* NOTE: some parts of the data can represent different things based on the event (read comments in RGFW_Event struct) */ + typedef struct RGFW_Event { +#ifdef RGFW_WINDOWS + char keyName[16]; /* key name of event*/ +#else + char* keyName; /*!< key name of event */ +#endif + + /*! drag and drop data */ + /* 260 max paths with a max length of 260 */ +#ifdef RGFW_ALLOC_DROPFILES + char** droppedFiles; +#else + char droppedFiles[RGFW_MAX_DROPS][RGFW_MAX_PATH]; /*!< dropped files*/ +#endif + u32 droppedFilesCount; /*!< house many files were dropped */ + + u32 type; /*!< which event has been sent?*/ + RGFW_vector point; /*!< mouse x, y of event (or drop point) */ + u32 keyCode; /*!< keycode of event !!Keycodes defined at the bottom of the header file!! */ + + u32 inFocus; /*if the window is in focus or not*/ + + u32 fps; /*the current fps of the window [the fps is checked when events are checked]*/ + u32 current_ticks, frames; /* this is used for counting the fps */ + + u8 lockState; + + u16 joystick; /* which joystick this event applies to (if applicable to any) */ + + u8 button; /*!< which mouse button has been clicked (0) left (1) middle (2) right OR which joystick button was pressed*/ + double scroll; /* the raw mouse scroll value */ + + u8 axisesCount; /* number of axises */ + RGFW_vector axis[2]; /* x, y of axises (-100 to 100) */ + } RGFW_Event; /*!< Event structure for checking/getting events */ + + /* source data for the window (used by the APIs) */ + typedef struct RGFW_window_src { +#ifdef RGFW_WINDOWS + HWND window; /*!< source window */ + HDC hdc; /*!< source HDC */ + u32 hOffset; /*!< height offset for window */ +#endif +#ifdef RGFW_X11 + Display* display; /*!< source display */ + Window window; /*!< source window */ + Cursor cursor; +#endif +#ifdef RGFW_MACOS + u32 display; + void* displayLink; + void* window; +#endif + +#if defined(RGFW_OPENGL) && !defined(RGFW_OSMESA) +#ifdef RGFW_MACOS + void* rSurf; /*!< source graphics context */ +#endif +#ifdef RGFW_WINDOWS + HGLRC rSurf; /*!< source graphics context */ +#endif +#ifdef RGFW_X11 + GLXContext rSurf; /*!< source graphics context */ +#endif +#else +#ifdef RGFW_VULKAN + VkSurfaceKHR rSurf; /*!< source graphics context */ + + /* vulkan data */ + VkSwapchainKHR swapchain; + u32 image_count; + VkImage* swapchain_images; + VkImageView* swapchain_image_views; +#endif + +#ifdef RGFW_OSMESA + OSMesaContext rSurf; +#endif +#endif + +#ifdef RGFW_WINDOWS + RGFW_area maxSize, minSize; +#if defined(RGFW_DIRECTX) + IDXGISwapChain* swapchain; + ID3D11RenderTargetView* renderTargetView; + ID3D11DepthStencilView* pDepthStencilView; +#endif +#endif + +#if defined(RGFW_MACOS) && !defined(RGFW_MACOS_X11) + void* view; /*apple viewpoint thingy*/ +#endif + +#ifdef RGFW_EGL + EGLSurface EGL_surface; + EGLDisplay EGL_display; +#endif + +#if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) +#ifdef RGFW_WINDOWS + HBITMAP bitmap; +#endif +#ifdef RGFW_X11 + XImage* bitmap; +#endif +#ifdef RGFW_MACOS + void* bitmap; /* API's bitmap for storing or managing */ + void* image; +#endif +#if defined(RGFW_BUFFER) && defined(RGFW_WINDOWS) + HDC hdcMem; /* window stored in memory that winapi needs to render buffers */ +#endif +#endif + + u8 jsPressed[4][16]; /* if a key is currently pressed or not (per joystick) */ + + i32 joysticks[4]; /* limit of 4 joysticks at a time */ + u16 joystickCount; /* the actual amount of joysticks */ + + RGFW_area scale; /* window scaling */ + +#ifdef RGFW_MACOS + u8 cursorChanged; /* for steve jobs */ +#endif + + u32 winArgs; /* windows args (for RGFW to check) */ + /* + !< if dnd is enabled or on (based on window creating args) + cursorChanged + */ + } RGFW_window_src; + + typedef struct RGFW_window { + RGFW_window_src src; + +#if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) + u8* buffer; /* buffer for non-GPU systems (OSMesa, basic software rendering) */ + /* when rendering using RGFW_BUFFER, the buffer is in the RGBA format */ +#endif + + RGFW_Event event; /*!< current event */ + + RGFW_rect r; /* the x, y, w and h of the struct */ + + u8 fpsCap; /*!< the fps cap of the window should run at (change this var to change the fps cap, 0 = no limit)*/ + /*[the fps is capped when events are checked]*/ + } RGFW_window; /*!< Window structure for managing the window */ + +#if defined(RGFW_X11) || defined(RGFW_MACOS) + typedef u64 RGFW_thread; /* thread type unix */ +#else + typedef void* RGFW_thread; /* thread type for window */ +#endif + + RGFW_window* RGFW_createWindow( + const char* name, /* name of the window */ + RGFW_rect rect, /* rect of window */ + u16 args /* extra arguments (NULL / (u16)0 means no args used)*/ + ); /*!< function to create a window struct */ + + /* get the size of the screen to an area struct */ + RGFWDEF RGFW_area RGFW_getScreenSize(void); + + /* + this function checks an *individual* event (and updates window structure attributes) + this means, using this function without a while loop may cause event lag + + ex. + + while (RGFW_window_checkEvent(win) != NULL) [this keeps checking events until it reaches the last one] + */ + + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win); /*!< check events (returns a pointer to win->event or NULL if there is no event)*/ + + /*! window managment functions*/ + RGFWDEF void RGFW_window_close(RGFW_window* win); /*!< close the window and free leftover data */ + + RGFWDEF void RGFW_window_move(RGFW_window* win, + RGFW_vector v/* new pos*/ + ); + + /* move to a specific monitor */ + RGFWDEF void RGFW_window_moveToMonitor(RGFW_window* win, RGFW_monitor m); + + RGFWDEF void RGFW_window_resize(RGFW_window* win, + RGFW_area a/* new size*/ + ); + + /* set the minimum size a user can shrink a window */ + RGFWDEF void RGFW_window_setMinSize(RGFW_window* win, RGFW_area a); + /* set the minimum size a user can extend a window */ + RGFWDEF void RGFW_window_setMaxSize(RGFW_window* win, RGFW_area a); + + RGFWDEF void RGFW_window_maximize(RGFW_window* win); /* maximize the window size */ + RGFWDEF void RGFW_window_minimize(RGFW_window* win); /* minimize the window (in taskbar (per OS))*/ + RGFWDEF void RGFW_window_restore(RGFW_window* win); /* restore the window from minimized (per OS)*/ + + RGFWDEF void RGFW_window_setName(RGFW_window* win, + char* name + ); + + void RGFW_window_setIcon(RGFW_window* win, /*!< source window */ + u8* icon /*!< icon bitmap */, + RGFW_area a /*!< width and height of the bitmap*/, + i32 channels /*!< how many channels the bitmap has (rgb : 3, rgba : 4) */ + ); /*!< image resized by default */ + + /*!< sets mouse to bitmap (very simular to RGFW_window_setIcon), image NOT resized by default*/ + RGFWDEF void RGFW_window_setMouse(RGFW_window* win, u8* image, RGFW_area a, i32 channels); + + /*!< sets the mouse to a standard API cursor (based on RGFW_MOUSE, as seen at the end of the file) */ +#ifdef RGFW_MACOS + RGFWDEF void RGFW_window_setMouseStandard(RGFW_window* win, void* mouse); +#else + RGFWDEF void RGFW_window_setMouseStandard(RGFW_window* win, i32 mouse); +#endif + + RGFWDEF void RGFW_window_setMouseDefault(RGFW_window* win); /* sets the mouse to1` the default mouse image */ + /* + holds the mouse in place by moving the mouse back each time it moves + you can still use win->event.point to see how much it moved before it was put back in place + + this is useful for a 3D camera + */ + RGFWDEF void RGFW_window_mouseHold(RGFW_window* win); + /* undo hold */ + RGFWDEF void RGFW_window_mouseUnhold(RGFW_window* win); + + /* hide the window */ + RGFWDEF void RGFW_window_hide(RGFW_window* win); + /* show the window */ + RGFWDEF void RGFW_window_show(RGFW_window* win); + + /* + makes it so `RGFW_window_shouldClose` returns true + by setting the window event.type to RGFW_quit + */ + RGFWDEF void RGFW_window_setShouldClose(RGFW_window* win); + + /* where the mouse is on the screen */ + RGFWDEF RGFW_vector RGFW_getGlobalMousePoint(void); + + /* show the mouse or hide the mouse*/ + RGFWDEF void RGFW_window_showMouse(RGFW_window* win, i8 show); + /* move the mouse to a set x, y pos*/ + RGFWDEF void RGFW_window_moveMouse(RGFW_window* win, RGFW_vector v); + + /* if the window should close (RGFW_close was sent or escape was pressed) */ + RGFWDEF u8 RGFW_window_shouldClose(RGFW_window* win); + /* if window is fullscreen'd */ + RGFWDEF u8 RGFW_window_isFullscreen(RGFW_window* win); + /* if window is hidden */ + RGFWDEF u8 RGFW_window_isHidden(RGFW_window* win); + /* if window is minimized */ + RGFWDEF u8 RGFW_window_isMinimized(RGFW_window* win); + /* if window is maximized */ + RGFWDEF u8 RGFW_window_isMaximized(RGFW_window* win); + + /* + scale the window to the monitor, + this is run by default if the user uses the arg `RGFW_SCALE_TO_MONITOR` during window creation + */ + RGFWDEF void RGFW_window_scaleToMonitor(RGFW_window* win); + + /* get the struct of the window's monitor */ + RGFWDEF RGFW_monitor RGFW_window_getMonitor(RGFW_window* win); + + /*!< make the window the current opengl drawing context */ + RGFWDEF void RGFW_window_makeCurrent(RGFW_window* win); + + /*error handling*/ + RGFWDEF u8 RGFW_Error(); /* returns true if an error has occurred (doesn't print errors itself) */ + + /*!< if window == NULL, it checks if the key is pressed globally. Otherwise, it checks only if the key is pressed while the window in focus.*/ + RGFWDEF u8 RGFW_isPressedI(RGFW_window* win, u32 key); /*!< if key is pressed (key code)*/ + + /* + !!Keycodes defined at the bottom of the header file!! + */ + /*!< converts a key code to it's key string */ + RGFWDEF char* RGFW_keyCodeTokeyStr(u64 key); + /*!< converts a string of a key to it's key code */ + RGFWDEF u32 RGFW_keyStrToKeyCode(char* key); + /*!< if key is pressed (key string) */ +#define RGFW_isPressedS(win, key) RGFW_isPressedI(win, RGFW_keyStrToKeyCode(key)) + +/*! clipboard functions*/ + RGFWDEF char* RGFW_readClipboard(size_t* size); /*!< read clipboard data */ +#define RGFW_clipboardFree free /* the string returned from RGFW_readClipboard must be freed */ + + RGFWDEF void RGFW_writeClipboard(const char* text, u32 textLen); /*!< write text to the clipboard */ + + /* + convert a keyString to a char version + */ + RGFWDEF char RGFW_keystrToChar(const char*); + /* + ex. + "parenleft" -> '(' + "A" -> 'A', + "Return" -> "\n" + */ + +#ifndef RGFW_NO_THREADS + /*! threading functions*/ + + /*! NOTE! (for X11/linux) : if you define a window in a thread, it must be run after the original thread's window is created or else there will be a memory error */ + /* + I'd suggest you use sili's threading functions instead + if you're going to use sili + which is a good idea generally + */ + RGFWDEF RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args); /*!< create a thread*/ + RGFWDEF void RGFW_cancelThread(RGFW_thread thread); /*!< cancels a thread*/ + RGFWDEF void RGFW_joinThread(RGFW_thread thread); /*!< join thread to current thread */ + RGFWDEF void RGFW_setThreadPriority(RGFW_thread thread, u8 priority); /*!< sets the priority priority */ +#endif + + /*! gamepad/joystick functions (linux-only currently) */ + + /*! joystick count starts at 0*/ + /*!< register joystick to window based on a number (the number is based on when it was connected eg. /dev/js0)*/ + RGFWDEF u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber); + RGFWDEF u16 RGFW_registerJoystickF(RGFW_window* win, char* file); + + RGFWDEF u32 RGFW_isPressedJS(RGFW_window* win, u16 controller, u8 button); + + /*! native opengl functions */ +#ifdef RGFW_OPENGL +/*! Get max OpenGL version */ + RGFWDEF u8* RGFW_getMaxGLVersion(); + /* OpenGL init hints */ + RGFWDEF void RGFW_setGLStencil(i32 stencil); /* set stencil buffer bit size (8 by default) */ + RGFWDEF void RGFW_setGLSamples(i32 samples); /* set number of sampiling buffers (4 by default) */ + RGFWDEF void RGFW_setGLStereo(i32 stereo); /* use GL_STEREO (GL_FALSE by default) */ + RGFWDEF void RGFW_setGLAuxBuffers(i32 auxBuffers); /* number of aux buffers (0 by default) */ + + /*! Set OpenGL version hint */ + RGFWDEF void RGFW_setGLVersion(i32 major, i32 minor); + RGFWDEF void* RGFW_getProcAddress(const char* procname); /* get native opengl proc address */ +#endif + /* supports openGL, directX, OSMesa, EGL and software rendering */ + RGFWDEF void RGFW_window_swapBuffers(RGFW_window* win); /* swap the rendering buffer */ + RGFWDEF void RGFW_window_swapInterval(RGFW_window* win, i32 swapInterval); + + RGFWDEF void RGFW_window_setGPURender(RGFW_window* win, i8 set); + +#ifdef RGFW_VULKAN + typedef struct { + VkInstance instance; + VkPhysicalDevice physical_device; + VkDevice device; + + VkDebugUtilsMessengerEXT debugMessenger; + + VkQueue graphics_queue; + VkQueue present_queue; + + VkFramebuffer* framebuffers; + + VkRenderPass render_pass; + VkPipelineLayout pipeline_layout; + VkPipeline graphics_pipeline; + + VkCommandPool command_pool; + VkCommandBuffer* command_buffers; + + VkSemaphore* available_semaphores; + VkSemaphore* finished_semaphore; + VkFence* in_flight_fences; + VkFence* image_in_flight; + size_t current_frame; + } RGFW_vulkanInfo; + + /*! initializes a vulkan rendering context for the RGFW window, + this outputs the vulkan surface into wwin->src.rSurf + other vulkan data is stored in the global instance of the RGFW_vulkanInfo structure which is returned + by the initVulkan() function + RGFW_VULKAN must be defined for this function to be defined + + */ + RGFWDEF RGFW_vulkanInfo* RGFW_initVulkan(RGFW_window* win); + RGFWDEF void RGFW_freeVulkan(void); + + RGFWDEF RGFW_vulkanInfo* RGFW_getVulkanInfo(void); + + RGFWDEF int RGFW_initData(RGFW_window* win); + RGFWDEF void RGFW_createSurface(VkInstance instance, RGFW_window* win); + int RGFW_deviceInitialization(RGFW_window* win); + int RGFW_createSwapchain(RGFW_window* win); + RGFWDEF int RGFW_createRenderPass(); + int RGFW_createCommandPool(); + int RGFW_createCommandBuffers(RGFW_window* win); + int RGFW_createSyncObjects(RGFW_window* win); + RGFWDEF int RGFW_createFramebuffers(RGFW_window* win); +#endif + +#ifdef RGFW_DIRECTX + typedef struct { + IDXGIFactory* pFactory; + IDXGIAdapter* pAdapter; + ID3D11Device* pDevice; + ID3D11DeviceContext* pDeviceContext; + } RGFW_directXinfo; + + /* + RGFW stores a global instance of RGFW_directXinfo, + you can use this function to get a pointer the instance + */ + RGFWDEF RGFW_directXinfo* RGFW_getDirectXInfo(void); +#endif + + /*! Supporting functions */ + RGFWDEF void RGFW_window_checkFPS(RGFW_window* win); /*!< updates fps / sets fps to cap (ran by RGFW_window_checkEvent)*/ + RGFWDEF u64 RGFW_getTime(void); /* get time in seconds */ + RGFWDEF u64 RGFW_getTimeNS(void); /* get time in nanoseconds */ + RGFWDEF u32 RGFW_getFPS(void); /* get current FPS (win->event.fps) */ + RGFWDEF void RGFW_sleep(u32 microsecond); /* sleep for a set time */ +#endif /* RGFW_HEADER */ + + /* + Example to get you started : + + linux : gcc main.c -lX11 -lXcursor -lGL + windows : gcc main.c -lopengl32 -lshell32 -lgdi32 + macos : gcc main.c -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo + + #define RGFW_IMPLEMENTATION + #include "RGFW.h" + + u8 icon[4 * 3 * 3] = {0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF}; + + int main() { + RGFW_window* win = RGFW_createWindow("name", RGFW_RECT(500, 500, 500, 500), (u64)0); + + RGFW_window_setIcon(win, icon, RGFW_AREA(3, 3), 4); + + for (;;) { + RGFW_window_checkEvent(win); // NOTE: checking events outside of a while loop may cause input lag + if (win->event.type == RGFW_quit || RGFW_isPressedI(win, RGFW_Escape)) + break; + + RGFW_window_swapBuffers(win); + + glClearColor(0xFF, 0XFF, 0xFF, 0xFF); + glClear(GL_COLOR_BUFFER_BIT); + } + + RGFW_window_close(win); + } + + compiling : + + if you wish to compile the library all you have to do is create a new file with this in it + + rgfw.c + #define RGFW_IMPLEMENTATION + #include "RGFW.h" + + then you can use gcc (or whatever compile you wish to use) to compile the library into object file + + ex. gcc -c RGFW.c -fPIC + + after you compile the library into an object file, you can also turn the object file into an static or shared library + + (commands ar and gcc can be replaced with whatever equivalent your system uses) + static : ar rcs RGFW.a RGFW.o + shared : + windows: + gcc -shared RGFW.o -lopengl32 -lshell32 -lgdi32 -o RGFW.dll + linux: + gcc -shared RGFW.o -lX11 -lXcursor -lGL -o RGFW.so + macos: + gcc -shared RGFW.o -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo + */ + +#ifdef RGFW_X11 +#define RGFW_OS_BASED_VALUE(l, w, m) l +#endif +#ifdef RGFW_WINDOWS +#define RGFW_OS_BASED_VALUE(l, w, m) w +#endif +#ifdef RGFW_MACOS +#define RGFW_OS_BASED_VALUE(l, w, m) m +#endif + +#ifdef RGFW_IMPLEMENTATION + +#include +#include +#include +#include + +#ifdef RGFW_WINDOWS + +#define WIN32_LEAN_AND_MEAN + +#include + +#endif + +#ifdef RGFW_MACOS +#include + + /* + based on silicon.h + */ + +#define GL_SILENCE_DEPRECATION +#include +#include +#include +#include + + typedef CGRect NSRect; + typedef CGPoint NSPoint; + typedef CGSize NSSize; + + typedef void NSBitmapImageRep; + typedef void NSCursor; + typedef void NSDraggingInfo; + typedef void NSWindow; + typedef void NSApplication; + typedef void NSScreen; + typedef void NSEvent; + typedef void NSString; + typedef void NSOpenGLContext; + typedef void NSPasteboard; + typedef void NSColor; + typedef void NSArray; + typedef void NSImageRep; + typedef void NSImage; + typedef void NSOpenGLView; + + + typedef const char* NSPasteboardType; + typedef unsigned long NSUInteger; + typedef long NSInteger; + typedef NSInteger NSModalResponse; + +#ifdef __arm64__ + /* ARM just uses objc_msgSend */ +#define abi_objc_msgSend_stret objc_msgSend +#define abi_objc_msgSend_fpret objc_msgSend +#else /* __i386__ */ + /* x86 just uses abi_objc_msgSend_fpret and (NSColor *)objc_msgSend_id respectively */ +#define abi_objc_msgSend_stret objc_msgSend_stret +#define abi_objc_msgSend_fpret objc_msgSend_fpret +#endif + +#define NSAlloc(nsclass) objc_msgSend_id(nsclass, sel_registerName("alloc")) +#define objc_msgSend_bool ((BOOL (*)(id, SEL))objc_msgSend) +#define objc_msgSend_void ((void (*)(id, SEL))objc_msgSend) +#define objc_msgSend_void_id ((void (*)(id, SEL, id))objc_msgSend) +#define objc_msgSend_uint ((NSUInteger (*)(id, SEL))objc_msgSend) +#define objc_msgSend_void_bool ((void (*)(id, SEL, BOOL))objc_msgSend) +#define objc_msgSend_void_SEL ((void (*)(id, SEL, SEL))objc_msgSend) +#define objc_msgSend_id ((id (*)(id, SEL))objc_msgSend) + +#define si_declare_single(class, name, func) \ + void class##_##name(class* obj) { \ + return objc_msgSend_void(obj, sel_registerName(func)); \ + } + + +#define loadFunc(funcName) \ + static void* func = NULL;\ + if (func == NULL) \ + func = sel_registerName(funcName); + + void NSRelease(id obj) { + loadFunc("release"); + objc_msgSend_void(obj, func); + } + +#define release NSRelease + + si_declare_single(NSApplication, finishLaunching, "finishLaunching") + si_declare_single(NSOpenGLContext, flushBuffer, "flushBuffer") + + NSString* NSString_stringWithUTF8String(const char* str) { + loadFunc("stringWithUTF8String:"); + + return ((id(*)(id, SEL, const char*))objc_msgSend) + (objc_getClass("NSString"), func, str); + } + + const char* NSString_to_char(NSString* str) { + return ((const char* (*)(id, SEL)) objc_msgSend) (str, sel_registerName("UTF8String")); + } + + void si_impl_func_to_SEL_with_name(const char* class_name, const char* register_name, void* function) { + Class selected_class; + + if (strcmp(class_name, "NSView") == 0) { + selected_class = objc_getClass("ViewClass"); + } else if (strcmp(class_name, "NSWindow") == 0) { + selected_class = objc_getClass("WindowClass"); + } else { + selected_class = objc_getClass(class_name); + } + + class_addMethod(selected_class, sel_registerName(register_name), (IMP) function, 0); + } + + /* Header for the array. */ + typedef struct siArrayHeader { + size_t count; + /* TODO(EimaMei): Add a `type_width` later on. */ + } siArrayHeader; + + /* Gets the header of the siArray. */ +#define SI_ARRAY_HEADER(s) ((siArrayHeader*)s - 1) + + void* si_array_init_reserve(size_t sizeof_element, size_t count) { + siArrayHeader* ptr = malloc(sizeof(siArrayHeader) + (sizeof_element * count)); + void* array = ptr + sizeof(siArrayHeader); + + siArrayHeader* header = SI_ARRAY_HEADER(array); + header->count = count; + + return array; + } + +#define si_array_len(array) (SI_ARRAY_HEADER(array)->count) +#define si_func_to_SEL(class_name, function) si_impl_func_to_SEL_with_name(class_name, #function":", function) + /* Creates an Objective-C method (SEL) from a regular C function with the option to set the register name.*/ +#define si_func_to_SEL_with_name(class_name, register_name, function) si_impl_func_to_SEL_with_name(class_name, register_name":", function) + + NSRect NSMakeRect(double x, double y, double width, double height) { + NSRect r; + r.origin.x = x; + r.origin.y = y; + r.size.width = width; + r.size.height = height; + + return r; + } + + NSPoint NSMakePoint(double x, double y) { + NSPoint point; + point.x = x; + point.y = y; + return point; + } + + NSSize NSMakeSize(double w, double h) { + NSSize size; + size.width = w; + size.height = h; + return size; + } + + void* si_array_init(void* allocator, size_t sizeof_element, size_t count) { + void* array = si_array_init_reserve(sizeof_element, count); + memcpy(array, allocator, sizeof_element * count); + + return array; + } + + void si_array_free(void* array) { + if (array == NULL) + return; + + free(SI_ARRAY_HEADER(array)); + } + + unsigned char* NSBitmapImageRep_bitmapData(NSBitmapImageRep* imageRep) { + return ((unsigned char* (*)(id, SEL))objc_msgSend) + (imageRep, sel_registerName("bitmapData")); + } + +#define NS_ENUM(type, name) type name; enum + + typedef NS_ENUM(NSUInteger, NSBitmapFormat) { + NSBitmapFormatAlphaFirst = 1 << 0, // 0 means is alpha last (RGBA, CMYKA, etc.) + NSBitmapFormatAlphaNonpremultiplied = 1 << 1, // 0 means is premultiplied + NSBitmapFormatFloatingPointSamples = 1 << 2, // 0 is integer + + NSBitmapFormatSixteenBitLittleEndian API_AVAILABLE(macos(10.10)) = (1 << 8), + NSBitmapFormatThirtyTwoBitLittleEndian API_AVAILABLE(macos(10.10)) = (1 << 9), + NSBitmapFormatSixteenBitBigEndian API_AVAILABLE(macos(10.10)) = (1 << 10), + NSBitmapFormatThirtyTwoBitBigEndian API_AVAILABLE(macos(10.10)) = (1 << 11) + }; + + NSBitmapImageRep* NSBitmapImageRep_initWithBitmapData(unsigned char** planes, NSInteger width, NSInteger height, NSInteger bps, NSInteger spp, bool alpha, bool isPlanar, const char* colorSpaceName, NSBitmapFormat bitmapFormat, NSInteger rowBytes, NSInteger pixelBits) { + void* func = sel_registerName("initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:"); + + return (NSBitmapImageRep*) ((id(*)(id, SEL, unsigned char**, NSInteger, NSInteger, NSInteger, NSInteger, bool, bool, const char*, NSBitmapFormat, NSInteger, NSInteger))objc_msgSend) + (NSAlloc(objc_getClass("NSBitmapImageRep")), func, planes, width, height, bps, spp, alpha, isPlanar, NSString_stringWithUTF8String(colorSpaceName), bitmapFormat, rowBytes, pixelBits); + } + + NSColor* NSColor_colorWithSRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha) { + void* nsclass = objc_getClass("NSColor"); + void* func = sel_registerName("colorWithSRGBRed:green:blue:alpha:"); + return ((id(*)(id, SEL, CGFloat, CGFloat, CGFloat, CGFloat))objc_msgSend) + (nsclass, func, red, green, blue, alpha); + } + + NSCursor* NSCursor_initWithImage(NSImage* newImage, NSPoint aPoint) { + void* func = sel_registerName("initWithImage:hotSpot:"); + void* nsclass = objc_getClass("NSCursor"); + + return (NSCursor*) ((id(*)(id, SEL, id, NSPoint))objc_msgSend) + (NSAlloc(nsclass), func, newImage, aPoint); + } + + void NSImage_addRepresentation(NSImage* image, NSImageRep* imageRep) { + void* func = sel_registerName("addRepresentation:"); + objc_msgSend_void_id(image, func, imageRep); + } + + NSImage* NSImage_initWithSize(NSSize size) { + void* func = sel_registerName("initWithSize:"); + return ((id(*)(id, SEL, NSSize))objc_msgSend) + (NSAlloc(objc_getClass("NSImage")), func, size); + } +#define NS_OPENGL_ENUM_DEPRECATED(minVers, maxVers) API_AVAILABLE(macos(minVers)) + typedef NS_ENUM(NSInteger, NSOpenGLContextParameter) { + NSOpenGLContextParameterSwapInterval NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 222, /* 1 param. 0 -> Don't sync, 1 -> Sync to vertical retrace */ + NSOpenGLContextParameterSurfaceOrder NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 235, /* 1 param. 1 -> Above Window (default), -1 -> Below Window */ + NSOpenGLContextParameterSurfaceOpacity NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 236, /* 1 param. 1-> Surface is opaque (default), 0 -> non-opaque */ + NSOpenGLContextParameterSurfaceBackingSize NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 304, /* 2 params. Width/height of surface backing size */ + NSOpenGLContextParameterReclaimResources NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 308, /* 0 params. */ + NSOpenGLContextParameterCurrentRendererID NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 309, /* 1 param. Retrieves the current renderer ID */ + NSOpenGLContextParameterGPUVertexProcessing NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 310, /* 1 param. Currently processing vertices with GPU (get) */ + NSOpenGLContextParameterGPUFragmentProcessing NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 311, /* 1 param. Currently processing fragments with GPU (get) */ + NSOpenGLContextParameterHasDrawable NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 314, /* 1 param. Boolean returned if drawable is attached */ + NSOpenGLContextParameterMPSwapsInFlight NS_OPENGL_ENUM_DEPRECATED(10.0, 10.14) = 315, /* 1 param. Max number of swaps queued by the MP GL engine */ + + NSOpenGLContextParameterSwapRectangle API_DEPRECATED("", macos(10.0, 10.14)) = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ + NSOpenGLContextParameterSwapRectangleEnable API_DEPRECATED("", macos(10.0, 10.14)) = 201, /* Enable or disable the swap rectangle */ + NSOpenGLContextParameterRasterizationEnable API_DEPRECATED("", macos(10.0, 10.14)) = 221, /* Enable or disable all rasterization */ + NSOpenGLContextParameterStateValidation API_DEPRECATED("", macos(10.0, 10.14)) = 301, /* Validate state for multi-screen functionality */ + NSOpenGLContextParameterSurfaceSurfaceVolatile API_DEPRECATED("", macos(10.0, 10.14)) = 306, /* 1 param. Surface volatile state */ + }; + + + void NSOpenGLContext_setValues(NSOpenGLContext* context, const int* vals, NSOpenGLContextParameter param) { + void* func = sel_registerName("setValues:forParameter:"); + ((void (*)(id, SEL, const int*, NSOpenGLContextParameter))objc_msgSend) + (context, func, vals, param); + } + + void* NSOpenGLPixelFormat_initWithAttributes(const uint32_t* attribs) { + void* func = sel_registerName("initWithAttributes:"); + return (void*) ((id(*)(id, SEL, const uint32_t*))objc_msgSend) + (NSAlloc(objc_getClass("NSOpenGLPixelFormat")), func, attribs); + } + + NSOpenGLView* NSOpenGLView_initWithFrame(NSRect frameRect, uint32_t* format) { + void* func = sel_registerName("initWithFrame:pixelFormat:"); + return (NSOpenGLView*) ((id(*)(id, SEL, NSRect, uint32_t*))objc_msgSend) + (NSAlloc(objc_getClass("NSOpenGLView")), func, frameRect, format); + } + + void NSCursor_performSelector(NSCursor* cursor, void* selector) { + void* func = sel_registerName("performSelector:"); + objc_msgSend_void_SEL(cursor, func, selector); + } + + NSPasteboard* NSPasteboard_generalPasteboard(void) { + return (NSPasteboard*) objc_msgSend_id(objc_getClass("NSPasteboard"), sel_registerName("generalPasteboard")); + } + + NSString** cstrToNSStringArray(char** strs, size_t len) { + static NSString* nstrs[6]; + size_t i; + for (i = 0; i < len; i++) + nstrs[i] = NSString_stringWithUTF8String(strs[i]); + + return nstrs; + } + + const char* NSPasteboard_stringForType(NSPasteboard* pasteboard, NSPasteboardType dataType) { + void* func = sel_registerName("stringForType:"); + return (const char*) NSString_to_char(((id(*)(id, SEL, const char*))objc_msgSend)(pasteboard, func, NSString_stringWithUTF8String(dataType))); + } + + NSArray* c_array_to_NSArray(void* array, size_t len) { + void* func = sel_registerName("initWithObjects:count:"); + void* nsclass = objc_getClass("NSArray"); + + return ((id(*)(id, SEL, void*, NSUInteger))objc_msgSend) + (NSAlloc(nsclass), func, array, len); + } + + void NSregisterForDraggedTypes(void* view, NSPasteboardType* newTypes, size_t len) { + NSString** ntypes = cstrToNSStringArray(newTypes, len); + + void* func = sel_registerName("registerForDraggedTypes:"); + + NSArray* array = c_array_to_NSArray(ntypes, len); + + objc_msgSend_void_id(view, sel_registerName("registerForDraggedTypes:"), array); + + NSRelease(array); + } + + NSInteger NSPasteBoard_declareTypes(NSPasteboard* pasteboard, NSPasteboardType* newTypes, size_t len, void* owner) { + NSString** ntypes = cstrToNSStringArray(newTypes, len); + + void* func = sel_registerName("declareTypes:owner:"); + + NSArray* array = c_array_to_NSArray(ntypes, len); + + NSInteger output = ((NSInteger(*)(id, SEL, id, void*))objc_msgSend) + (pasteboard, func, array, owner); + NSRelease(array); + + return output; + } + + bool NSPasteBoard_setString(NSPasteboard* pasteboard, const char* stringToWrite, NSPasteboardType dataType) { + void* func = sel_registerName("setString:forType:"); + return ((bool (*)(id, SEL, id, NSPasteboardType))objc_msgSend) + (pasteboard, func, NSString_stringWithUTF8String(stringToWrite), NSString_stringWithUTF8String(dataType)); + } + + void NSRetain(id obj) { objc_msgSend_void(obj, sel_registerName("retain")); } + + typedef enum NSApplicationActivationPolicy { + NSApplicationActivationPolicyRegular, + NSApplicationActivationPolicyAccessory, + NSApplicationActivationPolicyProhibited + } NSApplicationActivationPolicy; + + typedef NS_ENUM(u32, NSBackingStoreType) { + NSBackingStoreRetained = 0, + NSBackingStoreNonretained = 1, + NSBackingStoreBuffered = 2 + }; + + typedef NS_ENUM(u32, NSWindowStyleMask) { + NSWindowStyleMaskBorderless = 0, + NSWindowStyleMaskTitled = 1 << 0, + NSWindowStyleMaskClosable = 1 << 1, + NSWindowStyleMaskMiniaturizable = 1 << 2, + NSWindowStyleMaskResizable = 1 << 3, + NSWindowStyleMaskTexturedBackground = 1 << 8, /* deprecated */ + NSWindowStyleMaskUnifiedTitleAndToolbar = 1 << 12, + NSWindowStyleMaskFullScreen = 1 << 14, + NSWindowStyleMaskFullSizeContentView = 1 << 15, + NSWindowStyleMaskUtilityWindow = 1 << 4, + NSWindowStyleMaskDocModalWindow = 1 << 6, + NSWindowStyleMaskNonactivatingPanel = 1 << 7, + NSWindowStyleMaskHUDWindow = 1 << 13 + }; + + typedef const char* NSPasteboardType; + NSPasteboardType const NSPasteboardTypeString = "public.utf8-plain-text"; // Replaces NSStringPboardType + + + + typedef NS_ENUM(i32, NSDragOperation) { + NSDragOperationNone = 0, + NSDragOperationCopy = 1, + NSDragOperationLink = 2, + NSDragOperationGeneric = 4, + NSDragOperationPrivate = 8, + NSDragOperationMove = 16, + NSDragOperationDelete = 32, + NSDragOperationEvery = ULONG_MAX, + + //NSDragOperationAll_Obsolete API_DEPRECATED("", macos(10.0,10.10)) = 15, // Use NSDragOperationEvery + //NSDragOperationAll API_DEPRECATED("", macos(10.0,10.10)) = NSDragOperationAll_Obsolete, // Use NSDragOperationEvery + }; + + + NSUInteger NSArray_count(NSArray* array) { + void* func = sel_registerName("count"); + return ((NSUInteger(*)(id, SEL))objc_msgSend)(array, func); + } + + void* NSArray_objectAtIndex(NSArray* array, NSUInteger index) { + void* func = sel_registerName("objectAtIndex:"); + return ((id(*)(id, SEL, NSUInteger))objc_msgSend)(array, func, index); + } + + const char** NSPasteboard_readObjectsForClasses(NSPasteboard* pasteboard, Class* classArray, size_t len, void* options) { + void* func = sel_registerName("readObjectsForClasses:options:"); + + NSArray* array = c_array_to_NSArray(classArray, len); + + NSArray* output = (NSArray*) ((id(*)(id, SEL, id, void*))objc_msgSend) + (pasteboard, func, array, options); + + NSRelease(array); + + NSUInteger count = NSArray_count(output); + + const char** res = si_array_init_reserve(sizeof(const char*), count); + + for (NSUInteger i = 0; i < count; i++) + res[i] = NSString_to_char(NSArray_objectAtIndex(output, i)); + + return res; + } + + void* NSWindow_contentView(NSWindow* window) { + void* func = sel_registerName("contentView"); + return objc_msgSend_id(window, func); + } +#endif + + +#define RGFW_ASSERT(check, str) {\ + if (!(check)) { \ + printf(str); \ + assert(check); \ + } \ +} + + u8 RGFW_error = 0; + u8 RGFW_Error() { return RGFW_error; } + +#define SET_ATTRIB(a, v) { \ + assert(((size_t) index + 1) < sizeof(attribs) / sizeof(attribs[0])); \ + attribs[index++] = a; \ + attribs[index++] = v; \ +} + +#define ADD_ATTRIB(a) { \ + assert(((size_t) index + 1) < sizeof(attribs) / sizeof(attribs[0])); \ + attribs[index++] = a; \ +} + +#if defined(RGFW_X11) || defined(RGFW_WINDOWS) + void RGFW_window_showMouse(RGFW_window* win, i8 show) { + static u8 RGFW_blk[] = { 0, 0, 0, 0 }; + if (show == 0) + RGFW_window_setMouse(win, RGFW_blk, RGFW_AREA(1, 1), 4); + else + RGFW_window_setMouseDefault(win); + } +#endif + + RGFWDEF RGFW_window* RGFW_window_basic_init(RGFW_rect rect, u16 args); + RGFWDEF void RGFW_init_buffer(RGFW_window* win); + + RGFW_window* RGFW_window_basic_init(RGFW_rect rect, u16 args) { + RGFW_window* win = (RGFW_window*) RGFW_MALLOC(sizeof(RGFW_window)); /* make a new RGFW struct */ + +#ifdef RGFW_ALLOC_DROPFILES + win->event.droppedFiles = (char**) RGFW_MALLOC(sizeof(char*) * RGFW_MAX_DROPS); + u32 i; + for (i = 0; i < RGFW_MAX_DROPS; i++) + win->event.droppedFiles[i] = (char*) RGFW_CALLOC(RGFW_MAX_PATH, sizeof(char)); +#endif + +#ifdef RGFW_X11 + /* open X11 display */ + /* this is done here so the screen size can be accessed */ + win->src.display = XOpenDisplay(NULL); + assert(win->src.display != NULL); +#endif + + #ifndef RGFW_X11 + RGFW_area screenR = RGFW_getScreenSize(); + #else + win->src.display = XOpenDisplay(NULL); + assert(win->src.display != NULL); + + Screen* scrn = DefaultScreenOfDisplay((Display*)win->src.display); + RGFW_area screenR = RGFW_AREA(scrn->width, scrn->height); + #endif + + if (args & RGFW_FULLSCREEN) + rect = RGFW_RECT(0, 0, screenR.w, screenR.h); + + if (args & RGFW_CENTER) + rect = RGFW_RECT((screenR.w - rect.w) / 2, (screenR.h - rect.h) / 2, rect.w, rect.h); + + /* set and init the new window's data */ + win->r = rect; + win->fpsCap = 0; + win->event.inFocus = 1; + win->event.droppedFilesCount = 0; + win->src.joystickCount = 0; +#ifdef RGFW_X11 + win->src.cursor = 0; +#endif +#ifdef RGFW_MACOS + RGFW_window_setMouseDefault(win); +#endif +#ifdef RGFW_WINDOWS + win->src.maxSize = RGFW_AREA(0, 0); + win->src.minSize = RGFW_AREA(0, 0); +#endif + win->src.winArgs = 0; + + return win; + } + + void RGFW_window_scaleToMonitor(RGFW_window* win) { + RGFW_monitor monitor = RGFW_window_getMonitor(win); + + RGFW_window_resize(win, RGFW_AREA(((u32) monitor.scaleX) * win->r.w, ((u32) monitor.scaleX) * win->r.h)); + } + + void RGFW_init_buffer(RGFW_window* win) { +#if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) + RGFW_area area = RGFW_getScreenSize(); +#if !(defined(RGFW_WINDOWS)) || defined(RGFW_OSMESA) + win->buffer = RGFW_MALLOC(area.w * area.h * 4); +#endif + +#ifdef RGFW_OSMESA + win->src.rSurf = OSMesaCreateContext(OSMESA_RGBA, NULL); + OSMesaMakeCurrent(win->src.rSurf, win->buffer, GL_UNSIGNED_BYTE, win->r.w, win->r.h); +#endif +#ifdef RGFW_X11 + win->src.bitmap = XCreateImage( + win->src.display, DefaultVisual(win->src.display, XDefaultScreen(win->src.display)), + DefaultDepth(win->src.display, XDefaultScreen(win->src.display)), + ZPixmap, 0, NULL, area.w, area.h, + 32, 0 + ); +#endif +#ifdef RGFW_WINDOWS + BITMAPV5HEADER bi = { 0 }; + ZeroMemory(&bi, sizeof(bi)); + bi.bV5Size = sizeof(bi); + bi.bV5Width = area.w; + bi.bV5Height = -((LONG) area.h); + bi.bV5Planes = 1; + bi.bV5BitCount = 32; + bi.bV5Compression = BI_BITFIELDS; + bi.bV5BlueMask = 0x00ff0000; + bi.bV5GreenMask = 0x0000ff00; + bi.bV5RedMask = 0x000000ff; + bi.bV5AlphaMask = 0xff000000; + + win->src.bitmap = CreateDIBSection(win->src.hdc, + (BITMAPINFO*) &bi, + DIB_RGB_COLORS, + (void**) &win->buffer, + NULL, + (DWORD) 0); + + win->src.hdcMem = CreateCompatibleDC(win->src.hdc); +#endif +#endif + } + +#if defined(RGFW_OPENGL) || defined(RGFW_EGL) || defined(RGFW_OSMESA) +#ifndef __APPLE__ +#include +#else +#include +#endif +#endif + +#ifdef RGFW_VULKAN + RGFW_vulkanInfo RGFW_vulkan_info; + + RGFW_vulkanInfo* RGFW_initVulkan(RGFW_window* win) { + assert(win != NULL); + + if ( + RGFW_initData(win) || + RGFW_deviceInitialization(win) || + RGFW_createSwapchain(win) + ) + return NULL; + + u32 graphics_family_index = 0; + u32 present_family_index = 0; + + vkGetDeviceQueue(RGFW_vulkan_info.device, graphics_family_index, 0, &RGFW_vulkan_info.graphics_queue); + vkGetDeviceQueue(RGFW_vulkan_info.device, present_family_index, 0, &RGFW_vulkan_info.present_queue); + + if ( + RGFW_createRenderPass() || + RGFW_createFramebuffers(win) || + RGFW_createCommandPool() || + RGFW_createCommandBuffers(win) || + RGFW_createSyncObjects(win) + ) + return NULL; + + return &RGFW_vulkan_info; + } + + int RGFW_initData(RGFW_window* win) { + assert(win != NULL); + + win->src.swapchain = VK_NULL_HANDLE; + win->src.image_count = 0; + RGFW_vulkan_info.current_frame = 0; + + return 0; + } + + void RGFW_createSurface(VkInstance instance, RGFW_window* win) { + assert(win != NULL); + assert(instance); + + win->src.rSurf = VK_NULL_HANDLE; + +#ifdef RGFW_X11 + VkXlibSurfaceCreateInfoKHR x11 = { VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR, 0, 0, (Display*) win->src.display, (Window) win->src.window }; + + vkCreateXlibSurfaceKHR(RGFW_vulkan_info.instance, &x11, NULL, &win->src.rSurf); +#endif +#ifdef RGFW_WINDOWS + VkWin32SurfaceCreateInfoKHR win32 = { VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, 0, 0, GetModuleHandle(NULL), win->src.window }; + + vkCreateWin32SurfaceKHR(RGFW_vulkan_info.instance, &win32, NULL, &win->src.rSurf); +#endif +#if defined(RGFW_MACOS) && !defined(RGFW_MACOS_X11) + VkMacOSSurfaceCreateFlagsMVK macos = { VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK, 0, 0, win->src.display, win->src.window }; + + vkCreateMacOSSurfaceMVK(RGFW_vulkan_info.instance, &macos, NULL, &win->src.rSurf); +#endif + } + + RGFW_vulkanInfo* RGFW_getVulkanInfo(void) { + return &RGFW_vulkan_info; + } + + int RGFW_deviceInitialization(RGFW_window* win) { + assert(win != NULL); + + VkApplicationInfo appInfo = { 0 }; + appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; + appInfo.pApplicationName = "RGFW app"; + appInfo.apiVersion = VK_MAKE_VERSION(1, 0, 0); + + char* extension = +#ifdef RGFW_WINDOWS + "VK_KHR_win32_surface"; +#elif defined(RGFW_X11) + VK_KHR_XLIB_SURFACE_EXTENSION_NAME; +#elif defined(RGFW_MACOS) + "VK_MVK_macos_surface"; +#else + NULL; +#endif + + VkInstanceCreateInfo instance_create_info = { 0 }; + instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; + instance_create_info.pApplicationInfo = &appInfo; + instance_create_info.enabledExtensionCount = extension ? 2 : 0, + instance_create_info.ppEnabledExtensionNames = (const char* [2]){ + VK_KHR_SURFACE_EXTENSION_NAME, + extension + }; + + if (vkCreateInstance(&instance_create_info, NULL, &RGFW_vulkan_info.instance) != VK_SUCCESS) { + fprintf(stderr, "failed to create instance!\n"); + return -1; + } + + + RGFW_createSurface(RGFW_vulkan_info.instance, win); + + u32 deviceCount = 0; + vkEnumeratePhysicalDevices(RGFW_vulkan_info.instance, &deviceCount, NULL); + VkPhysicalDevice* devices = (VkPhysicalDevice*) malloc(sizeof(VkPhysicalDevice) * deviceCount); + vkEnumeratePhysicalDevices(RGFW_vulkan_info.instance, &deviceCount, devices); + + RGFW_vulkan_info.physical_device = devices[0]; + + u32 queue_family_count = 0; + vkGetPhysicalDeviceQueueFamilyProperties(RGFW_vulkan_info.physical_device, &queue_family_count, NULL); + VkQueueFamilyProperties* queueFamilies = (VkQueueFamilyProperties*) malloc(sizeof(VkQueueFamilyProperties) * queue_family_count); + vkGetPhysicalDeviceQueueFamilyProperties(RGFW_vulkan_info.physical_device, &queue_family_count, queueFamilies); + + float queuePriority = 1.0f; + + VkPhysicalDeviceFeatures device_features = { 0 }; + + VkDeviceCreateInfo device_create_info = { 0 }; + device_create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; + VkDeviceQueueCreateInfo queue_create_infos[2] = { + {0}, + {0}, + }; + queue_create_infos[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; + queue_create_infos[0].queueCount = 1; + queue_create_infos[0].pQueuePriorities = &queuePriority; + queue_create_infos[1].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; + queue_create_infos[1].queueCount = 1; + queue_create_infos[1].pQueuePriorities = &queuePriority; + device_create_info.queueCreateInfoCount = 2; + device_create_info.pQueueCreateInfos = queue_create_infos; + + device_create_info.enabledExtensionCount = 1; + + const char* device_extensions[] = { + VK_KHR_SWAPCHAIN_EXTENSION_NAME + }; + + device_create_info.ppEnabledExtensionNames = device_extensions; + device_create_info.pEnabledFeatures = &device_features; + + if (vkCreateDevice(RGFW_vulkan_info.physical_device, &device_create_info, NULL, &RGFW_vulkan_info.device) != VK_SUCCESS) { + fprintf(stderr, "failed to create logical device!\n"); + return -1; + } + + return 0; + } + + int RGFW_createSwapchain(RGFW_window* win) { + assert(win != NULL); + + VkSurfaceFormatKHR surfaceFormat = { VK_FORMAT_B8G8R8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR }; + VkPresentModeKHR presentMode = VK_PRESENT_MODE_FIFO_KHR; + + VkSurfaceCapabilitiesKHR capabilities = { 0 }; + vkGetPhysicalDeviceSurfaceCapabilitiesKHR(RGFW_vulkan_info.physical_device, win->src.rSurf, &capabilities); + + win->src.image_count = capabilities.minImageCount + 1; + if (capabilities.maxImageCount > 0 && win->src.image_count > capabilities.maxImageCount) { + win->src.image_count = capabilities.maxImageCount; + } + + VkSwapchainCreateInfoKHR swapchain_create_info = { 0 }; + swapchain_create_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; + swapchain_create_info.surface = win->src.rSurf; + swapchain_create_info.minImageCount = win->src.image_count; + swapchain_create_info.imageFormat = surfaceFormat.format; + swapchain_create_info.imageColorSpace = surfaceFormat.colorSpace; + swapchain_create_info.imageExtent = (VkExtent2D){ win->r.w, win->r.h }; + swapchain_create_info.imageArrayLayers = 1; + swapchain_create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + swapchain_create_info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; + swapchain_create_info.queueFamilyIndexCount = 2; + swapchain_create_info.preTransform = capabilities.currentTransform; + swapchain_create_info.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; + swapchain_create_info.presentMode = presentMode; + swapchain_create_info.clipped = VK_TRUE; + swapchain_create_info.oldSwapchain = VK_NULL_HANDLE; + + if (vkCreateSwapchainKHR(RGFW_vulkan_info.device, &swapchain_create_info, NULL, &win->src.swapchain) != VK_SUCCESS) { + fprintf(stderr, "failed to create swap chain!\n"); + return -1; + } + + u32 imageCount; + vkGetSwapchainImagesKHR(RGFW_vulkan_info.device, win->src.swapchain, &imageCount, NULL); + win->src.swapchain_images = (VkImage*) malloc(sizeof(VkImage) * imageCount); + vkGetSwapchainImagesKHR(RGFW_vulkan_info.device, win->src.swapchain, &imageCount, win->src.swapchain_images); + + win->src.swapchain_image_views = (VkImageView*) malloc(sizeof(VkImageView) * imageCount); + for (u32 i = 0; i < imageCount; i++) { + VkImageViewCreateInfo image_view_cre_infos = { 0 }; + image_view_cre_infos.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; + image_view_cre_infos.image = win->src.swapchain_images[i]; + image_view_cre_infos.viewType = VK_IMAGE_VIEW_TYPE_2D; + image_view_cre_infos.format = VK_FORMAT_B8G8R8A8_SRGB; + image_view_cre_infos.components.r = VK_COMPONENT_SWIZZLE_IDENTITY; + image_view_cre_infos.components.g = VK_COMPONENT_SWIZZLE_IDENTITY; + image_view_cre_infos.components.b = VK_COMPONENT_SWIZZLE_IDENTITY; + image_view_cre_infos.components.a = VK_COMPONENT_SWIZZLE_IDENTITY; + image_view_cre_infos.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + image_view_cre_infos.subresourceRange.baseMipLevel = 0; + image_view_cre_infos.subresourceRange.levelCount = 1; + image_view_cre_infos.subresourceRange.baseArrayLayer = 0; + image_view_cre_infos.subresourceRange.layerCount = 1; + if (vkCreateImageView(RGFW_vulkan_info.device, &image_view_cre_infos, NULL, &win->src.swapchain_image_views[i]) != VK_SUCCESS) { + fprintf(stderr, "failed to create image views!"); + return -1; + } + } + + return 0; + } + + int RGFW_createRenderPass(void) { + VkAttachmentDescription color_attachment = { 0 }; + color_attachment.format = VK_FORMAT_B8G8R8A8_SRGB; + color_attachment.samples = VK_SAMPLE_COUNT_1_BIT; + color_attachment.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; + color_attachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE; + color_attachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + color_attachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + color_attachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + color_attachment.finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; + + VkAttachmentReference color_attachment_ref = { 0 }; + color_attachment_ref.attachment = 0; + color_attachment_ref.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + VkSubpassDescription subpass = { 0 }; + subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; + subpass.colorAttachmentCount = 1; + subpass.pColorAttachments = &color_attachment_ref; + + VkSubpassDependency dependency = { 0 }; + dependency.srcSubpass = VK_SUBPASS_EXTERNAL; + dependency.dstSubpass = 0; + dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependency.srcAccessMask = 0; + dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + + VkRenderPassCreateInfo render_pass_info = { 0 }; + render_pass_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; + render_pass_info.attachmentCount = 1; + render_pass_info.pAttachments = &color_attachment; + render_pass_info.subpassCount = 1; + render_pass_info.pSubpasses = &subpass; + render_pass_info.dependencyCount = 1; + render_pass_info.pDependencies = &dependency; + + if (vkCreateRenderPass(RGFW_vulkan_info.device, &render_pass_info, NULL, &RGFW_vulkan_info.render_pass) != VK_SUCCESS) { + fprintf(stderr, "failed to create render pass\n"); + return -1; // failed to create render pass! + } + return 0; + } + + int RGFW_createCommandPool(void) { + VkCommandPoolCreateInfo pool_info = { 0 }; + pool_info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; + pool_info.queueFamilyIndex = 0; + + if (vkCreateCommandPool(RGFW_vulkan_info.device, &pool_info, NULL, &RGFW_vulkan_info.command_pool) != VK_SUCCESS) { + fprintf(stderr, "failed to create command pool\n"); + return -1; // failed to create command pool + } + return 0; + } + + int RGFW_createCommandBuffers(RGFW_window* win) { + assert(win != NULL); + + RGFW_vulkan_info.command_buffers = (VkCommandBuffer*) malloc(sizeof(VkCommandBuffer) * win->src.image_count); + + VkCommandBufferAllocateInfo allocInfo = { 0 }; + allocInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; + allocInfo.commandPool = RGFW_vulkan_info.command_pool; + allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; + allocInfo.commandBufferCount = (u32) win->src.image_count; + + if (vkAllocateCommandBuffers(RGFW_vulkan_info.device, &allocInfo, RGFW_vulkan_info.command_buffers) != VK_SUCCESS) { + return -1; // failed to allocate command buffers; + } + + return 0; + } + + int RGFW_createSyncObjects(RGFW_window* win) { + assert(win != NULL); + + RGFW_vulkan_info.available_semaphores = (VkSemaphore*) malloc(sizeof(VkSemaphore) * RGFW_MAX_FRAMES_IN_FLIGHT); + RGFW_vulkan_info.finished_semaphore = (VkSemaphore*) malloc(sizeof(VkSemaphore) * RGFW_MAX_FRAMES_IN_FLIGHT); + RGFW_vulkan_info.in_flight_fences = (VkFence*) malloc(sizeof(VkFence) * RGFW_MAX_FRAMES_IN_FLIGHT); + RGFW_vulkan_info.image_in_flight = (VkFence*) malloc(sizeof(VkFence) * win->src.image_count); + + VkSemaphoreCreateInfo semaphore_info = { 0 }; + semaphore_info.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; + + VkFenceCreateInfo fence_info = { 0 }; + fence_info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; + fence_info.flags = VK_FENCE_CREATE_SIGNALED_BIT; + + for (size_t i = 0; i < RGFW_MAX_FRAMES_IN_FLIGHT; i++) { + if (vkCreateSemaphore(RGFW_vulkan_info.device, &semaphore_info, NULL, &RGFW_vulkan_info.available_semaphores[i]) != VK_SUCCESS || + vkCreateSemaphore(RGFW_vulkan_info.device, &semaphore_info, NULL, &RGFW_vulkan_info.finished_semaphore[i]) != VK_SUCCESS || + vkCreateFence(RGFW_vulkan_info.device, &fence_info, NULL, &RGFW_vulkan_info.in_flight_fences[i]) != VK_SUCCESS) { + fprintf(stderr, "failed to create sync objects\n"); + return -1; // failed to create synchronization objects for a frame + } + } + + for (size_t i = 0; i < win->src.image_count; i++) { + RGFW_vulkan_info.image_in_flight[i] = VK_NULL_HANDLE; + } + + return 0; + } + + int RGFW_createFramebuffers(RGFW_window* win) { + assert(win != NULL); + + RGFW_vulkan_info.framebuffers = (VkFramebuffer*) malloc(sizeof(VkFramebuffer) * win->src.image_count); + + for (size_t i = 0; i < win->src.image_count; i++) { + VkImageView attachments[] = { win->src.swapchain_image_views[i] }; + + VkFramebufferCreateInfo framebuffer_info = { 0 }; + framebuffer_info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + framebuffer_info.renderPass = RGFW_vulkan_info.render_pass; + framebuffer_info.attachmentCount = 1; + framebuffer_info.pAttachments = attachments; + framebuffer_info.width = win->r.w; + framebuffer_info.height = win->r.h; + framebuffer_info.layers = 1; + + if (vkCreateFramebuffer(RGFW_vulkan_info.device, &framebuffer_info, NULL, &RGFW_vulkan_info.framebuffers[i]) != VK_SUCCESS) { + return -1; // failed to create framebuffer + } + } + return 0; + } + + void RGFW_freeVulkan(void) { + vkDeviceWaitIdle(RGFW_vulkan_info.device); + + for (size_t i = 0; i < RGFW_MAX_FRAMES_IN_FLIGHT; i++) { + vkDestroySemaphore(RGFW_vulkan_info.device, RGFW_vulkan_info.finished_semaphore[i], NULL); + vkDestroySemaphore(RGFW_vulkan_info.device, RGFW_vulkan_info.available_semaphores[i], NULL); + vkDestroyFence(RGFW_vulkan_info.device, RGFW_vulkan_info.in_flight_fences[i], NULL); + } + + vkDestroyCommandPool(RGFW_vulkan_info.device, RGFW_vulkan_info.command_pool, NULL); + + vkDestroyPipeline(RGFW_vulkan_info.device, RGFW_vulkan_info.graphics_pipeline, NULL); + vkDestroyPipelineLayout(RGFW_vulkan_info.device, RGFW_vulkan_info.pipeline_layout, NULL); + vkDestroyRenderPass(RGFW_vulkan_info.device, RGFW_vulkan_info.render_pass, NULL); + +#ifdef RGFW_DEBUG + PFN_vkDestroyDebugUtilsMessengerEXT func = (PFN_vkDestroyDebugUtilsMessengerEXT) vkGetInstanceProcAddr(RGFW_vulkan_info.instance, "vkDestroyDebugUtilsMessengerEXT"); + if (func != NULL) { + func(RGFW_vulkan_info.instance, RGFW_vulkan_info.debugMessenger, NULL); + } +#endif + + vkDestroyDevice(RGFW_vulkan_info.device, NULL); + vkDestroyInstance(RGFW_vulkan_info.instance, NULL); + + free(RGFW_vulkan_info.framebuffers); + free(RGFW_vulkan_info.command_buffers); + free(RGFW_vulkan_info.available_semaphores); + free(RGFW_vulkan_info.finished_semaphore); + free(RGFW_vulkan_info.in_flight_fences); + free(RGFW_vulkan_info.image_in_flight); + } + +#endif /* RGFW_VULKAN */ + + RGFW_window* RGFW_root = NULL; + +#ifdef RGFW_X11 +#include +#ifndef RGFW_NO_X11_CURSOR +#include +#endif +#include + +#ifndef RGFW_NO_DPI +#include +#include +#endif +#endif + +#define RGFW_MOUSE_CHANGED (1L<<1) /*!< mouse change (for winargs)*/ +#define RGFW_HOLD_MOUSE (1L<<2) /*!< hold the moues still */ + +#ifdef RGFW_WINDOWS +#include +#include +#include +#include +#include +#include +#endif + +#if defined(RGFW_MACOS) + u8 RGFW_keyMap[128] = { 0 }; +#endif + + char* RGFW_keyCodeTokeyStr(u64 key) { +#if defined(RGFW_MACOS) + static char* keyStrs[128] = { "a", "s", "d", "f", "h", "g", "z", "x", "c", "v", "0", "b", "q", "w", "e", "r", "y", "t", "1", "2", "3", "4", "6", "5", "Equals", "9", "7", "Minus", "8", "0", "CloseBracket", "o", "u", "Bracket", "i", "p", "Return", "l", "j", "Apostrophe", "k", "Semicolon", "BackSlash", "Comma", "Slash", "n", "m", "Period", "Tab", "Space", "Backtick", "BackSpace", "0", "Escape", "0", "Super", "Shift", "CapsLock", "Alt", "Control", "0", "0", "0", "0", "0", "KP_Period", "0", "KP_Minus", "0", "0", "0", "0", "Numlock", "0", "0", "0", "KP_Multiply", "KP_Return", "0", "0", "0", "0", "KP_Slash", "KP_0", "KP_1", "KP_2", "KP_3", "KP_4", "KP_5", "KP_6", "KP_7", "0", "KP_8", "KP_9", "0", "0", "0", "F5", "F6", "F7", "F3", "F8", "F9", "0", "F11", "0", "F13", "0", "F14", "0", "F10", "0", "F12", "0", "F15", "Insert", "Home", "PageUp", "Delete", "F4", "End", "F2", "PageDown", "Left", "Right", "Down", "Up", "F1" }; + + return keyStrs[key]; +#endif +#ifdef RGFW_X11 + return XKeysymToString(key); +#endif +#ifdef RGFW_WINDOWS + static char keyName[16]; + GetKeyNameTextA((LONG) key, keyName, 16); + + if ((!(GetKeyState(VK_CAPITAL) & 0x0001) && !(GetKeyState(VK_SHIFT) & 0x8000)) || + ((GetKeyState(VK_CAPITAL) & 0x0001) && (GetKeyState(VK_SHIFT) & 0x8000))) { + CharLowerBuffA(keyName, 16); + } + + return keyName; +#endif + } + + u32 RGFW_keyStrToKeyCode(char* key) { +#if defined(RGFW_MACOS) + static char* keyStrs[128] = { "a", "s", "d", "f", "h", "g", "z", "x", "c", "v", "0", "b", "q", "w", "e", "r", "y", "t", "1", "2", "3", "4", "6", "5", "Equals", "9", "7", "Minus", "8", "0", "CloseBracket", "o", "u", "Bracket", "i", "p", "Return", "l", "j", "Apostrophe", "k", "Semicolon", "BackSlash", "Comma", "Slash", "n", "m", "Period", "Tab", "Space", "Backtick", "BackSpace", "0", "Escape", "0", "Super", "Shift", "CapsLock", "Alt", "Control", "0", "0", "0", "0", "0", "KP_Period", "0", "KP_Minus", "0", "0", "0", "0", "Numlock", "0", "0", "0", "KP_Multiply", "KP_Return", "0", "0", "0", "0", "KP_Slash", "KP_0", "KP_1", "KP_2", "KP_3", "KP_4", "KP_5", "KP_6", "KP_7", "0", "KP_8", "KP_9", "0", "0", "0", "F5", "F6", "F7", "F3", "F8", "F9", "0", "F11", "0", "F13", "0", "F14", "0", "F10", "0", "F12", "0", "F15", "Insert", "Home", "PageUp", "Delete", "F4", "End", "F2", "PageDown", "Left", "Right", "Down", "Up", "F1" }; + + key--; + while (key++) { + u32 i; + for (i = 0; i < 128; i++) { + if (*keyStrs[i] == '\1') + continue; + + if (*keyStrs[i] != *key) { + keyStrs[i] = "\1"; + continue; + } + + if (*keyStrs[i] == '\0' && *key == '\0') + return i; + + else + keyStrs[i]++; + } + + if (*key == '\0') + break; + } + +#endif +#ifdef RGFW_X11 + if (strcmp(key, "Space") == 0) key = (char*) "space"; + + return XStringToKeysym(key); +#endif +#ifdef RGFW_WINDOWS + if (key[1]) { + struct { char* key; i32 code; } keyStrs[] = { + {"Super_L", VK_LWIN}, + {"Super_R", VK_RWIN}, + {"Space", VK_SPACE}, + {"Return", VK_RETURN}, + {"Caps_Lock", VK_CAPITAL}, + {"Tab", VK_TAB}, + {"Right", VK_RIGHT}, + {"Left", VK_LEFT}, + {"Up", VK_UP}, + {"Down", VK_DOWN}, + {"ShiftL", VK_LSHIFT}, + {"ShiftR", VK_RSHIFT}, + {"ControlL", VK_RCONTROL}, + {"ControlR", VK_RCONTROL} + }; + + + while (key++) { + u32 i; + for (i = 0; i < 14; i++) { + if (*keyStrs[i].key != '\0' && *keyStrs[i].key != '\1') + keyStrs[i].key++; + + if (*keyStrs[i].key != *key) { + keyStrs[i].key = "\1"; + continue; + } + + if (*keyStrs[i].key == '\0' && *key == '\0') + return keyStrs[i].code; + } + + if (*key == '\0') + break; + } + } + + i32 vKey = VkKeyScan(key[0]); + + return vKey; +#endif /* RGFW_WINDOWS */ + + return 0; + } + + + char RGFW_keystrToChar(const char* str) { + if (str[1] == 0) + return str[0]; + + static const char* map[] = { + "asciitilde", "`", + "grave", "~", + "exclam", "!", + "at", "@", + "numbersign", "#", + "dollar", "$", + "percent", "%%", + "asciicircum", "^", + "ampersand", "&", + "asterisk", "*", + "parenleft", "(", + "parenright", ")", + "underscore", "_", + "minus", "-", + "plus", "+", + "equal", "=", + "braceleft", "{", + "bracketleft", "[", + "bracketright", "]", + "braceright", "}", + "colon", ":", + "semicolon", ";", + "quotedbl", "\"", + "apostrophe", "'", + "bar", "|", + "backslash", "\'", + "less", "<", + "comma", ",", + "greater", ">", + "period", ".", + "question", "?", + "slash", "/", + "space", " ", + "Return", "\n", + "Enter", "\n", + "enter", "\n", + }; + + u8 i = 0; + for (i = 0; i < (sizeof(map) / sizeof(char*)); i += 2) + if (strcmp(map[i], str) == 0) + return *map[i + 1]; + + return '\0'; + } + +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif + + typedef struct RGFW_Timespec { + time_t tv_sec; /* Seconds. */ + u32 tv_nsec; /* Nanoseconds. */ + } RGFW_Timespec; /*time struct for fps functions*/ + +#ifndef RGFW_WINDOWS + u32 RGFW_isPressedJS(RGFW_window* win, u16 c, u8 button) { return win->src.jsPressed[c][button]; } +#else + + typedef DWORD (WINAPI * PFN_XInputGetState)(DWORD,XINPUT_STATE*); + PFN_XInputGetState XInputGetStateSRC = NULL; + #define XInputGetState XInputGetStateSRC + static HMODULE RGFW_XInput_dll = NULL; + + u32 RGFW_isPressedJS(RGFW_window* win, u16 c, u8 button) { + XINPUT_STATE state; + if (XInputGetState == NULL || XInputGetState(c, &state) == ERROR_DEVICE_NOT_CONNECTED) + return 0; + + if (button == RGFW_JS_A) return state.Gamepad.wButtons & XINPUT_GAMEPAD_A; + else if (button == RGFW_JS_B) return state.Gamepad.wButtons & XINPUT_GAMEPAD_B; + else if (button == RGFW_JS_Y) return state.Gamepad.wButtons & XINPUT_GAMEPAD_Y; + else if (button == RGFW_JS_X) return state.Gamepad.wButtons & XINPUT_GAMEPAD_X; + else if (button == RGFW_JS_START) return state.Gamepad.wButtons & XINPUT_GAMEPAD_START; + else if (button == RGFW_JS_SELECT) return state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK; + else if (button == RGFW_JS_UP) return state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP; + else if (button == RGFW_JS_DOWN) return state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN; + else if (button == RGFW_JS_LEFT) return state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT; + else if (button == RGFW_JS_RIGHT) return state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT; + else if (button == RGFW_JS_L1) return state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER; + else if (button == RGFW_JS_R1) return state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER; + else if (button == RGFW_JS_L2 && state.Gamepad.bLeftTrigger) return 1; + else if (button == RGFW_JS_R2 && state.Gamepad.bRightTrigger) return 1; + + return 0; + } +#endif + +#ifdef RGFW_OPENGL + i32 RGFW_majorVersion = 0, RGFW_minorVersion = 0; + i32 RGFW_STENCIL = 8, RGFW_SAMPLES = 4, RGFW_STEREO = GL_FALSE, RGFW_AUX_BUFFERS = 0; + + void RGFW_setGLStencil(i32 stencil) { RGFW_STENCIL = stencil; } + void RGFW_setGLSamples(i32 samples) { RGFW_SAMPLES = samples; } + void RGFW_setGLStereo(i32 stereo) { RGFW_STEREO = stereo; } + void RGFW_setGLAuxBuffers(i32 auxBuffers) { RGFW_AUX_BUFFERS = auxBuffers; } + + void RGFW_setGLVersion(i32 major, i32 minor) { + RGFW_majorVersion = major; + RGFW_minorVersion = minor; + } + + u8* RGFW_getMaxGLVersion() { + RGFW_window* dummy = RGFW_createWindow("dummy", RGFW_RECT(0, 0, 1, 1), 0); + + const char* versionStr = (const char*) glGetString(GL_VERSION); + + static u8 version[2]; + version[0] = versionStr[0] - '0', + version[1] = versionStr[2] - '0'; + + RGFW_window_close(dummy); + + return version; + } + +#define RGFW_GL_RENDER_TYPE RGFW_OS_BASED_VALUE(GLX_X_VISUAL_TYPE, 0x2003, 73) +#define RGFW_GL_ALPHA_SIZE RGFW_OS_BASED_VALUE(GLX_ALPHA_SIZE, 0x201b, 11) +#define RGFW_GL_DEPTH_SIZE RGFW_OS_BASED_VALUE(GLX_DEPTH_SIZE, 0x2022, 12) +#define RGFW_GL_DOUBLEBUFFER RGFW_OS_BASED_VALUE(GLX_DOUBLEBUFFER, 0x2011, 5) +#define RGFW_GL_STENCIL_SIZE RGFW_OS_BASED_VALUE(GLX_STENCIL_SIZE, 0x2023, 13) +#define RGFW_GL_SAMPLES RGFW_OS_BASED_VALUE(GLX_SAMPLES, 0x2042, 55) +#define RGFW_GL_STEREO RGFW_OS_BASED_VALUE(GLX_STEREO, 0x2012, 6) +#define RGFW_GL_AUX_BUFFERS RGFW_OS_BASED_VALUE(GLX_AUX_BUFFERS, 0x2024, 7) + +#if defined(RGFW_X11) || defined(RGFW_WINDOWS) +#define RGFW_GL_DRAW RGFW_OS_BASED_VALUE(GLX_X_RENDERABLE, 0x2001, 0) +#define RGFW_GL_DRAW_TYPE RGFW_OS_BASED_VALUE(GLX_RENDER_TYPE, 0x2013, 0) +#define RGFW_GL_USE_OPENGL RGFW_OS_BASED_VALUE(GLX_USE_GL, 0x2010, 0) +#define RGFW_GL_FULL_FORMAT RGFW_OS_BASED_VALUE(GLX_TRUE_COLOR, 0x2027, 0) +#define RGFW_GL_RED_SIZE RGFW_OS_BASED_VALUE(GLX_RED_SIZE, 0x2015, 0) +#define RGFW_GL_GREEN_SIZE RGFW_OS_BASED_VALUE(GLX_GREEN_SIZE, 0x2017, 0) +#define RGFW_GL_BLUE_SIZE RGFW_OS_BASED_VALUE(GLX_BLUE_SIZE, 0x2019, 0) +#define RGFW_GL_USE_RGBA RGFW_OS_BASED_VALUE(GLX_RGBA_BIT, 0x202B, 0) +#endif + +#ifdef RGFW_WINDOWS +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9 +#endif + + static u32* RGFW_initAttribs(u32 useSoftware) { + static u32 attribs[] = { + #ifndef RGFW_MACOS + RGFW_GL_RENDER_TYPE, + RGFW_GL_FULL_FORMAT, + #endif + RGFW_GL_ALPHA_SIZE , 8, + RGFW_GL_DEPTH_SIZE , 24, + RGFW_GL_DOUBLEBUFFER , + #ifndef RGFW_MACOS + 1, + #endif + + #if defined(RGFW_X11) || defined(RGFW_WINDOWS) + RGFW_GL_USE_OPENGL, 1, + RGFW_GL_DRAW, 1, + RGFW_GL_RED_SIZE , 8, + RGFW_GL_GREEN_SIZE , 8, + RGFW_GL_BLUE_SIZE , 8, + RGFW_GL_DRAW_TYPE , RGFW_GL_USE_RGBA, + #endif + + #ifdef RGFW_X11 + GLX_DRAWABLE_TYPE , GLX_WINDOW_BIT, + #endif + + #ifdef RGFW_MACOS + 72, + 8, 24, + #endif + + #ifdef RGFW_WINDOWS + WGL_COLOR_BITS_ARB, 32, + #endif + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + size_t index = (sizeof(attribs) / sizeof(attribs[0])) - 13; + +#define RGFW_GL_ADD_ATTRIB(attrib, attVal) \ + if (attVal) { \ + attribs[index] = attrib;\ + attribs[index + 1] = attVal;\ + index += 2;\ + } + + RGFW_GL_ADD_ATTRIB(RGFW_GL_STENCIL_SIZE, RGFW_STENCIL); + RGFW_GL_ADD_ATTRIB(RGFW_GL_STEREO, RGFW_STEREO); + RGFW_GL_ADD_ATTRIB(RGFW_GL_AUX_BUFFERS, RGFW_AUX_BUFFERS); + +#ifndef RGFW_X11 + RGFW_GL_ADD_ATTRIB(RGFW_GL_SAMPLES, RGFW_SAMPLES); +#endif + +#ifdef RGFW_MACOS + if (useSoftware) { + RGFW_GL_ADD_ATTRIB(70, kCGLRendererGenericFloatID); + } else { + attribs[index] = RGFW_GL_RENDER_TYPE; + index += 1; + } +#endif + +#ifdef RGFW_MACOS + attribs[index] = 99; + attribs[index + 1] = 0x1000; + + if (RGFW_majorVersion >= 4 || RGFW_majorVersion >= 3) { + attribs[index + 1] = (u32) ((RGFW_majorVersion >= 4) ? 0x4100 : 0x3200); + } + +#endif + + RGFW_GL_ADD_ATTRIB(0, 0); + + return attribs; + } + +#endif + +#ifdef RGFW_EGL + +#if defined(RGFW_LINK_EGL) + typedef EGLBoolean(EGLAPIENTRY* PFN_eglInitialize)(EGLDisplay, EGLint*, EGLint*); + + PFNEGLINITIALIZEPROC eglInitializeSource; + PFNEGLGETCONFIGSPROC eglGetConfigsSource; + PFNEGLCHOOSECONFIGPROC eglChooseConfigSource; + PFNEGLCREATEWINDOWSURFACEPROC eglCreateWindowSurfaceSource; + PFNEGLCREATECONTEXTPROC eglCreateContextSource; + PFNEGLMAKECURRENTPROC eglMakeCurrentSource; + PFNEGLGETDISPLAYPROC eglGetDisplaySource; + PFNEGLSWAPBUFFERSPROC eglSwapBuffersSource; + PFNEGLSWAPINTERVALPROC eglSwapIntervalSource; + PFNEGLBINDAPIPROC eglBindAPISource; + PFNEGLDESTROYCONTEXTPROC eglDestroyContextSource; + PFNEGLTERMINATEPROC eglTerminateSource; + PFNEGLDESTROYSURFACEPROC eglDestroySurfaceSource; + +#define eglInitialize eglInitializeSource +#define eglGetConfigs eglGetConfigsSource +#define eglChooseConfig eglChooseConfigSource +#define eglCreateWindowSurface eglCreateWindowSurfaceSource +#define eglCreateContext eglCreateContextSource +#define eglMakeCurrent eglMakeCurrentSource +#define eglGetDisplay eglGetDisplaySource +#define eglSwapBuffers eglSwapBuffersSource +#define eglSwapInterval eglSwapIntervalSource +#define eglBindAPI eglBindAPISource +#define eglDestroyContext eglDestroyContextSource +#define eglTerminate eglTerminateSource +#define eglDestroySurface eglDestroySurfaceSource; +#endif + + +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30fb + +#ifndef RGFW_GL_ADD_ATTRIB +#define RGFW_GL_ADD_ATTRIB(attrib, attVal) \ + if (attVal) { \ + attribs[index] = attrib;\ + attribs[index + 1] = attVal;\ + index += 2;\ + } +#endif + + void RGFW_createOpenGLContext(RGFW_window* win) { + static EGLContext globalCtx = EGL_NO_CONTEXT; + +#if defined(RGFW_LINK_EGL) + eglInitializeSource = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize"); + eglGetConfigsSource = (PFNEGLGETCONFIGSPROC) eglGetProcAddress("eglGetConfigs"); + eglChooseConfigSource = (PFNEGLCHOOSECONFIGPROC) eglGetProcAddress("eglChooseConfig"); + eglCreateWindowSurfaceSource = (PFNEGLCREATEWINDOWSURFACEPROC) eglGetProcAddress("eglCreateWindowSurface"); + eglCreateContextSource = (PFNEGLCREATECONTEXTPROC) eglGetProcAddress("eglCreateContext"); + eglMakeCurrentSource = (PFNEGLMAKECURRENTPROC) eglGetProcAddress("eglMakeCurrent"); + eglGetDisplaySource = (PFNEGLGETDISPLAYPROC) eglGetProcAddress("eglGetDisplay"); + eglSwapBuffersSource = (PFNEGLSWAPBUFFERSPROC) eglGetProcAddress("eglSwapBuffers"); + eglSwapIntervalSource = (PFNEGLSWAPINTERVALPROC) eglGetProcAddress("eglSwapInterval"); + eglBindAPISource = (PFNEGLBINDAPIPROC) eglGetProcAddress("eglBindAPI"); + eglDestroyContextSource = (PFNEGLDESTROYCONTEXTPROC) eglGetProcAddress("eglDestroyContext"); + eglTerminateSource = (PFNEGLTERMINATEPROC) eglGetProcAddress("eglTerminate"); + eglDestroySurfaceSource = (PFNEGLDESTROYSURFACEPROC) eglGetProcAddress("eglDestroySurface"); +#endif /* RGFW_LINK_EGL */ + + win->src.EGL_display = eglGetDisplay((EGLNativeDisplayType) win->src.display); + + EGLint major, minor; + + eglInitialize(win->src.EGL_display, &major, &minor); + + EGLint config_attribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, + #ifdef RGFW_OPENGL_ES1 + EGL_OPENGL_ES1_BIT, + #endif + #ifdef RGFW_OPENGL_ES2 + EGL_OPENGL_ES2_BIT, + #else + EGL_OPENGL_BIT, + #endif + EGL_NONE + }; + + EGLConfig config; + EGLint num_configs; + eglChooseConfig(win->src.EGL_display, config_attribs, &config, 1, &num_configs); + +#if defined(RGFW_OPENGL_ES2) || defined(RGFW_OPENGL_ES1) + eglBindAPI(EGL_OPENGL_ES_API); +#else + eglBindAPI(EGL_OPENGL_API); +#endif + + EGLint attribs[]{ + EGL_CONTEXT_OPENGL_PROFILE_MASK, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT, + 0, 0, 0, 0 + }; + + size_t index = 2; + RGFW_GL_ADD_ATTRIB(EGL_STENCIL_SIZE, RGFW_STENCIL); + RGFW_GL_ADD_ATTRIB(EGL_SAMPLES, RGFW_SAMPLES); + RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MAJOR_VERSION, RGFW_majorVersion); + RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MINOR_VERSION, RGFW_minorVersion); + + win->src.rSurf = eglCreateContext(win->src.EGL_display, config, globalCtx, attribs); + win->src.EGL_surface = eglCreateWindowSurface(win->src.EGL_display, config, (EGLNativeWindowType) win->src.window, NULL); + + if (globalCtx == EGL_NO_CONTEXT) + RGFW_EGLglobalContext = win->src.rSurf; + + eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.rSurf); + eglSwapBuffers(win->src.EGL_display, win->src.EGL_surface); + + eglSwapInterval(win->src.EGL_display, 1); + } + + void* RGFW_getProcAddress(const char* procname) { return (void*) eglGetProcAddress(procname); } + + void RGFW_closeEGL(RGFW_window* win) { + eglDestroySurface(win->src.EGL_display, win->src.EGL_surface); + eglDestroyContext(win->src.EGL_display, win->src.rSurf); + + eglTerminate(win->src.EGL_display); + } + +#endif /* RGFW_EGL */ + + /* + This is where OS specific stuff starts + */ + +#ifdef RGFW_X11 +#include +#include +#include +#include + +#include /* for converting keycode to string */ +#include /* for hiding */ + +#include /* for data limits (mainly used in drag and drop functions) */ +#include + +#ifdef __linux__ +#include +#endif + + /*atoms needed for drag and drop*/ + Atom XdndAware, XdndTypeList, XdndSelection, XdndEnter, XdndPosition, XdndStatus, XdndLeave, XdndDrop, XdndFinished, XdndActionCopy, XdndActionMove, XdndActionLink, XdndActionAsk, XdndActionPrivate; + + Atom wm_delete_window = 0; + +#if !defined(RGFW_NO_X11_CURSOR) && !defined(RGFW_NO_X11_CURSOR_PRELOAD) + typedef XcursorImage* (*PFN_XcursorImageCreate)(int, int); + typedef void (*PFN_XcursorImageDestroy)(XcursorImage*); + typedef Cursor(*PFN_XcursorImageLoadCursor)(Display*, const XcursorImage*); +#endif +#ifdef RGFW_OPENGL + typedef GLXContext(*glXCreateContextAttribsARBProc)(Display*, GLXFBConfig, GLXContext, Bool, const int*); +#endif + +#if !defined(RGFW_NO_X11_CURSOR) && !defined(RGFW_NO_X11_CURSOR_PRELOAD) + PFN_XcursorImageLoadCursor XcursorImageLoadCursorSrc = NULL; + PFN_XcursorImageCreate XcursorImageCreateSrc = NULL; + PFN_XcursorImageDestroy XcursorImageDestroySrc = NULL; + +#define XcursorImageLoadCursor XcursorImageLoadCursorSrc +#define XcursorImageCreate XcursorImageCreateSrc +#define XcursorImageDestroy XcursorImageDestroySrc + + void* X11Cursorhandle = NULL; +#endif + + u32 RGFW_windowsOpen = 0; + +#ifdef RGFW_OPENGL + void* RGFW_getProcAddress(const char* procname) { return (void*) glXGetProcAddress((GLubyte*) procname); } +#endif + + RGFW_window* RGFW_createWindow(const char* name, RGFW_rect rect, u16 args) { +#if !defined(RGFW_NO_X11_CURSOR) && !defined(RGFW_NO_X11_CURSOR_PRELOAD) + if (X11Cursorhandle == NULL) { +#if defined(__CYGWIN__) + X11Cursorhandle = dlopen("libXcursor-1.so", RTLD_LAZY | RTLD_LOCAL); +#elif defined(__OpenBSD__) || defined(__NetBSD__) + X11Cursorhandle = dlopen("libXcursor.so", RTLD_LAZY | RTLD_LOCAL); +#else + X11Cursorhandle = dlopen("libXcursor.so.1", RTLD_LAZY | RTLD_LOCAL); +#endif + + XcursorImageCreateSrc = (PFN_XcursorImageCreate) dlsym(X11Cursorhandle, "XcursorImageCreate"); + XcursorImageDestroySrc = (PFN_XcursorImageDestroy) dlsym(X11Cursorhandle, "XcursorImageDestroy"); + XcursorImageLoadCursorSrc = (PFN_XcursorImageLoadCursor) dlsym(X11Cursorhandle, "XcursorImageLoadCursor"); + } +#endif + + XInitThreads(); /* init X11 threading*/ + + if (args & RGFW_OPENGL_SOFTWARE) + setenv("LIBGL_ALWAYS_SOFTWARE", "1", 1); + + RGFW_window* win = RGFW_window_basic_init(rect, args); + + u64 event_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask | FocusChangeMask; /* X11 events accepted*/ + +#ifdef RGFW_OPENGL + u32* visual_attribs = RGFW_initAttribs(args & RGFW_OPENGL_SOFTWARE); + i32 fbcount; + GLXFBConfig* fbc = glXChooseFBConfig((Display*) win->src.display, DefaultScreen(win->src.display), (i32*) visual_attribs, &fbcount); + + i32 best_fbc = -1; + + if (fbcount == 0) { + printf("Failed to find any valid GLX configs\n"); + return NULL; + } + + u32 i; + for (i = 0; i < fbcount; i++) { + XVisualInfo* vi = glXGetVisualFromFBConfig((Display*) win->src.display, fbc[i]); + if (vi == NULL) + continue; + + XFree(vi); + + i32 samp_buf, samples; + glXGetFBConfigAttrib((Display*) win->src.display, fbc[i], GLX_SAMPLE_BUFFERS, &samp_buf); + glXGetFBConfigAttrib((Display*) win->src.display, fbc[i], GLX_SAMPLES, &samples); + if ((best_fbc < 0 || samp_buf) && (samples == RGFW_SAMPLES)) + best_fbc = i; + } + + if (best_fbc == -1) { + printf("Failed to get a valid GLX visual\n"); + return NULL; + } + + GLXFBConfig bestFbc = fbc[best_fbc]; + + /* Get a visual */ + XVisualInfo* vi = glXGetVisualFromFBConfig((Display*) win->src.display, bestFbc); + + XFree(fbc); + + u32 valuemask = CWBorderPixel | CWColormap; +#else + XVisualInfo* vi = (XVisualInfo*) malloc(sizeof(XVisualInfo)); + vi->screen = DefaultScreen((Display*) win->src.display); + vi->visual = DefaultVisual((Display*) win->src.display, vi->screen); + + vi->depth = 0; + u32 valuemask = 0; +#endif + + /* make X window attrubutes*/ + XSetWindowAttributes swa; + Colormap cmap; + + swa.colormap = cmap = XCreateColormap((Display*) win->src.display, + RootWindow(win->src.display, vi->screen), + vi->visual, AllocNone); + + swa.background_pixmap = None; + swa.border_pixel = 0; + swa.event_mask = event_mask; + + /* create the window*/ + win->src.window = XCreateWindow((Display*) win->src.display, RootWindow((Display*) win->src.display, vi->screen), win->r.x, win->r.y, win->r.w, win->r.h, + 0, vi->depth, InputOutput, vi->visual, + valuemask | CWEventMask, &swa); + + + XFreeColors((Display*) win->src.display, cmap, NULL, 0, 0); + if (args & RGFW_TRANSPARENT_WINDOW) + XMatchVisualInfo((Display*) win->src.display, DefaultScreen((Display*) win->src.display), 32, TrueColor, vi); /* for RGBA backgrounds*/ + + XFree(vi); + +#ifdef RGFW_OPENGL + i32 context_attribs[7] = { 0, 0, 0, 0, 0, 0, 0 }; + context_attribs[0] = GLX_CONTEXT_PROFILE_MASK_ARB; + context_attribs[1] = GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; + + if (RGFW_majorVersion || RGFW_minorVersion) { + context_attribs[2] = GLX_CONTEXT_MAJOR_VERSION_ARB; + context_attribs[3] = RGFW_majorVersion; + context_attribs[4] = GLX_CONTEXT_MINOR_VERSION_ARB; + context_attribs[5] = RGFW_minorVersion; + } + + glXCreateContextAttribsARBProc glXCreateContextAttribsARB = 0; + glXCreateContextAttribsARB = (glXCreateContextAttribsARBProc) + glXGetProcAddressARB((GLubyte*) "glXCreateContextAttribsARB"); + + GLXContext ctx = NULL; + + if (RGFW_root != NULL) + ctx = RGFW_root->src.rSurf; + + win->src.rSurf = glXCreateContextAttribsARB((Display*) win->src.display, bestFbc, ctx, True, context_attribs); +#endif + +#ifdef RGFW_EGL + RGFW_createOpenGLContext(win); +#endif + + if (RGFW_root == NULL) + RGFW_root = win; + + RGFW_init_buffer(win); + +#ifdef RGFW_VULKAN + RGFW_initVulkan(win); +#endif + + if (args & RGFW_SCALE_TO_MONITOR) + RGFW_window_scaleToMonitor(win); + + if (args & RGFW_NO_RESIZE) { /* make it so the user can't resize the window*/ + XSizeHints* sh = XAllocSizeHints(); + sh->flags = (1L << 4) | (1L << 5); + sh->min_width = sh->max_width = win->r.w; + sh->min_height = sh->max_height = win->r.h; + + XSetWMSizeHints((Display*) win->src.display, (Drawable) win->src.window, sh, XA_WM_NORMAL_HINTS); + XFree(sh); + } + + if (args & RGFW_NO_BORDER) { + /* Atom vars for no-border*/ + static Atom window_type = 0; + static Atom value = 0; + + if (window_type == 0) { + window_type = XInternAtom((Display*) win->src.display, "_NET_WM_WINDOW_TYPE", False); + value = XInternAtom((Display*) win->src.display, "_NET_WM_WINDOW_TYPE_DOCK", False); + } + + XChangeProperty((Display*) win->src.display, (Drawable) win->src.window, window_type, XA_ATOM, 32, PropModeReplace, (u8*) &value, 1); /* toggle border*/ + } + + XSelectInput((Display*) win->src.display, (Drawable) win->src.window, event_mask); /* tell X11 what events we want*/ + + /* make it so the user can't close the window until the program does*/ + if (wm_delete_window == 0) + wm_delete_window = XInternAtom((Display*) win->src.display, "WM_DELETE_WINDOW", 1); + + XSetWMProtocols((Display*) win->src.display, (Drawable) win->src.window, &wm_delete_window, 1); + + /* connect the context to the window*/ +#ifdef RGFW_OPENGL + glXMakeCurrent((Display*) win->src.display, (Drawable) win->src.window, (GLXContext) win->src.rSurf); +#endif + + /* set the background*/ + XStoreName((Display*) win->src.display, (Drawable) win->src.window, name); /* set the name*/ + + XMapWindow((Display*) win->src.display, (Drawable) win->src.window); /* draw the window*/ + XMoveWindow((Display*) win->src.display, (Drawable) win->src.window, win->r.x, win->r.y); /* move the window to it's proper cords*/ + + if (args & RGFW_ALLOW_DND) { /* init drag and drop atoms and turn on drag and drop for this window */ + win->src.winArgs |= RGFW_ALLOW_DND; + + XdndAware = XInternAtom((Display*) win->src.display, "XdndAware", False); + XdndTypeList = XInternAtom((Display*) win->src.display, "XdndTypeList", False); + XdndSelection = XInternAtom((Display*) win->src.display, "XdndSelection", False); + + /* client messages */ + XdndEnter = XInternAtom((Display*) win->src.display, "XdndEnter", False); + XdndPosition = XInternAtom((Display*) win->src.display, "XdndPosition", False); + XdndStatus = XInternAtom((Display*) win->src.display, "XdndStatus", False); + XdndLeave = XInternAtom((Display*) win->src.display, "XdndLeave", False); + XdndDrop = XInternAtom((Display*) win->src.display, "XdndDrop", False); + XdndFinished = XInternAtom((Display*) win->src.display, "XdndFinished", False); + + /* actions */ + XdndActionCopy = XInternAtom((Display*) win->src.display, "XdndActionCopy", False); + XdndActionMove = XInternAtom((Display*) win->src.display, "XdndActionMove", False); + XdndActionLink = XInternAtom((Display*) win->src.display, "XdndActionLink", False); + XdndActionAsk = XInternAtom((Display*) win->src.display, "XdndActionAsk", False); + XdndActionPrivate = XInternAtom((Display*) win->src.display, "XdndActionPrivate", False); + const Atom version = 5; + + XChangeProperty((Display*) win->src.display, (Window) win->src.window, + XdndAware, 4, 32, + PropModeReplace, (u8*) &version, 1); /* turns on drag and drop */ + } + + RGFW_window_setMouseDefault(win); + + RGFW_windowsOpen++; + + return win; /*return newly created window*/ + } + + RGFW_area RGFW_getScreenSize(void) { + assert(RGFW_root != NULL); + + Screen* scrn = DefaultScreenOfDisplay((Display*) RGFW_root->src.display); + return RGFW_AREA(scrn->width, scrn->height); + } + + RGFW_vector RGFW_getGlobalMousePoint(void) { + assert(RGFW_root != NULL); + + RGFW_vector RGFWMouse; + + i32 x, y; + u32 z; + Window window1, window2; + XQueryPointer((Display*) RGFW_root->src.display, XDefaultRootWindow((Display*) RGFW_root->src.display), &window1, &window2, &x, &RGFWMouse.x, &RGFWMouse.y, &y, &z); + + return RGFWMouse; + } + + typedef struct XDND { + long source, version; + i32 format; + } XDND; /* data structure for xdnd events */ + XDND xdnd; + + int xAxis = 0, yAxis = 0; + + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { + assert(win != NULL); + + win->event.type = 0; + +#ifdef __linux__ + { + u8 i; + for (i = 0; i < win->src.joystickCount; i++) { + struct js_event e; + + + if (!win->src.joysticks[i]) + continue; + + i32 flags = fcntl(win->src.joysticks[i], F_GETFL, 0); + fcntl(win->src.joysticks[i], F_SETFL, flags | O_NONBLOCK); + + ssize_t bytes; + while ((bytes = read(win->src.joysticks[i], &e, sizeof(e))) > 0) { + switch (e.type) { + case JS_EVENT_BUTTON: + win->event.type = e.value ? RGFW_jsButtonPressed : RGFW_jsButtonReleased; + win->event.button = e.number; + win->src.jsPressed[i][e.number] = e.value; + return &win->event; + case JS_EVENT_AXIS: + ioctl(win->src.joysticks[i], JSIOCGAXES, &win->event.axisesCount); + + if ((e.number == 0 || e.number % 2) && e.number != 1) + xAxis = e.value; + else + yAxis = e.value; + + win->event.axis[e.number / 2].x = xAxis; + win->event.axis[e.number / 2].y = yAxis; + win->event.type = RGFW_jsAxisMove; + win->event.joystick = e.number / 2; + return &win->event; + + default: break; + } + } + } + } +#endif + + XEvent E; /* raw X11 event */ + + /* if there is no unread qued events, get a new one */ + if (XEventsQueued((Display*) win->src.display, QueuedAlready) + XEventsQueued((Display*) win->src.display, QueuedAfterReading) && win->event.type != RGFW_quit) + XNextEvent((Display*) win->src.display, &E); + else { + return NULL; + } + + u32 i; + + if (win->event.droppedFilesCount) { + for (i = 0; i < win->event.droppedFilesCount; i++) + win->event.droppedFiles[i][0] = '\0'; + } + + win->event.droppedFilesCount = 0; + win->event.type = 0; + + + switch (E.type) { + case KeyPress: + case KeyRelease: + /* check if it's a real key release */ + if (E.type == KeyRelease && XEventsQueued((Display*) win->src.display, QueuedAfterReading)) { /* get next event if there is one*/ + XEvent NE; + XPeekEvent((Display*) win->src.display, &NE); + + if (E.xkey.time == NE.xkey.time && E.xkey.keycode == NE.xkey.keycode) /* check if the current and next are both the same*/ + break; + } + + /* set event key data */ + win->event.keyCode = XkbKeycodeToKeysym((Display*) win->src.display, E.xkey.keycode, 0, E.xkey.state & ShiftMask ? 1 : 0); + win->event.keyName = XKeysymToString(win->event.keyCode); /* convert to string */ + + /* get keystate data */ + win->event.type = (E.type == KeyPress) ? RGFW_keyPressed : RGFW_keyReleased; + + if (win->event.type == RGFW_keyReleased) { + if (win->event.keyCode == XK_Caps_Lock && win->event.lockState & RGFW_CAPSLOCK) + win->event.lockState ^= RGFW_CAPSLOCK; + else if (win->event.keyCode == XK_Caps_Lock) + win->event.lockState |= RGFW_CAPSLOCK; + + else if (win->event.keyCode == XK_Num_Lock && win->event.lockState & RGFW_NUMLOCK) + win->event.lockState ^= RGFW_NUMLOCK; + else if (win->event.keyCode == XK_Num_Lock) + win->event.lockState |= RGFW_NUMLOCK; + } + break; + + case ButtonPress: + case ButtonRelease: + win->event.type = (E.type == ButtonPress) ? RGFW_mouseButtonPressed : RGFW_mouseButtonReleased; + + if (win->event.button == RGFW_mouseScrollUp) { + win->event.scroll = 1; + } + else if (win->event.button == RGFW_mouseScrollDown) { + win->event.scroll = -1; + } + + win->event.button = E.xbutton.button; + break; + + case MotionNotify: + win->event.point.x = E.xmotion.x; + win->event.point.y = E.xmotion.y; + win->event.type = RGFW_mousePosChanged; + break; + + case ClientMessage: + /* if the client closed the window*/ + if (E.xclient.data.l[0] == (i64) wm_delete_window) { + win->event.type = RGFW_quit; + break; + } + + /* + much of this event (drag and drop code) is source from glfw + */ + + if ((win->src.winArgs & RGFW_ALLOW_DND) == 0) + break; + + u8 formFree = 0; + if (E.xclient.message_type == XdndEnter) { + u64 count; + Atom* formats = (Atom*) 0; + Bool list = E.xclient.data.l[1] & 1; + + xdnd.source = E.xclient.data.l[0]; + xdnd.version = E.xclient.data.l[1] >> 24; + xdnd.format = None; + + if (xdnd.version > 5) + break; + + if (list) { + Atom actualType; + i32 actualFormat; + u64 bytesAfter; + + XGetWindowProperty((Display*) win->src.display, + xdnd.source, + XdndTypeList, + 0, + LONG_MAX, + False, + 4, + &actualType, + &actualFormat, + &count, + &bytesAfter, + (u8**) &formats); + } else { + formats = (Atom*) RGFW_MALLOC(E.xclient.data.l[2] + E.xclient.data.l[3] + E.xclient.data.l[4]); + formFree = 1; + + count = 0; + + if (E.xclient.data.l[2] != None) + formats[count++] = E.xclient.data.l[2]; + if (E.xclient.data.l[3] != None) + formats[count++] = E.xclient.data.l[3]; + if (E.xclient.data.l[4] != None) + formats[count++] = E.xclient.data.l[4]; + } + + u32 i; + for (i = 0; i < count; i++) { + char* name = XGetAtomName((Display*) win->src.display, formats[i]); + + char* links[2] = { (char*) (const char*) "text/uri-list", (char*) (const char*) "text/plain" }; + for (; 1; name++) { + u32 j; + for (j = 0; j < 2; j++) { + if (*links[j] != *name) { + links[j] = (char*) (const char*) "\1"; + continue; + } + + if (*links[j] == '\0' && *name == '\0') + xdnd.format = formats[i]; + + if (*links[j] != '\0' && *links[j] != '\1') + links[j]++; + } + + if (*name == '\0') + break; + } + } + + if (list && formats) { + XFree(formats); + formats = (Atom*) 0; + } else if (formFree && formats != (Atom*) 0) { + RGFW_FREE(formats); + + formats = (Atom*) 0; + formFree = 1; + } + + break; + } + if (E.xclient.message_type == XdndPosition) { + const i32 xabs = (E.xclient.data.l[2] >> 16) & 0xffff; + const i32 yabs = (E.xclient.data.l[2]) & 0xffff; + Window dummy; + i32 xpos, ypos; + + if (xdnd.version > 5) + break; + + XTranslateCoordinates((Display*) win->src.display, + XDefaultRootWindow((Display*) win->src.display), + (Window) win->src.window, + xabs, yabs, + &xpos, &ypos, + &dummy); + + win->event.point.x = xpos; + win->event.point.y = ypos; + + XEvent reply = { ClientMessage }; + reply.xclient.window = xdnd.source; + reply.xclient.message_type = XdndStatus; + reply.xclient.format = 32; + reply.xclient.data.l[0] = (long) win->src.window; + reply.xclient.data.l[2] = 0; + reply.xclient.data.l[3] = 0; + + if (xdnd.format) { + reply.xclient.data.l[1] = 1; + if (xdnd.version >= 2) + reply.xclient.data.l[4] = XdndActionCopy; + } + + XSendEvent((Display*) win->src.display, xdnd.source, False, NoEventMask, &reply); + XFlush((Display*) win->src.display); + break; + } + + if (E.xclient.message_type != XdndDrop) + break; + + if (xdnd.version > 5) + break; + + win->event.type = RGFW_dnd_init; + + if (xdnd.format) { + Time time = CurrentTime; + + if (xdnd.version >= 1) + time = E.xclient.data.l[2]; + + XConvertSelection((Display*) win->src.display, + XdndSelection, + xdnd.format, + XdndSelection, + (Window) win->src.window, + time); + } else if (xdnd.version >= 2) { + XEvent reply = { ClientMessage }; + reply.xclient.window = xdnd.source; + reply.xclient.message_type = XdndFinished; + reply.xclient.format = 32; + reply.xclient.data.l[0] = (long) win->src.window; + reply.xclient.data.l[1] = 0; + reply.xclient.data.l[2] = None; + + XSendEvent((Display*) win->src.display, xdnd.source, + False, NoEventMask, &reply); + XFlush((Display*) win->src.display); + } + break; + case SelectionNotify: + /* this is only for checking for xdnd drops */ + if (E.xselection.property != XdndSelection || !(win->src.winArgs | RGFW_ALLOW_DND)) + break; + + char* data; + u64 result; + + Atom actualType; + i32 actualFormat; + u64 bytesAfter; + + XGetWindowProperty((Display*) win->src.display, E.xselection.requestor, E.xselection.property, 0, LONG_MAX, False, E.xselection.target, &actualType, &actualFormat, &result, &bytesAfter, (u8**) &data); + + if (result == 0) + break; + + /* + SOURCED FROM GLFW _glfwParseUriList + Copyright (c) 2002-2006 Marcus Geelnard + Copyright (c) 2006-2019 Camilla Löwy + */ + + const char* prefix = "file://"; + + char* line; + + win->event.droppedFilesCount = 0; + + win->event.type = RGFW_dnd; + + while ((line = strtok(data, "\r\n"))) { + char path[RGFW_MAX_PATH]; + + data = NULL; + + if (line[0] == '#') + continue; + + char* l; + for (l = line; 1; l++) { + if ((l - line) > 7) + break; + else if (*l != prefix[(l - line)]) + break; + else if (*l == '\0' && prefix[(l - line)] == '\0') { + line += 7; + while (*line != '/') + line++; + break; + } else if (*l == '\0') + break; + } + + win->event.droppedFilesCount++; + + size_t index = 0; + while (*line) { + if (line[0] == '%' && line[1] && line[2]) { + const char digits[3] = { line[1], line[2], '\0' }; + path[index] = (char) strtol(digits, NULL, 16); + line += 2; + } else + path[index] = *line; + + index++; + line++; + } + + strcpy(win->event.droppedFiles[win->event.droppedFilesCount - 1], path); + } + + if (data) + XFree(data); + + if (xdnd.version >= 2) { + XEvent reply = { ClientMessage }; + reply.xclient.window = xdnd.source; + reply.xclient.message_type = XdndFinished; + reply.xclient.format = 32; + reply.xclient.data.l[0] = (long) win->src.window; + reply.xclient.data.l[1] = result; + reply.xclient.data.l[2] = XdndActionCopy; + + XSendEvent((Display*) win->src.display, xdnd.source, False, NoEventMask, &reply); + XFlush((Display*) win->src.display); + } + + break; + + case FocusIn: + win->event.inFocus = 1; + + XKeyboardState keystate; + XGetKeyboardControl((Display*) win->src.display, &keystate); + win->event.lockState = keystate.led_mask; + + break; + case FocusOut: + win->event.inFocus = 0; + RGFW_window_setMouseDefault(win); + break; + case ConfigureNotify: { +#ifndef RGFW_NO_X11_WINDOW_ATTRIB + XWindowAttributes a; + XGetWindowAttributes((Display*) win->src.display, (Window) win->src.window, &a); + win->r = RGFW_RECT(E.xconfigure.x, E.xconfigure.y, E.xconfigure.width, E.xconfigure.height); +#endif + + win->event.type = RGFW_windowAttribsChange; + break; + } + default: { + break; + } + } + + if (win->event.inFocus && (win->src.winArgs & RGFW_MOUSE_CHANGED)) { + XDefineCursor((Display*) win->src.display, (Window) win->src.window, (Cursor) win->src.cursor); + + win->src.winArgs &= ~RGFW_MOUSE_CHANGED; + } + + RGFW_vector mouse = RGFW_getGlobalMousePoint(); + if (win->src.winArgs & RGFW_HOLD_MOUSE && win->event.inFocus && win->event.type == RGFW_mousePosChanged) { + RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + + if (XEventsQueued((Display*) win->src.display, QueuedAfterReading) <= 1) + XSync(win->src.display, True); + } + + + XFlush((Display*) win->src.display); + + if (win->event.type) + return &win->event; + else + return NULL; + } + + void RGFW_window_close(RGFW_window* win) { + assert(win != NULL); + +#ifdef RGFW_VULKAN + for (int i = 0; i < win->src.image_count; i++) { + vkDestroyImageView(RGFW_vulkan_info.device, win->src.swapchain_image_views[i], NULL); + } + + vkDestroySwapchainKHR(RGFW_vulkan_info.device, win->src.swapchain, NULL); + vkDestroySurfaceKHR(RGFW_vulkan_info.instance, win->src.rSurf, NULL); + free(win->src.swapchain_image_views); + free(win->src.swapchain_images); +#endif + +#ifdef RGFW_EGL + RGFW_closeEGL(win); +#endif + + XFreeCursor((Display*) win->src.display, (Cursor) win->src.cursor); + +#if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) + if (win->buffer != NULL) { + XDestroyImage((XImage*) win->src.bitmap); + } +#endif + + if ((Display*) win->src.display) { +#ifdef RGFW_OPENGL + glXDestroyContext((Display*) win->src.display, win->src.rSurf); +#endif + + if (win == RGFW_root) + RGFW_root = NULL; + + if ((Drawable) win->src.window) + XDestroyWindow((Display*) win->src.display, (Drawable) win->src.window); /* close the window*/ + + if (win->src.display) + XCloseDisplay((Display*) win->src.display); /* kill the display*/ + } + +#ifdef RGFW_ALLOC_DROPFILES + { + u32 i; + for (i = 0; i < RGFW_MAX_DROPS; i++) + RGFW_FREE(win->event.droppedFiles[i]); + + + RGFW_FREE(win->event.droppedFiles); + } +#endif + + RGFW_windowsOpen--; +#if !defined(RGFW_NO_X11_CURSOR_PRELOAD) && !defined(RGFW_NO_X11_CURSOR) + if (X11Cursorhandle != NULL && RGFW_windowsOpen <= 0) { + dlclose(X11Cursorhandle); + + X11Cursorhandle = NULL; + } +#endif + + /* set cleared display / window to NULL for error checking */ + win->src.display = (Display*) 0; + win->src.window = (Window) 0; + + u8 i; + for (i = 0; i < win->src.joystickCount; i++) + close(win->src.joysticks[i]); + + RGFW_FREE(win); /* free collected window data */ + } + + void RGFW_window_move(RGFW_window* win, RGFW_vector v) { + assert(win != NULL); + win->r.x = v.x; + win->r.y = v.y; + + XMoveWindow((Display*) win->src.display, (Window) win->src.window, v.x, v.y); + } + + + void RGFW_window_resize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + win->r.w = a.w; + win->r.h = a.h; + + XResizeWindow((Display*) win->src.display, (Window) win->src.window, a.w, a.h); + } + + void RGFW_window_setMinSize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + + XSizeHints hints; + long flags; + + XGetWMNormalHints(win->src.display, (Window) win->src.window, &hints, &flags); + + hints.flags |= PMinSize; + + hints.min_width = a.w; + hints.min_height = a.h; + + XSetWMNormalHints(win->src.display, (Window) win->src.window, &hints); + } + + void RGFW_window_setMaxSize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + + XSizeHints hints; + long flags; + + XGetWMNormalHints(win->src.display, (Window) win->src.window, &hints, &flags); + + hints.flags |= PMaxSize; + + hints.max_width = a.w; + hints.max_height = a.h; + + XSetWMNormalHints(win->src.display, (Window) win->src.window, &hints); + } + + + void RGFW_window_minimize(RGFW_window* win) { + assert(win != NULL); + + XIconifyWindow(win->src.display, (Window) win->src.window, DefaultScreen(win->src.display)); + XFlush(win->src.display); + } + + void RGFW_window_restore(RGFW_window* win) { + assert(win != NULL); + + XMapWindow(win->src.display, (Window) win->src.window); + XFlush(win->src.display); + } + + void RGFW_window_setName(RGFW_window* win, char* name) { + assert(win != NULL); + + XStoreName((Display*) win->src.display, (Window) win->src.window, name); + } + + /* + the majority function is sourced from GLFW + */ + + void RGFW_window_setIcon(RGFW_window* win, u8* icon, RGFW_area a, i32 channels) { + assert(win != NULL); + + i32 longCount = 2 + a.w * a.h; + + u64* X11Icon = (u64*) RGFW_MALLOC(longCount * sizeof(u64)); + u64* target = X11Icon; + + *target++ = a.w; + *target++ = a.h; + + u32 i; + + for (i = 0; i < a.w * a.h; i++) { + if (channels == 3) + *target++ = ((icon[i * 3 + 0]) << 16) | + ((icon[i * 3 + 1]) << 8) | + ((icon[i * 3 + 2]) << 0) | + (0xFF << 24); + + else if (channels == 4) + *target++ = ((icon[i * 4 + 0]) << 16) | + ((icon[i * 4 + 1]) << 8) | + ((icon[i * 4 + 2]) << 0) | + ((icon[i * 4 + 3]) << 24); + } + + static Atom NET_WM_ICON = 0; + if (NET_WM_ICON == 0) + NET_WM_ICON = XInternAtom((Display*) win->src.display, "_NET_WM_ICON", False); + + XChangeProperty((Display*) win->src.display, (Window) win->src.window, + NET_WM_ICON, + 6, 32, + PropModeReplace, + (u8*) X11Icon, + longCount); + + RGFW_FREE(X11Icon); + + XFlush((Display*) win->src.display); + } + + void RGFW_window_setMouse(RGFW_window* win, u8* image, RGFW_area a, i32 channels) { + assert(win != NULL); + +#ifndef RGFW_NO_X11_CURSOR + /* free the previous cursor */ + if (win->src.cursor && win->src.cursor != -1) + XFreeCursor((Display*) win->src.display, (Cursor) win->src.cursor); + + XcursorImage* native = XcursorImageCreate(a.w, a.h); + native->xhot = 0; + native->yhot = 0; + + u8* source = (u8*) image; + XcursorPixel* target = native->pixels; + + u32 i; + for (i = 0; i < a.w * a.h; i++, target++, source += 4) { + u8 alpha = 0xFF; + if (channels == 4) + alpha = source[3]; + + *target = (alpha << 24) | (((source[0] * alpha) / 255) << 16) | (((source[1] * alpha) / 255) << 8) | (((source[2] * alpha) / 255) << 0); + } + + win->src.winArgs |= RGFW_MOUSE_CHANGED; + win->src.cursor = XcursorImageLoadCursor((Display*) win->src.display, native); + + XcursorImageDestroy(native); +#endif + } + + void RGFW_window_moveMouse(RGFW_window* win, RGFW_vector v) { + assert(win != NULL); + + XEvent event; + XQueryPointer(win->src.display, DefaultRootWindow(win->src.display), + &event.xbutton.root, &event.xbutton.window, + &event.xbutton.x_root, &event.xbutton.y_root, + &event.xbutton.x, &event.xbutton.y, + &event.xbutton.state); + + if (event.xbutton.x == v.x && event.xbutton.y == v.y) + return; + + XWarpPointer(win->src.display, None, None, 0, 0, 0, 0, -event.xbutton.x, -event.xbutton.y); + XWarpPointer(win->src.display, None, None, 0, 0, 0, 0, v.x, v.y); + } + + RGFWDEF void RGFW_window_disableMouse(RGFW_window* win) { + + } + + void RGFW_window_setMouseDefault(RGFW_window* win) { + RGFW_window_setMouseStandard(win, XC_left_ptr); + } + + void RGFW_window_setMouseStandard(RGFW_window* win, i32 mouse) { + assert(win != NULL); + + /* free the previous cursor */ + if (win->src.cursor && win->src.cursor != -1) + XFreeCursor((Display*) win->src.display, (Cursor) win->src.cursor); + + win->src.winArgs |= RGFW_MOUSE_CHANGED; + win->src.cursor = XCreateFontCursor((Display*) win->src.display, mouse); + } + + void RGFW_window_hide(RGFW_window* win) { + XMapWindow(win->src.display, win->src.window); + } + + void RGFW_window_show(RGFW_window* win) { + XUnmapWindow(win->src.display, win->src.window); + } + + /* + the majority function is sourced from GLFW + */ + char* RGFW_readClipboard(size_t* size) { + static Atom UTF8 = 0; + if (UTF8 == 0) + UTF8 = XInternAtom(RGFW_root->src.display, "UTF8_STRING", True); + + XEvent event; + int format; + unsigned long N, sizeN; + char* data, * s = NULL; + Atom target; + Atom CLIPBOARD = 0, XSEL_DATA = 0; + + if (CLIPBOARD == 0) { + CLIPBOARD = XInternAtom(RGFW_root->src.display, "CLIPBOARD", 0); + XSEL_DATA = XInternAtom(RGFW_root->src.display, "XSEL_DATA", 0); + } + + XConvertSelection(RGFW_root->src.display, CLIPBOARD, UTF8, XSEL_DATA, RGFW_root->src.window, CurrentTime); + XSync(RGFW_root->src.display, 0); + XNextEvent(RGFW_root->src.display, &event); + + if (event.type != SelectionNotify || event.xselection.selection != CLIPBOARD || event.xselection.property == 0) + return NULL; + + XGetWindowProperty(event.xselection.display, event.xselection.requestor, + event.xselection.property, 0L, (~0L), 0, AnyPropertyType, &target, + &format, &sizeN, &N, (unsigned char**) &data); + + if (target == UTF8 || target == XA_STRING) { + s = strndup(data, sizeN); + XFree(data); + } + + XDeleteProperty(event.xselection.display, event.xselection.requestor, event.xselection.property); + + if (s != NULL && size != NULL) + *size = sizeN; + + return s; + } + + /* + almost all of this function is sourced from GLFW + */ + void RGFW_writeClipboard(const char* text, u32 textLen) { + static Atom CLIPBOARD = 0, + UTF8_STRING = 0, + SAVE_TARGETS = 0, + TARGETS = 0, + MULTIPLE = 0, + ATOM_PAIR = 0, + CLIPBOARD_MANAGER = 0; + + if (CLIPBOARD == 0) { + CLIPBOARD = XInternAtom((Display*) RGFW_root->src.display, "CLIPBOARD", False); + UTF8_STRING = XInternAtom((Display*) RGFW_root->src.display, "UTF8_STRING", False); + SAVE_TARGETS = XInternAtom((Display*) RGFW_root->src.display, "SAVE_TARGETS", False); + TARGETS = XInternAtom((Display*) RGFW_root->src.display, "TARGETS", False); + MULTIPLE = XInternAtom((Display*) RGFW_root->src.display, "MULTIPLE", False); + ATOM_PAIR = XInternAtom((Display*) RGFW_root->src.display, "ATOM_PAIR", False); + CLIPBOARD_MANAGER = XInternAtom((Display*) RGFW_root->src.display, "CLIPBOARD_MANAGER", False); + } + + XSetSelectionOwner((Display*) RGFW_root->src.display, CLIPBOARD, (Window) RGFW_root->src.window, CurrentTime); + + XConvertSelection((Display*) RGFW_root->src.display, CLIPBOARD_MANAGER, SAVE_TARGETS, None, (Window) RGFW_root->src.window, CurrentTime); + + for (;;) { + XEvent event; + + XNextEvent((Display*) RGFW_root->src.display, &event); + if (event.type != SelectionRequest) + return; + + const XSelectionRequestEvent* request = &event.xselectionrequest; + + XEvent reply = { SelectionNotify }; + + char* selectionString = NULL; + const Atom formats[] = { UTF8_STRING, XA_STRING }; + const i32 formatCount = sizeof(formats) / sizeof(formats[0]); + + selectionString = (char*) text; + + if (request->target == TARGETS) { + const Atom targets[] = { TARGETS, + MULTIPLE, + UTF8_STRING, + XA_STRING }; + + XChangeProperty((Display*) RGFW_root->src.display, + request->requestor, + request->property, + 4, + 32, + PropModeReplace, + (u8*) targets, + sizeof(targets) / sizeof(targets[0])); + + reply.xselection.property = request->property; + } + + if (request->target == MULTIPLE) { + + Atom* targets; + + Atom actualType; + i32 actualFormat; + u64 count, bytesAfter; + + XGetWindowProperty((Display*) RGFW_root->src.display, request->requestor, request->property, 0, LONG_MAX, False, ATOM_PAIR, &actualType, &actualFormat, &count, &bytesAfter, (u8**) &targets); + + u64 i; + for (i = 0; i < count; i += 2) { + i32 j; + + for (j = 0; j < formatCount; j++) { + if (targets[i] == formats[j]) + break; + } + + if (j < formatCount) + { + XChangeProperty((Display*) RGFW_root->src.display, + request->requestor, + targets[i + 1], + targets[i], + 8, + PropModeReplace, + (u8*) selectionString, + textLen); + } else + targets[i + 1] = None; + } + + XChangeProperty((Display*) RGFW_root->src.display, + request->requestor, + request->property, + ATOM_PAIR, + 32, + PropModeReplace, + (u8*) targets, + count); + + XFree(targets); + + reply.xselection.property = request->property; + } + + reply.xselection.display = request->display; + reply.xselection.requestor = request->requestor; + reply.xselection.selection = request->selection; + reply.xselection.target = request->target; + reply.xselection.time = request->time; + + XSendEvent((Display*) RGFW_root->src.display, request->requestor, False, 0, &reply); + } + } + + u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) { + assert(win != NULL); + +#ifdef __linux__ + char file[15]; + sprintf(file, "/dev/input/js%i", jsNumber); + + return RGFW_registerJoystickF(win, file); +#endif + } + + u16 RGFW_registerJoystickF(RGFW_window* win, char* file) { + assert(win != NULL); + +#ifdef __linux__ + + i32 js = open(file, O_RDONLY); + + if (js && win->src.joystickCount < 4) { + win->src.joystickCount++; + + win->src.joysticks[win->src.joystickCount - 1] = open(file, O_RDONLY); + + u8 i; + for (i = 0; i < 16; i++) + win->src.jsPressed[win->src.joystickCount - 1][i] = 0; + + } + + else { +#ifdef RGFW_PRINT_ERRORS + RGFW_error = 1; + fprintf(stderr, "Error RGFW_registerJoystickF : Cannot open file %s\n", file); +#endif + } + + return win->src.joystickCount - 1; +#endif + } + + u8 RGFW_window_isFullscreen(RGFW_window* win) { + assert(win != NULL); + + XWindowAttributes windowAttributes; + XGetWindowAttributes(win->src.display, (Window) win->src.window, &windowAttributes); + + /* check if the window is visable */ + if (windowAttributes.map_state != IsViewable) + return 0; + + /* check if the window covers the full screen */ + return (windowAttributes.x == 0 && windowAttributes.y == 0 && + windowAttributes.width == XDisplayWidth(win->src.display, DefaultScreen(win->src.display)) && + windowAttributes.height == XDisplayHeight(win->src.display, DefaultScreen(win->src.display))); + } + + u8 RGFW_window_isHidden(RGFW_window* win) { + assert(win != NULL); + + XWindowAttributes windowAttributes; + XGetWindowAttributes(win->src.display, (Window) win->src.window, &windowAttributes); + + return (windowAttributes.map_state == IsUnmapped && !RGFW_window_isMinimized(win)); + } + + u8 RGFW_window_isMinimized(RGFW_window* win) { + assert(win != NULL); + + static Atom prop = 0; + if (prop == 0) + prop = XInternAtom(win->src.display, "WM_STATE", False); + + Atom actual_type; + i32 actual_format; + u64 nitems, bytes_after; + unsigned char* prop_data; + + i16 status = XGetWindowProperty(win->src.display, (Window) win->src.window, prop, 0, 2, False, + AnyPropertyType, &actual_type, &actual_format, + &nitems, &bytes_after, &prop_data); + + if (status == Success && nitems >= 1 && *((int*) prop_data) == IconicState) { + XFree(prop_data); + return 1; + } + + if (prop_data != NULL) + XFree(prop_data); + + return 0; + } + + u8 RGFW_window_isMaximized(RGFW_window* win) { + assert(win != NULL); + + static Atom net_wm_state = 0; + static Atom net_wm_state_maximized_horz = 0; + static Atom net_wm_state_maximized_vert = 0; + + if (net_wm_state == 0) { + net_wm_state = XInternAtom(win->src.display, "_NET_WM_STATE", False); + net_wm_state_maximized_vert = XInternAtom(win->src.display, "_NET_WM_STATE_MAXIMIZED_VERT", False); + net_wm_state_maximized_horz = XInternAtom(win->src.display, "_NET_WM_STATE_MAXIMIZED_HORZ", False); + } + + Atom actual_type; + i32 actual_format; + u64 nitems, bytes_after; + unsigned char* prop_data; + + i16 status = XGetWindowProperty(win->src.display, (Window) win->src.window, net_wm_state, 0, 1024, False, + XA_ATOM, &actual_type, &actual_format, + &nitems, &bytes_after, &prop_data); + + if (status != Success) { + if (prop_data != NULL) + XFree(prop_data); + + return 0; + } + + Atom* atoms = (Atom*) prop_data; + u64 i; + for (i = 0; i < nitems; ++i) { + if (atoms[i] == net_wm_state_maximized_horz || + atoms[i] == net_wm_state_maximized_vert) { + XFree(prop_data); + return 1; + } + } + + return 0; + } + + static void XGetSystemContentScale(Display* display, float* xscale, float* yscale) { + float xdpi = 96.f, ydpi = 96.f; + +#ifndef RGFW_NO_DPI + char* rms = XResourceManagerString(display); + XrmDatabase db = NULL; + + if (rms && db) + db = XrmGetStringDatabase(rms); + + if (db == 0) { + *xscale = xdpi / 96.f; + *yscale = ydpi / 96.f; + return; + } + + XrmValue value; + char* type = NULL; + + if (XrmGetResource(db, "Xft.dpi", "Xft.Dpi", &type, &value) && type && strcmp(type, "String") == 0) + xdpi = ydpi = atof(value.addr); + XrmDestroyDatabase(db); +#endif + + * xscale = xdpi / 96.f; + *yscale = ydpi / 96.f; + } + + RGFW_monitor RGFW_XCreateMonitor(i32 screen) { + RGFW_monitor monitor; + + Display* display = XOpenDisplay(NULL); + + monitor.rect = RGFW_RECT(0, 0, DisplayWidth(display, screen), DisplayHeight(display, screen)); + monitor.physW = (monitor.rect.w * 25.4f / 96.f); + monitor.physH = (monitor.rect.h * 25.4f / 96.f); + + strncpy(monitor.name, DisplayString(display), 128); + + XGetSystemContentScale(display, &monitor.scaleX, &monitor.scaleY); + + XRRScreenResources* sr = XRRGetScreenResourcesCurrent(display, RootWindow(display, screen)); + + XRRCrtcInfo* ci = NULL; + int crtc = 0; + + if (sr->ncrtc > crtc) { + ci = XRRGetCrtcInfo(display, sr, sr->crtcs[crtc]); + } + + if (ci == NULL) { + XRRFreeScreenResources(sr); + XCloseDisplay(display); + return monitor; + } + + monitor.rect.x = ci->x; + monitor.rect.y = ci->y; + + XRRFreeCrtcInfo(ci); + XRRFreeScreenResources(sr); + + XCloseDisplay(display); + + return monitor; + } + + RGFW_monitor RGFW_monitors[6]; + RGFW_monitor* RGFW_getMonitors(void) { + size_t i; + for (i = 0; i < ScreenCount(RGFW_root->src.display) && i < 6; i++) + RGFW_monitors[i] = RGFW_XCreateMonitor(i); + + return RGFW_monitors; + } + + RGFW_monitor RGFW_getPrimaryMonitor(void) { + assert(RGFW_root != NULL); + + i32 primary = -1; + Window root = DefaultRootWindow(RGFW_root->src.display); + XRRScreenResources* res = XRRGetScreenResources(RGFW_root->src.display, root); + + for (int i = 0; i < res->noutput; i++) { + XRROutputInfo* output_info = XRRGetOutputInfo(RGFW_root->src.display, res, res->outputs[i]); + if (output_info->connection == RR_Connected && output_info->crtc) { + XRRCrtcInfo* crtc_info = XRRGetCrtcInfo(RGFW_root->src.display, res, output_info->crtc); + if (crtc_info->mode != None && crtc_info->x == 0 && crtc_info->y == 0) { + primary = i; + XRRFreeCrtcInfo(crtc_info); + XRRFreeOutputInfo(output_info); + break; + } + XRRFreeCrtcInfo(crtc_info); + } + XRRFreeOutputInfo(output_info); + } + + XRRFreeScreenResources(res); + + return RGFW_XCreateMonitor(primary); + } + + RGFW_monitor RGFW_window_getMonitor(RGFW_window* win) { + return RGFW_XCreateMonitor(DefaultScreen(win->src.display)); + } + + char keyboard[32]; + + u8 RGFW_isPressedI(RGFW_window* win, u32 key) { + Display* d; + if (win == (RGFW_window*) 0) + d = RGFW_root->src.display; + else if (!win->event.inFocus) + return 0; + else + d = (Display*) win->src.display; + + XQueryKeymap(d, keyboard); /* query the keymap */ + + KeyCode kc2 = XKeysymToKeycode(d, key); /* convert the key to a keycode */ + return !!(keyboard[kc2 >> 3] & (1 << (kc2 & 7))); /* check if the key is pressed */ + } + +#endif + +#ifdef RGFW_WINDOWS + char* createUTF8FromWideStringWin32(const WCHAR* source); + +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 + +#if defined(RGFW_OSMESA) && defined(RGFW_LINK_OSMESA) + + typedef void (GLAPIENTRY* PFN_OSMesaDestroyContext)(OSMesaContext); + typedef i32(GLAPIENTRY* PFN_OSMesaMakeCurrent)(OSMesaContext, void*, int, int, int); + typedef OSMesaContext(GLAPIENTRY* PFN_OSMesaCreateContext)(GLenum, OSMesaContext); + + PFN_OSMesaMakeCurrent OSMesaMakeCurrentSource; + PFN_OSMesaCreateContext OSMesaCreateContextSource; + PFN_OSMesaDestroyContext OSMesaDestroyContextSource; + +#define OSMesaCreateContext OSMesaCreateContextSource +#define OSMesaMakeCurrent OSMesaMakeCurrentSource +#define OSMesaDestroyContext OSMesaDestroyContextSource +#endif + + typedef int (*PFN_wglGetSwapIntervalEXT)(void); + PFN_wglGetSwapIntervalEXT wglGetSwapIntervalEXTSrc = NULL; +#define wglGetSwapIntervalEXT wglGetSwapIntervalEXTSrc + + + +#if defined(RGFW_DIRECTX) + RGFW_directXinfo RGFW_dxInfo; + + RGFW_directXinfo* RGFW_getDirectXInfo(void) { return &RGFW_dxInfo; } +#endif + + void* RGFWjoystickApi = NULL; + + /* these two wgl functions need to be preloaded */ + typedef HGLRC(WINAPI* wglCreateContextAttribsARB_type)(HDC hdc, HGLRC hShareContext, + const i32* attribList); + wglCreateContextAttribsARB_type wglCreateContextAttribsARB = NULL; + + /* defines for creating ARB attributes */ +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201a +#define WGL_ALPHA_BITS_ARB 0x201b +#define WGL_ALPHA_SHIFT_ARB 0x201c +#define WGL_ACCUM_BITS_ARB 0x201d +#define WGL_ACCUM_RED_BITS_ARB 0x201e +#define WGL_ACCUM_GREEN_BITS_ARB 0x201f +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_STEREO_ARB 0x2012 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_CONTEXT_FLAGS_ARB 0x2094 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9 + +static HMODULE wglinstance = NULL; + +#ifdef RGFW_WGL_LOAD + typedef HGLRC(WINAPI* PFN_wglCreateContext)(HDC); + typedef BOOL(WINAPI* PFN_wglDeleteContext)(HGLRC); + typedef PROC(WINAPI* PFN_wglGetProcAddress)(LPCSTR); + typedef BOOL(WINAPI* PFN_wglMakeCurrent)(HDC, HGLRC); + typedef HDC(WINAPI* PFN_wglGetCurrentDC)(); + typedef HGLRC(WINAPI* PFN_wglGetCurrentContext)(); + + PFN_wglCreateContext wglCreateContextSRC; + PFN_wglDeleteContext wglDeleteContextSRC; + PFN_wglGetProcAddress wglGetProcAddressSRC; + PFN_wglMakeCurrent wglMakeCurrentSRC; + PFN_wglGetCurrentDC wglGetCurrentDCSRC; + PFN_wglGetCurrentContext wglGetCurrentContextSRC; + +#define wglCreateContext wglCreateContextSRC +#define wglDeleteContext wglDeleteContextSRC +#define wglGetProcAddress wglGetProcAddressSRC +#define wglMakeCurrent wglMakeCurrentSRC + +#define wglGetCurrentDC wglGetCurrentDCSRC +#define wglGetCurrentContext wglGetCurrentContextSRC +#endif + +#ifdef RGFW_OPENGL + void* RGFW_getProcAddress(const char* procname) { + void* proc = (void*) wglGetProcAddress(procname); + if (proc) + return proc; + + return (void*) GetProcAddress(wglinstance, procname); + } + + typedef BOOL(APIENTRY* PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); + static PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB = NULL; +#endif + + RGFW_window RGFW_eventWindow = { {NULL} }; + + LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { + switch (message) { + case WM_MOVE: + RGFW_eventWindow.r.x = LOWORD(lParam); + RGFW_eventWindow.r.y = HIWORD(lParam); + RGFW_eventWindow.src.window = hWnd; + return DefWindowProcA(hWnd, message, wParam, lParam); + case WM_SIZE: + RGFW_eventWindow.r.w = LOWORD(lParam); + RGFW_eventWindow.r.h = HIWORD(lParam); + RGFW_eventWindow.src.window = hWnd; + return DefWindowProcA(hWnd, message, wParam, lParam); // Call DefWindowProc after handling + default: + return DefWindowProcA(hWnd, message, wParam, lParam); + } + } + + #ifndef RGFW_NO_DPI + static HMODULE RGFW_Shcore_dll = NULL; + typedef HRESULT (WINAPI * PFN_GetDpiForMonitor)(HMONITOR,MONITOR_DPI_TYPE,UINT*,UINT*); + PFN_GetDpiForMonitor GetDpiForMonitorSRC = NULL; + #define GetDpiForMonitor GetDpiForMonitorSRC + #endif + + void RGFW_loadXInput(void) { + u32 i; + static const char* names[] = { + "xinput1_4.dll", + "xinput1_3.dll", + "xinput9_1_0.dll", + "xinput1_2.dll", + "xinput1_1.dll" + }; + + for (i = 0; i < sizeof(names) / sizeof(const char*); i++) { + RGFW_XInput_dll = LoadLibraryA(names[i]); + + if (RGFW_XInput_dll) { + XInputGetStateSRC = (PFN_XInputGetState)GetProcAddress(RGFW_XInput_dll, "XInputGetState"); + + if (XInputGetStateSRC == NULL) + printf("Failed to load XInputGetState"); + } + } + } + + RGFW_window* RGFW_createWindow(const char* name, RGFW_rect rect, u16 args) { + if (RGFW_XInput_dll == NULL) + RGFW_loadXInput(); + + #ifndef RGFW_NO_DPI + if (RGFW_Shcore_dll == NULL) { + RGFW_Shcore_dll = LoadLibraryA("shcore.dll"); + GetDpiForMonitorSRC = (PFN_GetDpiForMonitor)GetProcAddress(RGFW_Shcore_dll, "GetDpiForMonitor"); + } + #endif + + if (wglinstance == NULL) { + wglinstance = LoadLibraryA("opengl32.dll"); +#ifdef RGFW_WGL_LOAD + wglCreateContextSRC = (PFN_wglCreateContext) GetProcAddress(wglinstance, "wglCreateContext"); + wglDeleteContextSRC = (PFN_wglDeleteContext) GetProcAddress(wglinstance, "wglDeleteContext"); + wglGetProcAddressSRC = (PFN_wglGetProcAddress) GetProcAddress(wglinstance, "wglGetProcAddress"); + wglMakeCurrentSRC = (PFN_wglMakeCurrent) GetProcAddress(wglinstance, "wglMakeCurrent"); + wglGetCurrentDCSRC = (PFN_wglGetCurrentDC) GetProcAddress(wglinstance, "wglGetCurrentDC"); + wglGetCurrentContextSRC = (PFN_wglGetCurrentContext) GetProcAddress(wglinstance, "wglGetCurrentContext"); +#endif + } + + if (name[0] == 0) name = (char*) " "; + + RGFW_eventWindow.r = RGFW_RECT(-1, -1, -1, -1); + + RGFW_window* win = RGFW_window_basic_init(rect, args); + + if (RGFW_root == NULL) { + RGFW_root = win; + } + + HINSTANCE inh = GetModuleHandleA(NULL); + + WNDCLASSA Class = { 0 }; /* Setup the Window class. */ + Class.lpszClassName = name; + Class.hInstance = inh; + Class.hCursor = LoadCursor(NULL, IDC_ARROW); + Class.lpfnWndProc = WndProc; + + RegisterClassA(&Class); + + DWORD window_style = WS_CLIPSIBLINGS | WS_CLIPCHILDREN; + + RECT windowRect, clientRect; + + if (!(args & RGFW_NO_BORDER)) { + window_style |= WS_CAPTION | WS_SYSMENU | WS_BORDER | WS_VISIBLE | WS_MINIMIZEBOX; + + if (!(args & RGFW_NO_RESIZE)) + window_style |= WS_SIZEBOX | WS_MAXIMIZEBOX | WS_THICKFRAME; + } else + window_style |= WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX; + + HWND dummyWin = CreateWindowA(Class.lpszClassName, name, window_style, win->r.x, win->r.y, win->r.w, win->r.h, 0, 0, inh, 0); + + GetWindowRect(dummyWin, &windowRect); + GetClientRect(dummyWin, &clientRect); + + win->src.hOffset = (windowRect.bottom - windowRect.top) - (clientRect.bottom - clientRect.top); + win->src.window = CreateWindowA(Class.lpszClassName, name, window_style, win->r.x, win->r.y, win->r.w, win->r.h + win->src.hOffset, 0, 0, inh, 0); + + if (args & RGFW_TRANSPARENT_WINDOW) { + SetWindowLongA(win->src.window, GWL_EXSTYLE, GetWindowLongA(win->src.window, GWL_EXSTYLE) | WS_EX_LAYERED); + } + if (args & RGFW_ALLOW_DND) { + win->src.winArgs |= RGFW_ALLOW_DND; + DragAcceptFiles(win->src.window, TRUE); + } + win->src.hdc = GetDC(win->src.window); + +#ifdef RGFW_DIRECTX + assert(FAILED(CreateDXGIFactory(&__uuidof(IDXGIFactory), (void**) &RGFW_dxInfo.pFactory)) == 0); + + if (FAILED(RGFW_dxInfo.pFactory->lpVtbl->EnumAdapters(RGFW_dxInfo.pFactory, 0, &RGFW_dxInfo.pAdapter))) { + fprintf(stderr, "Failed to enumerate DXGI adapters\n"); + RGFW_dxInfo.pFactory->lpVtbl->Release(RGFW_dxInfo.pFactory); + return NULL; + } + + D3D_FEATURE_LEVEL featureLevels[] = { D3D_FEATURE_LEVEL_11_0 }; + + if (FAILED(D3D11CreateDevice(RGFW_dxInfo.pAdapter, D3D_DRIVER_TYPE_UNKNOWN, NULL, 0, featureLevels, 1, D3D11_SDK_VERSION, &RGFW_dxInfo.pDevice, NULL, &RGFW_dxInfo.pDeviceContext))) { + fprintf(stderr, "Failed to create Direct3D device\n"); + RGFW_dxInfo.pAdapter->lpVtbl->Release(RGFW_dxInfo.pAdapter); + RGFW_dxInfo.pFactory->lpVtbl->Release(RGFW_dxInfo.pFactory); + return NULL; + } + + DXGI_SWAP_CHAIN_DESC swapChainDesc = { 0 }; + swapChainDesc.BufferCount = 1; + swapChainDesc.BufferDesc.Width = win->r.w; + swapChainDesc.BufferDesc.Height = win->r.h; + swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.OutputWindow = win->src.window; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.Windowed = TRUE; + RGFW_dxInfo.pFactory->lpVtbl->CreateSwapChain(RGFW_dxInfo.pFactory, (IUnknown*) RGFW_dxInfo.pDevice, &swapChainDesc, &win->src.swapchain); + + ID3D11Texture2D* pBackBuffer; + win->src.swapchain->lpVtbl->GetBuffer(win->src.swapchain, 0, &__uuidof(ID3D11Texture2D), (LPVOID*) &pBackBuffer); + RGFW_dxInfo.pDevice->lpVtbl->CreateRenderTargetView(RGFW_dxInfo.pDevice, (ID3D11Resource*) pBackBuffer, NULL, &win->src.renderTargetView); + pBackBuffer->lpVtbl->Release(pBackBuffer); + + D3D11_TEXTURE2D_DESC depthStencilDesc = { 0 }; + depthStencilDesc.Width = win->r.w; + depthStencilDesc.Height = win->r.h; + depthStencilDesc.MipLevels = 1; + depthStencilDesc.ArraySize = 1; + depthStencilDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + depthStencilDesc.SampleDesc.Count = 1; + depthStencilDesc.SampleDesc.Quality = 0; + depthStencilDesc.Usage = D3D11_USAGE_DEFAULT; + depthStencilDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; + + ID3D11Texture2D* pDepthStencilTexture = NULL; + RGFW_dxInfo.pDevice->lpVtbl->CreateTexture2D(RGFW_dxInfo.pDevice, &depthStencilDesc, NULL, &pDepthStencilTexture); + + D3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc = { 0 }; + depthStencilViewDesc.Format = depthStencilDesc.Format; + depthStencilViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; + depthStencilViewDesc.Texture2D.MipSlice = 0; + + RGFW_dxInfo.pDevice->lpVtbl->CreateDepthStencilView(RGFW_dxInfo.pDevice, (ID3D11Resource*) pDepthStencilTexture, &depthStencilViewDesc, &win->src.pDepthStencilView); + + pDepthStencilTexture->lpVtbl->Release(pDepthStencilTexture); + + RGFW_dxInfo.pDeviceContext->lpVtbl->OMSetRenderTargets(RGFW_dxInfo.pDeviceContext, 1, &win->src.renderTargetView, win->src.pDepthStencilView); +#endif + +#ifdef RGFW_OPENGL + HDC dummy_dc = GetDC(dummyWin); + + PIXELFORMATDESCRIPTOR pfd = { + .nSize = sizeof(pfd), + .nVersion = 1, + .iPixelType = PFD_TYPE_RGBA, + .dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, + .cColorBits = 32, + .cAlphaBits = 8, + .iLayerType = PFD_MAIN_PLANE, + .cDepthBits = 24, + .cStencilBits = 8, + }; + + int pixel_format = ChoosePixelFormat(dummy_dc, &pfd); + SetPixelFormat(dummy_dc, pixel_format, &pfd); + + HGLRC dummy_context = wglCreateContext(dummy_dc); + wglMakeCurrent(dummy_dc, dummy_context); + + if (wglChoosePixelFormatARB == NULL) { + wglCreateContextAttribsARB = (wglCreateContextAttribsARB_type) wglGetProcAddress("wglCreateContextAttribsARB"); + wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC) wglGetProcAddress("wglChoosePixelFormatARB"); + } + + wglMakeCurrent(dummy_dc, 0); + wglDeleteContext(dummy_context); + ReleaseDC(dummyWin, dummy_dc); + + if (wglCreateContextAttribsARB != NULL) { + PIXELFORMATDESCRIPTOR pfd = { sizeof(pfd), 1, PFD_TYPE_RGBA, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, 32, 8, PFD_MAIN_PLANE, 24, 8 }; + + if (args & RGFW_OPENGL_SOFTWARE) + pfd.dwFlags |= PFD_GENERIC_FORMAT | PFD_GENERIC_ACCELERATED; + + if (wglChoosePixelFormatARB != NULL) { + i32* pixel_format_attribs = (i32*)RGFW_initAttribs(args & RGFW_OPENGL_SOFTWARE); + + int pixel_format; + UINT num_formats; + wglChoosePixelFormatARB(win->src.hdc, pixel_format_attribs, 0, 1, &pixel_format, &num_formats); + if (!num_formats) { + printf("Failed to set the OpenGL 3.3 pixel format.\n"); + } + + DescribePixelFormat(win->src.hdc, pixel_format, sizeof(pfd), &pfd); + if (!SetPixelFormat(win->src.hdc, pixel_format, &pfd)) { + printf("Failed to set the OpenGL 3.3 pixel format.\n"); + } + } + + u32 index = 0; + i32 attribs[40]; +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 + SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB); + + if (RGFW_majorVersion || RGFW_minorVersion) { + SET_ATTRIB(WGL_CONTEXT_MAJOR_VERSION_ARB, RGFW_majorVersion); + SET_ATTRIB(WGL_CONTEXT_MINOR_VERSION_ARB, RGFW_minorVersion); + } + + SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB); + + if (RGFW_majorVersion || RGFW_minorVersion) { + SET_ATTRIB(WGL_CONTEXT_MAJOR_VERSION_ARB, RGFW_majorVersion); + SET_ATTRIB(WGL_CONTEXT_MINOR_VERSION_ARB, RGFW_minorVersion); + } + + SET_ATTRIB(0, 0); + + win->src.rSurf = wglCreateContextAttribsARB(win->src.hdc, NULL, attribs); + } else { + fprintf(stderr, "Failed to create an accelerated OpenGL Context\n"); + + int pixel_format = ChoosePixelFormat(win->src.hdc, &pfd); + SetPixelFormat(win->src.hdc, pixel_format, &pfd); + + win->src.rSurf = wglCreateContext(win->src.hdc); + } + + wglMakeCurrent(win->src.hdc, win->src.rSurf); + wglShareLists(RGFW_root->src.rSurf, win->src.rSurf); +#endif + +#ifdef RGFW_OSMESA +#ifdef RGFW_LINK_OSM ESA + OSMesaMakeCurrentSource = (PFN_OSMesaMakeCurrent) GetProcAddress(win->src.hdc, "OSMesaMakeCurrent"); + OSMesaCreateContextSource = (PFN_OSMesaCreateContext) GetProcAddress(win->src.hdc, "OSMesaCreateContext"); + OSMesaDestroyContextSource = (PFN_OSMesaDestroyContext) GetProcAddress(win->src.hdc, "OSMesaDestroyContext"); +#endif +#endif + +#ifdef RGFW_OPENGL + ReleaseDC(win->src.window, win->src.hdc); + win->src.hdc = GetDC(win->src.window); + wglMakeCurrent(win->src.hdc, win->src.rSurf); +#endif + + DestroyWindow(dummyWin); + RGFW_init_buffer(win); + +#ifdef RGFW_VULKAN + RGFW_initVulkan(win); +#endif + + if (args & RGFW_SCALE_TO_MONITOR) + RGFW_window_scaleToMonitor(win); + +#ifdef RGFW_EGL + RGFW_createOpenGLContext(win); +#endif + + if (args & RGFW_HIDE_MOUSE) + RGFW_window_showMouse(win, 0); + + ShowWindow(win->src.window, SW_SHOWNORMAL); + + return win; + } + + + RGFW_area RGFW_getScreenSize(void) { + return RGFW_AREA(GetDeviceCaps(GetDC(NULL), HORZRES), GetDeviceCaps(GetDC(NULL), VERTRES)); + } + + RGFW_vector RGFW_getGlobalMousePoint(void) { + POINT p; + GetCursorPos(&p); + + return RGFW_VECTOR(p.x, p.y); + } + + void RGFW_window_setMinSize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + win->src.minSize = a; + } + + void RGFW_window_setMaxSize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + win->src.maxSize = a; + } + + + void RGFW_window_minimize(RGFW_window* win) { + assert(win != NULL); + + ShowWindow(win->src.window, SW_MINIMIZE); + } + + void RGFW_window_restore(RGFW_window* win) { + assert(win != NULL); + + ShowWindow(win->src.window, SW_RESTORE); + } + + static i32 RGFW_checkXInput(RGFW_Event* e) { + static WORD buttons[4]; + static BYTE triggers[4][2] = { {0, 0}, {0, 0}, {0, 0}, {0, 0} }; + + size_t i; + for (i = 0; i < 4; i++) { + XINPUT_STATE state; + if (XInputGetState == NULL || + XInputGetState((DWORD) i, &state) == ERROR_DEVICE_NOT_CONNECTED + ) + return 0; + + e->button = 0; + if (state.Gamepad.wButtons & XINPUT_GAMEPAD_A && !(buttons[i] & XINPUT_GAMEPAD_A)) { + e->button = RGFW_JS_A; + e->type = RGFW_jsButtonPressed; + buttons[i] = state.Gamepad.wButtons; + return 1; + } else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_B && !(buttons[i] & XINPUT_GAMEPAD_B)) + e->button = RGFW_JS_B; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y && !(buttons[i] & XINPUT_GAMEPAD_Y)) + e->button = RGFW_JS_Y; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_X && !(buttons[i] & XINPUT_GAMEPAD_X)) + e->button = RGFW_JS_X; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_START && !(buttons[i] & XINPUT_GAMEPAD_START)) + e->button = RGFW_JS_START; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK && !(buttons[i] & XINPUT_GAMEPAD_BACK)) + e->button = RGFW_JS_SELECT; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP && !(buttons[i] & XINPUT_GAMEPAD_DPAD_UP)) + e->button = RGFW_JS_UP; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN && !(buttons[i] & XINPUT_GAMEPAD_DPAD_DOWN)) + e->button = RGFW_JS_DOWN; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT && !(buttons[i] & XINPUT_GAMEPAD_DPAD_LEFT)) + e->button = RGFW_JS_LEFT; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT && !(buttons[i] & XINPUT_GAMEPAD_DPAD_RIGHT)) + e->button = RGFW_JS_RIGHT; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER && !(buttons[i] & XINPUT_GAMEPAD_LEFT_SHOULDER)) + e->button = RGFW_JS_L1; + else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER && !(buttons[i] & XINPUT_GAMEPAD_RIGHT_SHOULDER)) + e->button = RGFW_JS_R1; + else if (state.Gamepad.bLeftTrigger && triggers[i][0] == 0) + e->button = RGFW_JS_L2; + else if (state.Gamepad.bRightTrigger && triggers[i][1] == 0) + e->button = RGFW_JS_R2; + + triggers[i][0] = state.Gamepad.bLeftTrigger; + triggers[i][1] = state.Gamepad.bRightTrigger; + + if (e->button) { + buttons[i] = state.Gamepad.wButtons; + e->type = RGFW_jsButtonPressed; + return 1; + } + + if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_A) && (buttons[i] & XINPUT_GAMEPAD_A)) { + e->button = RGFW_JS_A; + e->type = RGFW_jsButtonReleased; + buttons[i] = state.Gamepad.wButtons; + return 1; + } else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_B) && (buttons[i] & XINPUT_GAMEPAD_B)) + e->button = RGFW_JS_B; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_Y) && (buttons[i] & XINPUT_GAMEPAD_Y)) + e->button = RGFW_JS_Y; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_X) && (buttons[i] & XINPUT_GAMEPAD_X)) + e->button = RGFW_JS_X; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_START) && (buttons[i] & XINPUT_GAMEPAD_START)) + e->button = RGFW_JS_START; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK) && (buttons[i] & XINPUT_GAMEPAD_BACK)) + e->button = RGFW_JS_SELECT; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) && (buttons[i] & XINPUT_GAMEPAD_DPAD_UP)) + e->button = RGFW_JS_UP; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) && (buttons[i] & XINPUT_GAMEPAD_DPAD_DOWN)) + e->button = RGFW_JS_DOWN; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) && (buttons[i] & XINPUT_GAMEPAD_DPAD_LEFT)) + e->button = RGFW_JS_LEFT; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) && (buttons[i] & XINPUT_GAMEPAD_DPAD_RIGHT)) + e->button = RGFW_JS_RIGHT; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER) && (buttons[i] & XINPUT_GAMEPAD_LEFT_SHOULDER)) + e->button = RGFW_JS_L1; + else if (!(state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER) && (buttons[i] & XINPUT_GAMEPAD_RIGHT_SHOULDER)) + e->button = RGFW_JS_R1; + else if (state.Gamepad.bLeftTrigger == 0 && triggers[i][0] != 0) + e->button = RGFW_JS_L2; + else if (state.Gamepad.bRightTrigger == 0 && triggers[i][1] != 0) + e->button = RGFW_JS_R2; + + buttons[i] = state.Gamepad.wButtons; + + if (e->button) { + e->type = RGFW_jsButtonReleased; + return 1; + } +#define INPUT_DEADZONE ( 0.24f * (float)(0x7FFF) ) // Default to 24% of the +/- 32767 range. This is a reasonable default value but can be altered if needed. + + if ((state.Gamepad.sThumbLX < INPUT_DEADZONE && + state.Gamepad.sThumbLX > -INPUT_DEADZONE) && + (state.Gamepad.sThumbLY < INPUT_DEADZONE && + state.Gamepad.sThumbLY > -INPUT_DEADZONE)) + { + state.Gamepad.sThumbLX = 0; + state.Gamepad.sThumbLY = 0; + } + + if ((state.Gamepad.sThumbRX < INPUT_DEADZONE && + state.Gamepad.sThumbRX > -INPUT_DEADZONE) && + (state.Gamepad.sThumbRY < INPUT_DEADZONE && + state.Gamepad.sThumbRY > -INPUT_DEADZONE)) + { + state.Gamepad.sThumbRX = 0; + state.Gamepad.sThumbRY = 0; + } + + e->axisesCount = 2; + RGFW_vector axis1 = RGFW_VECTOR(state.Gamepad.sThumbLX, state.Gamepad.sThumbLY); + RGFW_vector axis2 = RGFW_VECTOR(state.Gamepad.sThumbRX, state.Gamepad.sThumbRY); + + if (axis1.x != e->axis[0].x || axis1.y != e->axis[0].y || axis2.x != e->axis[1].x || axis2.y != e->axis[1].y) { + e->type = RGFW_jsAxisMove; + + e->axis[0] = axis1; + e->axis[1] = axis2; + + return 1; + } + + e->axis[0] = axis1; + e->axis[1] = axis2; + } + + return 0; + } + + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { + assert(win != NULL); + + MSG msg; + + if (RGFW_eventWindow.src.window == win->src.window) { + if (RGFW_eventWindow.r.x != -1) { + win->r.x = RGFW_eventWindow.r.x; + win->r.y = RGFW_eventWindow.r.y; + } + + if (RGFW_eventWindow.r.w != -1) { + win->r.w = RGFW_eventWindow.r.w; + win->r.h = RGFW_eventWindow.r.h; + } + + win->event.type = RGFW_windowAttribsChange; + + RGFW_eventWindow.src.window = NULL; + RGFW_eventWindow.r = RGFW_RECT(-1, -1, -1, -1); + + return &win->event; + } + + if (win->event.droppedFilesCount) { + u32 i; + for (i = 0; i < win->event.droppedFilesCount; i++) + win->event.droppedFiles[i][0] = '\0'; + } + + win->event.droppedFilesCount = 0; + + win->event.inFocus = (GetForegroundWindow() == win->src.window); + + if (RGFW_checkXInput(&win->event)) + return &win->event; + + if (win->event.type == RGFW_quit) + return NULL; + + static BYTE keyboardState[256]; + GetKeyboardState(keyboardState); + + if (PeekMessageA(&msg, win->src.window, 0u, 0u, PM_REMOVE)) { + switch (msg.message) { + case WM_CLOSE: + case WM_QUIT: + win->event.type = RGFW_quit; + break; + + case WM_KEYUP: + win->event.keyCode = (u32) msg.wParam; + strncpy(win->event.keyName, RGFW_keyCodeTokeyStr(msg.lParam), 16); + if (GetKeyState(VK_SHIFT) & 0x8000) { + ToAscii((UINT) msg.wParam, MapVirtualKey((UINT) msg.wParam, MAPVK_VK_TO_CHAR), + keyboardState, (LPWORD) win->event.keyName, 0); + } + + win->event.type = RGFW_keyReleased; + break; + + case WM_KEYDOWN: + win->event.keyCode = (u32) msg.wParam; + strncpy(win->event.keyName, RGFW_keyCodeTokeyStr(msg.lParam), 16); + if (GetKeyState(VK_SHIFT) & 0x8000) { + ToAscii((UINT) msg.wParam, MapVirtualKey((UINT) msg.wParam, MAPVK_VK_TO_CHAR), + keyboardState, (LPWORD) win->event.keyName, 0); + } + + win->event.type = RGFW_keyPressed; + break; + + case WM_MOUSEMOVE: + win->event.point.x = GET_X_LPARAM(msg.lParam); + win->event.point.y = GET_Y_LPARAM(msg.lParam); + + win->event.type = RGFW_mousePosChanged; + break; + + case WM_LBUTTONDOWN: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonPressed; + break; + case WM_RBUTTONDOWN: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonPressed; + break; + case WM_MBUTTONDOWN: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonPressed; + break; + + case WM_MOUSEWHEEL: + if (msg.wParam > 0) + win->event.button = RGFW_mouseScrollUp; + else + win->event.button = RGFW_mouseScrollDown; + + win->event.scroll = (SHORT) HIWORD(msg.wParam) / (double) WHEEL_DELTA; + + win->event.type = RGFW_mouseButtonPressed; + break; + + case WM_LBUTTONUP: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonReleased; + break; + case WM_RBUTTONUP: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonReleased; + break; + case WM_MBUTTONUP: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonReleased; + break; + + /* + much of this event is source from glfw + */ + case WM_DROPFILES: { + win->event.type = RGFW_dnd; + + HDROP drop = (HDROP) msg.wParam; + POINT pt; + u32 i; + + win->event.droppedFilesCount = DragQueryFileW(drop, 0xffffffff, NULL, 0); + //win->event.droppedFiles = (char**)RGFW_CALLOC(win->event.droppedFilesCount, sizeof(char*)); + + /* Move the mouse to the position of the drop */ + DragQueryPoint(drop, &pt); + + win->event.point.x = pt.x; + win->event.point.y = pt.y; + + for (i = 0; i < win->event.droppedFilesCount; i++) { + const UINT length = DragQueryFileW(drop, i, NULL, 0); + WCHAR* buffer = (WCHAR*) RGFW_CALLOC((size_t) length + 1, sizeof(WCHAR)); + + DragQueryFileW(drop, i, buffer, length + 1); + strcpy(win->event.droppedFiles[i], createUTF8FromWideStringWin32(buffer)); + + RGFW_FREE(buffer); + } + + DragFinish(drop); + } + break; + case WM_GETMINMAXINFO: + { + if (win->src.maxSize.w == 0 && win->src.maxSize.h == 0) + break; + + MINMAXINFO* mmi = (MINMAXINFO*) msg.lParam; + mmi->ptMinTrackSize.x = win->src.minSize.w; + mmi->ptMinTrackSize.y = win->src.minSize.h; + mmi->ptMaxTrackSize.x = win->src.maxSize.w; + mmi->ptMaxTrackSize.y = win->src.maxSize.h; + return 0; + } + default: + win->event.type = 0; + break; + } + + TranslateMessage(&msg); + DispatchMessageA(&msg); + } + + else + win->event.type = 0; + + RGFW_vector mouse = RGFW_getGlobalMousePoint(); + if (win->src.winArgs & RGFW_HOLD_MOUSE && win->event.inFocus && + (mouse.x != win->r.x + (win->r.w / 2) || mouse.y != win->r.y + (win->r.h / 2))) { + RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + } + + win->event.lockState = 0; + + if ((GetKeyState(VK_CAPITAL) & 0x0001) != 0) + win->event.lockState |= RGFW_CAPSLOCK; + if ((GetKeyState(VK_NUMLOCK) & 0x0001) != 0) + win->event.lockState |= RGFW_NUMLOCK; + if ((GetKeyState(VK_SCROLL) & 0x0001) != 0) + win->event.lockState |= 3; + + + if (!IsWindow(win->src.window)) + win->event.type = RGFW_quit; + + if (win->event.type) + return &win->event; + else + return NULL; + } + + u8 RGFW_window_isFullscreen(RGFW_window* win) { + assert(win != NULL); + + WINDOWPLACEMENT placement = { 0 }; + GetWindowPlacement(win->src.window, &placement); + return placement.showCmd == SW_SHOWMAXIMIZED; + } + + u8 RGFW_window_isHidden(RGFW_window* win) { + assert(win != NULL); + + return IsWindowVisible(win->src.window) == 0 && !RGFW_window_isMinimized(win); + } + + u8 RGFW_window_isMinimized(RGFW_window* win) { + assert(win != NULL); + + WINDOWPLACEMENT placement = { 0 }; + GetWindowPlacement(win->src.window, &placement); + return placement.showCmd == SW_SHOWMINIMIZED; + } + + u8 RGFW_window_isMaximized(RGFW_window* win) { + assert(win != NULL); + + WINDOWPLACEMENT placement = { 0 }; + GetWindowPlacement(win->src.window, &placement); + return placement.showCmd == SW_SHOWMAXIMIZED; + } + + typedef struct { int iIndex; HMONITOR hMonitor; } RGFW_mInfo; + BOOL CALLBACK GetMonitorByHandle(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { + RGFW_mInfo* info = (RGFW_mInfo*) dwData; + if (info->hMonitor == hMonitor) + return FALSE; + + info->iIndex++; + return TRUE; + } + + RGFW_monitor win32CreateMonitor(HMONITOR src) { + RGFW_monitor monitor; + MONITORINFO monitorInfo; + + monitorInfo.cbSize = sizeof(MONITORINFO); + GetMonitorInfoA(src, &monitorInfo); + + RGFW_mInfo info; + info.iIndex = 0; + info.hMonitor = src; + + /* get the monitor's index */ + if (EnumDisplayMonitors(NULL, NULL, GetMonitorByHandle, (LPARAM) &info)) { + DISPLAY_DEVICEA dd; + dd.cb = sizeof(dd); + + /* loop through the devices until you find a device with the monitor's index */ + size_t deviceIndex; + for (deviceIndex = 0; EnumDisplayDevicesA(0, (DWORD) deviceIndex, &dd, 0); deviceIndex++) { + char* deviceName = dd.DeviceName; + if (EnumDisplayDevicesA(deviceName, info.iIndex, &dd, 0)) { + strcpy(monitor.name, dd.DeviceString); /* copy the monitor's name */ + break; + } + } + } + + monitor.rect.x = monitorInfo.rcWork.left; + monitor.rect.y = monitorInfo.rcWork.top; + monitor.rect.w = monitorInfo.rcWork.right - monitorInfo.rcWork.left; + monitor.rect.h = monitorInfo.rcWork.bottom - monitorInfo.rcWork.top; + +#ifndef RGFW_NO_DPI + if (GetDpiForMonitor != NULL) { + u32 x, y; + GetDpiForMonitor(src, MDT_ANGULAR_DPI, &x, &y); + monitor.scaleX = (float) (x) / (float) USER_DEFAULT_SCREEN_DPI; + monitor.scaleY = (float) (y) / (float) USER_DEFAULT_SCREEN_DPI; + } +#endif + + HDC hdc = GetDC(NULL); + /* get pixels per inch */ + i32 ppiX = GetDeviceCaps(hdc, LOGPIXELSX); + i32 ppiY = GetDeviceCaps(hdc, LOGPIXELSY); + ReleaseDC(NULL, hdc); + + /* Calculate physical height in inches */ + monitor.physW = GetSystemMetrics(SM_CYSCREEN) / (float) ppiX; + monitor.physH = GetSystemMetrics(SM_CXSCREEN) / (float) ppiY; + + return monitor; + } + + RGFW_monitor RGFW_monitors[6]; + BOOL CALLBACK GetMonitorHandle(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { + RGFW_mInfo* info = (RGFW_mInfo*) dwData; + + if (info->iIndex >= 6) + return FALSE; + + RGFW_monitors[info->iIndex] = win32CreateMonitor(hMonitor); + info->iIndex++; + + return TRUE; + } + + RGFW_monitor RGFW_getPrimaryMonitor(void) { + return win32CreateMonitor(MonitorFromPoint((POINT) { 0, 0 }, MONITOR_DEFAULTTOPRIMARY)); + } + + RGFW_monitor* RGFW_getMonitors(void) { + RGFW_mInfo info; + info.iIndex = 0; + while (EnumDisplayMonitors(NULL, NULL, GetMonitorHandle, (LPARAM) &info)); + + return RGFW_monitors; + } + + RGFW_monitor RGFW_window_getMonitor(RGFW_window* win) { + HMONITOR src = MonitorFromWindow(win->src.window, MONITOR_DEFAULTTOPRIMARY); + return win32CreateMonitor(src); + } + + u8 RGFW_isPressedI(RGFW_window* win, u32 key) { + if (win != NULL && !win->event.inFocus) + return 0; + + if (GetAsyncKeyState(key) & 0x8000) + return 1; + else return 0; + } + + HICON RGFW_loadHandleImage(RGFW_window* win, u8* src, RGFW_area a, BOOL icon) { + assert(win != NULL); + + u32 i; + HDC dc; + HICON handle; + HBITMAP color, mask; + BITMAPV5HEADER bi; + ICONINFO ii; + u8* target = NULL; + u8* source = src; + + ZeroMemory(&bi, sizeof(bi)); + bi.bV5Size = sizeof(bi); + bi.bV5Width = a.w; + bi.bV5Height = -((LONG) a.h); + bi.bV5Planes = 1; + bi.bV5BitCount = 32; + bi.bV5Compression = BI_BITFIELDS; + bi.bV5RedMask = 0x00ff0000; + bi.bV5GreenMask = 0x0000ff00; + bi.bV5BlueMask = 0x000000ff; + bi.bV5AlphaMask = 0xff000000; + + dc = GetDC(NULL); + color = CreateDIBSection(dc, + (BITMAPINFO*) &bi, + DIB_RGB_COLORS, + (void**) &target, + NULL, + (DWORD) 0); + ReleaseDC(NULL, dc); + + mask = CreateBitmap(a.w, a.h, 1, 1, NULL); + + for (i = 0; i < a.w * a.h; i++) { + target[0] = source[2]; + target[1] = source[1]; + target[2] = source[0]; + target[3] = source[3]; + target += 4; + source += 4; + } + + ZeroMemory(&ii, sizeof(ii)); + ii.fIcon = icon; + ii.xHotspot = 0; + ii.yHotspot = 0; + ii.hbmMask = mask; + ii.hbmColor = color; + + handle = CreateIconIndirect(&ii); + + DeleteObject(color); + DeleteObject(mask); + + return handle; + } + + void RGFW_window_setMouse(RGFW_window* win, u8* image, RGFW_area a, i32 channels) { + assert(win != NULL); + + HCURSOR cursor = (HCURSOR) RGFW_loadHandleImage(win, image, a, FALSE); + SetClassLongPtrA(win->src.window, GCLP_HCURSOR, (LPARAM) cursor); + SetCursor(cursor); + DestroyCursor(cursor); + } + + void RGFW_window_setMouseDefault(RGFW_window* win) { + RGFW_window_setMouseStandard(win, 32512); + } + + void RGFW_window_setMouseStandard(RGFW_window* win, i32 mouse) { + assert(win != NULL); + + char* icon = MAKEINTRESOURCEA(mouse); + + SetClassLongPtrA(win->src.window, GCLP_HCURSOR, (LPARAM) LoadCursorA(NULL, icon)); + SetCursor(LoadCursorA(NULL, icon)); + } + + void RGFW_window_hide(RGFW_window* win) { + ShowWindow(win->src.window, SW_HIDE); + } + + void RGFW_window_show(RGFW_window* win) { + ShowWindow(win->src.window, SW_RESTORE); + } + + void RGFW_window_close(RGFW_window* win) { + assert(win != NULL); + +#ifdef RGFW_VULKAN + for (u32 i = 0; i < win->src.image_count; i++) { + vkDestroyFramebuffer(RGFW_vulkan_info.device, RGFW_vulkan_info.framebuffers[i], NULL); + } + + for (u32 i = 0; i < win->src.image_count; i++) { + vkDestroyImageView(RGFW_vulkan_info.device, win->src.swapchain_image_views[i], NULL); + } + + vkDestroySwapchainKHR(RGFW_vulkan_info.device, win->src.swapchain, NULL); + vkDestroySurfaceKHR(RGFW_vulkan_info.instance, win->src.rSurf, NULL); + free(win->src.swapchain_image_views); + free(win->src.swapchain_images); +#endif + +#ifdef RGFW_EGL + RGFW_closeEGL(win); +#endif + + if (win == RGFW_root) { +#ifdef RGFW_DIRECTX + RGFW_dxInfo.pDeviceContext->lpVtbl->Release(RGFW_dxInfo.pDeviceContext); + RGFW_dxInfo.pDevice->lpVtbl->Release(RGFW_dxInfo.pDevice); + RGFW_dxInfo.pAdapter->lpVtbl->Release(RGFW_dxInfo.pAdapter); + RGFW_dxInfo.pFactory->lpVtbl->Release(RGFW_dxInfo.pFactory); +#endif + + if (RGFW_XInput_dll != NULL) { + FreeLibrary(RGFW_XInput_dll); + RGFW_XInput_dll = NULL; + } + + #ifndef RGFW_NO_DPI + if (RGFW_Shcore_dll != NULL) { + FreeLibrary(RGFW_Shcore_dll); + RGFW_Shcore_dll = NULL; + } + #endif + + if (wglinstance != NULL) { + FreeLibrary(wglinstance); + wglinstance = NULL; + } + + RGFW_root = NULL; + } + +#ifdef RGFW_DIRECTX + win->src.swapchain->lpVtbl->Release(win->src.swapchain); + win->src.renderTargetView->lpVtbl->Release(win->src.renderTargetView); + win->src.pDepthStencilView->lpVtbl->Release(win->src.pDepthStencilView); +#endif + +#ifdef RGFW_BUFFER + DeleteDC(win->src.hdcMem); + DeleteObject(win->src.bitmap); +#endif + +#ifdef RGFW_OPENGL + wglDeleteContext((HGLRC) win->src.rSurf); /* delete opengl context */ +#endif + DeleteDC(win->src.hdc); /* delete device context */ + DestroyWindow(win->src.window); /* delete window */ + +#if defined(RGFW_OSMESA) + if (win->buffer != NULL) + RGFW_FREE(win->buffer); +#endif + +#ifdef RGFW_ALLOC_DROPFILES + { + u32 i; + for (i = 0; i < RGFW_MAX_DROPS; i++) + RGFW_FREE(win->event.droppedFiles[i]); + + + RGFW_FREE(win->event.droppedFiles); + } +#endif + + RGFW_FREE(win); + } + + void RGFW_window_move(RGFW_window* win, RGFW_vector v) { + assert(win != NULL); + + win->r.x = v.x; + win->r.y = v.y; + SetWindowPos(win->src.window, HWND_TOP, win->r.x, win->r.y, 0, 0, SWP_NOSIZE); + } + + void RGFW_window_resize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + + win->r.w = a.w; + win->r.h = a.h; + SetWindowPos(win->src.window, HWND_TOP, 0, 0, win->r.w, win->r.h + win->src.hOffset, SWP_NOMOVE); + } + + + void RGFW_window_setName(RGFW_window* win, char* name) { + assert(win != NULL); + + SetWindowTextA(win->src.window, name); + } + + /* much of this function is sourced from GLFW */ + void RGFW_window_setIcon(RGFW_window* win, u8* src, RGFW_area a, i32 channels) { + assert(win != NULL); + + HICON handle = RGFW_loadHandleImage(win, src, a, TRUE); + + SetClassLongPtrA(win->src.window, GCLP_HICON, (LPARAM) handle); + + DestroyIcon(handle); + } + + char* RGFW_readClipboard(size_t* size) { + /* Open the clipboard */ + if (OpenClipboard(NULL) == 0) + return (char*) ""; + + /* Get the clipboard data as a Unicode string */ + HANDLE hData = GetClipboardData(CF_UNICODETEXT); + if (hData == NULL) { + CloseClipboard(); + return (char*) ""; + } + + wchar_t* wstr = (wchar_t*) GlobalLock(hData); + + char* text; + + { + setlocale(LC_ALL, "en_US.UTF-8"); + + size_t textLen = wcstombs(NULL, wstr, 0); + if (textLen == 0) + return (char*) ""; + + text = (char*) malloc((textLen * sizeof(char)) + 1); + + wcstombs(text, wstr, (textLen) +1); + + if (size != NULL) + *size = textLen + 1; + } + + /* Release the clipboard data */ + GlobalUnlock(hData); + CloseClipboard(); + + return text; + } + + void RGFW_writeClipboard(const char* text, u32 textLen) { + HANDLE object; + WCHAR* buffer; + + object = GlobalAlloc(GMEM_MOVEABLE, (1 + textLen) * sizeof(WCHAR)); + if (!object) + return; + + buffer = (WCHAR*) GlobalLock(object); + if (!buffer) { + GlobalFree(object); + return; + } + + MultiByteToWideChar(CP_UTF8, 0, text, -1, buffer, textLen); + GlobalUnlock(object); + + if (!OpenClipboard(RGFW_root->src.window)) { + GlobalFree(object); + return; + } + + EmptyClipboard(); + SetClipboardData(CF_UNICODETEXT, object); + CloseClipboard(); + } + + u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) { + assert(win != NULL); + + return RGFW_registerJoystickF(win, (char*) ""); + } + + u16 RGFW_registerJoystickF(RGFW_window* win, char* file) { + assert(win != NULL); + + + return win->src.joystickCount - 1; + } + + void RGFW_window_moveMouse(RGFW_window* win, RGFW_vector p) { + assert(win != NULL); + + SetCursorPos(p.x, p.y); + } + + char* createUTF8FromWideStringWin32(const WCHAR* source) { + char* target; + i32 size; + + size = WideCharToMultiByte(CP_UTF8, 0, source, -1, NULL, 0, NULL, NULL); + if (!size) { + return NULL; + } + + target = (char*) RGFW_CALLOC(size, 1); + + if (!WideCharToMultiByte(CP_UTF8, 0, source, -1, target, size, NULL, NULL)) { + RGFW_FREE(target); + return NULL; + } + + return target; + } + +#ifndef RGFW_NO_THREADS + RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args) { return CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) *function_ptr, args, 0, NULL); } + void RGFW_cancelThread(RGFW_thread thread) { CloseHandle((HANDLE) thread); } + void RGFW_joinThread(RGFW_thread thread) { WaitForSingleObject((HANDLE) thread, INFINITE); } + void RGFW_setThreadPriority(RGFW_thread thread, u8 priority) { SetThreadPriority((HANDLE) thread, priority); } +#endif +#endif + +#if defined(RGFW_MACOS) + + void* RGFWnsglFramework = NULL; + +#ifdef RGFW_OPENGL + void* RGFW_getProcAddress(const char* procname) { + if (RGFWnsglFramework == NULL) + RGFWnsglFramework = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.opengl")); + + CFStringRef symbolName = CFStringCreateWithCString(kCFAllocatorDefault, procname, kCFStringEncodingASCII); + + void* symbol = CFBundleGetFunctionPointerForName(RGFWnsglFramework, symbolName); + + CFRelease(symbolName); + + return symbol; + } +#endif + + CVReturn displayCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* inNow, const CVTimeStamp* inOutputTime, CVOptionFlags flagsIn, CVOptionFlags* flagsOut, void* displayLinkContext) { return kCVReturnSuccess; } + + RGFW_window* RGFW_windows[10]; + u32 RGFW_windows_size = 0; + + id NSWindow_delegate(RGFW_window* win) { + return (id) objc_msgSend_id(win->src.window, sel_registerName("delegate")); + } + + u32 RGFW_OnClose(void* self) { + u32 i; + for (i = 0; i < RGFW_windows_size; i++) + if (RGFW_windows[i] && NSWindow_delegate(RGFW_windows[i]) == self) { + RGFW_windows[i]->event.type = RGFW_quit; + return true; + } + + return true; + } + + /* NOTE(EimaMei): Fixes the constant clicking when the app is running under a terminal. */ + bool acceptsFirstResponder() { return true; } + bool performKeyEquivalent(NSEvent* event) { return true; } + + NSDragOperation draggingEntered(id self, SEL sel, id sender) { return NSDragOperationCopy; } + NSDragOperation draggingUpdated(id self, SEL sel, id sender) { return NSDragOperationCopy; } + bool prepareForDragOperation(void) { return true; } + + void RGFW__osxDraggingEnded(id self, SEL sel, id sender) { return; } + + /* NOTE(EimaMei): Usually, you never need 'id self, SEL cmd' for C -> Obj-C methods. This isn't the case. */ + bool performDragOperation(id self, SEL sel, id sender) { + NSWindow* window = objc_msgSend_id(sender, sel_registerName("draggingDestinationWindow")); + u32 i; + bool found = false; + + for (i = 0; i < RGFW_windows_size; i++) + if (RGFW_windows[i]->src.window == window) { + found = true; + break; + } + + if (!found) + i = 0; + + Class* array[] = { objc_getClass("NSURL"), NULL }; + char** droppedFiles = (char**) NSPasteboard_readObjectsForClasses( + (NSPasteboard*) objc_msgSend_id(sender, sel_registerName("draggingPasteboard")), + array, 1, NULL); + + RGFW_windows[i]->event.droppedFilesCount = si_array_len(droppedFiles); + + u32 y; + + for (y = 0; y < RGFW_windows[i]->event.droppedFilesCount; y++) + strcpy(RGFW_windows[i]->event.droppedFiles[y], droppedFiles[y]); + + RGFW_windows[i]->event.type = RGFW_dnd; + + NSPoint p = *(NSPoint*) objc_msgSend_id(sender, sel_registerName("draggingLocation")); + RGFW_windows[i]->event.point.x = p.x; + RGFW_windows[i]->event.point.x = p.y; + + return true; + } + + + NSApplication* NSApp = NULL; + + static void NSMoveToResourceDir(void) { + /* sourced from glfw */ + char resourcesPath[255]; + + CFBundleRef bundle = CFBundleGetMainBundle(); + if (!bundle) + return; + + CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(bundle); + CFStringRef last = CFURLCopyLastPathComponent(resourcesURL); + + if ( + CFStringCompare(CFSTR("Resources"), last, 0) != kCFCompareEqualTo || + CFURLGetFileSystemRepresentation(resourcesURL, true, (u8*) resourcesPath, 255) == 0 + ) { + CFRelease(last); + CFRelease(resourcesURL); + return; + } + + CFRelease(last); + CFRelease(resourcesURL); + + chdir(resourcesPath); + } + + + NSSize RGFW__osxWindowResize(void* self, SEL sel, NSSize frameSize) { + u32 i; + for (i = 0; i < RGFW_windows_size; i++) { + if (RGFW_windows[i] && NSWindow_delegate(RGFW_windows[i]) == self) { + RGFW_windows[i]->r.w = frameSize.width; + RGFW_windows[i]->r.h = frameSize.height; + RGFW_windows[i]->event.type = RGFW_windowAttribsChange; + + return frameSize; + } + } + + return frameSize; + } + + void RGFW__osxWindowMove(void* self, SEL sel) { + u32 i; + for (i = 0; i < RGFW_windows_size; i++) { + if (RGFW_windows[i] && NSWindow_delegate(RGFW_windows[i]) == self) { + NSRect frame = ((NSRect(*)(id, SEL))abi_objc_msgSend_stret)(RGFW_windows[i]->src.window, sel_registerName("frame")); + RGFW_windows[i]->r.x = (i32) frame.origin.x; + RGFW_windows[i]->r.y = (i32) frame.origin.y; + + RGFW_windows[i]->event.type = RGFW_windowAttribsChange; + return; + } + } + } + + #ifdef __cplusplus + #define APPKIT_EXTERN extern "C" + #else + #define APPKIT_EXTERN extern + #endif + + APPKIT_EXTERN NSPasteboardType const NSPasteboardTypeURL = "public.url"; API_AVAILABLE(macos(10.13)); // Equivalent to kUTTypeURL + APPKIT_EXTERN NSPasteboardType const NSPasteboardTypeFileURL = "public.file-url"; API_AVAILABLE(macos(10.13)); // Equivalent to kUTTypeFileURL + + RGFW_window* RGFW_createWindow(const char* name, RGFW_rect rect, u16 args) { + static u8 RGFW_loaded = 0; + + /* NOTE(EimaMei): Why does Apple hate good code? Like wtf, who thought of methods being a great idea??? + Imagine a universe, where MacOS had a proper system API (we would probably have like 20% better performance). + */ + si_func_to_SEL_with_name("NSObject", "windowShouldClose", RGFW_OnClose); + + /* NOTE(EimaMei): Fixes the 'Boop' sfx from constantly playing each time you click a key. Only a problem when running in the terminal. */ + si_func_to_SEL("NSWindow", acceptsFirstResponder); + si_func_to_SEL("NSWindow", performKeyEquivalent); + + if (NSApp == NULL) { + NSApp = objc_msgSend_id(objc_getClass("NSApplication"), sel_registerName("sharedApplication")); + + ((void (*)(id, SEL, NSUInteger))objc_msgSend) + (NSApp, sel_registerName("setActivationPolicy:"), NSApplicationActivationPolicyRegular); + } + + RGFW_window* win = RGFW_window_basic_init(rect, args); + + NSRect windowRect; + windowRect.origin.x = win->r.x; + windowRect.origin.y = win->r.y; + windowRect.size.width = win->r.w; + windowRect.size.height = win->r.h; + + NSBackingStoreType macArgs = NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSBackingStoreBuffered | NSWindowStyleMaskTitled; + + if (!(args & RGFW_NO_RESIZE)) + macArgs |= NSWindowStyleMaskResizable; + if (!(args & RGFW_NO_BORDER)) + macArgs |= NSWindowStyleMaskTitled; + else + macArgs = NSWindowStyleMaskBorderless; + { + void* nsclass = objc_getClass("NSWindow"); + void* func = sel_registerName("initWithContentRect:styleMask:backing:defer:"); + + win->src.window = ((id(*)(id, SEL, NSRect, NSWindowStyleMask, NSBackingStoreType, bool))objc_msgSend) + (NSAlloc(nsclass), func, windowRect, macArgs, macArgs, false); + } + + NSString* str = NSString_stringWithUTF8String(name); + objc_msgSend_void_id(win->src.window, sel_registerName("setTitle:"), str); + +#ifdef RGFW_OPENGL + void* attrs = RGFW_initAttribs(args & RGFW_OPENGL_SOFTWARE); + void* format = NSOpenGLPixelFormat_initWithAttributes(attrs); + + if (format == NULL) { + printf("Failed to load pixel format "); + + void* attrs = RGFW_initAttribs(1); + format = NSOpenGLPixelFormat_initWithAttributes(attrs); + if (format == NULL) + printf("and loading software rendering OpenGL failed\n"); + else + printf("Switching to software rendering\n"); + } + + win->src.view = NSOpenGLView_initWithFrame(NSMakeRect(0, 0, win->r.w, win->r.h), format); + objc_msgSend_void(win->src.view, sel_registerName("prepareOpenGL")); + win->src.rSurf = objc_msgSend_id(win->src.view, sel_registerName("openGLContext")); + +#else + NSRect contentRect = NSMakeRect(0, 0, win->r.w, win->r.h); + win->src.view = ((id(*)(id, SEL, NSRect))objc_msgSend) + (NSAlloc(objc_getClass("NSView")), sel_registerName("initWithFrame:"), + contentRect); +#endif + + + void* contentView = NSWindow_contentView(win->src.window); + objc_msgSend_void_bool(contentView, sel_registerName("setWantsLayer:"), true); + + objc_msgSend_void_id(win->src.window, sel_registerName("setContentView:"), win->src.view); + +#ifdef RGFW_OPENGL + objc_msgSend_void(win->src.rSurf, sel_registerName("makeCurrentContext")); +#endif + if (args & RGFW_TRANSPARENT_WINDOW) { +#ifdef RGFW_OPENGL + i32 opacity = 0; + NSOpenGLContext_setValues(win->src.rSurf, &opacity, 304); +#endif + + objc_msgSend_void_bool(win->src.window, sel_registerName("setOpaque:"), false); + + objc_msgSend_void_id(win->src.window, sel_registerName("setBackgroundColor:"), + NSColor_colorWithSRGB(0, 0, 0, 0)); + + ((void (*)(id, SEL, CGFloat))objc_msgSend) + (win->src.window, sel_registerName("setAlphaValue:"), 0x00); + } + + win->src.display = CGMainDisplayID(); + CVDisplayLinkCreateWithCGDisplay(win->src.display, &win->src.displayLink); + CVDisplayLinkSetOutputCallback(win->src.displayLink, displayCallback, win); + CVDisplayLinkStart(win->src.displayLink); + + RGFW_init_buffer(win); + +#ifdef RGFW_VULKAN + RGFW_initVulkan(win); +#endif + + if (args & RGFW_SCALE_TO_MONITOR) + RGFW_window_scaleToMonitor(win); + + if (args & RGFW_HIDE_MOUSE) + RGFW_window_showMouse(win, 0); + + if (args & RGFW_COCOA_MOVE_TO_RESOURCE_DIR) + NSMoveToResourceDir(); + + Class delegateClass = objc_allocateClassPair(objc_getClass("NSObject"), "WindowDelegate", 0); + class_addMethod(delegateClass, sel_registerName("windowWillResize:toSize:"), (IMP) RGFW__osxWindowResize, "{NSSize=ff}@:{NSSize=ff}"); + class_addMethod(delegateClass, sel_registerName("windowWillMove:"), (IMP) RGFW__osxWindowMove, ""); + class_addMethod(delegateClass, sel_registerName("windowDidMove:"), (IMP) RGFW__osxWindowMove, ""); + + + if (args & RGFW_ALLOW_DND) { + win->src.winArgs |= RGFW_ALLOW_DND; + +/* + NSPasteboardType types[] = {NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSPasteboardTypeString}; + + siArray(NSPasteboardType) array = sic_arrayInit(types, sizeof(id), countof(types)); + NSWindow_registerForDraggedTypes(win->hwnd, array); + + win->dndHead = win->dndPrev = out; +*/ + + NSPasteboardType array[] = {NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSPasteboardTypeString}; + NSregisterForDraggedTypes(win->src.window, array, 3); + + /* NOTE(EimaMei): Drag 'n Drop requires too many damn functions for just a Drag 'n Drop event. */ + class_addMethod(delegateClass, "draggingEntered:", draggingEntered, "l@:@"); + class_addMethod(delegateClass, "draggingUpdated:", draggingUpdated, "l@:@"); + class_addMethod(delegateClass, "draggingExited:", RGFW__osxDraggingEnded, "v@:@"); + class_addMethod(delegateClass, "draggingEnded:", RGFW__osxDraggingEnded, "v@:@"); + class_addMethod(delegateClass, "prepareForDragOperation:", prepareForDragOperation, "B@:@"); + class_addMethod(delegateClass, "performDragOperation:", performDragOperation, "B@:@"); + + } + + id delegate = objc_msgSend_id(NSAlloc(delegateClass), sel_registerName("init")); + + object_setInstanceVariable(delegate, "RGFW_window", win); + + objc_msgSend_void_id(win->src.window, sel_registerName("setDelegate:"), delegate); + + // Show the window + ((id(*)(id, SEL, SEL))objc_msgSend)(win->src.window, sel_registerName("makeKeyAndOrderFront:"), NULL); + objc_msgSend_void_bool(win->src.window, sel_registerName("setIsVisible:"), true); + + if (!RGFW_loaded) { + objc_msgSend_void(win->src.window, sel_registerName("makeMainWindow")); + + RGFW_loaded = 1; + } + + NSApplication_finishLaunching(NSApp); + + RGFW_windows_size++; + + size_t i; + for (i = 0; i < RGFW_windows_size; i++) + if (!RGFW_windows[i]) { + RGFW_windows[i] = win; + break; + } + + if (RGFW_root == NULL) + RGFW_root = win; + + NSRetain(win->src.window); + NSRetain(NSApp); + + return win; + } + + + RGFW_area RGFW_getScreenSize(void) { + static CGDirectDisplayID display = 0; + + if (display == 0) + display = CGMainDisplayID(); + + return RGFW_AREA(CGDisplayPixelsWide(display), CGDisplayPixelsHigh(display)); + } + + RGFW_vector RGFW_getGlobalMousePoint(void) { + assert(RGFW_root != NULL); + + CGEventRef e = CGEventCreate(NULL); + CGPoint point = CGEventGetLocation(e); + CFRelease(e); + + return RGFW_VECTOR((u32) point.x, (u32) point.y); /* the point is loaded during event checks */ + } + + u32 RGFW_keysPressed[10]; /*10 keys at a time*/ + typedef NS_ENUM(u32, NSEventType) { /* various types of events */ + NSEventTypeLeftMouseDown = 1, + NSEventTypeLeftMouseUp = 2, + NSEventTypeRightMouseDown = 3, + NSEventTypeRightMouseUp = 4, + NSEventTypeMouseMoved = 5, + NSEventTypeLeftMouseDragged = 6, + NSEventTypeRightMouseDragged = 7, + NSEventTypeMouseEntered = 8, + NSEventTypeMouseExited = 9, + NSEventTypeKeyDown = 10, + NSEventTypeKeyUp = 11, + NSEventTypeFlagsChanged = 12, + NSEventTypeAppKitDefined = 13, + NSEventTypeSystemDefined = 14, + NSEventTypeApplicationDefined = 15, + NSEventTypePeriodic = 16, + NSEventTypeCursorUpdate = 17, + NSEventTypeScrollWheel = 22, + NSEventTypeTabletPoint = 23, + NSEventTypeTabletProximity = 24, + NSEventTypeOtherMouseDown = 25, + NSEventTypeOtherMouseUp = 26, + NSEventTypeOtherMouseDragged = 27, + /* The following event types are available on some hardware on 10.5.2 and later */ + NSEventTypeGesture API_AVAILABLE(macos(10.5)) = 29, + NSEventTypeMagnify API_AVAILABLE(macos(10.5)) = 30, + NSEventTypeSwipe API_AVAILABLE(macos(10.5)) = 31, + NSEventTypeRotate API_AVAILABLE(macos(10.5)) = 18, + NSEventTypeBeginGesture API_AVAILABLE(macos(10.5)) = 19, + NSEventTypeEndGesture API_AVAILABLE(macos(10.5)) = 20, + + NSEventTypeSmartMagnify API_AVAILABLE(macos(10.8)) = 32, + NSEventTypeQuickLook API_AVAILABLE(macos(10.8)) = 33, + + NSEventTypePressure API_AVAILABLE(macos(10.10.3)) = 34, + NSEventTypeDirectTouch API_AVAILABLE(macos(10.10)) = 37, + + NSEventTypeChangeMode API_AVAILABLE(macos(10.15)) = 38, + }; + + typedef NS_ENUM(unsigned long long, NSEventMask) { /* masks for the types of events */ + NSEventMaskLeftMouseDown = 1ULL << NSEventTypeLeftMouseDown, + NSEventMaskLeftMouseUp = 1ULL << NSEventTypeLeftMouseUp, + NSEventMaskRightMouseDown = 1ULL << NSEventTypeRightMouseDown, + NSEventMaskRightMouseUp = 1ULL << NSEventTypeRightMouseUp, + NSEventMaskMouseMoved = 1ULL << NSEventTypeMouseMoved, + NSEventMaskLeftMouseDragged = 1ULL << NSEventTypeLeftMouseDragged, + NSEventMaskRightMouseDragged = 1ULL << NSEventTypeRightMouseDragged, + NSEventMaskMouseEntered = 1ULL << NSEventTypeMouseEntered, + NSEventMaskMouseExited = 1ULL << NSEventTypeMouseExited, + NSEventMaskKeyDown = 1ULL << NSEventTypeKeyDown, + NSEventMaskKeyUp = 1ULL << NSEventTypeKeyUp, + NSEventMaskFlagsChanged = 1ULL << NSEventTypeFlagsChanged, + NSEventMaskAppKitDefined = 1ULL << NSEventTypeAppKitDefined, + NSEventMaskSystemDefined = 1ULL << NSEventTypeSystemDefined, + NSEventMaskApplicationDefined = 1ULL << NSEventTypeApplicationDefined, + NSEventMaskPeriodic = 1ULL << NSEventTypePeriodic, + NSEventMaskCursorUpdate = 1ULL << NSEventTypeCursorUpdate, + NSEventMaskScrollWheel = 1ULL << NSEventTypeScrollWheel, + NSEventMaskTabletPoint = 1ULL << NSEventTypeTabletPoint, + NSEventMaskTabletProximity = 1ULL << NSEventTypeTabletProximity, + NSEventMaskOtherMouseDown = 1ULL << NSEventTypeOtherMouseDown, + NSEventMaskOtherMouseUp = 1ULL << NSEventTypeOtherMouseUp, + NSEventMaskOtherMouseDragged = 1ULL << NSEventTypeOtherMouseDragged, + /* The following event masks are available on some hardware on 10.5.2 and later */ + NSEventMaskGesture API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeGesture, + NSEventMaskMagnify API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeMagnify, + NSEventMaskSwipe API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeSwipe, + NSEventMaskRotate API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeRotate, + NSEventMaskBeginGesture API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeBeginGesture, + NSEventMaskEndGesture API_AVAILABLE(macos(10.5)) = 1ULL << NSEventTypeEndGesture, + + /* Note: You can only use these event masks on 64 bit. In other words, you cannot setup a local, nor global, event monitor for these event types on 32 bit. Also, you cannot search the event queue for them (nextEventMatchingMask:...) on 32 bit. + */ + NSEventMaskSmartMagnify API_AVAILABLE(macos(10.8)) = 1ULL << NSEventTypeSmartMagnify, + NSEventMaskPressure API_AVAILABLE(macos(10.10.3)) = 1ULL << NSEventTypePressure, + NSEventMaskDirectTouch API_AVAILABLE(macos(10.12.2)) = 1ULL << NSEventTypeDirectTouch, + + NSEventMaskChangeMode API_AVAILABLE(macos(10.15)) = 1ULL << NSEventTypeChangeMode, + + NSEventMaskAny = ULONG_MAX, + + }; + + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { + assert(win != NULL); + + if (win->event.type == RGFW_quit) + return &win->event; + + static void* eventFunc = NULL; + if (eventFunc == NULL) + eventFunc = sel_registerName("nextEventMatchingMask:untilDate:inMode:dequeue:"); + + if (win->event.type == RGFW_windowAttribsChange && win->event.keyCode != 120) { + win->event.keyCode = 120; + return &win->event; + } + + NSEvent* e = (NSEvent*) ((id(*)(id, SEL, NSEventMask, void*, NSString*, bool))objc_msgSend) + (NSApp, eventFunc, ULONG_MAX, NULL, NSString_stringWithUTF8String("kCFRunLoopDefaultMode"), true); + + + if (e == NULL) + return NULL; + + if (objc_msgSend_id(e, sel_registerName("window")) != win->src.window) { + ((void (*)(id, SEL, id, bool))objc_msgSend) + (NSApp, sel_registerName("postEvent:atStart:"), e, 0); + + return NULL; + } + + if (win->event.droppedFilesCount) { + u32 i; + for (i = 0; i < win->event.droppedFilesCount; i++) + win->event.droppedFiles[i][0] = '\0'; + } + + win->event.droppedFilesCount = 0; + win->event.type = 0; + + win->event.inFocus = (bool) objc_msgSend_bool(win->src.window, sel_registerName("isKeyWindow")); + + switch (objc_msgSend_uint(e, sel_registerName("type"))) { + case NSEventTypeKeyDown: + win->event.type = RGFW_keyPressed; + win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); + win->event.keyName = (const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); + + RGFW_keyMap[win->event.keyCode] = 1; + break; + + case NSEventTypeKeyUp: + win->event.type = RGFW_keyReleased; + win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); + win->event.keyName = (const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); + + RGFW_keyMap[win->event.keyCode] = 0; + break; + + case NSEventTypeLeftMouseDragged: + case NSEventTypeOtherMouseDragged: + case NSEventTypeRightMouseDragged: + case NSEventTypeMouseMoved: + win->event.type = RGFW_mousePosChanged; + NSPoint p = ((NSPoint(*)(id, SEL)) objc_msgSend)(e, sel_registerName("locationInWindow")); + + win->event.point = RGFW_VECTOR((u32) p.x, (u32) (win->r.h - p.y)); + + if (win->src.winArgs & RGFW_HOLD_MOUSE) { + RGFW_vector mouse = RGFW_getGlobalMousePoint(); + if ((mouse.x != win->r.x + (win->r.w / 2) || mouse.y != win->r.y + (win->r.h / 2))) { + RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + } + } + break; + + case NSEventTypeLeftMouseDown: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonPressed; + break; + + case NSEventTypeOtherMouseDown: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonPressed; + break; + + case NSEventTypeRightMouseDown: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonPressed; + break; + + case NSEventTypeLeftMouseUp: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonReleased; + break; + + case NSEventTypeOtherMouseUp: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonReleased; + break; + + case NSEventTypeScrollWheel: { + double deltaY = ((CGFloat(*)(id, SEL))abi_objc_msgSend_fpret)(e, sel_registerName("deltaY")); + + if (deltaY > 0) + win->event.button = RGFW_mouseScrollUp; + + else if (deltaY < 0) + win->event.button = RGFW_mouseScrollDown; + + win->event.scroll = deltaY; + + win->event.type = RGFW_mouseButtonReleased; + break; + } + case NSEventTypeRightMouseUp: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonReleased; + break; + + default: + break; + } + + objc_msgSend_void_id(NSApp, sel_registerName("sendEvent:"), e); + + return &win->event; + } + + + void RGFW_window_move(RGFW_window* win, RGFW_vector v) { + assert(win != NULL); + + win->r.x = v.x; + win->r.y = v.y; + ((void(*)(id, SEL, NSRect, bool, bool))objc_msgSend) + (win->src.window, sel_registerName("setFrame:display:animate:"), NSMakeRect(win->r.x, win->r.y, win->r.w, win->r.h), true, true); + } + + void RGFW_window_resize(RGFW_window* win, RGFW_area a) { + assert(win != NULL); + + win->r.w = a.w; + win->r.h = a.h; + ((void(*)(id, SEL, NSRect, bool, bool))objc_msgSend) + (win->src.window, sel_registerName("setFrame:display:animate:"), NSMakeRect(win->r.x, win->r.y, win->r.w, win->r.h), true, true); + } + + void RGFW_window_minimize(RGFW_window* win) { + assert(win != NULL); + + objc_msgSend_void_SEL(win->src.window, sel_registerName("performMiniaturize:"), NULL); + } + + void RGFW_window_restore(RGFW_window* win) { + assert(win != NULL); + + objc_msgSend_void_SEL(win->src.window, sel_registerName("deminiaturize:"), NULL); + } + + void RGFW_window_setName(RGFW_window* win, char* name) { + assert(win != NULL); + + NSString* str = NSString_stringWithUTF8String(name); + objc_msgSend_void_id(win->src.window, sel_registerName("setTitle:"), str); + } + + void RGFW_window_setMinSize(RGFW_window* win, RGFW_area a) { + ((void (*)(id, SEL, NSSize))objc_msgSend) + (win->src.window, sel_registerName("setMinSize:"), NSMakeSize(a.w, a.h)); + } + + void RGFW_window_setMaxSize(RGFW_window* win, RGFW_area a) { + ((void (*)(id, SEL, NSSize))objc_msgSend) + (win->src.window, sel_registerName("setMaxSize:"), NSMakeSize(a.w, a.h)); + } + + void RGFW_window_setIcon(RGFW_window* win, u8* data, RGFW_area area, i32 channels) { + assert(win != NULL); + + /* code by EimaMei */ + // Make a bitmap representation, then copy the loaded image into it. + void* representation = NSBitmapImageRep_initWithBitmapData(NULL, area.w, area.h, 8, channels, (channels == 4), false, "NSCalibratedRGBColorSpace", 1 << 1, area.w * channels, 8 * channels); + memcpy(NSBitmapImageRep_bitmapData(representation), data, area.w * area.h * channels); + + // Add ze representation. + void* dock_image = NSImage_initWithSize(NSMakeSize(area.w, area.h)); + NSImage_addRepresentation(dock_image, (void*) representation); + + // Finally, set the dock image to it. + objc_msgSend_void_id(NSApp, sel_registerName("setApplicationIconImage:"), dock_image); + // Free the garbage. + release(dock_image); + release(representation); + } + + NSCursor* NSCursor_arrowStr(char* str) { + void* nclass = objc_getClass("NSCursor"); + void* func = sel_registerName(str); + return (NSCursor*) objc_msgSend_id(nclass, func); + } + + void RGFW_window_setMouse(RGFW_window* win, u8* image, RGFW_area a, i32 channels) { + assert(win != NULL); + + if (image == NULL) { + objc_msgSend_void(NSCursor_arrowStr("arrowCursor"), sel_registerName("set")); + return; + } + + /* NOTE(EimaMei): Code by yours truly. */ + // Make a bitmap representation, then copy the loaded image into it. + void* representation = NSBitmapImageRep_initWithBitmapData(NULL, a.w, a.h, 8, channels, (channels == 4), false, "NSCalibratedRGBColorSpace", 1 << 1, a.w * channels, 8 * channels); + memcpy(NSBitmapImageRep_bitmapData(representation), image, a.w * a.h * channels); + + // Add ze representation. + void* cursor_image = NSImage_initWithSize(NSMakeSize(a.w, a.h)); + NSImage_addRepresentation(cursor_image, representation); + + // Finally, set the cursor image. + void* cursor = NSCursor_initWithImage(cursor_image, NSMakePoint(0, 0)); + + objc_msgSend_void(cursor, sel_registerName("set")); + + // Free the garbage. + release(cursor_image); + release(representation); + } + + void RGFW_window_setMouseDefault(RGFW_window* win) { + RGFW_window_setMouseStandard(win, NSCursor_arrowStr("arrowCursor")); + } + + void RGFW_window_showMouse(RGFW_window* win, i8 show) { + if (show) { + CGDisplayShowCursor(kCGDirectMainDisplay); + } + else { + CGDisplayHideCursor(kCGDirectMainDisplay); + } + } + + void RGFW_window_setMouseStandard(RGFW_window* win, void* mouse) { + CGDisplayShowCursor(kCGDirectMainDisplay); + objc_msgSend_void(mouse, sel_registerName("set")); + } + + void RGFW_window_moveMouse(RGFW_window* win, RGFW_vector v) { + assert(win != NULL); + + CGWarpMouseCursorPosition(CGPointMake(v.x, v.y)); + } + + + void RGFW_window_hide(RGFW_window* win) { + objc_msgSend_void_bool(win->src.window, sel_registerName("setIsVisible:"), false); + } + + void RGFW_window_show(RGFW_window* win) { + ((id(*)(id, SEL, SEL))objc_msgSend)(win->src.window, sel_registerName("makeKeyAndOrderFront:"), NULL); + objc_msgSend_void_bool(win->src.window, sel_registerName("setIsVisible:"), true); + } + + u8 RGFW_window_isFullscreen(RGFW_window* win) { + assert(win != NULL); + + NSWindowStyleMask mask = (NSWindowStyleMask) objc_msgSend_uint(win->src.window, sel_registerName("styleMask")); + return (mask & NSWindowStyleMaskFullScreen) == NSWindowStyleMaskFullScreen; + } + + u8 RGFW_window_isHidden(RGFW_window* win) { + assert(win != NULL); + + bool visible = objc_msgSend_bool(win->src.window, sel_registerName("isVisible")); + return visible == NO && !RGFW_window_isMinimized(win); + } + + u8 RGFW_window_isMinimized(RGFW_window* win) { + assert(win != NULL); + + return objc_msgSend_bool(win->src.window, sel_registerName("isMiniaturized")) == YES; + } + + u8 RGFW_window_isMaximized(RGFW_window* win) { + assert(win != NULL); + + return objc_msgSend_bool(win->src.window, sel_registerName("isZoomed")); + } + + static RGFW_monitor RGFW_NSCreateMonitor(CGDirectDisplayID display) { + RGFW_monitor monitor; + + CGRect bounds = CGDisplayBounds(display); + monitor.rect = RGFW_RECT((int) bounds.origin.x, (int) bounds.origin.y, (int) bounds.size.width, (int) bounds.size.height); + + CGSize screenSizeMM = CGDisplayScreenSize(display); + monitor.physW = screenSizeMM.width / 25.4; + monitor.physH = screenSizeMM.height / 25.4; + + monitor.scaleX = (monitor.rect.w / (screenSizeMM.width)) / 2.6; + monitor.scaleY = (monitor.rect.h / (screenSizeMM.height)) / 2.6; + + snprintf(monitor.name, 128, "%i %i %i", CGDisplayModelNumber(display), CGDisplayVendorNumber(display), CGDisplaySerialNumber(display)); + + return monitor; + } + + + static RGFW_monitor RGFW_monitors[7]; + + RGFW_monitor* RGFW_getMonitors(void) { + static CGDirectDisplayID displays[7]; + u32 count; + + if (CGGetActiveDisplayList(6, displays, &count) != kCGErrorSuccess) + return NULL; + + for (u32 i = 0; i < count; i++) + RGFW_monitors[i] = RGFW_NSCreateMonitor(displays[i]); + + return RGFW_monitors; + } + + RGFW_monitor RGFW_getPrimaryMonitor(void) { + CGDirectDisplayID primary = CGMainDisplayID(); + return RGFW_NSCreateMonitor(primary); + } + + RGFW_monitor RGFW_window_getMonitor(RGFW_window* win) { + return RGFW_NSCreateMonitor(win->src.display); + } + + u8 RGFW_isPressedI(RGFW_window* win, u32 key) { + if (key >= 128) { +#ifdef RGFW_PRINT_ERRORS + fprintf(stderr, "RGFW_isPressedI : invalid keycode\n"); +#endif + RGFW_error = 1; + } + + return RGFW_keyMap[key]; + } + +#ifdef __cplusplus +#define APPKIT_EXTERN extern "C" +#else +#define APPKIT_EXTERN extern +#endif + + char* RGFW_readClipboard(size_t* size) { + char* str = strdup((char*) NSPasteboard_stringForType(NSPasteboard_generalPasteboard(), NSPasteboardTypeString)); + if (size != NULL) + *size = strlen(str); + return str; + } + + void RGFW_writeClipboard(const char* text, u32 textLen) { + NSPasteboardType array[] = { NSPasteboardTypeString, NULL }; + NSPasteBoard_declareTypes(NSPasteboard_generalPasteboard(), array, 1, NULL); + + NSPasteBoard_setString(NSPasteboard_generalPasteboard(), text, NSPasteboardTypeString); + } + + u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) { + assert(win != NULL); + + return RGFW_registerJoystickF(win, (char*) ""); + } + + u16 RGFW_registerJoystickF(RGFW_window* win, char* file) { + assert(win != NULL); + + return win->src.joystickCount - 1; + } + + void RGFW_window_close(RGFW_window* win) { + assert(win != NULL); + +#ifdef RGFW_VULKAN + for (int i = 0; i < win->src.image_count; i++) { + vkDestroyFramebuffer(RGFW_vulkan_info.device, RGFW_vulkan_info.framebuffers[i], NULL); + } + + for (int i = 0; i < win->src.image_count; i++) { + vkDestroyImageView(RGFW_vulkan_info.device, win->src.swapchain_image_views[i], NULL); + } + + vkDestroySwapchainKHR(RGFW_vulkan_info.device, win->src.swapchain, NULL); + vkDestroySurfaceKHR(RGFW_vulkan_info.instance, win->src.rSurf, NULL); + free(win->src.swapchain_image_views); + free(win->src.swapchain_images); +#endif + + release(win->src.view); + +#ifdef RGFW_ALLOC_DROPFILES + { + u32 i; + for (i = 0; i < RGFW_MAX_DROPS; i++) + RGFW_FREE(win->event.droppedFiles[i]); + + + RGFW_FREE(win->event.droppedFiles); + } +#endif + + u32 i; + for (i = 0; i < RGFW_windows_size; i++) + if (RGFW_windows[i]->src.window == win->src.window) { + RGFW_windows[i] = NULL; + break; + } + + if (!i) { + RGFW_windows_size = 0; + + objc_msgSend_void_id(NSApp, sel_registerName("terminate:"), (id) win->src.window); + NSApp = NULL; + } + +#ifdef RGFW_BUFFER + release(win->src.bitmap); + release(win->src.image); +#endif + + CVDisplayLinkStop(win->src.displayLink); + CVDisplayLinkRelease(win->src.displayLink); + + free(win); + } +#endif + +#if defined(RGFW_X11) || defined(RGFW_MACOS) + +#ifndef RGFW_NO_THREADS +#include + + RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args) { + RGFW_thread t; + pthread_create((pthread_t*) &t, NULL, *function_ptr, NULL); + return t; + } + void RGFW_cancelThread(RGFW_thread thread) { pthread_cancel((pthread_t) thread); } + void RGFW_joinThread(RGFW_thread thread) { pthread_join((pthread_t) thread, NULL); } +#ifdef __linux__ + void RGFW_setThreadPriority(RGFW_thread thread, u8 priority) { pthread_setschedprio(thread, priority); } +#endif +#endif +#endif + + void RGFW_window_makeCurrent_OpenGL(RGFW_window* win) { + assert(win != NULL); + +#ifdef RGFW_OPENGL +#ifdef RGFW_X11 + glXMakeCurrent((Display*) win->src.display, (Drawable) win->src.window, (GLXContext) win->src.rSurf); +#endif +#ifdef RGFW_WINDOWS + wglMakeCurrent(win->src.hdc, (HGLRC) win->src.rSurf); +#endif +#if defined(RGFW_MACOS) + objc_msgSend_void(win->src.rSurf, sel_registerName("makeCurrentContext")); +#endif +#else +#ifdef RGFW_EGL + eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.rSurf); +#endif +#endif + + } + + void RGFW_window_makeCurrent(RGFW_window* win) { + assert(win != NULL); + +#if defined(RGFW_WINDOWS) && defined(RGFW_DIRECTX) + RGFW_dxInfo.pDeviceContext->lpVtbl->OMSetRenderTargets(RGFW_dxInfo.pDeviceContext, 1, &win->src.renderTargetView, NULL); +#endif + +#ifdef RGFW_OPENGL + RGFW_window_makeCurrent_OpenGL(win); +#endif + } + + void RGFW_window_swapInterval(RGFW_window* win, i32 swapInterval) { + assert(win != NULL); + +#ifdef RGFW_OPENGL +#ifdef RGFW_X11 + ((PFNGLXSWAPINTERVALEXTPROC) glXGetProcAddress((GLubyte*) "glXSwapIntervalEXT"))((Display*) win->src.display, (Window) win->src.window, swapInterval); +#endif +#ifdef RGFW_WINDOWS + + typedef BOOL(APIENTRY* PFNWGLSWAPINTERVALEXTPROC)(int interval); + static PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL; + static void* loadSwapFunc = (void*) 1; + + if (loadSwapFunc == NULL) { + fprintf(stderr, "wglSwapIntervalEXT not supported\n"); + win->fpsCap = (swapInterval == 1) ? 0 : swapInterval; + return; + } + + if (wglSwapIntervalEXT == NULL) { + loadSwapFunc = (void*) wglGetProcAddress("wglSwapIntervalEXT"); + wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) loadSwapFunc; + } + + if (wglSwapIntervalEXT(swapInterval) == FALSE) + fprintf(stderr, "Failed to set swap interval\n"); + +#endif +#if defined(RGFW_MACOS) + NSOpenGLContext_setValues(win->src.rSurf, &swapInterval, 222); +#endif +#endif + +#ifdef RGFW_EGL + eglSwapInterval(win->src.EGL_display, swapInterval); +#endif + + win->fpsCap = (swapInterval == 1) ? 0 : swapInterval; + + } + + void RGFW_window_setGPURender(RGFW_window* win, i8 set) { + if (!set && !(win->src.winArgs & RGFW_NO_GPU_RENDER)) + win->src.winArgs |= RGFW_NO_GPU_RENDER; + + else if (set && win->src.winArgs & RGFW_NO_GPU_RENDER) + win->src.winArgs ^= RGFW_NO_GPU_RENDER; + } + + void RGFW_window_setCPURender(RGFW_window* win, i8 set) { + if (!set && !(win->src.winArgs & RGFW_NO_CPU_RENDER)) + win->src.winArgs |= RGFW_NO_CPU_RENDER; + + else if (set && win->src.winArgs & RGFW_NO_CPU_RENDER) + win->src.winArgs ^= RGFW_NO_CPU_RENDER; + } + + + void RGFW_window_swapBuffers(RGFW_window* win) { + assert(win != NULL); + + win->event.frames++; + RGFW_window_checkFPS(win); + + RGFW_window_makeCurrent(win); + + /* clear the window*/ + + if (!(win->src.winArgs & RGFW_NO_CPU_RENDER)) { +#if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) +#ifdef RGFW_OSMESA + u8* row = (u8*) RGFW_MALLOC(win->r.w * 3); + + i32 half_height = win->r.h / 2; + i32 stride = win->r.w * 3; + + i32 y; + for (y = 0; y < half_height; ++y) { + i32 top_offset = y * stride; + i32 bottom_offset = (win->r.h - y - 1) * stride; + memcpy(row, win->buffer + top_offset, stride); + memcpy(win->buffer + top_offset, win->buffer + bottom_offset, stride); + memcpy(win->buffer + bottom_offset, row, stride); + } + + RGFW_FREE(row); +#endif + +#ifdef RGFW_X11 + RGFW_area area = RGFW_getScreenSize(); + +#ifndef RGFW_X11_DONT_CONVERT_BGR + win->src.bitmap->data = (const char*) win->buffer; + u32 x, y; + for (y = 0; y < win->r.h; y++) { + for (x = 0; x < win->r.w; x++) { + u32 index = (y * 4 * area.w) + x * 4; + + u8 red = win->src.bitmap->data[index]; + win->src.bitmap->data[index] = win->buffer[index + 2]; + win->src.bitmap->data[index + 2] = red; + } + } +#endif + + XPutImage(win->src.display, (Window) win->src.window, XDefaultGC(win->src.display, XDefaultScreen(win->src.display)), win->src.bitmap, 0, 0, 0, 0, win->r.w, win->r.h); +#endif +#ifdef RGFW_WINDOWS + HGDIOBJ oldbmp = SelectObject(win->src.hdcMem, win->src.bitmap); + BitBlt(win->src.hdc, 0, 0, win->r.w, win->r.h, win->src.hdcMem, 0, 0, SRCCOPY); + SelectObject(win->src.hdcMem, oldbmp); +#endif +#if defined(RGFW_MACOS) + RGFW_area area = RGFW_getScreenSize(); + void* view = NSWindow_contentView(win->src.window); + void* layer = objc_msgSend_id(view, sel_registerName("layer")); + + ((void(*)(id, SEL, NSRect))objc_msgSend)(layer, + sel_registerName("setFrame:"), + NSMakeRect(0, 0, win->r.w, win->r.h)); + + NSBitmapImageRep* rep = NSBitmapImageRep_initWithBitmapData( + &win->buffer, win->r.w, win->r.h, 8, 4, true, false, + "NSDeviceRGBColorSpace", 0, + area.w * 4, 32 + ); + id image = NSAlloc(objc_getClass("NSImage")); + NSImage_addRepresentation(image, rep); + objc_msgSend_void_id(layer, sel_registerName("setContents:"), (id) image); + + release(image); + release(rep); +#endif +#endif + +#ifdef RGFW_VULKAN +#ifdef RGFW_PRINT_ERRORS + fprintf(stderr, "RGFW_window_swapBuffers %s\n", "RGFW_window_swapBuffers is not yet supported for Vulkan"); + RGFW_error = 1; +#endif +#endif + } + + if (win->src.winArgs & RGFW_NO_GPU_RENDER) + return; + +#ifdef RGFW_OPENGL +#ifdef RGFW_EGL + eglSwapBuffers(win->src.EGL_display, win->src.EGL_surface); +#else +#if defined(RGFW_X11) && defined(RGFW_OPENGL) + glXSwapBuffers((Display*) win->src.display, (Window) win->src.window); +#endif +#ifdef RGFW_WINDOWS + SwapBuffers(win->src.hdc); +#endif +#if defined(RGFW_MACOS) + NSOpenGLContext_flushBuffer(win->src.rSurf); +#endif +#endif +#endif + +#if defined(RGFW_WINDOWS) && defined(RGFW_DIRECTX) + win->src.swapchain->lpVtbl->Present(win->src.swapchain, 0, 0); +#endif + } + + void RGFW_window_maximize(RGFW_window* win) { + assert(win != NULL); + + RGFW_area screen = RGFW_getScreenSize(); + + RGFW_window_move(win, RGFW_VECTOR(0, 0)); + RGFW_window_resize(win, screen); + } + + u8 RGFW_window_shouldClose(RGFW_window* win) { + assert(win != NULL); + + /* || RGFW_isPressedI(win, RGFW_Escape) */ + return (win->event.type == RGFW_quit || RGFW_isPressedI(win, RGFW_OS_BASED_VALUE(0xff1b, 0x1B, 53))); + } + + void RGFW_window_setShouldClose(RGFW_window* win) { win->event.type = RGFW_quit; } + + void RGFW_window_moveToMonitor(RGFW_window* win, RGFW_monitor m) { + RGFW_window_move(win, RGFW_VECTOR(m.rect.x + win->r.x, m.rect.y + win->r.y)); + } + + void RGFW_window_mouseHold(RGFW_window* win) { + win->src.winArgs |= RGFW_HOLD_MOUSE; + + #ifdef RGFW_WINDOWS + RECT rect = {win->r.x, win->r.y, win->r.x + win->r.w, win->r.y + win->r.h}; + ClipCursor(&rect); + #endif + } + + void RGFW_window_mouseUnhold(RGFW_window* win) { + win->src.winArgs ^= RGFW_HOLD_MOUSE; + + #ifdef RGFW_WINDOWS + ClipCursor(NULL); + #endif + } + + void RGFW_sleep(u32 ms) { +#ifndef _MSC_VER + struct timespec time; + time.tv_sec = 0; + time.tv_nsec = ms * 1000; + + nanosleep(&time, NULL); +#else + Sleep(ms); +#endif + } + + static float currentFrameTime = 0; + + void RGFW_window_checkFPS(RGFW_window* win) { + assert(win != NULL); + + win->event.fps = RGFW_getFPS(); + + if (win->fpsCap == 0) + return; + + double targetFrameTime = 1.0 / win->fpsCap; + double elapsedTime = RGFW_getTime() - currentFrameTime; + + if (elapsedTime < targetFrameTime) { + u32 sleepTime = (u32) ((targetFrameTime - elapsedTime) * 1e3); + RGFW_sleep(sleepTime); + } + + currentFrameTime = (float) RGFW_getTime(); + + if (elapsedTime < targetFrameTime) { + u32 sleepTime = (u32) ((targetFrameTime - elapsedTime) * 1e3); + RGFW_sleep(sleepTime); + } + + currentFrameTime = (float) RGFW_getTime(); + } + +#ifdef __APPLE__ +#include +#endif + + u64 RGFW_getTimeNS(void) { +#ifdef RGFW_WINDOWS + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); + + LARGE_INTEGER counter; + QueryPerformanceCounter(&counter); + + return (u64) (counter.QuadPart * 1e9 / frequency.QuadPart); +#elif defined(__unix__) + struct timespec ts = { 0 }; + clock_gettime(CLOCK_MONOTONIC, &ts); + unsigned long long int nanoSeconds = (unsigned long long int)ts.tv_sec*1000000000LLU + (unsigned long long int)ts.tv_nsec; + + return nanoSeconds; +#elif defined(__APPLE__) + static mach_timebase_info_data_t timebase_info; + if (timebase_info.denom == 0) { + mach_timebase_info(&timebase_info); + } + return mach_absolute_time() * timebase_info.numer / timebase_info.denom; +#endif + return 0; + } + + u64 RGFW_getTime(void) { +#ifdef RGFW_WINDOWS + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); + + LARGE_INTEGER counter; + QueryPerformanceCounter(&counter); + return (u64) (counter.QuadPart / (double) frequency.QuadPart); +#elif defined(__unix__) + struct timespec ts = { 0 }; + clock_gettime(CLOCK_MONOTONIC, &ts); + unsigned long long int nanoSeconds = (unsigned long long int)ts.tv_sec*1000000000LLU + (unsigned long long int)ts.tv_nsec; + + return (double)(nanoSeconds) * 1e-9; +#elif defined(__APPLE__) + static mach_timebase_info_data_t timebase_info; + if (timebase_info.denom == 0) { + mach_timebase_info(&timebase_info); + } + return (double) mach_absolute_time() * (double) timebase_info.numer / ((double) timebase_info.denom * 1e9); +#endif + return 0; + } + + u32 RGFW_getFPS(void) { + static double previousSeconds = 0.0; + if (previousSeconds == 0.0) + previousSeconds = (double) RGFW_getTime();//glfwGetTime(); + + static i16 frameCount; + double currentSeconds = (double) RGFW_getTime();//glfwGetTime(); + double elapsedSeconds = currentSeconds - previousSeconds; + static double fps = 0; + + if (elapsedSeconds > 0.25) { + previousSeconds = currentSeconds; + fps = (double) frameCount / elapsedSeconds; + frameCount = 0; + } + + frameCount++; + + return (u32) fps; + } + +#endif /*RGFW_IMPLEMENTATION*/ + +#define RGFW_Escape RGFW_OS_BASED_VALUE(0xff1b, 0x1B, 53) +#define RGFW_F1 RGFW_OS_BASED_VALUE(0xffbe, 0x70, 127) +#define RGFW_F2 RGFW_OS_BASED_VALUE(0xffbf, 0x71, 121) +#define RGFW_F3 RGFW_OS_BASED_VALUE(0xffc0, 0x72, 100) +#define RGFW_F4 RGFW_OS_BASED_VALUE(0xffc1, 0x73, 119) +#define RGFW_F5 RGFW_OS_BASED_VALUE(0xffc2, 0x74, 97) +#define RGFW_F6 RGFW_OS_BASED_VALUE(0xffc3, 0x75, 98) +#define RGFW_F7 RGFW_OS_BASED_VALUE(0xffc4, 0x76, 99) +#define RGFW_F8 RGFW_OS_BASED_VALUE(0xffc5, 0x77, 101) +#define RGFW_F9 RGFW_OS_BASED_VALUE(0xffc6, 0x78, 102) +#define RGFW_F10 RGFW_OS_BASED_VALUE(0xffc7, 0x79, 110) +#define RGFW_F11 RGFW_OS_BASED_VALUE(0xffc8, 0x7A, 104) +#define RGFW_F12 RGFW_OS_BASED_VALUE(0xffc9, 0x7B, 112) +#define RGFW_F13 RGFW_OS_BASED_VALUE(0xffca, 0x7C, 106) +#define RGFW_F14 RGFW_OS_BASED_VALUE(0xffcb, 0x7D, 108) +#define RGFW_F15 RGFW_OS_BASED_VALUE(0xffcc, 0x7E, 114) + +#define RGFW_Backtick RGFW_OS_BASED_VALUE(96 , 192, 50) + +#define RGFW_0 RGFW_OS_BASED_VALUE(0x0030, 0x30, 29) +#define RGFW_1 RGFW_OS_BASED_VALUE(0x0031, 0x31, 18) +#define RGFW_2 RGFW_OS_BASED_VALUE(0x0032, 0x32, 19) +#define RGFW_3 RGFW_OS_BASED_VALUE(0x0033, 0x33, 20) +#define RGFW_4 RGFW_OS_BASED_VALUE(0x0034, 0x34, 21) +#define RGFW_5 RGFW_OS_BASED_VALUE(0x0035, 0x35, 23) +#define RGFW_6 RGFW_OS_BASED_VALUE(0x0036, 0x36, 22) +#define RGFW_7 RGFW_OS_BASED_VALUE(0x0037, 0x37, 26) +#define RGFW_8 RGFW_OS_BASED_VALUE(0x0038, 0x38, 28) +#define RGFW_9 RGFW_OS_BASED_VALUE(0x0039, 0x39, 25) + +#define RGFW_Minus RGFW_OS_BASED_VALUE(0x002d, 189, 27) +#define RGFW_Equals RGFW_OS_BASED_VALUE(0x003d, 187, 24) +#define RGFW_BackSpace RGFW_OS_BASED_VALUE(0xff08, 8, 51) +#define RGFW_Tab RGFW_OS_BASED_VALUE(0xff89, 0x09, 48) +#define RGFW_CapsLock RGFW_OS_BASED_VALUE(0xffe5, 20, 57) +#define RGFW_ShiftL RGFW_OS_BASED_VALUE(0xffe1, 0xA0, 56) +#define RGFW_ControlL RGFW_OS_BASED_VALUE(0xffe3, 0x11, 59) +#define RGFW_AltL RGFW_OS_BASED_VALUE(0xffe9, 164, 58) +#define RGFW_SuperL RGFW_OS_BASED_VALUE(0xffeb, 0x5B, 55) +#define RGFW_ShiftR RGFW_OS_BASED_VALUE(0xffe2, 0x5C, 56) +#define RGFW_ControlR RGFW_OS_BASED_VALUE(0xffe4, 0x11, 59) +#define RGFW_AltR RGFW_OS_BASED_VALUE(0xffea, 165, 58) +#define RGFW_SuperR RGFW_OS_BASED_VALUE(0xffec, 0xA4, 55) +#define RGFW_Space RGFW_OS_BASED_VALUE(0x0020, 0x20, 49) + +#define RGFW_A RGFW_OS_BASED_VALUE(0x0041, 0x41, 0) +#define RGFW_B RGFW_OS_BASED_VALUE(0x0042, 0x42, 11) +#define RGFW_C RGFW_OS_BASED_VALUE(0x0043, 0x43, 8) +#define RGFW_D RGFW_OS_BASED_VALUE(0x0044, 0x44, 2) +#define RGFW_E RGFW_OS_BASED_VALUE(0x0045, 0x45, 14) +#define RGFW_F RGFW_OS_BASED_VALUE(0x0046, 0x46, 3) +#define RGFW_G RGFW_OS_BASED_VALUE(0x0047, 0x47, 5) +#define RGFW_H RGFW_OS_BASED_VALUE(0x0048, 0x48, 4) +#define RGFW_I RGFW_OS_BASED_VALUE(0x0049, 0x49, 34) +#define RGFW_J RGFW_OS_BASED_VALUE(0x004a, 0x4A, 38) +#define RGFW_K RGFW_OS_BASED_VALUE(0x004b, 0x4B, 40) +#define RGFW_L RGFW_OS_BASED_VALUE(0x004c, 0x4C, 37) +#define RGFW_M RGFW_OS_BASED_VALUE(0x004d, 0x4D, 46) +#define RGFW_N RGFW_OS_BASED_VALUE(0x004e, 0x4E, 45) +#define RGFW_O RGFW_OS_BASED_VALUE(0x004f, 0x4F, 31) +#define RGFW_P RGFW_OS_BASED_VALUE(0x0050, 0x50, 35) +#define RGFW_Q RGFW_OS_BASED_VALUE(0x0051, 0x51, 12) +#define RGFW_R RGFW_OS_BASED_VALUE(0x0052, 0x52, 15) +#define RGFW_S RGFW_OS_BASED_VALUE(0x0053, 0x53, 1) +#define RGFW_T RGFW_OS_BASED_VALUE(0x0054, 0x54, 17) +#define RGFW_U RGFW_OS_BASED_VALUE(0x0055, 0x55, 32) +#define RGFW_V RGFW_OS_BASED_VALUE(0x0056, 0x56, 9) +#define RGFW_W RGFW_OS_BASED_VALUE(0x0057, 0x57, 13) +#define RGFW_X RGFW_OS_BASED_VALUE(0x0058, 0x58, 7) +#define RGFW_Y RGFW_OS_BASED_VALUE(0x0059, 0x59, 16) +#define RGFW_Z RGFW_OS_BASED_VALUE(0x005a, 0x5A, 6) + +#define RGFW_a RGFW_OS_BASED_VALUE(0x0061, 0x41, 0) +#define RGFW_b RGFW_OS_BASED_VALUE(0x0062, 0x42, 11) +#define RGFW_c RGFW_OS_BASED_VALUE(0x0063, 0x43, 8) +#define RGFW_d RGFW_OS_BASED_VALUE(0x0064, 0x44, 2) +#define RGFW_e RGFW_OS_BASED_VALUE(0x0065, 0x45, 14) +#define RGFW_f RGFW_OS_BASED_VALUE(0x0066, 0x46, 3) +#define RGFW_g RGFW_OS_BASED_VALUE(0x0067, 0x47, 5) +#define RGFW_h RGFW_OS_BASED_VALUE(0x0068, 0x48, 4) +#define RGFW_i RGFW_OS_BASED_VALUE(0x0069, 0x49, 34) +#define RGFW_j RGFW_OS_BASED_VALUE(0x006a, 0x4a, 38) +#define RGFW_k RGFW_OS_BASED_VALUE(0x006b, 0x4b, 40) +#define RGFW_l RGFW_OS_BASED_VALUE(0x006c, 0x4c, 37) +#define RGFW_m RGFW_OS_BASED_VALUE(0x006d, 0x4d, 46) +#define RGFW_n RGFW_OS_BASED_VALUE(0x006e, 0x4e, 45) +#define RGFW_o RGFW_OS_BASED_VALUE(0x006f, 0x4f, 31) +#define RGFW_p RGFW_OS_BASED_VALUE(0x0070, 0x50, 35) +#define RGFW_q RGFW_OS_BASED_VALUE(0x0071, 0x51, 12) +#define RGFW_r RGFW_OS_BASED_VALUE(0x0072, 0x52, 15) +#define RGFW_s RGFW_OS_BASED_VALUE(0x0073, 0x53, 1) +#define RGFW_t RGFW_OS_BASED_VALUE(0x0074, 0x54, 17) +#define RGFW_u RGFW_OS_BASED_VALUE(0x0075, 0x55, 32) +#define RGFW_v RGFW_OS_BASED_VALUE(0x0076, 0x56, 9) +#define RGFW_w RGFW_OS_BASED_VALUE(0x0077, 0x57, 13) +#define RGFW_x RGFW_OS_BASED_VALUE(0x0078, 0x58, 7) +#define RGFW_y RGFW_OS_BASED_VALUE(0x0079, 0x59, 16) +#define RGFW_z RGFW_OS_BASED_VALUE(0x007a, 0x5A, 6) + +#define RGFW_Period RGFW_OS_BASED_VALUE(0x002e, 190, 47) +#define RGFW_Comma RGFW_OS_BASED_VALUE(0x002c, 188, 43) +#define RGFW_Slash RGFW_OS_BASED_VALUE(0x002f, 191, 44) +#define RGFW_Bracket RGFW_OS_BASED_VALUE(0x005b, 219, 33) +#define RGFW_CloseBracket RGFW_OS_BASED_VALUE(0x005d, 221, 30) +#define RGFW_Semicolon RGFW_OS_BASED_VALUE(0x003b, 186, 41) +#define RGFW_Return RGFW_OS_BASED_VALUE(0xff0d, 0x0D, 36) +#define RGFW_Quote RGFW_OS_BASED_VALUE(0x0022, 222, 39) +#define RGFW_BackSlash RGFW_OS_BASED_VALUE(0x005c, 322, 42) + +#define RGFW_Up RGFW_OS_BASED_VALUE(0xff52, 0x26, 126) +#define RGFW_Down RGFW_OS_BASED_VALUE(0xff54, 0x28, 125) +#define RGFW_Left RGFW_OS_BASED_VALUE(0xff51, 0x25, 123) +#define RGFW_Right RGFW_OS_BASED_VALUE(0xff53, 0x27, 124) + +#define RGFW_Delete RGFW_OS_BASED_VALUE(0xffff, 0x2E, 118) +#define RGFW_Insert RGFW_OS_BASED_VALUE(0xff63, 0x2D, 115) +#define RGFW_End RGFW_OS_BASED_VALUE(0xff57, 0x23, 120) +#define RGFW_Home RGFW_OS_BASED_VALUE(0xff50, 0x24, 116) +#define RGFW_PageUp RGFW_OS_BASED_VALUE(0xff55, 336, 117) +#define RGFW_PageDown RGFW_OS_BASED_VALUE(0xff56, 325, 122) + +#define RGFW_Numlock RGFW_OS_BASED_VALUE(0xff7f, 0x90, 72) +#define RGFW_KP_Slash RGFW_OS_BASED_VALUE(0xffaf, 0x6F, 82) +#define RGFW_Multiply RGFW_OS_BASED_VALUE(0xffaa, 0x6A, 76) +#define RGFW_KP_Minus RGFW_OS_BASED_VALUE(0xffad, 0x6D, 67) +#define RGFW_KP_1 RGFW_OS_BASED_VALUE(0xffb1, 0x61, 84) +#define RGFW_KP_2 RGFW_OS_BASED_VALUE(0xffb2, 0x62, 85) +#define RGFW_KP_3 RGFW_OS_BASED_VALUE(0xffb3, 0x63, 86) +#define RGFW_KP_4 RGFW_OS_BASED_VALUE(0xffb4, 0x64, 87) +#define RGFW_KP_5 RGFW_OS_BASED_VALUE(0xffb5, 0x65, 88) +#define RGFW_KP_6 RGFW_OS_BASED_VALUE(0xffb6, 0x66, 89) +#define RGFW_KP_7 RGFW_OS_BASED_VALUE(0xffb7, 0x67, 90) +#define RGFW_KP_8 RGFW_OS_BASED_VALUE(0xffb8, 0x68, 92) +#define RGFW_KP_9 RGFW_OS_BASED_VALUE(0xffb9, 0x619, 93) +#define RGFW_KP_0 RGFW_OS_BASED_VALUE(0xffb0, 0x60, 83) +#define RGFW_KP_Period RGFW_OS_BASED_VALUE(0xffae, 0x6E, 65) +#define RGFW_KP_Return RGFW_OS_BASED_VALUE(0xff8d, 0x92, 77) + +#ifdef __APPLE__ + void* NSCursor_arrowStr(char* str); + void NSCursor_performSelector(void* cursor, void* selector); +#endif + + /* mouse icons */ +#define RGFW_MOUSE_ARROW RGFW_OS_BASED_VALUE(68, 32512, NSCursor_arrowStr("arrowCursor")) +#define RGFW_MOUSE_IBEAM RGFW_OS_BASED_VALUE(152, 32513, NSCursor_arrowStr("IBeamCursor")) +#define RGFW_MOUSE_CROSSHAIR RGFW_OS_BASED_VALUE(34, 32515, NSCursor_arrowStr("crosshairCursor")) +#define RGFW_MOUSE_POINTING_HAND RGFW_OS_BASED_VALUE(60, 32649, NSCursor_arrowStr("pointingHandCursor")) +#define RGFW_MOUSE_RESIZE_EW RGFW_OS_BASED_VALUE(108, 32644, NSCursor_arrowStr("resizeLeftRightCursor")) +#define RGFW_MOUSE_RESIZE_NS RGFW_OS_BASED_VALUE(116, 32645, NSCursor_arrowStr("resizeUpDownCursor")) +#define RGFW_MOUSE_RESIZE_ALL RGFW_OS_BASED_VALUE(52, 32646, NSCursor_arrowStr("closedHandCursor")) +#define RGFW_MOUSE_RESIZE_NWSE RGFW_OS_BASED_VALUE(12, 32642, NSCursor_performSelector(selector("_windowResizeNorthWestSouthEastCursor"))) +#define RGFW_MOUSE_RESIZE_NESW RGFW_OS_BASED_VALUE(14, 32643, NSCursor_performSelector(selector("_windowResizeNorthEastSouthWestCursor"))) +#define RGFW_MOUSE_NOT_ALLOWED RGFW_OS_BASED_VALUE(0, 32648, NSCursor_arrowStr("operationNotAllowedCursor")) + +#ifdef __cplusplus +} +#endif diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c new file mode 100644 index 000000000..e4f74938d --- /dev/null +++ b/src/platforms/rcore_desktop_rgfw.c @@ -0,0 +1,1519 @@ +/********************************************************************************************** +* +* rcore_desktop_rgfw template - Functions to manage window, graphics device and inputs +* +* PLATFORM: RGFW +* - Windows (Win32, Win64) +* - Linux (X11/Wayland desktop mode) +* - MacOS (Cocoa) +* +* LIMITATIONS: +* - Limitation 01 +* - Limitation 02 +* +* POSSIBLE IMPROVEMENTS: +* - Improvement 01 +* - Improvement 02 +* +* ADDITIONAL NOTES: +* - TRACELOG() function is located in raylib [utils] module +* +* CONFIGURATION: +* #define RCORE_PLATFORM_CUSTOM_FLAG +* Custom flag for rcore on target platform -not used- +* +* DEPENDENCIES: +* - RGFW.h (main library): Windowing and inputs management +* - gestures: Gestures system for touch-ready devices (or simulated from mouse inputs) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5), Colleague Riley and contributors +* +* 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. +* +**********************************************************************************************/ + +#ifdef GRAPHICS_API_OPENGL_ES2 +#define RGFW_OPENGL_ES2 +#endif + +void ShowCursor(void); +void CloseWindow(void); + +#define _INPUT_EVENT_CODES_H +#define _APISETSTRING_ +#define RGFWDEF +#define _XTYPEDEF_FONT +#define RGFW_IMPLEMENTATION + +#define WIN32_LEAN_AND_MEAN +#define Rectangle rectangle_win32 +#define CloseWindow CloseWindow_win32 +#define ShowCursor __imp_ShowCursor + +#define Point NSPOINT +#define Size NSSIZE + +#ifdef _MSC_VER +__declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte, wchar_t* lpWideCharStr, int cchWideChar); +#endif + +#include "../external/RGFW.h" +#undef DrawText +#undef ShowCursor +#undef CloseWindow +#undef Point +#undef Size + +#define Rectangle struct Rectangle +void CloseWindow(void); +void ShowCursor(void); + + +#include + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +typedef struct { + // TODO: Define the platform specific variables required + + RGFW_window* window; // Native display device (physical screen connection) +} PlatformData; + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +extern CoreData CORE; // Global CORE state context + +static PlatformData platform = { NULL }; // Platform specific + +//---------------------------------------------------------------------------------- +// Module Internal Functions Declaration +//---------------------------------------------------------------------------------- +int InitPlatform(void); // Initialize platform (graphics, inputs and more) +bool InitGraphicsDevice(void); // Initialize graphics device + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +// NOTE: Functions declaration is provided by raylib.h + +//---------------------------------------------------------------------------------- +// Module Functions Definition: Window and Graphics Device +//---------------------------------------------------------------------------------- + +// Check if application should close +bool WindowShouldClose(void) +{ + if (CORE.Window.shouldClose == false) + CORE.Window.shouldClose = RGFW_window_shouldClose(platform.window); + if (CORE.Window.ready) return CORE.Window.shouldClose; + else return true; +} + +// Toggle fullscreen mode +void ToggleFullscreen(void) +{ + RGFW_window_maximize(platform.window); + ToggleBorderlessWindowed(); +} + +// Toggle borderless windowed mode +void ToggleBorderlessWindowed(void) +{ + CORE.Window.flags & FLAG_WINDOW_UNDECORATED; + + if (platform.window != NULL) + TRACELOG(LOG_WARNING, "ToggleBorderlessWindowed() after window creation not available on target platform"); +} + +// Set window state: maximized, if resizable +void MaximizeWindow(void) +{ + RGFW_window_maximize(platform.window); +} + +// Set window state: minimized +void MinimizeWindow(void) +{ + RGFW_window_minimize(platform.window); +} + +// Set window state: not minimized/maximized +void RestoreWindow(void) +{ + RGFW_window_restore(platform.window); +} + +// Set window configuration state using flags +void SetWindowState(unsigned int flags) +{ + CORE.Window.flags |= flags; + + if (flags & FLAG_VSYNC_HINT) + { + RGFW_window_swapInterval(platform.window, 1); + } + if (flags & FLAG_FULLSCREEN_MODE) + { + RGFW_window_maximize(platform.window); + ToggleBorderlessWindowed(); + } + if (flags & FLAG_WINDOW_RESIZABLE) + { + RGFW_window_setMaxSize(platform.window, RGFW_AREA(platform.window->r.w, platform.window->r.h)); + RGFW_window_setMinSize(platform.window, RGFW_AREA(platform.window->r.w, platform.window->r.h)); + } + if (flags & FLAG_WINDOW_UNDECORATED) + { + ToggleBorderlessWindowed(); + } + if (flags & FLAG_WINDOW_HIDDEN) + { + RGFW_window_hide(platform.window); + } + if (flags & FLAG_WINDOW_MINIMIZED) + { + RGFW_window_minimize(platform.window); + } + if (flags & FLAG_WINDOW_MAXIMIZED) + { + RGFW_window_maximize(platform.window); + } + if (flags & FLAG_WINDOW_UNFOCUSED) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_UNFOCUSED is not supported on PLATFORM_DESKTOP_SDL"); + } + if (flags & FLAG_WINDOW_TOPMOST) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_TOPMOST is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_ALWAYS_RUN) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_ALWAYS_RUN is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_TRANSPARENT) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_TRANSPARENT is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_HIGHDPI) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_HIGHDPI is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_WINDOW_MOUSE_PASSTHROUGH is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_BORDERLESS_WINDOWED_MODE) + { + ToggleBorderlessWindowed(); + } + if (flags & FLAG_MSAA_4X_HINT) + { + RGFW_setGLSamples(4); + } + if (flags & FLAG_INTERLACED_HINT) + { + TRACELOG(LOG_WARNING, "SetWindowState() - FLAG_INTERLACED_HINT is not supported on PLATFORM_DESKTOP_RGFW"); + } +} + +// Clear window configuration state flags +void ClearWindowState(unsigned int flags) +{ + CORE.Window.flags &= ~flags; + + if (flags & FLAG_VSYNC_HINT) + { + RGFW_window_swapInterval(platform.window, 0); + } + if (flags & FLAG_FULLSCREEN_MODE) + { + ToggleBorderlessWindowed(); + RGFW_window_restore(platform.window); + CORE.Window.fullscreen = false; + } + if (flags & FLAG_WINDOW_RESIZABLE) + { + RGFW_window_setMaxSize(platform.window, RGFW_AREA(0, 0)); + RGFW_window_setMinSize(platform.window, RGFW_AREA(0, 0)); + } + if (flags & FLAG_WINDOW_UNDECORATED) + { + ToggleBorderlessWindowed(); + } + if (flags & FLAG_WINDOW_HIDDEN) + { + RGFW_window_show(platform.window); + } + if (flags & FLAG_WINDOW_MINIMIZED) + { + RGFW_window_restore(platform.window); + } + if (flags & FLAG_WINDOW_MAXIMIZED) + { + RGFW_window_restore(platform.window); + } + if (flags & FLAG_WINDOW_UNFOCUSED) + { + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_UNFOCUSED is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_TOPMOST) + { + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_TOPMOST is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_ALWAYS_RUN) + { + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_ALWAYS_RUN is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_TRANSPARENT) + { + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_TRANSPARENT is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_HIGHDPI) + { + // NOTE: There also doesn't seem to be a feature to disable high DPI once enabled + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_HIGHDPI is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_WINDOW_MOUSE_PASSTHROUGH) + { + //SDL_SetWindowGrab(platform.window, SDL_TRUE); + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_WINDOW_MOUSE_PASSTHROUGH is not supported on PLATFORM_DESKTOP_RGFW"); + } + if (flags & FLAG_BORDERLESS_WINDOWED_MODE) + { + ToggleFullscreen(); + } + if (flags & FLAG_MSAA_4X_HINT) + { + RGFW_setGLSamples(0); + } + if (flags & FLAG_INTERLACED_HINT) + { + TRACELOG(LOG_WARNING, "ClearWindowState() - FLAG_INTERLACED_HINT is not supported on PLATFORM_DESKTOP_RGFW"); + } +} + +// Set icon for window +void SetWindowIcon(Image image) +{ + i32 channels = 4; + + switch (image.format) { + case PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: + case PIXELFORMAT_UNCOMPRESSED_R16: // 16 bpp (1 channel - half float) + case PIXELFORMAT_UNCOMPRESSED_R32: // 32 bpp (1 channel - float) + channels = 1; + break; + + case PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: // 8*2 bpp (2 channels) + case PIXELFORMAT_UNCOMPRESSED_R5G6B5: // 16 bpp + case PIXELFORMAT_UNCOMPRESSED_R8G8B8: // 24 bpp + case PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: // 16 bpp (1 bit alpha) + case PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: // 16 bpp (4 bit alpha) + case PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: // 32 bpp + channels = 2; + break; + + case PIXELFORMAT_UNCOMPRESSED_R32G32B32: // 32*3 bpp (3 channels - float) + case PIXELFORMAT_UNCOMPRESSED_R16G16B16: // 16*3 bpp (3 channels - half float) + case PIXELFORMAT_COMPRESSED_DXT1_RGB: // 4 bpp (no alpha) + case PIXELFORMAT_COMPRESSED_ETC1_RGB: // 4 bpp + case PIXELFORMAT_COMPRESSED_ETC2_RGB: // 4 bpp + case PIXELFORMAT_COMPRESSED_PVRT_RGB: // 4 bpp + channels = 3; + break; + + case PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: // 32*4 bpp (4 channels - float) + case PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: // 16*4 bpp (4 channels - half float) + case PIXELFORMAT_COMPRESSED_DXT1_RGBA: // 4 bpp (1 bit alpha) + case PIXELFORMAT_COMPRESSED_DXT3_RGBA: // 8 bpp + case PIXELFORMAT_COMPRESSED_DXT5_RGBA: // 8 bpp + case PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: // 8 bpp + case PIXELFORMAT_COMPRESSED_PVRT_RGBA: // 4 bpp + case PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: // 8 bpp + case PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: // 2 bpp + channels = 4; + break; + + default: break; + } + + RGFW_window_setIcon(platform.window, image.data, RGFW_AREA(image.width, image.height), channels); +} + +// Set icon for window +void SetWindowIcons(Image *images, int count) +{ + TRACELOG(LOG_WARNING, "SetWindowIcons() not available on target platform"); +} + +// Set title for window +void SetWindowTitle(const char *title) +{ + RGFW_window_setName(platform.window, title); + CORE.Window.title = title; +} + +// Set window position on screen (windowed mode) +void SetWindowPosition(int x, int y) +{ + RGFW_window_move(platform.window, RGFW_VECTOR(x, y)); +} + +// Set monitor for the current window +void SetWindowMonitor(int monitor) +{ + RGFW_window_moveToMonitor(platform.window, RGFW_getMonitors()[monitor]); +} + +// Set window minimum dimensions (FLAG_WINDOW_RESIZABLE) +void SetWindowMinSize(int width, int height) +{ + RGFW_window_setMinSize(platform.window, RGFW_AREA(width, height)); + CORE.Window.screenMin.width = width; + CORE.Window.screenMin.height = height; +} + +// Set window maximum dimensions (FLAG_WINDOW_RESIZABLE) +void SetWindowMaxSize(int width, int height) +{ + RGFW_window_setMaxSize(platform.window, RGFW_AREA(width, height)); + CORE.Window.screenMax.width = width; + CORE.Window.screenMax.height = height; +} + +// Set window dimensions +void SetWindowSize(int width, int height) +{ + RGFW_window_resize(platform.window, RGFW_AREA(width, height)); +} + +// Set window opacity, value opacity is between 0.0 and 1.0 +void SetWindowOpacity(float opacity) +{ + TRACELOG(LOG_WARNING, "SetWindowOpacity() not available on target platform"); +} + +// Set window focused +void SetWindowFocused(void) +{ + RGFW_window_show(platform.window); +} + +// Get native window handle +void *GetWindowHandle(void) +{ + return platform.window->src.window; +} + +// Get number of monitors +int GetMonitorCount(void) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + u32 i; + for (i = 0; i < 6; i++) { + if (!mons[i].rect.x && !mons[i].rect.y && !mons[i].rect.w && mons[i].rect.h) + return i; + } + + return 6; +} + +// Get number of monitors +int GetCurrentMonitor(void) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + RGFW_monitor mon = RGFW_window_getMonitor(platform.window); + + u32 i; + for (i = 0; i < 6; i++) { + if (mons[i].rect.x == mon.rect.x && + mons[i].rect.y == mon.rect.y) + return i; + } + + return 0; +} + +// Get selected monitor position +Vector2 GetMonitorPosition(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return (Vector2){mons[monitor].rect.x, mons[monitor].rect.y}; +} + +// Get selected monitor width (currently used by monitor) +int GetMonitorWidth(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return mons[monitor].rect.w; +} + +// Get selected monitor height (currently used by monitor) +int GetMonitorHeight(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return mons[monitor].rect.h; + return 0; +} + +// Get selected monitor physical width in millimetres +int GetMonitorPhysicalWidth(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return mons[monitor].physW; +} + +// Get selected monitor physical height in millimetres +int GetMonitorPhysicalHeight(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return mons[monitor].physH; +} + +// Get selected monitor refresh rate +int GetMonitorRefreshRate(int monitor) +{ + TRACELOG(LOG_WARNING, "GetMonitorRefreshRate() not implemented on target platform"); + return 0; +} + +// Get the human-readable, UTF-8 encoded name of the selected monitor +const char *GetMonitorName(int monitor) +{ + RGFW_monitor* mons = RGFW_getMonitors(); + + return mons[monitor].name; +} + +// Get window position XY on monitor +Vector2 GetWindowPosition(void) +{ + return (Vector2){ platform.window->r.x, platform.window->r.y }; +} + +// Get window scale DPI factor for current monitor +Vector2 GetWindowScaleDPI(void) +{ + RGFW_monitor monitor = RGFW_window_getMonitor(platform.window); + + return (Vector2){((u32)monitor.scaleX) * platform.window->r.w, ((u32) monitor.scaleX) * platform.window->r.h}; +} + +// Set clipboard text content +void SetClipboardText(const char *text) +{ + RGFW_writeClipboard(text, strlen(text)); +} + +// Get clipboard text content +// NOTE: returned string is allocated and freed by GLFW +const char *GetClipboardText(void) +{ + return RGFW_readClipboard(NULL); +} + +// Show mouse cursor +void ShowCursor(void) +{ + RGFW_window_showMouse(platform.window, true); + CORE.Input.Mouse.cursorHidden = false; +} + +// Hides mouse cursor +void HideCursor(void) +{ + RGFW_window_showMouse(platform.window, false); + CORE.Input.Mouse.cursorHidden = true; +} + +// Enables cursor (unlock cursor) +void EnableCursor(void) +{ + RGFW_window_mouseUnhold(platform.window); + + // Set cursor position in the middle + SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); + RGFW_window_showMouse(platform.window, true); + CORE.Input.Mouse.cursorHidden = false; +} + +// Disables cursor (lock cursor) +void DisableCursor(void) +{ + RGFW_window_mouseHold(platform.window); + // Set cursor position in the middle + SetMousePosition(CORE.Window.screen.width/2, CORE.Window.screen.height/2); + + HideCursor(); +} + +// Swap back buffer with front buffer (screen drawing) +void SwapScreenBuffer(void) +{ + RGFW_window_swapBuffers(platform.window); +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition: Misc +//---------------------------------------------------------------------------------- + +// Get elapsed time measure in seconds since InitTimer() +double GetTime(void) +{ + double time = 0.0; + unsigned long long int nanoSeconds = RGFW_getTimeNS(); + time = (double)(nanoSeconds - CORE.Time.base)*1e-9; // Elapsed time since InitTimer() + + return time; +} + +// Open URL with default system browser (if available) +// NOTE: This function is only safe to use if you control the URL given. +// A user could craft a malicious string performing another action. +// Only call this function yourself not with user input or make sure to check the string yourself. +// Ref: https://github.com/raysan5/raylib/issues/686 +void OpenURL(const char *url) +{ + // Security check to (partially) avoid malicious code on target platform + if (strchr(url, '\'') != NULL) TRACELOG(LOG_WARNING, "SYSTEM: Provided URL could be potentially malicious, avoid [\'] character"); + else + { + // TODO: + } +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition: Inputs +//---------------------------------------------------------------------------------- + +// Set internal gamepad mappings +int SetGamepadMappings(const char *mappings) +{ + TRACELOG(LOG_WARNING, "SetGamepadMappings() not implemented on target platform"); + return 0; +} + +// Set mouse position XY +void SetMousePosition(int x, int y) +{ + RGFW_window_moveMouse(platform.window, RGFW_VECTOR(x, y)); + CORE.Input.Mouse.currentPosition = (Vector2){ (float)x, (float)y }; + CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; +} + +// Set mouse cursor +void SetMouseCursor(int cursor) +{ + switch (cursor) { + case MOUSE_CURSOR_DEFAULT: + return RGFW_window_setMouseDefault(platform.window); + case MOUSE_CURSOR_ARROW: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_ARROW); + case MOUSE_CURSOR_IBEAM: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_IBEAM); + case MOUSE_CURSOR_CROSSHAIR: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_CROSSHAIR); + case MOUSE_CURSOR_POINTING_HAND: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_POINTING_HAND); + case MOUSE_CURSOR_RESIZE_EW: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_RESIZE_EW); + case MOUSE_CURSOR_RESIZE_NS: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_RESIZE_NS); + #ifndef RGFW_MACOS + case MOUSE_CURSOR_RESIZE_NWSE: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_RESIZE_NWSE); + case MOUSE_CURSOR_RESIZE_NESW: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_RESIZE_NESW); + #endif + case MOUSE_CURSOR_RESIZE_ALL: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_RESIZE_ALL); + case MOUSE_CURSOR_NOT_ALLOWED: + return RGFW_window_setMouseStandard(platform.window, RGFW_MOUSE_NOT_ALLOWED); + default: + break; + } +} + +static KeyboardKey ConvertScancodeToKey(u32 keycode); + +// Register all input events +void PollInputEvents(void) +{ +#if defined(SUPPORT_GESTURES_SYSTEM) + // NOTE: Gestures update must be called every frame to reset gestures correctly + // because ProcessGestureEvent() is just called on an event, not every frame + UpdateGestures(); +#endif + + // Reset keys/chars pressed registered + CORE.Input.Keyboard.keyPressedQueueCount = 0; + CORE.Input.Keyboard.charPressedQueueCount = 0; + + // Reset mouse wheel + CORE.Input.Mouse.currentWheelMove.x = 0; + CORE.Input.Mouse.currentWheelMove.y = 0; + + // Register previous mouse position + + // Reset last gamepad button/axis registered state + + for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++) + { + // Check if gamepad is available + if (CORE.Input.Gamepad.ready[i]) + { + // Register previous gamepad button states + for (int k = 0; k < MAX_GAMEPAD_BUTTONS; k++) + { + CORE.Input.Gamepad.previousButtonState[i][k] = CORE.Input.Gamepad.currentButtonState[i][k]; + } + } + } + + // Register previous touch states + for (int i = 0; i < MAX_TOUCH_POINTS; i++) CORE.Input.Touch.previousTouchState[i] = CORE.Input.Touch.currentTouchState[i]; + + // Map touch position to mouse position for convenience + CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; + + int touchAction = -1; // 0-TOUCH_ACTION_UP, 1-TOUCH_ACTION_DOWN, 2-TOUCH_ACTION_MOVE + bool realTouch = false; // Flag to differentiate real touch gestures from mouse ones + + // Register previous keys states + // NOTE: Android supports up to 260 keys + for (int i = 0; i < MAX_KEYBOARD_KEYS; i++) + { + CORE.Input.Keyboard.previousKeyState[i] = CORE.Input.Keyboard.currentKeyState[i]; + CORE.Input.Keyboard.keyRepeatInFrame[i] = 0; + } + + // Register previous mouse states + for (int i = 0; i < MAX_MOUSE_BUTTONS; i++) + CORE.Input.Mouse.previousButtonState[i] = CORE.Input.Mouse.currentButtonState[i]; + + // Poll input events for current platform + //----------------------------------------------------------------------------- + CORE.Window.resizedLastFrame = false; + + + #define RGFW_HOLD_MOUSE (1L<<2) + #if defined(RGFW_X11) //|| defined(RGFW_MACOS) + if (platform.window->src.winArgs & RGFW_HOLD_MOUSE) + { + CORE.Input.Mouse.previousPosition = (Vector2){ 0.0f, 0.0f }; + CORE.Input.Mouse.currentPosition = (Vector2){ 0.0f, 0.0f }; + } + else { + CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; + } + #endif + + while (RGFW_window_checkEvent(platform.window)) + { + + if (platform.window->event.type >= RGFW_jsButtonPressed && platform.window->event.type <= RGFW_jsAxisMove) { + if (!CORE.Input.Gamepad.ready[platform.window->event.joystick]) + { + CORE.Input.Gamepad.ready[platform.window->event.joystick] = true; + CORE.Input.Gamepad.axisCount[platform.window->event.joystick] = platform.window->event.axisesCount; + CORE.Input.Gamepad.name[platform.window->event.joystick][0] = '\0'; + CORE.Input.Gamepad.axisState[platform.window->event.joystick][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f; + CORE.Input.Gamepad.axisState[platform.window->event.joystick][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f; + } + } + + RGFW_Event* event = &platform.window->event; + + // All input events can be processed after polling + switch (event->type) + { + case RGFW_quit: CORE.Window.shouldClose = true; break; + + case RGFW_dnd: // Dropped file + { + size_t i; + for (i = 0; i < event->droppedFilesCount; i++) { + if (CORE.Window.dropFileCount == 0) + { + // When a new file is dropped, we reserve a fixed number of slots for all possible dropped files + // at the moment we limit the number of drops at once to 1024 files but this behaviour should probably be reviewed + // TODO: Pointers should probably be reallocated for any new file added... + CORE.Window.dropFilepaths = (char **)RL_CALLOC(1024, sizeof(char *)); + + CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); + strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event->droppedFiles[i]); + + CORE.Window.dropFileCount++; + } + else if (CORE.Window.dropFileCount < 1024) + { + CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char)); + strcpy(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], event->droppedFiles[i]); + + CORE.Window.dropFileCount++; + } + else TRACELOG(LOG_WARNING, "FILE: Maximum drag and drop files at once is limited to 1024 files!"); + } + } break; + + // Window events are also polled (Minimized, maximized, close...) + case RGFW_windowAttribsChange: + { + SetupViewport(platform.window->r.w, platform.window->r.h); + CORE.Window.position.x = platform.window->r.x; + CORE.Window.position.y = platform.window->r.x; + CORE.Window.screen.width = platform.window->r.w; + CORE.Window.screen.height = platform.window->r.h; + CORE.Window.currentFbo.width = platform.window->r.w;; + CORE.Window.currentFbo.height = platform.window->r.h; + CORE.Window.resizedLastFrame = true; + } break; + + // Keyboard events + case RGFW_keyPressed: + { + KeyboardKey key = ConvertScancodeToKey(event->keyCode); + + if (key != KEY_NULL) { + // If key was up, add it to the key pressed queue + if ((CORE.Input.Keyboard.currentKeyState[key] == 0) && (CORE.Input.Keyboard.keyPressedQueueCount < MAX_KEY_PRESSED_QUEUE)) + { + CORE.Input.Keyboard.keyPressedQueue[CORE.Input.Keyboard.keyPressedQueueCount] = key; + CORE.Input.Keyboard.keyPressedQueueCount++; + } + + CORE.Input.Keyboard.currentKeyState[key] = 1; + } + + // TODO: Put exitKey verification outside the switch? + if (CORE.Input.Keyboard.currentKeyState[CORE.Input.Keyboard.exitKey]) + { + CORE.Window.shouldClose = true; + } + + // NOTE: event.text.text data comes an UTF-8 text sequence but we register codepoints (int) + // Check if there is space available in the queue + if (CORE.Input.Keyboard.charPressedQueueCount < MAX_CHAR_PRESSED_QUEUE) + { + // Add character (codepoint) to the queue + CORE.Input.Keyboard.charPressedQueue[CORE.Input.Keyboard.charPressedQueueCount] = RGFW_keystrToChar(event->keyName); + CORE.Input.Keyboard.charPressedQueueCount++; + } + } break; + + case RGFW_keyReleased: + { + KeyboardKey key = ConvertScancodeToKey(event->keyCode); + if (key != KEY_NULL) CORE.Input.Keyboard.currentKeyState[key] = 0; + } break; + + // Check mouse events + case RGFW_mouseButtonPressed: + { + if (event->button == RGFW_mouseScrollUp || event->button == RGFW_mouseScrollDown) { + CORE.Input.Mouse.currentWheelMove.y = event->scroll; + break; + } + + int btn = event->button; + if (btn == RGFW_mouseLeft) btn = 1; + else if (btn == RGFW_mouseRight) btn = 2; + else if (btn == RGFW_mouseMiddle) btn = 3; + + CORE.Input.Mouse.currentButtonState[btn - 1] = 1; + CORE.Input.Touch.currentTouchState[btn - 1] = 1; + + touchAction = 1; + } break; + case RGFW_mouseButtonReleased: + { + + if (event->button == RGFW_mouseScrollUp || event->button == RGFW_mouseScrollDown) { + CORE.Input.Mouse.currentWheelMove.y = event->scroll; + break; + } + + int btn = event->button; + if (btn == RGFW_mouseLeft) btn = 1; + else if (btn == RGFW_mouseRight) btn = 2; + else if (btn == RGFW_mouseMiddle) btn = 3; + + CORE.Input.Mouse.currentButtonState[btn - 1] = 0; + CORE.Input.Touch.currentTouchState[btn - 1] = 0; + + touchAction = 0; + } break; + case RGFW_mousePosChanged: + { + if (platform.window->src.winArgs & RGFW_HOLD_MOUSE) { + + CORE.Input.Mouse.previousPosition = (Vector2){ 0.0f, 0.0f }; + + if ((event->point.x - (platform.window->r.w / 2)) * 2) + CORE.Input.Mouse.previousPosition.x = CORE.Input.Mouse.currentPosition.x; + if ((event->point.y - (platform.window->r.h / 2)) * 2) + CORE.Input.Mouse.previousPosition.y = CORE.Input.Mouse.currentPosition.y; + + CORE.Input.Mouse.currentPosition.x = (event->point.x - (platform.window->r.w / 2)) * 2; + CORE.Input.Mouse.currentPosition.y = (event->point.y - (platform.window->r.h / 2)) * 2; + + RGFW_window_showMouse(platform.window, 1); + } + else { + CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; + CORE.Input.Mouse.currentPosition.x = (float)event->point.x; + CORE.Input.Mouse.currentPosition.y = (float)event->point.y; + } + + CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; + touchAction = 2; + } break; + + case RGFW_jsButtonPressed: + { + int button = -1; + + switch (event->button) + { + case RGFW_JS_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; + case RGFW_JS_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; + case RGFW_JS_A: button = GAMEPAD_BUTTON_RIGHT_FACE_DOWN; break; + case RGFW_JS_X: button = GAMEPAD_BUTTON_RIGHT_FACE_LEFT; break; + + case RGFW_JS_L1: button = GAMEPAD_BUTTON_LEFT_TRIGGER_1; break; + case RGFW_JS_R1: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_1; break; + + case RGFW_JS_L2: button = GAMEPAD_BUTTON_LEFT_TRIGGER_2; break; + case RGFW_JS_R2: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_2; break; + + case RGFW_JS_SELECT: button = GAMEPAD_BUTTON_MIDDLE_LEFT; break; + case RGFW_JS_HOME: button = GAMEPAD_BUTTON_MIDDLE; break; + case RGFW_JS_START: button = GAMEPAD_BUTTON_MIDDLE_RIGHT; break; + + case RGFW_JS_UP: button = GAMEPAD_BUTTON_LEFT_FACE_UP; break; + case RGFW_JS_RIGHT: button = GAMEPAD_BUTTON_LEFT_FACE_RIGHT; break; + case RGFW_JS_DOWN: button = GAMEPAD_BUTTON_LEFT_FACE_DOWN; break; + case RGFW_JS_LEFT: button = GAMEPAD_BUTTON_LEFT_FACE_LEFT; break; + + default: break; + } + + if (button >= 0) + { + CORE.Input.Gamepad.currentButtonState[event->joystick][button] = 1; + CORE.Input.Gamepad.lastButtonPressed = button; + } + } break; + case RGFW_jsButtonReleased: + { + int button = -1; + switch (event->button) + { + case RGFW_JS_Y: button = GAMEPAD_BUTTON_RIGHT_FACE_UP; break; + case RGFW_JS_B: button = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT; break; + case RGFW_JS_A: button = GAMEPAD_BUTTON_RIGHT_FACE_DOWN; break; + case RGFW_JS_X: button = GAMEPAD_BUTTON_RIGHT_FACE_LEFT; break; + + case RGFW_JS_L1: button = GAMEPAD_BUTTON_LEFT_TRIGGER_1; break; + case RGFW_JS_R1: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_1; break; + + case RGFW_JS_L2: button = GAMEPAD_BUTTON_LEFT_TRIGGER_2; break; + case RGFW_JS_R2: button = GAMEPAD_BUTTON_RIGHT_TRIGGER_2; break; + + case RGFW_JS_SELECT: button = GAMEPAD_BUTTON_MIDDLE_LEFT; break; + case RGFW_JS_HOME: button = GAMEPAD_BUTTON_MIDDLE; break; + case RGFW_JS_START: button = GAMEPAD_BUTTON_MIDDLE_RIGHT; break; + + case RGFW_JS_UP: button = GAMEPAD_BUTTON_LEFT_FACE_UP; break; + case RGFW_JS_RIGHT: button = GAMEPAD_BUTTON_LEFT_FACE_RIGHT; break; + case RGFW_JS_DOWN: button = GAMEPAD_BUTTON_LEFT_FACE_DOWN; break; + case RGFW_JS_LEFT: button = GAMEPAD_BUTTON_LEFT_FACE_LEFT; break; + default: break; + } + + if (button >= 0) + { + CORE.Input.Gamepad.currentButtonState[event->joystick][button] = 0; + if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0; + } + } break; + case RGFW_jsAxisMove: + { + int axis = -1; + + size_t i; + for (i = 0; i < event->axisesCount; i++) + { + switch(i) { + case 0: + if (abs(event->axis[i].x) > abs(event->axis[i].y)) { + axis = GAMEPAD_AXIS_LEFT_X; + break; + } + + axis = GAMEPAD_AXIS_LEFT_Y; + break; + case 1: + if (abs(event->axis[i].x) > abs(event->axis[i].y)) { + axis = GAMEPAD_AXIS_RIGHT_X; break; + } + + axis = GAMEPAD_AXIS_RIGHT_Y; break; + case 2: axis = GAMEPAD_AXIS_LEFT_TRIGGER; break; + case 3: axis = GAMEPAD_AXIS_RIGHT_TRIGGER; break; + default: break; + } + + #ifdef __linux__ + float value = (event->axis[i].x + event->axis[i].y) / (float) 32767; + #else + float value = (event->axis[i].x + -event->axis[i].y) / (float) 32767; + #endif + CORE.Input.Gamepad.axisState[event->joystick][axis] = value; + + // Register button state for triggers in addition to their axes + if ((axis == GAMEPAD_AXIS_LEFT_TRIGGER) || (axis == GAMEPAD_AXIS_RIGHT_TRIGGER)) + { + int button = (axis == GAMEPAD_AXIS_LEFT_TRIGGER) ? GAMEPAD_BUTTON_LEFT_TRIGGER_2 : GAMEPAD_BUTTON_RIGHT_TRIGGER_2; + int pressed = (value > 0.1f); + CORE.Input.Gamepad.currentButtonState[event->joystick][button] = pressed; + if (pressed) CORE.Input.Gamepad.lastButtonPressed = button; + else if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0; + } + } + } break; + default: break; + } + +#if defined(SUPPORT_GESTURES_SYSTEM) + if (touchAction > -1) + { + // Process mouse events as touches to be able to use mouse-gestures + GestureEvent gestureEvent = { 0 }; + + // Register touch actions + gestureEvent.touchAction = touchAction; + + // Assign a pointer ID + gestureEvent.pointId[0] = 0; + + // Register touch points count + gestureEvent.pointCount = 1; + + // Register touch points position, only one point registered + if (touchAction == 2 || realTouch) gestureEvent.position[0] = CORE.Input.Touch.position[0]; + else gestureEvent.position[0] = GetMousePosition(); + + // Normalize gestureEvent.position[0] for CORE.Window.screen.width and CORE.Window.screen.height + gestureEvent.position[0].x /= (float)GetScreenWidth(); + gestureEvent.position[0].y /= (float)GetScreenHeight(); + + // Gesture data is sent to gestures-system for processing + ProcessGestureEvent(gestureEvent); + + touchAction = -1; + } +#endif + } + //----------------------------------------------------------------------------- +} + + +//---------------------------------------------------------------------------------- +// Module Internal Functions Definition +//---------------------------------------------------------------------------------- + +// Initialize platform: graphics, inputs and more +int InitPlatform(void) +{ + // TODO: Initialize graphic device: display/window + // It usually requires setting up the platform display system configuration + // and connexion with the GPU through some system graphic API + // raylib uses OpenGL so, platform should create that kind of connection + // Below example illustrates that process using EGL library + //---------------------------------------------------------------------------- + // Initialize RGFW internal global state, only required systems + // Initialize graphic device: display/window and graphic context + //---------------------------------------------------------------------------- + unsigned int flags = RGFW_CENTER | RGFW_ALLOW_DND; + + // Check window creation flags + if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) + { + CORE.Window.fullscreen = true; + flags |= RGFW_FULLSCREEN; + } + + if ((CORE.Window.flags & FLAG_WINDOW_UNDECORATED) > 0) flags |= RGFW_NO_BORDER; + if ((CORE.Window.flags & FLAG_WINDOW_RESIZABLE) == 0) flags |= RGFW_NO_RESIZE; + + if ((CORE.Window.flags & FLAG_WINDOW_TRANSPARENT) > 0) flags |= RGFW_TRANSPARENT_WINDOW; + + if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) flags |= RGFW_FULLSCREEN; + + // NOTE: Some OpenGL context attributes must be set before window creation + + // Check selection OpenGL version + if (rlGetVersion() == RL_OPENGL_21) + { + RGFW_setGLVersion(2, 1); + } + else if (rlGetVersion() == RL_OPENGL_33) + { + RGFW_setGLVersion(3, 3); + } + else if (rlGetVersion() == RL_OPENGL_43) + { + RGFW_setGLVersion(4, 1); + } + + if (CORE.Window.flags & FLAG_MSAA_4X_HINT) + { + RGFW_setGLSamples(4); + } + + platform.window = RGFW_createWindow(CORE.Window.title, RGFW_RECT(0, 0, CORE.Window.screen.width, CORE.Window.screen.height), flags); + + if (CORE.Window.flags & FLAG_VSYNC_HINT) + RGFW_window_swapInterval(platform.window, 1); + + RGFW_window_makeCurrent(platform.window); + + // Check surface and context activation + if (platform.window != NULL) + { + CORE.Window.ready = true; + + CORE.Window.render.width = CORE.Window.screen.width; + CORE.Window.render.height = CORE.Window.screen.height; + CORE.Window.currentFbo.width = CORE.Window.render.width; + CORE.Window.currentFbo.height = CORE.Window.render.height; + + TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully"); + TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height); + TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height); + TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); + TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); + } + else + { + TRACELOG(LOG_FATAL, "PLATFORM: Failed to initialize graphics device"); + return -1; + } + //---------------------------------------------------------------------------- + + // If everything work as expected, we can continue + CORE.Window.position.x = platform.window->r.x; + CORE.Window.position.y = platform.window->r.y; + CORE.Window.render.width = CORE.Window.screen.width; + CORE.Window.render.height = CORE.Window.screen.height; + CORE.Window.currentFbo.width = CORE.Window.render.width; + CORE.Window.currentFbo.height = CORE.Window.render.height; + + TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully"); + TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height); + TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height); + TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); + TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); + + // TODO: Load OpenGL extensions + // NOTE: GL procedures address loader is required to load extensions + //---------------------------------------------------------------------------- + rlLoadExtensions((void*)RGFW_getProcAddress); + //---------------------------------------------------------------------------- + + // TODO: Initialize input events system + // It could imply keyboard, mouse, gamepad, touch... + // Depending on the platform libraries/SDK it could use a callback mechanism + // For system events and inputs evens polling on a per-frame basis, use PollInputEvents() + //---------------------------------------------------------------------------- + // ... + //---------------------------------------------------------------------------- + + // TODO: Initialize timing system + //---------------------------------------------------------------------------- + InitTimer(); + //---------------------------------------------------------------------------- + + // TODO: Initialize storage system + //---------------------------------------------------------------------------- + CORE.Storage.basePath = GetWorkingDirectory(); + //---------------------------------------------------------------------------- + + #ifdef RGFW_X11 + for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++) + { + RGFW_registerJoystick(platform.window, i); + } + #endif + + TRACELOG(LOG_INFO, "PLATFORM: CUSTOM: Initialized successfully"); + + return 0; +} + +// Close platform +void ClosePlatform(void) +{ + RGFW_window_close(platform.window); + // TODO: De-initialize graphics, inputs and more +} + + +static KeyboardKey ConvertScancodeToKey(u32 keycode) { + switch (keycode) { + case RGFW_Quote: + return KEY_APOSTROPHE; + case RGFW_Comma: + return KEY_COMMA; + case RGFW_Minus: + return KEY_MINUS; + case RGFW_Period: + return KEY_PERIOD; + case RGFW_Slash: + return KEY_SLASH; + case RGFW_Escape: + return KEY_ESCAPE; + case RGFW_F1: + return KEY_F1; + case RGFW_F2: + return KEY_F2; + case RGFW_F3: + return KEY_F3; + case RGFW_F4: + return KEY_F4; + case RGFW_F5: + return KEY_F5; + case RGFW_F6: + return KEY_F6; + case RGFW_F7: + return KEY_F7; + case RGFW_F8: + return KEY_F8; + case RGFW_F9: + return KEY_F9; + case RGFW_F10: + return KEY_F10; + case RGFW_F11: + return KEY_F11; + case RGFW_F12: + return KEY_F12; + case RGFW_Backtick: + return KEY_GRAVE; + case RGFW_0: + return KEY_ZERO; + case RGFW_1: + return KEY_ONE; + case RGFW_2: + return KEY_TWO; + case RGFW_3: + return KEY_THREE; + case RGFW_4: + return KEY_FOUR; + case RGFW_5: + return KEY_FIVE; + case RGFW_6: + return KEY_SIX; + case RGFW_7: + return KEY_SEVEN; + case RGFW_8: + return KEY_EIGHT; + case RGFW_9: + return KEY_NINE; + case RGFW_Equals: + return KEY_EQUAL; + case RGFW_BackSpace: + return KEY_BACKSPACE; + case RGFW_Tab: + return KEY_TAB; + case RGFW_CapsLock: + return KEY_CAPS_LOCK; + case RGFW_ShiftL: + return KEY_LEFT_SHIFT; + case RGFW_ControlL: + return KEY_LEFT_CONTROL; + case RGFW_AltL: + return KEY_LEFT_ALT; + case RGFW_SuperL: + return KEY_LEFT_SUPER; + #ifndef RGFW_MACOS + case RGFW_ShiftR: + return KEY_RIGHT_SHIFT; + + case RGFW_AltR: + return KEY_RIGHT_ALT; + #endif + case RGFW_Space: + return KEY_SPACE; + + #ifdef RGFW_X11 + case RGFW_a: + #endif + + case RGFW_A: + return KEY_A; + + #ifdef RGFW_X11 + case RGFW_b: + #endif + + case RGFW_B: + return KEY_B; + + #ifdef RGFW_X11 + case RGFW_c: + #endif + + case RGFW_C: + return KEY_C; + + #ifdef RGFW_X11 + case RGFW_d: + #endif + + case RGFW_D: + return KEY_D; + + #ifdef RGFW_X11 + case RGFW_e: + #endif + + case RGFW_E: + return KEY_E; + + #ifdef RGFW_X11 + case RGFW_f: + #endif + + case RGFW_F: + return KEY_F; + + #ifdef RGFW_X11 + case RGFW_g: + #endif + + case RGFW_G: + return KEY_G; + + #ifdef RGFW_X11 + case RGFW_h: + #endif + + case RGFW_H: + return KEY_H; + + #ifdef RGFW_X11 + case RGFW_i: + #endif + + case RGFW_I: + return KEY_I; + + #ifdef RGFW_X11 + case RGFW_j: + #endif + + case RGFW_J: + return KEY_J; + + #ifdef RGFW_X11 + case RGFW_k: + #endif + + case RGFW_K: + return KEY_K; + + #ifdef RGFW_X11 + case RGFW_l: + #endif + + case RGFW_L: + return KEY_L; + + #ifdef RGFW_X11 + case RGFW_m: + #endif + + case RGFW_M: + return KEY_M; + + #ifdef RGFW_X11 + case RGFW_n: + #endif + + case RGFW_N: + return KEY_N; + + #ifdef RGFW_X11 + case RGFW_o: + #endif + + case RGFW_O: + return KEY_O; + + #ifdef RGFW_X11 + case RGFW_p: + #endif + + case RGFW_P: + return KEY_P; + + #ifdef RGFW_X11 + case RGFW_q: + #endif + + case RGFW_Q: + return KEY_Q; + + #ifdef RGFW_X11 + case RGFW_r: + #endif + + case RGFW_R: + return KEY_R; + + #ifdef RGFW_X11 + case RGFW_s: + #endif + + case RGFW_S: + return KEY_S; + + #ifdef RGFW_X11 + case RGFW_t: + #endif + + case RGFW_T: + return KEY_T; + + #ifdef RGFW_X11 + case RGFW_u: + #endif + + case RGFW_U: + return KEY_U; + + #ifdef RGFW_X11 + case RGFW_v: + #endif + + case RGFW_V: + return KEY_V; + + #ifdef RGFW_X11 + case RGFW_w: + #endif + + case RGFW_W: + return KEY_W; + + #ifdef RGFW_X11 + case RGFW_x: + #endif + + case RGFW_X: + return KEY_X; + + #ifdef RGFW_X11 + case RGFW_y: + #endif + + case RGFW_Y: + return KEY_Y; + + #ifdef RGFW_X11 + case RGFW_z: + #endif + + case RGFW_Z: + return KEY_Z; + case RGFW_Bracket: + return KEY_LEFT_BRACKET; + case RGFW_BackSlash: + return KEY_BACKSLASH; + case RGFW_CloseBracket: + return KEY_RIGHT_BRACKET; + case RGFW_Semicolon: + return KEY_SEMICOLON; + case RGFW_Insert: + return KEY_INSERT; + case RGFW_Home: + return KEY_HOME; + case RGFW_PageUp: + return KEY_PAGE_UP; + case RGFW_Delete: + return KEY_DELETE; + case RGFW_End: + return KEY_END; + case RGFW_PageDown: + return KEY_PAGE_DOWN; + case RGFW_Right: + return KEY_RIGHT; + case RGFW_Left: + return KEY_LEFT; + case RGFW_Down: + return KEY_DOWN; + case RGFW_Up: + return KEY_UP; + case RGFW_Numlock: + return KEY_NUM_LOCK; + case RGFW_KP_Slash: + return KEY_KP_DIVIDE; + case RGFW_Multiply: + return KEY_KP_MULTIPLY; + case RGFW_KP_Minus: + return KEY_KP_SUBTRACT; + case RGFW_KP_Return: + return KEY_KP_ENTER; + case RGFW_KP_1: + return KEY_KP_1; + case RGFW_KP_2: + return KEY_KP_2; + case RGFW_KP_3: + return KEY_KP_3; + case RGFW_KP_4: + return KEY_KP_4; + case RGFW_KP_5: + return KEY_KP_5; + case RGFW_KP_6: + return KEY_KP_6; + case RGFW_KP_7: + return KEY_KP_7; + case RGFW_KP_8: + return KEY_KP_8; + case RGFW_KP_9: + return KEY_KP_9; + case RGFW_KP_0: + return KEY_KP_0; + case RGFW_KP_Period: + return KEY_KP_DECIMAL; + default: + return 0; + } + + return 0; +} +// EOF \ No newline at end of file diff --git a/src/rcore.c b/src/rcore.c index b229589f7..1db865187 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -154,13 +154,15 @@ #endif // Platform specific defines to handle GetApplicationDirectory() -#if defined(_WIN32) +#if (defined(_WIN32) && !defined(PLATFORM_DESKTOP_RGFW)) || (defined(_MSC_VER) && defined(PLATFORM_DESKTOP_RGFW)) #ifndef MAX_PATH #define MAX_PATH 1025 #endif __declspec(dllimport) unsigned long __stdcall GetModuleFileNameA(void *hModule, void *lpFilename, unsigned long nSize); __declspec(dllimport) unsigned long __stdcall GetModuleFileNameW(void *hModule, void *lpFilename, unsigned long nSize); __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, void *widestr, int cchwide, void *str, int cbmb, void *defchar, int *used_default); +unsigned int __stdcall timeBeginPeriod(unsigned int uPeriod); +unsigned int __stdcall timeEndPeriod(unsigned int uPeriod); #elif defined(__linux__) #include #elif defined(__APPLE__) @@ -482,7 +484,7 @@ static void ScanDirectoryFilesRecursively(const char *basePath, FilePathList *li static void RecordAutomationEvent(void); // Record frame events (to internal events array) #endif -#if defined(_WIN32) +#if defined(_WIN32) && !defined(PLATFORM_DESKTOP_RGFW) // NOTE: We declare Sleep() function symbol to avoid including windows.h (kernel32.lib linkage required) void __stdcall Sleep(unsigned long msTimeout); // Required for: WaitTime() #endif @@ -496,6 +498,8 @@ const char *TextFormat(const char *text, ...); // Formatting of tex #include "platforms/rcore_desktop.c" #elif defined(PLATFORM_DESKTOP_SDL) #include "platforms/rcore_desktop_sdl.c" +#elif defined(PLATFORM_DESKTOP_RGFW) + #include "platforms/rcore_desktop_rgfw.c" #elif defined(PLATFORM_WEB) #include "platforms/rcore_web.c" #elif defined(PLATFORM_DRM) From 08ae888722e6ee6c54555ed33c0db9f9e691b2e1 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 7 May 2024 20:40:41 +0200 Subject: [PATCH 328/790] Update Makefile --- examples/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index 52945c4b4..3c39e09e5 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -50,7 +50,7 @@ # Define required environment variables #------------------------------------------------------------------------------------------------ # Define target platform: PLATFORM_DESKTOP, PLATFORM_DESKTOP_SDL, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB -PLATFORM ?= PLATFORM_DESKTOP_RGFW +PLATFORM ?= PLATFORM_DESKTOP # Define required raylib variables PROJECT_NAME ?= raylib_examples From 1aa35591555ff3d0338e57d4ad320b437f52531b Mon Sep 17 00:00:00 2001 From: veins1 <19636663+veins1@users.noreply.github.com> Date: Tue, 7 May 2024 23:44:41 +0500 Subject: [PATCH 329/790] Fixes for loading Music (#3966) * Fixes for loading Music Fix for #3889 Fixes for QOA crashes. Memory leak FIX on unsuccessful .wav loading. * Added comments --- src/raudio.c | 193 +++++++++++++++++++++++++-------------------------- 1 file changed, 96 insertions(+), 97 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 032cfadeb..9d7c39a5b 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1334,11 +1334,10 @@ Music LoadMusicStream(const char *fileName) drwav *ctxWav = RL_CALLOC(1, sizeof(drwav)); bool success = drwav_init_file(ctxWav, fileName, NULL); - music.ctxType = MUSIC_AUDIO_WAV; - music.ctxData = ctxWav; - if (success) { + music.ctxType = MUSIC_AUDIO_WAV; + music.ctxData = ctxWav; int sampleSize = ctxWav->bitsPerSample; if (ctxWav->bitsPerSample == 24) sampleSize = 16; // Forcing conversion to s16 on UpdateMusicStream() @@ -1347,17 +1346,23 @@ Music LoadMusicStream(const char *fileName) music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + drwav_uninit(ctxWav); + RL_FREE(ctxWav); + } } #endif #if defined(SUPPORT_FILEFORMAT_OGG) else if (IsFileExtension(fileName, ".ogg")) { // Open ogg audio stream - music.ctxType = MUSIC_AUDIO_OGG; - music.ctxData = stb_vorbis_open_filename(fileName, NULL, NULL); + stb_vorbis *ctxOgg = stb_vorbis_open_filename(fileName, NULL, NULL); - if (music.ctxData != NULL) + if (ctxOgg != NULL) { + music.ctxType = MUSIC_AUDIO_OGG; + music.ctxData = ctxOgg; stb_vorbis_info info = stb_vorbis_get_info((stb_vorbis *)music.ctxData); // Get Ogg file info // OGG bit rate defaults to 16 bit, it's enough for compressed format @@ -1368,6 +1373,10 @@ Music LoadMusicStream(const char *fileName) music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + stb_vorbis_close(ctxOgg); + } } #endif #if defined(SUPPORT_FILEFORMAT_MP3) @@ -1376,27 +1385,30 @@ Music LoadMusicStream(const char *fileName) drmp3 *ctxMp3 = RL_CALLOC(1, sizeof(drmp3)); int result = drmp3_init_file(ctxMp3, fileName, NULL); - music.ctxType = MUSIC_AUDIO_MP3; - music.ctxData = ctxMp3; - if (result > 0) { + music.ctxType = MUSIC_AUDIO_MP3; + music.ctxData = ctxMp3; music.stream = LoadAudioStream(ctxMp3->sampleRate, 32, ctxMp3->channels); music.frameCount = (unsigned int)drmp3_get_pcm_frame_count(ctxMp3); music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + RL_FREE(ctxMp3); + } } #endif #if defined(SUPPORT_FILEFORMAT_QOA) else if (IsFileExtension(fileName, ".qoa")) { qoaplay_desc *ctxQoa = qoaplay_open(fileName); - music.ctxType = MUSIC_AUDIO_QOA; - music.ctxData = ctxQoa; - if (ctxQoa->file != NULL) + if (ctxQoa != NULL) { + music.ctxType = MUSIC_AUDIO_QOA; + music.ctxData = ctxQoa; // NOTE: We are loading samples are 32bit float normalized data, so, // we configure the output audio stream to also use float 32bit music.stream = LoadAudioStream(ctxQoa->info.samplerate, 32, ctxQoa->info.channels); @@ -1404,23 +1416,27 @@ Music LoadMusicStream(const char *fileName) music.looping = true; // Looping enabled by default musicLoaded = true; } + else{} //No uninit required } #endif #if defined(SUPPORT_FILEFORMAT_FLAC) else if (IsFileExtension(fileName, ".flac")) { - music.ctxType = MUSIC_AUDIO_FLAC; - music.ctxData = drflac_open_file(fileName, NULL); + drflac *ctxFlac = drflac_open_file(fileName, NULL); - if (music.ctxData != NULL) + if (ctxFlac != NULL) { - drflac *ctxFlac = (drflac *)music.ctxData; - + music.ctxType = MUSIC_AUDIO_FLAC; + music.ctxData = ctxFlac; music.stream = LoadAudioStream(ctxFlac->sampleRate, ctxFlac->bitsPerSample, ctxFlac->channels); music.frameCount = (unsigned int)ctxFlac->totalPCMFrameCount; music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + drflac_free(ctxFlac, NULL); + } } #endif #if defined(SUPPORT_FILEFORMAT_XM) @@ -1429,11 +1445,10 @@ Music LoadMusicStream(const char *fileName) jar_xm_context_t *ctxXm = NULL; int result = jar_xm_create_context_from_file(&ctxXm, AUDIO.System.device.sampleRate, fileName); - music.ctxType = MUSIC_MODULE_XM; - music.ctxData = ctxXm; - if (result == 0) // XM AUDIO.System.context created successfully { + music.ctxType = MUSIC_MODULE_XM; + music.ctxData = ctxXm; jar_xm_set_max_loop_count(ctxXm, 0); // Set infinite number of loops unsigned int bits = 32; @@ -1447,6 +1462,10 @@ Music LoadMusicStream(const char *fileName) jar_xm_reset(ctxXm); // Make sure we start at the beginning of the song musicLoaded = true; } + else + { + jar_xm_free_context(ctxXm); + } } #endif #if defined(SUPPORT_FILEFORMAT_MOD) @@ -1456,48 +1475,27 @@ Music LoadMusicStream(const char *fileName) jar_mod_init(ctxMod); int result = jar_mod_load_file(ctxMod, fileName); - music.ctxType = MUSIC_MODULE_MOD; - music.ctxData = ctxMod; - if (result > 0) { + music.ctxType = MUSIC_MODULE_MOD; + music.ctxData = ctxMod; // NOTE: Only stereo is supported for MOD music.stream = LoadAudioStream(AUDIO.System.device.sampleRate, 16, AUDIO_DEVICE_CHANNELS); music.frameCount = (unsigned int)jar_mod_max_samples(ctxMod); // NOTE: Always 2 channels (stereo) music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + jar_mod_unload(ctxMod); + RL_FREE(ctxMod); + } } #endif else TRACELOG(LOG_WARNING, "STREAM: [%s] File format not supported", fileName); if (!musicLoaded) { - if (false) { } - #if defined(SUPPORT_FILEFORMAT_WAV) - else if (music.ctxType == MUSIC_AUDIO_WAV) drwav_uninit((drwav *)music.ctxData); - #endif - #if defined(SUPPORT_FILEFORMAT_OGG) - else if (music.ctxType == MUSIC_AUDIO_OGG) stb_vorbis_close((stb_vorbis *)music.ctxData); - #endif - #if defined(SUPPORT_FILEFORMAT_MP3) - else if (music.ctxType == MUSIC_AUDIO_MP3) { drmp3_uninit((drmp3 *)music.ctxData); RL_FREE(music.ctxData); } - #endif - #if defined(SUPPORT_FILEFORMAT_QOA) - else if (music.ctxType == MUSIC_AUDIO_QOA) qoaplay_close((qoaplay_desc *)music.ctxData); - #endif - #if defined(SUPPORT_FILEFORMAT_FLAC) - else if (music.ctxType == MUSIC_AUDIO_FLAC) drflac_free((drflac *)music.ctxData, NULL); - #endif - #if defined(SUPPORT_FILEFORMAT_XM) - else if (music.ctxType == MUSIC_MODULE_XM) jar_xm_free_context((jar_xm_context_t *)music.ctxData); - #endif - #if defined(SUPPORT_FILEFORMAT_MOD) - else if (music.ctxType == MUSIC_MODULE_MOD) { jar_mod_unload((jar_mod_context_t *)music.ctxData); RL_FREE(music.ctxData); } - #endif - - music.ctxData = NULL; - music.ctxType = MUSIC_AUDIO_NONE; TRACELOG(LOG_WARNING, "FILEIO: [%s] Music file could not be opened", fileName); } else @@ -1528,11 +1526,10 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, bool success = drwav_init_memory(ctxWav, (const void *)data, dataSize, NULL); - music.ctxType = MUSIC_AUDIO_WAV; - music.ctxData = ctxWav; - if (success) { + music.ctxType = MUSIC_AUDIO_WAV; + music.ctxData = ctxWav; int sampleSize = ctxWav->bitsPerSample; if (ctxWav->bitsPerSample == 24) sampleSize = 16; // Forcing conversion to s16 on UpdateMusicStream() @@ -1541,18 +1538,22 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, music.looping = true; // Looping enabled by default musicLoaded = true; } + else { + drwav_uninit(ctxWav); + RL_FREE(ctxWav); + } } #endif #if defined(SUPPORT_FILEFORMAT_OGG) else if ((strcmp(fileType, ".ogg") == 0) || (strcmp(fileType, ".OGG") == 0)) { // Open ogg audio stream - music.ctxType = MUSIC_AUDIO_OGG; - //music.ctxData = stb_vorbis_open_filename(fileName, NULL, NULL); - music.ctxData = stb_vorbis_open_memory((const unsigned char *)data, dataSize, NULL, NULL); + stb_vorbis* ctxOgg = stb_vorbis_open_memory((const unsigned char*)data, dataSize, NULL, NULL); - if (music.ctxData != NULL) + if (ctxOgg != NULL) { + music.ctxType = MUSIC_AUDIO_OGG; + music.ctxData = ctxOgg; stb_vorbis_info info = stb_vorbis_get_info((stb_vorbis *)music.ctxData); // Get Ogg file info // OGG bit rate defaults to 16 bit, it's enough for compressed format @@ -1563,6 +1564,10 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + stb_vorbis_close(ctxOgg); + } } #endif #if defined(SUPPORT_FILEFORMAT_MP3) @@ -1571,27 +1576,35 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, drmp3 *ctxMp3 = RL_CALLOC(1, sizeof(drmp3)); int success = drmp3_init_memory(ctxMp3, (const void*)data, dataSize, NULL); - music.ctxType = MUSIC_AUDIO_MP3; - music.ctxData = ctxMp3; - if (success) { + music.ctxType = MUSIC_AUDIO_MP3; + music.ctxData = ctxMp3; music.stream = LoadAudioStream(ctxMp3->sampleRate, 32, ctxMp3->channels); music.frameCount = (unsigned int)drmp3_get_pcm_frame_count(ctxMp3); music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + drmp3_uninit(ctxMp3); + RL_FREE(ctxMp3); + } } #endif #if defined(SUPPORT_FILEFORMAT_QOA) else if ((strcmp(fileType, ".qoa") == 0) || (strcmp(fileType, ".QOA") == 0)) { - qoaplay_desc *ctxQoa = qoaplay_open_memory(data, dataSize); - music.ctxType = MUSIC_AUDIO_QOA; - music.ctxData = ctxQoa; - - if ((ctxQoa->file_data != NULL) && (ctxQoa->file_data_size != 0)) + qoaplay_desc *ctxQoa = NULL; + if ((data != NULL) && (dataSize > 0)) { + ctxQoa = qoaplay_open_memory(data, dataSize); + } + + if (ctxQoa != NULL) + { + music.ctxType = MUSIC_AUDIO_QOA; + music.ctxData = ctxQoa; // NOTE: We are loading samples are 32bit float normalized data, so, // we configure the output audio stream to also use float 32bit music.stream = LoadAudioStream(ctxQoa->info.samplerate, 32, ctxQoa->info.channels); @@ -1599,23 +1612,27 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, music.looping = true; // Looping enabled by default musicLoaded = true; } + else{} //No uninit required } #endif #if defined(SUPPORT_FILEFORMAT_FLAC) else if ((strcmp(fileType, ".flac") == 0) || (strcmp(fileType, ".FLAC") == 0)) { - music.ctxType = MUSIC_AUDIO_FLAC; - music.ctxData = drflac_open_memory((const void*)data, dataSize, NULL); + drflac *ctxFlac = drflac_open_memory((const void*)data, dataSize, NULL); - if (music.ctxData != NULL) + if (ctxFlac != NULL) { - drflac *ctxFlac = (drflac *)music.ctxData; - + music.ctxType = MUSIC_AUDIO_FLAC; + music.ctxData = ctxFlac; music.stream = LoadAudioStream(ctxFlac->sampleRate, ctxFlac->bitsPerSample, ctxFlac->channels); music.frameCount = (unsigned int)ctxFlac->totalPCMFrameCount; music.looping = true; // Looping enabled by default musicLoaded = true; } + else + { + drflac_free(ctxFlac, NULL); + } } #endif #if defined(SUPPORT_FILEFORMAT_XM) @@ -1626,6 +1643,7 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, if (result == 0) // XM AUDIO.System.context created successfully { music.ctxType = MUSIC_MODULE_XM; + music.ctxData = ctxXm; jar_xm_set_max_loop_count(ctxXm, 0); // Set infinite number of loops unsigned int bits = 32; @@ -1638,9 +1656,12 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, music.looping = true; // Looping enabled by default jar_xm_reset(ctxXm); // Make sure we start at the beginning of the song - music.ctxData = ctxXm; musicLoaded = true; } + else + { + jar_xm_free_context(ctxXm); + } } #endif #if defined(SUPPORT_FILEFORMAT_MOD) @@ -1667,15 +1688,18 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, if (result > 0) { music.ctxType = MUSIC_MODULE_MOD; + music.ctxData = ctxMod; // NOTE: Only stereo is supported for MOD music.stream = LoadAudioStream(AUDIO.System.device.sampleRate, 16, 2); music.frameCount = (unsigned int)jar_mod_max_samples(ctxMod); // NOTE: Always 2 channels (stereo) music.looping = true; // Looping enabled by default musicLoaded = true; - - music.ctxData = ctxMod; - musicLoaded = true; + } + else + { + jar_mod_unload(ctxMod); + RL_FREE(ctxMod); } } #endif @@ -1683,31 +1707,6 @@ Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, if (!musicLoaded) { - if (false) { } -#if defined(SUPPORT_FILEFORMAT_WAV) - else if (music.ctxType == MUSIC_AUDIO_WAV) drwav_uninit((drwav *)music.ctxData); -#endif -#if defined(SUPPORT_FILEFORMAT_OGG) - else if (music.ctxType == MUSIC_AUDIO_OGG) stb_vorbis_close((stb_vorbis *)music.ctxData); -#endif -#if defined(SUPPORT_FILEFORMAT_MP3) - else if (music.ctxType == MUSIC_AUDIO_MP3) { drmp3_uninit((drmp3 *)music.ctxData); RL_FREE(music.ctxData); } -#endif -#if defined(SUPPORT_FILEFORMAT_QOA) - else if (music.ctxType == MUSIC_AUDIO_QOA) qoaplay_close((qoaplay_desc *)music.ctxData); -#endif -#if defined(SUPPORT_FILEFORMAT_FLAC) - else if (music.ctxType == MUSIC_AUDIO_FLAC) drflac_free((drflac *)music.ctxData, NULL); -#endif -#if defined(SUPPORT_FILEFORMAT_XM) - else if (music.ctxType == MUSIC_MODULE_XM) jar_xm_free_context((jar_xm_context_t *)music.ctxData); -#endif -#if defined(SUPPORT_FILEFORMAT_MOD) - else if (music.ctxType == MUSIC_MODULE_MOD) { jar_mod_unload((jar_mod_context_t *)music.ctxData); RL_FREE(music.ctxData); } -#endif - - music.ctxData = NULL; - music.ctxType = MUSIC_AUDIO_NONE; TRACELOG(LOG_WARNING, "FILEIO: Music data could not be loaded"); } else From 6ec925554cc5c5297d74b9867331fae421966519 Mon Sep 17 00:00:00 2001 From: Colleague Riley <50218871+ColleagueRiley@users.noreply.github.com> Date: Thu, 9 May 2024 08:18:18 -0400 Subject: [PATCH 330/790] Fix Makefile issues (RGFW) (linux) (macOS) (#3969) Co-authored-by: ColleagueRiley --- src/Makefile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Makefile b/src/Makefile index 89d81627a..23742565d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -592,12 +592,12 @@ endif ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW) ifeq ($(PLATFORM_OS),WINDOWS) # Libraries for Windows desktop compilation - LDLIBS = ..\src\libraylib.a -lgdi32 -lwinmm -lopengl32 + LDLIBS = -lgdi32 -lwinmm -lopengl32 endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compipling # NOTE: Required packages: libegl1-mesa-dev - LDLIBS = ../src/libraylib.a -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt + LDLIBS = -lGL -lX11 -lXrandr -lXinerama -lXi -lXcursor -lm -lpthread -ldl -lrt # Explicit link to libc ifeq ($(RAYLIB_LIBTYPE),SHARED) @@ -608,10 +608,9 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW) LDLIBS += -latomic endif ifeq ($(PLATFORM_OS),OSX) - # Libraries for Debian GNU/Linux desktop compiling + # Libraries for Debian MacOS desktop compiling # NOTE: Required packages: libegl1-mesa-dev - LDLIBS = ../src/libraylib.a -lm - LDLIBS += -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo + LDLIBS += -lm -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo endif endif From 8a5fd3ac1d481ff978363b80298770ed8eeca9f8 Mon Sep 17 00:00:00 2001 From: Colleague Riley <50218871+ColleagueRiley@users.noreply.github.com> Date: Thu, 9 May 2024 10:35:26 -0400 Subject: [PATCH 331/790] Do not use "nanosleep" on windows at all (PLATFORM_DESKTOP_RGFW) (#3970) * Fix Makefile issues (RGFW) (linux) (macOS) * Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW) --------- Co-authored-by: ColleagueRiley --- src/external/RGFW.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/external/RGFW.h b/src/external/RGFW.h index 13b68d98a..67c67e91c 100644 --- a/src/external/RGFW.h +++ b/src/external/RGFW.h @@ -2753,8 +2753,8 @@ typedef struct { i32 x, y; } RGFW_vector; 4, &actualType, &actualFormat, - &count, - &bytesAfter, + (unsigned long*) &count, + (unsigned long*) &bytesAfter, (u8**) &formats); } else { formats = (Atom*) RGFW_MALLOC(E.xclient.data.l[2] + E.xclient.data.l[3] + E.xclient.data.l[4]); @@ -3002,7 +3002,6 @@ typedef struct { i32 x, y; } RGFW_vector; win->src.winArgs &= ~RGFW_MOUSE_CHANGED; } - RGFW_vector mouse = RGFW_getGlobalMousePoint(); if (win->src.winArgs & RGFW_HOLD_MOUSE && win->event.inFocus && win->event.type == RGFW_mousePosChanged) { RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); @@ -6074,7 +6073,7 @@ static HMODULE wglinstance = NULL; } void RGFW_sleep(u32 ms) { -#ifndef _MSC_VER +#ifndef RGFW_WINDOWS struct timespec time; time.tv_sec = 0; time.tv_nsec = ms * 1000; From f62202198e35161a9fe394a14bbd1a7c655107ad Mon Sep 17 00:00:00 2001 From: Colleague Riley Date: Fri, 10 May 2024 15:09:22 -0400 Subject: [PATCH 332/790] remove #define RGFWDEF and make the #undefs only happen for their OS (RGFW) (#3971) * Fix Makefile issues (RGFW) (linux) (macOS) * Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW) * remove #define RGFWDEF and make the #undefs only happen for their OS --- src/platforms/rcore_desktop_rgfw.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c index e4f74938d..623dc0e76 100644 --- a/src/platforms/rcore_desktop_rgfw.c +++ b/src/platforms/rcore_desktop_rgfw.c @@ -55,35 +55,46 @@ void ShowCursor(void); void CloseWindow(void); +#ifdef __linux__ #define _INPUT_EVENT_CODES_H -#define _APISETSTRING_ -#define RGFWDEF +#endif + +#if defined(__unix__) || defined(__linux__) #define _XTYPEDEF_FONT +#endif + #define RGFW_IMPLEMENTATION +#if defined(__WIN32) || defined(__WIN64) #define WIN32_LEAN_AND_MEAN #define Rectangle rectangle_win32 #define CloseWindow CloseWindow_win32 #define ShowCursor __imp_ShowCursor +#define _APISETSTRING_ +#endif +#ifdef __APPLE__ #define Point NSPOINT #define Size NSSIZE +#endif #ifdef _MSC_VER __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte, wchar_t* lpWideCharStr, int cchWideChar); #endif #include "../external/RGFW.h" + +#if defined(__WIN32) || defined(__WIN64) #undef DrawText #undef ShowCursor #undef CloseWindow +#undef Rectangle +#endif + +#ifdef __APPLE__ #undef Point #undef Size - -#define Rectangle struct Rectangle -void CloseWindow(void); -void ShowCursor(void); - +#endif #include From 7a1cad3e615428d3b7f7dac41f3438e46e061e09 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 12 May 2024 13:31:38 +0200 Subject: [PATCH 333/790] Reviewed input params #3974 --- src/rlgl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 513dd3ed7..bef7eaf18 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -591,8 +591,8 @@ RLAPI void rlFrustum(double left, double right, double bottom, double top, doubl RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area RLAPI void rlSetClipPlanes(double near, double far); // Set clip planes distances -RLAPI double rlGetCullDistanceNear(); // Get cull plane distance near -RLAPI double rlGetCullDistanceFar(); // Get cull plane distance far +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far //------------------------------------------------------------------------------------ // Functions Declaration - Vertex level operations @@ -2038,7 +2038,7 @@ void rlClearScreenBuffers(void) } // Check and log OpenGL error codes -void rlCheckErrors() +void rlCheckErrors(void) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) int check = 1; From f4b5622ba3a89bf1044ab7ba72384fb27c4837fe Mon Sep 17 00:00:00 2001 From: Alexei Mozaidze Date: Mon, 13 May 2024 02:27:02 +0400 Subject: [PATCH 334/790] feat(zig): add `opengl_version` option (#3979) Added `opengl_version` option to `src/build.zig`. --- src/build.zig | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/build.zig b/src/build.zig index 9fa1c57cd..e111d6388 100644 --- a/src/build.zig +++ b/src/build.zig @@ -88,6 +88,10 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. try c_source_files.append("rtextures.c"); } + if (options.opengl_version != .auto) { + raylib.defineCMacro(options.opengl_version.toCMacroStr(), null); + } + switch (target.result.os.tag) { .windows => { try c_source_files.append("rglfw.c"); @@ -134,7 +138,11 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. raylib.defineCMacro("PLATFORM_DESKTOP", null); } else { - raylib.linkSystemLibrary("GLESv2"); + if (options.opengl_version == .auto) { + raylib.linkSystemLibrary("GLESv2"); + raylib.defineCMacro("GRAPHICS_API_OPENGL_ES2", null); + } + raylib.linkSystemLibrary("EGL"); raylib.linkSystemLibrary("drm"); raylib.linkSystemLibrary("gbm"); @@ -145,7 +153,6 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. raylib.addIncludePath(.{ .cwd_relative = "/usr/include/libdrm" }); raylib.defineCMacro("PLATFORM_DRM", null); - raylib.defineCMacro("GRAPHICS_API_OPENGL_ES2", null); raylib.defineCMacro("EGL_NO_X11", null); raylib.defineCMacro("DEFAULT_BATCH_BUFFER_ELEMENT", "2048"); } @@ -183,7 +190,9 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. }, .emscripten => { raylib.defineCMacro("PLATFORM_WEB", null); - raylib.defineCMacro("GRAPHICS_API_OPENGL_ES2", null); + if (options.opengl_version == .auto) { + raylib.defineCMacro("GRAPHICS_API_OPENGL_ES2", null); + } if (b.sysroot == null) { @panic("Pass '--sysroot \"$EMSDK/upstream/emscripten\"'"); @@ -239,11 +248,34 @@ pub const Options = struct { platform_drm: bool = false, shared: bool = false, linux_display_backend: LinuxDisplayBackend = .X11, + opengl_version: OpenglVersion = .auto, raylib_dependency_name: []const u8 = "raylib", raygui_dependency_name: []const u8 = "raygui", }; +pub const OpenglVersion = enum { + auto, + gl_1_1, + gl_2_1, + gl_3_3, + gl_4_3, + gles_2, + gles_3, + + pub fn toCMacroStr(self: @This()) []const u8 { + switch (self) { + .auto => @panic("OpenglVersion.auto cannot be turned into a C macro string"), + .gl_1_1 => return "GRAPHICS_API_OPENGL_11", + .gl_2_1 => return "GRAPHICS_API_OPENGL_21", + .gl_3_3 => return "GRAPHICS_API_OPENGL_33", + .gl_4_3 => return "GRAPHICS_API_OPENGL_43", + .gles_2 => return "GRAPHICS_API_OPENGL_ES2", + .gles_3 => return "GRAPHICS_API_OPENGL_ES3", + } + } +}; + pub const LinuxDisplayBackend = enum { X11, Wayland, @@ -270,6 +302,7 @@ pub fn build(b: *std.Build) !void { .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, .shared = b.option(bool, "shared", "Compile as shared library") orelse defaults.shared, .linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend, + .opengl_version = b.option(OpenglVersion, "opengl_version", "OpenGL version to use") orelse defaults.opengl_version, }; const lib = try compileRaylib(b, target, optimize, options); From 3f13f7921dc9eed92e450d0cc25e43241213db92 Mon Sep 17 00:00:00 2001 From: Filyus Date: Mon, 13 May 2024 03:33:09 +0500 Subject: [PATCH 335/790] Fix parsing of empty parentheses (#3974) Co-authored-by: Filyus --- parser/raylib_parser.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index 9b8fd8b13..ec1d490e8 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -1006,8 +1006,14 @@ int main(int argc, char* argv[]) { funcEnd = c + 2; - // Check if previous word is void - if ((linePtr[c - 4] == 'v') && (linePtr[c - 3] == 'o') && (linePtr[c - 2] == 'i') && (linePtr[c - 1] == 'd')) break; + // Check if there are no parameters + if ((funcEnd - funcParamsStart == 2) || + ((linePtr[c - 4] == 'v') && + (linePtr[c - 3] == 'o') && + (linePtr[c - 2] == 'i') && + (linePtr[c - 1] == 'd'))) { + break; + } // Get parameter type + name, extract info char funcParamTypeName[128] = { 0 }; From 3d885ef9195825b03c9657f136293077e61ee503 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Sun, 12 May 2024 15:36:23 -0700 Subject: [PATCH 336/790] [raymath] Add extern "C" to raymath header for C++ (#3978) * Update raylib_api.* by CI * Add an extern C to raymath to prevent warnings in C++ --------- Co-authored-by: github-actions[bot] --- src/raymath.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/raymath.h b/src/raymath.h index 19625f10a..7a2f09296 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -77,6 +77,11 @@ #endif #endif + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -2523,5 +2528,8 @@ RMAPI int QuaternionEquals(Quaternion p, Quaternion q) return result; } +#if defined(__cplusplus) +} +#endif #endif // RAYMATH_H From bf5eecc71f63d1bca76fdb377a1d231066f9258d Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Wed, 15 May 2024 07:16:45 -0700 Subject: [PATCH 337/790] [parser] Don't crash for files that don't end in newlines (#3981) The parser assumes all lines end in newlines, but sometimes this isn't true. Check for a null terminator along with '\n' when stripping leading spaces. --- parser/raylib_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index ec1d490e8..3e36f41f1 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -1243,7 +1243,7 @@ static char **GetTextLines(const char *buffer, int length, int *linesCount) while ((bufferPtr[index] == ' ') || (bufferPtr[index] == '\t')) index++; int j = 0; - while (bufferPtr[index + j] != '\n') + while (bufferPtr[index + j] != '\n' && bufferPtr[index + j] != '\0') { lines[i][j] = bufferPtr[index + j]; j++; From 46f98063597648227cfa6fbe96c189ed970faea8 Mon Sep 17 00:00:00 2001 From: Mike Will Date: Wed, 15 May 2024 10:19:22 -0400 Subject: [PATCH 338/790] Use logarithmic scaling for a 2d example with zoom functionality (#3977) --- examples/core/core_2d_camera_mouse_zoom.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/core/core_2d_camera_mouse_zoom.c b/examples/core/core_2d_camera_mouse_zoom.c index abc6a6d14..b96a3db43 100644 --- a/examples/core/core_2d_camera_mouse_zoom.c +++ b/examples/core/core_2d_camera_mouse_zoom.c @@ -63,10 +63,9 @@ int main () camera.target = mouseWorldPos; // Zoom increment - const float zoomIncrement = 0.125f; - - camera.zoom += (wheel*zoomIncrement); - if (camera.zoom < zoomIncrement) camera.zoom = zoomIncrement; + float scaleFactor = 1.0f + (0.25f * fabsf(wheel)); + if (wheel < 0) scaleFactor = 1.0f / scaleFactor; + camera.zoom = Clamp(camera.zoom * scaleFactor, 0.125, 64); } //---------------------------------------------------------------------------------- From 479bd84400d2da4af4f1c902db2f579611d36b99 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 15 May 2024 16:19:53 +0200 Subject: [PATCH 339/790] Update shaders_palette_switch.c --- examples/shaders/shaders_palette_switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/shaders/shaders_palette_switch.c b/examples/shaders/shaders_palette_switch.c index 3d7d409db..9ff86d83d 100644 --- a/examples/shaders/shaders_palette_switch.c +++ b/examples/shaders/shaders_palette_switch.c @@ -109,7 +109,7 @@ int main(void) if (currentPalette >= MAX_PALETTES) currentPalette = 0; else if (currentPalette < 0) currentPalette = MAX_PALETTES - 1; - // Send new value to the shader to be used on drawing. + // Send palette data to the shader to be used on drawing // NOTE: We are sending RGB triplets w/o the alpha channel SetShaderValueV(shader, paletteLoc, palettes[currentPalette], SHADER_UNIFORM_IVEC3, COLORS_PER_PALETTE); //---------------------------------------------------------------------------------- From 02d98a3e44b13584c98a7aaee0ca6fc5fb55a975 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 15 May 2024 16:33:06 +0200 Subject: [PATCH 340/790] REVIEWED: 2d camera zoom, add alternative method #3977 --- examples/core/core_2d_camera_mouse_zoom.c | 70 +++++++++++++++++------ 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/examples/core/core_2d_camera_mouse_zoom.c b/examples/core/core_2d_camera_mouse_zoom.c index b96a3db43..8af94440d 100644 --- a/examples/core/core_2d_camera_mouse_zoom.c +++ b/examples/core/core_2d_camera_mouse_zoom.c @@ -31,6 +31,8 @@ int main () Camera2D camera = { 0 }; camera.zoom = 1.0f; + int zoomMode = 0; // 0-Mouse Wheel, 1-Mouse Move + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -39,41 +41,69 @@ int main () { // Update //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_ONE)) zoomMode = 0; + else if (IsKeyPressed(KEY_TWO)) zoomMode = 1; + // Translate based on mouse right click if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT)) { Vector2 delta = GetMouseDelta(); delta = Vector2Scale(delta, -1.0f/camera.zoom); - camera.target = Vector2Add(camera.target, delta); } - // Zoom based on mouse wheel - float wheel = GetMouseWheelMove(); - if (wheel != 0) + if (zoomMode == 0) { - // Get the world point that is under the mouse - Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera); - - // Set the offset to where the mouse is - camera.offset = GetMousePosition(); + // Zoom based on mouse wheel + float wheel = GetMouseWheelMove(); + if (wheel != 0) + { + // Get the world point that is under the mouse + Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera); - // Set the target to match, so that the camera maps the world space point - // under the cursor to the screen space point under the cursor at any zoom - camera.target = mouseWorldPos; + // Set the offset to where the mouse is + camera.offset = GetMousePosition(); - // Zoom increment - float scaleFactor = 1.0f + (0.25f * fabsf(wheel)); - if (wheel < 0) scaleFactor = 1.0f / scaleFactor; - camera.zoom = Clamp(camera.zoom * scaleFactor, 0.125, 64); + // Set the target to match, so that the camera maps the world space point + // under the cursor to the screen space point under the cursor at any zoom + camera.target = mouseWorldPos; + + // Zoom increment + float scaleFactor = 1.0f + (0.25f*fabsf(wheel)); + if (wheel < 0) scaleFactor = 1.0f/scaleFactor; + camera.zoom = Clamp(camera.zoom*scaleFactor, 0.125f, 64.0f); + } } + else + { + // Zoom based on mouse left click + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) + { + // Get the world point that is under the mouse + Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera); + // Set the offset to where the mouse is + camera.offset = GetMousePosition(); + + // Set the target to match, so that the camera maps the world space point + // under the cursor to the screen space point under the cursor at any zoom + camera.target = mouseWorldPos; + } + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) + { + // Zoom increment + float deltaX = GetMouseDelta().x; + float scaleFactor = 1.0f + (0.01f*fabsf(deltaX)); + if (deltaX < 0) scaleFactor = 1.0f/scaleFactor; + camera.zoom = Clamp(camera.zoom*scaleFactor, 0.125f, 64.0f); + } + } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); - ClearBackground(BLACK); + ClearBackground(RAYWHITE); BeginMode2D(camera); @@ -86,11 +116,13 @@ int main () rlPopMatrix(); // Draw a reference circle - DrawCircle(100, 100, 50, YELLOW); + DrawCircle(GetScreenWidth()/2, GetScreenHeight()/2, 50, MAROON); EndMode2D(); - DrawText("Mouse right button drag to move, mouse wheel to zoom", 10, 10, 20, WHITE); + DrawText("[1][2] Select mouse zoom mode (Wheel or Move)", 20, 20, 20, DARKGRAY); + if (zoomMode == 0) DrawText("Mouse right button drag to move, mouse wheel to zoom", 20, 50, 20, DARKGRAY); + else DrawText("Mouse right button drag to move, mouse press and move to zoom", 20, 50, 20, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- From d6b22b17aecd2346d4fd1fc8ebaea8212e40008f Mon Sep 17 00:00:00 2001 From: CosmicBagel <854116+CosmicBagel@users.noreply.github.com> Date: Wed, 15 May 2024 15:20:34 -0600 Subject: [PATCH 341/790] LazyPath.path has been deprecated, using b.path() (#3983) This works in zig 0.12, LazyPath.path has been removed in zig 0.13 Co-authored-by: CosmicBagel <> --- src/build.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build.zig b/src/build.zig index e111d6388..d172b3c2a 100644 --- a/src/build.zig +++ b/src/build.zig @@ -204,7 +204,7 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. var dir = std.fs.openDirAbsolute(cache_include, std.fs.Dir.OpenDirOptions{ .access_sub_paths = true, .no_follow = true }) catch @panic("No emscripten cache. Generate it!"); dir.close(); - raylib.addIncludePath(.{ .path = cache_include }); + raylib.addIncludePath(b.path(cache_include)); }, else => { @panic("Unsupported OS"); From f26bfa0c8efcf81559c2ba225e79778b1542d60f Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Wed, 15 May 2024 22:42:52 -0700 Subject: [PATCH 342/790] [RAYMATH] Revert Extern 'C' in raymath (#3985) * Update raylib_api.* by CI * Remove Extern C for raymath, it breaks some cases in mingw-w64 and does not fix any warning issues. --------- Co-authored-by: github-actions[bot] --- src/raymath.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index 7a2f09296..d036721a2 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -78,10 +78,6 @@ #endif -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -2528,8 +2524,5 @@ RMAPI int QuaternionEquals(Quaternion p, Quaternion q) return result; } -#if defined(__cplusplus) -} -#endif #endif // RAYMATH_H From 1d52985943d102b321c631bc4d24cca8ad0f651e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cemal=20G=C3=B6n=C3=BClta=C5=9F?= <45357531+cemalgnlts@users.noreply.github.com> Date: Thu, 16 May 2024 13:01:27 +0300 Subject: [PATCH 343/790] [rcore_web] Relative mouse mode issues. (#3940) * [rcore_web] Relative mouse mode issues. * Review formatting. --- .gitignore | 3 +++ src/platforms/rcore_web.c | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 6ff0e2346..eeb1ed09d 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,9 @@ packages/ *.so.* *.dll +# Emscripten +emsdk + # Ignore wasm data in examples/ examples/**/*.wasm examples/**/*.data diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 9328b8c9b..afe8adfb1 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -100,6 +100,8 @@ static const char cursorLUT[11][12] = { "not-allowed" // 10 MOUSE_CURSOR_NOT_ALLOWED }; +Vector2 lockedMousePos = { 0 }; + //---------------------------------------------------------------------------------- // Module Internal Functions Declaration //---------------------------------------------------------------------------------- @@ -131,6 +133,7 @@ static EM_BOOL EmscriptenWindowResizedCallback(int eventType, const EmscriptenUi static EM_BOOL EmscriptenResizeCallback(int eventType, const EmscriptenUiEvent *event, void *userData); // Emscripten input callback events +static EM_BOOL EmscriptenMouseMoveCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData); static EM_BOOL EmscriptenMouseCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData); static EM_BOOL EmscriptenPointerlockCallback(int eventType, const EmscriptenPointerlockChangeEvent *pointerlockChangeEvent, void *userData); static EM_BOOL EmscriptenTouchCallback(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData); @@ -862,6 +865,8 @@ void SetMousePosition(int x, int y) CORE.Input.Mouse.currentPosition = (Vector2){ (float)x, (float)y }; CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; + if (CORE.Input.Mouse.cursorHidden) lockedMousePos = CORE.Input.Mouse.currentPosition; + // NOTE: emscripten not implemented glfwSetCursorPos(platform.handle, CORE.Input.Mouse.currentPosition.x, CORE.Input.Mouse.currentPosition.y); } @@ -1270,6 +1275,9 @@ int InitPlatform(void) emscripten_set_click_callback("#canvas", NULL, 1, EmscriptenMouseCallback); emscripten_set_pointerlockchange_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, NULL, 1, EmscriptenPointerlockCallback); + // Following the mouse delta when the mouse is locked + emscripten_set_mousemove_callback("#canvas", NULL, 1, EmscriptenMouseMoveCallback); + // Support touch events emscripten_set_touchstart_callback("#canvas", NULL, 1, EmscriptenTouchCallback); emscripten_set_touchend_callback("#canvas", NULL, 1, EmscriptenTouchCallback); @@ -1477,9 +1485,13 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int // GLFW3 Cursor Position Callback, runs on mouse move static void MouseCursorPosCallback(GLFWwindow *window, double x, double y) { - CORE.Input.Mouse.currentPosition.x = (float)x; - CORE.Input.Mouse.currentPosition.y = (float)y; - CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; + // If the pointer is not locked, follow the position + if (!CORE.Input.Mouse.cursorHidden) + { + CORE.Input.Mouse.currentPosition.x = (float)x; + CORE.Input.Mouse.currentPosition.y = (float)y; + CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; + } #if defined(SUPPORT_GESTURES_SYSTEM) && defined(SUPPORT_MOUSE_GESTURES) // Process mouse events as touches to be able to use mouse-gestures @@ -1505,6 +1517,18 @@ static void MouseCursorPosCallback(GLFWwindow *window, double x, double y) #endif } +static EM_BOOL EmscriptenMouseMoveCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData) +{ + // To emulate the GLFW_RAW_MOUSE_MOTION property. + if (CORE.Input.Mouse.cursorHidden) + { + CORE.Input.Mouse.previousPosition.x = lockedMousePos.x - mouseEvent->movementX; + CORE.Input.Mouse.previousPosition.y = lockedMousePos.y - mouseEvent->movementY; + } + + return 1; // The event was consumed by the callback handler +} + // GLFW3 Scrolling Callback, runs on mouse wheel static void MouseScrollCallback(GLFWwindow *window, double xoffset, double yoffset) { @@ -1598,6 +1622,12 @@ static EM_BOOL EmscriptenPointerlockCallback(int eventType, const EmscriptenPoin { CORE.Input.Mouse.cursorHidden = EM_ASM_INT( { if (document.pointerLockElement) return 1; }, 0); + if (CORE.Input.Mouse.cursorHidden) + { + lockedMousePos = CORE.Input.Mouse.currentPosition; + CORE.Input.Mouse.previousPosition = lockedMousePos; + } + return 1; // The event was consumed by the callback handler } From 3d70d6179c4809d8b7e92215358394e3584bca79 Mon Sep 17 00:00:00 2001 From: FishingHacks Date: Thu, 16 May 2024 19:47:39 +0200 Subject: [PATCH 344/790] [raudio] Removed drwav_uninit in LoadMusicStream to fix a crash (#3986) --- src/raudio.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/raudio.c b/src/raudio.c index 9d7c39a5b..8f4bf7a51 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1348,7 +1348,6 @@ Music LoadMusicStream(const char *fileName) } else { - drwav_uninit(ctxWav); RL_FREE(ctxWav); } } From 00ac9b6c533e964ae2d5c5726e5d6c1f00964d0f Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 18 May 2024 07:40:59 +0200 Subject: [PATCH 345/790] Update config.h --- src/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.h b/src/config.h index 1fe21454f..3c92de72d 100644 --- a/src/config.h +++ b/src/config.h @@ -189,7 +189,7 @@ #define SUPPORT_DEFAULT_FONT 1 // Selected desired font fileformats to be supported for loading #define SUPPORT_FILEFORMAT_TTF 1 -//#define SUPPORT_FILEFORMAT_FNT 1 +#define SUPPORT_FILEFORMAT_FNT 1 //#define SUPPORT_FILEFORMAT_BDF 1 // Support text management functions From 9d67f4734b59244b5b10d45ce7c8eed76323c3b5 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 18 May 2024 07:41:37 +0200 Subject: [PATCH 346/790] REVIEWED: LoadBMFont(), issue on not glyph data initialized --- src/rtext.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rtext.c b/src/rtext.c index b5ba17e3a..1ddb62509 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2240,7 +2240,11 @@ static Font LoadBMFont(const char *fileName) // Fill character image data from full font data font.glyphs[i].image = ImageFromImage(fullFont, font.recs[i]); } - else TRACELOG(LOG_WARNING, "FONT: [%s] Some characters data not correctly provided", fileName); + else + { + font.glyphs[i].image = GenImageColor(font.recs[i].width, font.recs[i].height, BLACK); + TRACELOG(LOG_WARNING, "FONT: [%s] Some characters data not correctly provided", fileName); + } } UnloadImage(fullFont); From bb9bd73f435892b6f6f17d7068a7fe56dfca235d Mon Sep 17 00:00:00 2001 From: listeria <56203103+ListeriaM@users.noreply.github.com> Date: Tue, 21 May 2024 03:13:46 -0300 Subject: [PATCH 347/790] fix WaveCrop() and use frames instead of samples (#3994) Co-authored-by: Listeria monocytogenes --- src/raudio.c | 12 ++++++------ src/raylib.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 8f4bf7a51..e74f8590e 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1274,17 +1274,17 @@ Wave WaveCopy(Wave wave) return newWave; } -// Crop a wave to defined samples range +// Crop a wave to defined frames range // NOTE: Security check in case of out-of-range -void WaveCrop(Wave *wave, int initSample, int finalSample) +void WaveCrop(Wave *wave, int initFrame, int finalFrame) { - if ((initSample >= 0) && (initSample < finalSample) && ((unsigned int)finalSample < (wave->frameCount*wave->channels))) + if ((initFrame >= 0) && (initFrame < finalFrame) && ((unsigned int)finalFrame < wave->frameCount)) { - int sampleCount = finalSample - initSample; + int frameCount = finalFrame - initFrame; - void *data = RL_MALLOC(sampleCount*wave->sampleSize/8); + void *data = RL_MALLOC(frameCount*wave->channels*wave->sampleSize/8); - memcpy(data, (unsigned char *)wave->data + (initSample*wave->channels*wave->sampleSize/8), sampleCount*wave->sampleSize/8); + memcpy(data, (unsigned char *)wave->data + (initFrame*wave->channels*wave->sampleSize/8), frameCount*wave->channels*wave->sampleSize/8); RL_FREE(wave->data); wave->data = data; diff --git a/src/raylib.h b/src/raylib.h index 035f6f2bf..c53ea555b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1624,7 +1624,7 @@ RLAPI void SetSoundVolume(Sound sound, float volume); // Set vol RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave -RLAPI void WaveCrop(Wave *wave, int initSample, int finalSample); // Crop a wave to defined samples range +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() From 272a142ee5b830ff6742c2df6a7b3abe7399cfde Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 May 2024 06:14:05 +0000 Subject: [PATCH 348/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 6 +++--- parser/output/raylib_api.lua | 6 +++--- parser/output/raylib_api.txt | 6 +++--- parser/output/raylib_api.xml | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index d50085a4a..5a9f4fc5d 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -11231,7 +11231,7 @@ }, { "name": "WaveCrop", - "description": "Crop a wave to defined samples range", + "description": "Crop a wave to defined frames range", "returnType": "void", "params": [ { @@ -11240,11 +11240,11 @@ }, { "type": "int", - "name": "initSample" + "name": "initFrame" }, { "type": "int", - "name": "finalSample" + "name": "finalFrame" } ] }, diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index ef8e1c51e..d60ea191c 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -7733,12 +7733,12 @@ return { }, { name = "WaveCrop", - description = "Crop a wave to defined samples range", + description = "Crop a wave to defined frames range", returnType = "void", params = { {type = "Wave *", name = "wave"}, - {type = "int", name = "initSample"}, - {type = "int", name = "finalSample"} + {type = "int", name = "initFrame"}, + {type = "int", name = "finalFrame"} } }, { diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 631be9a8b..f4973dae6 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -4314,10 +4314,10 @@ Function 523: WaveCopy() (1 input parameters) Function 524: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void - Description: Crop a wave to defined samples range + Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) - Param[2]: initSample (type: int) - Param[3]: finalSample (type: int) + Param[2]: initFrame (type: int) + Param[3]: finalFrame (type: int) Function 525: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index e17c59d09..e079a198e 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -2870,10 +2870,10 @@ - + - - + + From 74d7e78b702a66c3ee6e9cc711e19f283e1324c0 Mon Sep 17 00:00:00 2001 From: IoIxD <30945097+IoIxD@users.noreply.github.com> Date: Tue, 21 May 2024 03:53:05 -0700 Subject: [PATCH 349/790] BINDINGS.md: raylib-rs now at 5.0 (#3991) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 93ae18792..3457f2b16 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -62,7 +62,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | raylib-phpcpp | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/oraoto/raylib-phpcpp | | raylibr | 4.0 | [R](https://www.r-project.org) | MIT | https://github.com/jeroenjanssens/raylibr | | raylib-ffi | 4.5 | [Rust](https://www.rust-lang.org/) | GPLv3 | https://github.com/ewpratten/raylib-ffi | -| raylib-rs | 3.5 | [Rust](https://www.rust-lang.org/) | Zlib | https://github.com/deltaphc/raylib-rs | +| raylib-rs | 5.0 | [Rust](https://www.rust-lang.org/) | Zlib | https://github.com/raylib-rs/raylib-rs | | Relib | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | ? | https://github.com/RedCubeDev-ByteSpace/Relib | | racket-raylib | 4.0 | [Racket](https://racket-lang.org/) | MIT/Apache-2.0 | https://github.com/eutro/racket-raylib | | raylib-swift | 4.0 | [Swift](https://swift.org/) | MIT | https://github.com/STREGAsGate/Raylib | From fc9634a4de732448abf04de3217be698a6560c51 Mon Sep 17 00:00:00 2001 From: Carmine Pietroluongo <72702101+Odex64@users.noreply.github.com> Date: Tue, 21 May 2024 13:07:31 +0200 Subject: [PATCH 350/790] Update BINDINGS.md (#3995) --- BINDINGS.md | 290 ++++++++++++++++++++++++++-------------------------- 1 file changed, 146 insertions(+), 144 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 3457f2b16..3996105d9 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -4,156 +4,158 @@ Some people ported raylib to other languages in form of bindings or wrappers to ### Language Bindings -| name | raylib version | language | license | repo | -|:------------------:|:---------------:|:---------:|:----------:|-----------------------------------------------------------| -| raylib | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib | -| raylib-beef | **5.0** | [Beef](https://www.beeflang.org/) | MIT | https://github.com/Starpelly/raylib-beef | -| raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo | -| Raylib-cs | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs | -| Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo | -| cl-raylib | 4.0 | [Common Lisp](https://common-lisp.net/) | MIT | https://github.com/longlene/cl-raylib | -| claylib/wrap | 4.5 | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | -| claw-raylib | **auto** | [Common Lisp](https://common-lisp.net/) | Apache-2.0 | https://github.com/bohonghuang/claw-raylib | -| chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib | -| raylib-cr | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr | -| ray-cyber | 5.0 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber | -| dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib | -| bindbc-raylib3 | **5.0** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 | -| dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray | -| raylib-d | **5.0** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d | -| rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex | -| raylib-factor | 4.5 | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor | -| raylib-freebasic | **5.0** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic | -| fortran-raylib | 4.5 | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib | -| raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go | -| raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile | -| gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | **???** | https://github.com/ArnautDaniel/gforth-raylib | -| h-raylib | **5.1-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib | -| raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx | -| hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib | -| jaylib | 5.0 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib | -| jaylib | 4.5 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | https://github.com/electronstudio/jaylib/ | -| raylib-j | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | https://github.com/CreedVI/Raylib-J | -| raylib.jl | 4.2 | [Julia](https://julialang.org/) | Zlib | https://github.com/irishgreencitrus/raylib.jl | -| kaylib | 3.7 | [Kotlin/native](https://kotlinlang.org) | ? | https://github.com/electronstudio/kaylib | -| KaylibKit | 4.5 | [Kotlin/native](https://kotlinlang.org) | Zlib | https://codeberg.org/Kenta/KaylibKit | -| raylib-lua | 4.5 | [Lua](http://www.lua.org/) | ISC | https://github.com/TSnake41/raylib-lua | -| raylua | 4.0 | [Lua](http://www.lua.org/) | MIT | https://github.com/Rabios/raylua | -| raylib-matte | 4.6-dev | [Matte](https://github.com/jcorks/matte/) | MIT | https://github.com/jcorks/raylib-matte | -| Raylib.nelua | **5.0** | [nelua](https://nelua.io/) | Zlib | https://github.com/AuzFox/Raylib.nelua | -| NimraylibNow! | 4.2 | [Nim](https://nim-lang.org/) | MIT | https://github.com/greenfork/nimraylib_now | -| raylib-bindings | 4.5 | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings | -| raylib-Forever | auto | [Nim](https://nim-lang.org/) | ? | https://github.com/Guevara-chan/Raylib-Forever | -| naylib | auto | [Nim](https://nim-lang.org/) | MIT | https://github.com/planetis-m/naylib | -| node-raylib | 4.5 | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib | -| raylib-odin | 5.0 | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib | -| raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings | -| raylib-ocaml | **5.0** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml | -| TurboRaylib | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib | -| Ray4Laz | **5.0** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz | -| Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal | -| pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib | -| raylib-python-cffi | 4.2 | [Python](https://www.python.org/) | EPL-2.0 | https://github.com/electronstudio/raylib-python-cffi | -| raylibpyctbg | 4.5 | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylibpyctbg | -| raylib-py | **5.0b1** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylib-py | -| raylib-python-ctypes | 4.6-dev | [Python](https://www.python.org/) | MIT | https://github.com/sDos280/raylib-python-ctypes | -| raylib-pkpy-bindings | 4.6-dev | [pocketpy](https://pocketpy.dev/) | MIT | https://github.com/blueloveTH/pkpy-bindings | -| raylib-php | 4.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/joseph-montanez/raylib-php | -| raylib-phpcpp | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/oraoto/raylib-phpcpp | -| raylibr | 4.0 | [R](https://www.r-project.org) | MIT | https://github.com/jeroenjanssens/raylibr | -| raylib-ffi | 4.5 | [Rust](https://www.rust-lang.org/) | GPLv3 | https://github.com/ewpratten/raylib-ffi | -| raylib-rs | 5.0 | [Rust](https://www.rust-lang.org/) | Zlib | https://github.com/raylib-rs/raylib-rs | -| Relib | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | ? | https://github.com/RedCubeDev-ByteSpace/Relib | -| racket-raylib | 4.0 | [Racket](https://racket-lang.org/) | MIT/Apache-2.0 | https://github.com/eutro/racket-raylib | -| raylib-swift | 4.0 | [Swift](https://swift.org/) | MIT | https://github.com/STREGAsGate/Raylib | -| raylib-scopes | auto | [Scopes](http://scopes.rocks) | MIT | https://github.com/salotz/raylib-scopes | -| raylib-SmallBASIC | 5.0 | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib | -| raylib-umka | 4.5 | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka | -| raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v | -| raylib-vapi | 5.0 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi | -| raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren | -| raylib-zig | 5.0 | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig | -| raylib.zig | 5.1-dev | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig | -| hare-raylib | **auto** | [Hare](https://harelang.org/) | Zlib | https://git.sr.ht/~evantj/hare-raylib | -| raylib-sunder | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | https://github.com/ashn-dot-dev/raylib-sunder | -| rayed-bqn | **auto** | [BQN](https://mlochbaum.github.io/BQN/) | MIT | https://github.com/Brian-ED/rayed-bqn | -| rayjs | 4.6-dev | [QuickJS](https://bellard.org/quickjs/) | MIT | https://github.com/mode777/rayjs | -| raylib-raku | **auto** | [Raku](https://www.raku.org/) | Artistic License 2.0 | https://github.com/vushu/raylib-raku | -| Raylib.lean | 4.5 | [Lean4](https://lean-lang.org/) | BSD-3-Clause | https://github.com/KislyjKisel/Raylib.lean | -| Raylib-CSharp-Vinculum | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/ZeroElectric/Raylib-CSharp-Vinculum | -| raylib-cobol | **auto** | [COBOL](https://gnucobol.sourceforge.io) | Public domain | https://codeberg.org/glowiak/raylib-cobol | -| Raylib-CSharp | 5.0 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | https://github.com/MrScautHD/Raylib-CSharp | +| Name | raylib Version | Language | License | +| ---------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------- | -------------------- | +| [raylib](https://github.com/raysan5/raylib) | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | +| [raylib-beef](https://github.com/Starpelly/raylib-beef) | **5.0** | [Beef](https://www.beeflang.org) | MIT | +| [raylib-boo](https://github.com/Rabios/raylib-boo) | 3.7 | [Boo](http://boo-language.github.io) | MIT | +| [Raylib-cs](https://github.com/ChrisDill/Raylib-cs) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | +| [Raylib-CsLo](https://github.com/NotNotTech/Raylib-CsLo) | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | +| [Raylib-CSharp-Vinculum](https://github.com/ZeroElectric/Raylib-CSharp-Vinculum) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | +| [Raylib-CSharp](https://github.com/MrScautHD/Raylib-CSharp) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | +| [Raylib.NET](https://github.com/Odex64/Raylib.NET) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | +| [cl-raylib](https://github.com/longlene/cl-raylib) | 4.0 | [Common Lisp](https://common-lisp.net) | MIT | +| [claylib/wrap](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib | +| [claw-raylib](https://github.com/bohonghuang/claw-raylib) | **auto** | [Common Lisp](https://common-lisp.net) | Apache-2.0 | +| [chez-raylib](https://github.com/Yunoinsky/chez-raylib) | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme) | GPLv3 | +| [raylib-cr](https://github.com/sol-vin/raylib-cr) | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org) | Apache-2.0 | +| [ray-cyber](https://github.com/fubark/ray-cyber) | **5.0** | [Cyber](https://cyberscript.dev) | MIT | +| [dart-raylib](https://gitlab.com/wolfenrain/dart-raylib) | 4.0 | [Dart](https://dart.dev) | MIT | +| [bindbc-raylib3](https://github.com/o3o/bindbc-raylib3) | **5.0** | [D](https://dlang.org) | BSL-1.0 | +| [dray](https://github.com/redthing1/dray) | 4.2 | [D](https://dlang.org) | Apache-2.0 | +| [raylib-d](https://github.com/schveiguy/raylib-d) | **5.0** | [D](https://dlang.org) | Zlib | +| [rayex](https://github.com/shiryel/rayex) | 3.7 | [elixir](https://elixir-lang.org) | Apache-2.0 | +| [raylib-factor](https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor) | 4.5 | [Factor](https://factorcode.org) | BSD | +| [raylib-freebasic](https://github.com/WIITD/raylib-freebasic) | **5.0** | [FreeBASIC](https://www.freebasic.net) | MIT | +| [fortran-raylib](https://github.com/interkosmos/fortran-raylib) | 4.5 | [Fortran](https://fortran-lang.org) | ISC | +| [raylib-go](https://github.com/gen2brain/raylib-go) | **5.0** | [Go](https://golang.org) | Zlib | +| [raylib-guile](https://github.com/petelliott/raylib-guile) | **auto** | [Guile](https://www.gnu.org/software/guile) | Zlib | +| [gforth-raylib](https://github.com/ArnautDaniel/gforth-raylib) | 3.5 | [Gforth](https://gforth.org) | **???** | +| [h-raylib](https://github.com/Anut-py/h-raylib) | **5.1-dev** | [Haskell](https://haskell.org) | Apache-2.0 | +| [raylib-hx](https://github.com/foreignsasquatch/raylib-hx) | 4.2 | [Haxe](https://haxe.org) | Zlib | +| [hb-raylib](https://github.com/MarcosLeonardoMendezGerencir/hb-raylib) | 3.5 | [Harbour](https://harbour.github.io) | MIT | +| [jaylib](https://github.com/janet-lang/jaylib) | **5.0** | [Janet](https://janet-lang.org) | MIT | +| [jaylib](https://github.com/electronstudio/jaylib/) | 4.5 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | +| [raylib-j](https://github.com/CreedVI/Raylib-J) | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | +| [raylib.jl](https://github.com/irishgreencitrus/raylib.jl) | 4.2 | [Julia](https://julialang.org) | Zlib | +| [kaylib](https://github.com/electronstudio/kaylib) | 3.7 | [Kotlin/native](https://kotlinlang.org) | **???** | +| [KaylibKit](https://codeberg.org/Kenta/KaylibKit) | 4.5 | [Kotlin/native](https://kotlinlang.org) | Zlib | +| [raylib-lua](https://github.com/TSnake41/raylib-lua) | 4.5 | [Lua](http://www.lua.org) | ISC | +| [raylua](https://github.com/Rabios/raylua) | 4.0 | [Lua](http://www.lua.org) | MIT | +| [raylib-matte](https://github.com/jcorks/raylib-matte) | 4.6-dev | [Matte](https://github.com/jcorks/matte) | MIT | +| [Raylib.nelua](https://github.com/AuzFox/Raylib.nelua) | **5.0** | [nelua](https://nelua.io) | Zlib | +| [raylib-bindings](https://github.com/vaiorabbit/raylib-bindings) | 4.5 | [Ruby](https://www.ruby-lang.org/en) | Zlib | +| [NimraylibNow!](https://github.com/greenfork/nimraylib_now) | 4.2 | [Nim](https://nim-lang.org) | MIT | +| [raylib-Forever](https://github.com/Guevara-chan/Raylib-Forever) | auto | [Nim](https://nim-lang.org) | **???** | +| [naylib](https://github.com/planetis-m/naylib) | auto | [Nim](https://nim-lang.org) | MIT | +| [node-raylib](https://github.com/RobLoach/node-raylib) | 4.5 | [Node.js](https://nodejs.org/en) | Zlib | +| [raylib-odin](https://github.com/odin-lang/Odin/tree/master/vendor/raylib) | **5.0** | [Odin](https://odin-lang.org) | BSD-3Clause | +| [raylib_odin_bindings](https://github.com/Deathbat2190/raylib_odin_bindings) | 4.0-dev | [Odin](https://odin-lang.org) | MIT | +| [raylib-ocaml](https://github.com/tjammer/raylib-ocaml) | **5.0** | [OCaml](https://ocaml.org) | MIT | +| [TurboRaylib](https://github.com/turborium/TurboRaylib) | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | +| [Ray4Laz](https://github.com/GuvaCode/Ray4Laz) | **5.0** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal) | Zlib | +| [Raylib.4.0.Pascal](https://github.com/sysrpl/Raylib.4.0.Pascal) | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal) | Zlib | +| [pyraylib](https://github.com/Ho011/pyraylib) | 3.7 | [Python](https://www.python.org) | Zlib | +| [raylib-python-cffi](https://github.com/electronstudio/raylib-python-cffi) | 4.2 | [Python](https://www.python.org) | EPL-2.0 | +| [raylibpyctbg](https://github.com/overdev/raylibpyctbg) | 4.5 | [Python](https://www.python.org) | MIT | +| [raylib-py](https://github.com/overdev/raylib-py) | **5.0b1** | [Python](https://www.python.org) | MIT | +| [raylib-python-ctypes](https://github.com/sDos280/raylib-python-ctypes) | 4.6-dev | [Python](https://www.python.org) | MIT | +| [raylib-pkpy-bindings](https://github.com/blueloveTH/pkpy-bindings) | 4.6-dev | [pocketpy](https://pocketpy.dev) | MIT | +| [raylib-php](https://github.com/joseph-montanez/raylib-php) | 4.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | +| [raylib-phpcpp](https://github.com/oraoto/raylib-phpcpp) | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | +| [raylibr](https://github.com/jeroenjanssens/raylibr) | 4.0 | [R](https://www.r-project.org) | MIT | +| [raylib-ffi](https://github.com/ewpratten/raylib-ffi) | 4.5 | [Rust](https://www.rust-lang.org) | GPLv3 | +| [raylib-rs](https://github.com/raylib-rs/raylib-rs) | **5.0** | [Rust](https://www.rust-lang.org) | Zlib | +| [Relib](https://github.com/RedCubeDev-ByteSpace/Relib) | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | **???** | +| [racket-raylib](https://github.com/eutro/racket-raylib) | 4.0 | [Racket](https://racket-lang.org) | MIT/Apache-2.0 | +| [raylib-swift](https://github.com/STREGAsGate/Raylib) | 4.0 | [Swift](https://swift.org) | MIT | +| [raylib-scopes](https://github.com/salotz/raylib-scopes) | auto | [Scopes](http://scopes.rocks) | MIT | +| [raylib-SmallBASIC](https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib) | **5.0** | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | +| [raylib-umka](https://github.com/robloach/raylib-umka) | 4.5 | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | +| [raylib.v](https://github.com/irishgreencitrus/raylib.v) | 4.2 | [V](https://vlang.io) | Zlib | +| [raylib-vapi](https://github.com/lxmcf/raylib-vapi) | **5.0** | [Vala](https://vala.dev) | Zlib | +| [raylib-wren](https://github.com/TSnake41/raylib-wren) | 4.0 | [Wren](http://wren.io) | ISC | +| [raylib-zig](https://github.com/Not-Nik/raylib-zig) | **5.0** | [Zig](https://ziglang.org) | MIT | +| [raylib.zig](https://github.com/ryupold/raylib.zig) | **5.1-dev** | [Zig](https://ziglang.org) | MIT | +| [hare-raylib](https://git.sr.ht/~evantj/hare-raylib) | **auto** | [Hare](https://harelang.org) | Zlib | +| [raylib-sunder](https://github.com/ashn-dot-dev/raylib-sunder) | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | +| [rayed-bqn](https://github.com/Brian-ED/rayed-bqn) | **auto** | [BQN](https://mlochbaum.github.io/BQN) | MIT | +| [rayjs](https://github.com/mode777/rayjs) | 4.6-dev | [QuickJS](https://bellard.org/quickjs) | MIT | +| [raylib-raku](https://github.com/vushu/raylib-raku) | **auto** | [Raku](https://www.raku.org) | Artistic License 2.0 | +| [Raylib.lean](https://github.com/KislyjKisel/Raylib.lean) | 4.5 | [Lean4](https://lean-lang.org) | BSD-3-Clause | +| [raylib-cobol](https://codeberg.org/glowiak/raylib-cobol) | **auto** | [COBOL](https://gnucobol.sourceforge.io) | Public domain | ### Utility Wrapers + These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. -| name | raylib version | language | license | repo | -|:------------------:|:-------------: | :--------:|:-------:|:-------------------------------------------------------------| -| raylib-cpp | **5.0** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | https://github.com/robloach/raylib-cpp | -| claylib | **4.5** | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib | +| Name | raylib Version | Language | License | +| ---------------------------------------------------- | -------------- | -------------------------------------------- | ------- | +| [raylib-cpp](https://github.com/robloach/raylib-cpp) | **5.0** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | +| [claylib](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib | ### Older or Unmaintained Language Bindings -These are older raylib bindings that are more than 2 versions old or have not been maintained. -| name | raylib version | language | repo | -|:------------------:|:-------------: | :--------:|----------------------------------------------------------------------| -| raylib-cppsharp | 2.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | https://github.com/phxvyper/raylib-cppsharp | -| RaylibFS | 2.5 | [F#](https://fsharp.org/) | https://github.com/dallinbeutler/RaylibFS | -| raylib_d | 2.5 | [D](https://dlang.org/) | https://github.com/Sepheus/raylib_d | -| bindbc-raylib | 3.0 | [D](https://dlang.org/) | https://github.com/o3o/bindbc-raylib | -| go-raylib | 3.5 | [Go](https://golang.org/) | https://github.com/chunqian/go-raylib | -| raylib-goplus | 2.6-dev | [Go](https://golang.org/) | https://github.com/Lachee/raylib-goplus | -| ray-go | 2.6-dev | [Go](https://golang.org/) | https://github.com/hecate-tech/ray-go | -| raylib-luamore | 3.0 | [Lua](http://www.lua.org/) | https://github.com/HDPLocust/raylib-luamore | -| LuaJIT-Raylib | 2.6 | [Lua](http://www.lua.org/) | https://github.com/Bambofy/LuaJIT-Raylib | -| raylib-lua-sol | 2.5 | [Lua](http://www.lua.org/) | https://github.com/RobLoach/raylib-lua-sol | -| raylib-lua-ffi | 2.0 | [Lua](http://www.lua.org/) | https://github.com/raysan5/raylib/issues/693 | -| raylib-lua | 1.7 | [Lua](http://www.lua.org/) | https://github.com/raysan5/raylib-lua | -| raylib-nelua | 3.0 | [Nelua](https://nelua.io/) | https://github.com/Andre-LA/raylib-nelua | -| raylib-nim | 2.0 | [Nim](https://nim-lang.org/) | https://github.com/Skrylar/raylib-nim | -| raylib-Nim | 1.7 | [Nim](https://nim-lang.org/) | https://gitlab.com/define-private-public/raylib-Nim | -| nim-raylib | 3.1-dev | [Nim](https://nim-lang.org/) | https://github.com/tomc1998/nim-raylib | -| raylib-haskell | 2.0 | [Haskell](https://www.haskell.org/) | https://github.com/DevJac/raylib-haskell | -| raylib-cr | 2.5-dev | [Crystal](https://crystal-lang.org/) | https://github.com/AregevDev/raylib-cr | -| raylib.cr | 2.0 | [Crystal](https://crystal-lang.org/) | https://github.com/sam0x17/raylib.cr | -| cray | 1.8 | [Crystal](https://crystal-lang.org/) | https://gitlab.com/Zatherz/cray | -| raylib-pas | 3.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) | https://github.com/tazdij/raylib-pas | -| raylib-pascal | 2.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) | https://github.com/drezgames/raylib-pascal | -| Graphics-Raylib | 1.4 | [Perl](https://www.perl.org/) | https://github.com/athreef/Graphics-Raylib | -| raylib-ruby | 2.6 | [Ruby](https://www.ruby-lang.org/en/) | https://github.com/a0/raylib-ruby | -| raylib-ruby-ffi | 2.0 | [Ruby](https://www.ruby-lang.org/en/) | https://github.com/D3nX/raylib-ruby-ffi | -| raylib-mruby | 2.5-dev | [mruby](https://github.com/mruby/mruby) | https://github.com/lihaochen910/raylib-mruby | -| raylib-java | 2.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | https://github.com/XoanaIO/raylib-java | -| clj-raylib | 3.0 | [Clojure](https://clojure.org/) | https://github.com/lsevero/clj-raylib | -| QuickJS-raylib | 3.0 | [QuickJS](https://bellard.org/quickjs/) | https://github.com/sntg-p/QuickJS-raylib | -| raylib-duktape | 2.6 | [JavaScript (Duktape)](https://en.wikipedia.org/wiki/JavaScript) | https://github.com/RobLoach/raylib-duktape | -| raylib-v7 | 3.5 | [JavaScript (v7)](https://en.wikipedia.org/wiki/JavaScript) | https://github.com/Rabios/raylib-v7 | -| raylib-chaiscript | 2.6 | [ChaiScript](http://chaiscript.com/) | https://github.com/RobLoach/raylib-chaiscript | -| raylib-squirrel | 2.5 | [Squirrel](http://www.squirrel-lang.org/) | https://github.com/RobLoach/raylib-squirrel | -| racket-raylib-2d | 2.5 | [Racket](https://racket-lang.org/) | https://github.com/arvyy/racket-raylib-2d | -| raylib-php-ffi | 2.4-dev | [PHP](https://en.wikipedia.org/wiki/PHP) | https://github.com/oraoto/raylib-php-ffi | -| raylib-haxe | 2.4 | [Haxe](https://haxe.org/) | https://github.com/ibilon/raylib-haxe | -| ringraylib | 2.6 | [Ring](http://ring-lang.sourceforge.net/) | https://github.com/ringpackages/ringraylib | -| raylib-scm | 2.5 | [Chicken Scheme](https://www.call-cc.org/) | https://github.com/yashrk/raylib-scm | -| raylib-chibi | 2.5 | [Chibi-Scheme](https://github.com/ashinn/chibi-scheme) | https://github.com/VincentToups/raylib-chibi | -| raylib-gambit-scheme | 3.1-dev | [Gambit Scheme](https://github.com/gambit/gambit) | https://github.com/georgjz/raylib-gambit-scheme | -| Euraylib | 3.0 | [Euphoria](https://openeuphoria.org/) | https://github.com/gAndy50/Euraylib | -| raylib-odin | 3.0 | [Odin](https://odin-lang.org/) | https://github.com/kevinw/raylib-odin | -| vraylib | 3.5 | [V](https://vlang.io/) | https://github.com/waotzi/vraylib | -| raylib-vala | 3.0 | [Vala](https://wiki.gnome.org/Projects/Vala) | https://code.guddler.uk/mart/raylibVapi | -| raylib-jai | 3.1-dev | [Jai](https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md) | https://github.com/kujukuju/raylib-jai | -| ray.zig | 2.5 | [Zig](https://ziglang.org/) | https://github.com/BitPuffin/zig-raylib-experiments | -| raylib-Ada | 3.0 | [Ada](https://www.adacore.com/about-ada) | https://github.com/mimo/raylib-Ada | -| raykit | ? | [Kit](https://www.kitlang.org/) | https://github.com/Gamerfiend/raykit | -| ray.mod | 3.0 | [BlitzMax](https://blitzmax.org/) | https://github.com/bmx-ng/ray.mod | -| raylib-mosaic | 3.0 | [Mosaic](https://github.com/sal55/langs/tree/master/Mosaic) | https://github.com/pluckyporcupine/raylib-mosaic | -| raylib-xdpw | 2.6 | [XD Pascal](https://github.com/vtereshkov/xdpw) | https://github.com/vtereshkov/raylib-xdpw | -| raylib-carp | 3.0 | [Carp](https://github.com/carp-lang/Carp) | https://github.com/pluckyporcupine/raylib-carp | -| raylib-fb | 3.0 | [FreeBasic](https://www.freebasic.net/) | https://github.com/IchMagBier/raylib-fb | -| raylib-purebasic | 3.0 | [PureBasic](https://www.purebasic.com/) | https://github.com/D-a-n-i-l-o/raylib-purebasic | -| raylib-ats2 | 3.0 | [ATS2](http://www.ats-lang.org/) | https://github.com/mephistopheles-8/raylib-ats2 | -| raylib-beef | 3.0 | [Beef](https://www.beeflang.org/) | https://github.com/M0n7y5/raylib-beef | -| raylib-never | 3.0 | [Never](https://github.com/never-lang/never) | https://github.com/never-lang/raylib-never | -| raylib.cbl | 2.0 | [COBOL](https://en.wikipedia.org/wiki/COBOL) | *[code examples](https://github.com/Martinfx/Cobol/tree/master/OpenCobol/Games/raylib)* | +These are older raylib bindings that are more than 2 versions old or have not been maintained. +| Name | raylib Version | Language | +| ---------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------- | +| [raylib-cppsharp](https://github.com/phxvyper/raylib-cppsharp) | 2.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | +| [RaylibFS](https://github.com/dallinbeutler/RaylibFS) | 2.5 | [F#](https://fsharp.org) | +| [raylib\*d](https://github.com/Sepheus/raylib_d) | 2.5 | [D](https://dlang.org) | +| [bindbc-raylib](https://github.com/o3o/bindbc-raylib) | 3.0 | [D](https://dlang.org) | +| [go-raylib](https://github.com/chunqian/go-raylib) | 3.5 | [Go](https://golang.org) | +| [raylib-goplus](https://github.com/Lachee/raylib-goplus) | 2.6-dev | [Go](https://golang.org) | +| [ray-go](https://github.com/hecate-tech/ray-go) | 2.6-dev | [Go](https://golang.org) | +| [raylib-luamore](https://github.com/HDPLocust/raylib-luamore) | 3.0 | [Lua](http://www.lua.org) | +| [LuaJIT-Raylib](https://github.com/Bambofy/LuaJIT-Raylib) | 2.6 | [Lua](http://www.lua.org) | +| [raylib-lua-sol](https://github.com/RobLoach/raylib-lua-sol) | 2.5 | [Lua](http://www.lua.org) | +| [raylib-lua-ffi](https://github.com/raysan5/raylib/issues/693) | 2.0 | [Lua](http://www.lua.org) | +| [raylib-lua](https://github.com/raysan5/raylib-lua) | 1.7 | [Lua](http://www.lua.org) | +| [raylib-nelua](https://github.com/Andre-LA/raylib-nelua) | 3.0 | [Nelua](https://nelua.io) | +| [raylib-nim](https://github.com/Skrylar/raylib-nim) | 2.0 | [Nim](https://nim-lang.org) | +| [raylib-Nim](https://gitlab.com/define-private-public/raylib-Nim) | 1.7 | [Nim](https://nim-lang.org) | +| [nim-raylib](https://github.com/tomc1998/nim-raylib) | 3.1-dev | [Nim](https://nim-lang.org) | +| [raylib-haskell](https://github.com/DevJac/raylib-haskell) | 2.0 | [Haskell](https://www.haskell.org) | +| [raylib-cr](https://github.com/AregevDev/raylib-cr) | 2.5-dev | [Crystal](https://crystal-lang.org) | +| [raylib.cr](https://github.com/sam0x17/raylib.cr) | 2.0 | [Crystal](https://crystal-lang.org) | +| [cray](https://gitlab.com/Zatherz/cray) | 1.8 | [Crystal](https://crystal-lang.org) | +| [raylib-pas](https://github.com/tazdij/raylib-pas) | 3.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal*(programming*language)) | +| [raylib-pascal](https://github.com/drezgames/raylib-pascal) | 2.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal*(programming*language)) | +| [Graphics-Raylib](https://github.com/athreef/Graphics-Raylib) | 1.4 | [Perl](https://www.perl.org) | +| [raylib-ruby](https://github.com/a0/raylib-ruby) | 2.6 | [Ruby](https://www.ruby-lang.org/en) | +| [raylib-ruby-ffi](https://github.com/D3nX/raylib-ruby-ffi) | 2.0 | [Ruby](https://www.ruby-lang.org/en) | +| [raylib-mruby](https://github.com/lihaochen910/raylib-mruby) | 2.5-dev | [mruby](https://github.com/mruby/mruby) | +| [raylib-java](https://github.com/XoanaIO/raylib-java) | 2.0 | [Java](https://en.wikipedia.org/wiki/Java*(programming_language)) | +| [clj-raylib](https://github.com/lsevero/clj-raylib) | 3.0 | [Clojure](https://clojure.org) | +| [QuickJS-raylib](https://github.com/sntg-p/QuickJS-raylib) | 3.0 | [QuickJS](https://bellard.org/quickjs) | +| [raylib-duktape](https://github.com/RobLoach/raylib-duktape) | 2.6 | [JavaScript (Duktape)](https://en.wikipedia.org/wiki/JavaScript) | +| [raylib-v7](https://github.com/Rabios/raylib-v7) | 3.5 | [JavaScript (v7)](https://en.wikipedia.org/wiki/JavaScript) | +| [raylib-chaiscript](https://github.com/RobLoach/raylib-chaiscript) | 2.6 | [ChaiScript](http://chaiscript.com) | +| [raylib-squirrel](https://github.com/RobLoach/raylib-squirrel) | 2.5 | [Squirrel](http://www.squirrel-lang.org) | +| [racket-raylib-2d](https://github.com/arvyy/racket-raylib-2d) | 2.5 | [Racket](https://racket-lang.org) | +| [raylib-php-ffi](https://github.com/oraoto/raylib-php-ffi) | 2.4-dev | [PHP](https://en.wikipedia.org/wiki/PHP) | +| [raylib-haxe](https://github.com/ibilon/raylib-haxe) | 2.4 | [Haxe](https://haxe.org) | +| [ringraylib](https://github.com/ringpackages/ringraylib) | 2.6 | [Ring](http://ring-lang.sourceforge.net) | +| [raylib-scm](https://github.com/yashrk/raylib-scm) | 2.5 | [Chicken Scheme](https://www.call-cc.org) | +| [raylib-chibi](https://github.com/VincentToups/raylib-chibi) | 2.5 | [Chibi-Scheme](https://github.com/ashinn/chibi-scheme) | +| [raylib-gambit-scheme](https://github.com/georgjz/raylib-gambit-scheme) | 3.1-dev | [Gambit Scheme](https://github.com/gambit/gambit) | +| [Euraylib](https://github.com/gAndy50/Euraylib) | 3.0 | [Euphoria](https://openeuphoria.org) | +| [raylib-odin](https://github.com/kevinw/raylib-odin) | 3.0 | [Odin](https://odin-lang.org) | +| [vraylib](https://github.com/waotzi/vraylib) | 3.5 | [V](https://vlang.io) | +| [raylib-vala](https://code.guddler.uk/mart/raylibVapi) | 3.0 | [Vala](https://wiki.gnome.org/Projects/Vala) | +| [raylib-jai](https://github.com/kujukuju/raylib-jai) | 3.1-dev | [Jai](https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md) | +| [ray.zig](https://github.com/BitPuffin/zig-raylib-experiments) | 2.5 | [Zig](https://ziglang.org) | +| [raylib-Ada](https://github.com/mimo/raylib-Ada) | 3.0 | [Ada](https://www.adacore.com/about-ada) | +| [raykit](https://github.com/Gamerfiend/raykit) | **???** | [Kit](https://www.kitlang.org) | +| [ray.mod](https://github.com/bmx-ng/ray.mod) | 3.0 | [BlitzMax](https://blitzmax.org) | +| [raylib-mosaic](https://github.com/pluckyporcupine/raylib-mosaic) | 3.0 | [Mosaic](https://github.com/sal55/langs/tree/master/Mosaic) | +| [raylib-xdpw](https://github.com/vtereshkov/raylib-xdpw) | 2.6 | [XD Pascal](https://github.com/vtereshkov/xdpw) | +| [raylib-carp](https://github.com/pluckyporcupine/raylib-carp) | 3.0 | [Carp](https://github.com/carp-lang/Carp) | +| [raylib-fb](https://github.com/IchMagBier/raylib-fb) | 3.0 | [FreeBasic](https://www.freebasic.net) | +| [raylib-purebasic](https://github.com/D-a-n-i-l-o/raylib-purebasic) | 3.0 | [PureBasic](https://www.purebasic.com) | +| [raylib-ats2](https://github.com/mephistopheles-8/raylib-ats2) | 3.0 | [ATS2](http://www.ats-lang.org) | +| [raylib-beef](https://github.com/M0n7y5/raylib-beef) | 3.0 | [Beef](https://www.beeflang.org) | +| [raylib-never](https://github.com/never-lang/raylib-never) | 3.0 | [Never](https://github.com/never-lang/never) | +| [raylib.cbl](https://github.com/Martinfx/Cobol/tree/master/OpenCobol/Games/raylib) | 2.0 | [COBOL](https://en.wikipedia.org/wiki/COBOL) | Missing some language or wrapper? Feel free to create a new one! :) From b2f4f4d8fd3f780ec6f711ede668d8de17abb792 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 May 2024 13:10:38 +0200 Subject: [PATCH 351/790] Update BINDINGS.md --- BINDINGS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 3996105d9..04102f707 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -5,7 +5,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to ### Language Bindings | Name | raylib Version | Language | License | -| ---------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------- | -------------------- | +| :--------------------------------------------------------------------------------------- | :--------------: | :------------------------------------------------------------------: | :------------------: | | [raylib](https://github.com/raysan5/raylib) | **5.0** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | | [raylib-beef](https://github.com/Starpelly/raylib-beef) | **5.0** | [Beef](https://www.beeflang.org) | MIT | | [raylib-boo](https://github.com/Rabios/raylib-boo) | 3.7 | [Boo](http://boo-language.github.io) | MIT | @@ -89,7 +89,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm. | Name | raylib Version | Language | License | -| ---------------------------------------------------- | -------------- | -------------------------------------------- | ------- | +| ---------------------------------------------------- | :------------: | :------------------------------------------: | :-----: | | [raylib-cpp](https://github.com/robloach/raylib-cpp) | **5.0** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | | [claylib](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib | @@ -97,7 +97,7 @@ These are utility wrappers for specific languages, they are not required to use These are older raylib bindings that are more than 2 versions old or have not been maintained. | Name | raylib Version | Language | -| ---------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------- | +| ---------------------------------------------------------------------------------- | :------------: | :---------------------------------------------------------------------: | | [raylib-cppsharp](https://github.com/phxvyper/raylib-cppsharp) | 2.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | | [RaylibFS](https://github.com/dallinbeutler/RaylibFS) | 2.5 | [F#](https://fsharp.org) | | [raylib\*d](https://github.com/Sepheus/raylib_d) | 2.5 | [D](https://dlang.org) | From c4a51a3ebdaa3a5bd1414d0b293e1a5100f578f6 Mon Sep 17 00:00:00 2001 From: Salvador Galindo Date: Tue, 21 May 2024 04:47:26 -0700 Subject: [PATCH 352/790] fixed out of bounds error in GenMeshTangents (#3990) --- src/rmodels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 27c19a3c7..2ef030186 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -3431,7 +3431,7 @@ void GenMeshTangents(Mesh *mesh) Vector3 *tan1 = (Vector3 *)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); Vector3 *tan2 = (Vector3 *)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); - for (int i = 0; i < mesh->vertexCount; i += 3) + for (int i = 0; i < mesh->vertexCount - 3; i += 3) { // Get triangle vertices Vector3 v1 = { mesh->vertices[(i + 0)*3 + 0], mesh->vertices[(i + 0)*3 + 1], mesh->vertices[(i + 0)*3 + 2] }; From 9ef29aff9aa08e64ac2d25048829de7459ee7d25 Mon Sep 17 00:00:00 2001 From: OetkenPurveyorOfCode Date: Tue, 21 May 2024 15:44:02 +0200 Subject: [PATCH 353/790] [rtextures] Fix Undefined behaviour in ColorToInt (#3996) --- src/rtextures.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 47ff83f5c..ca4c60d16 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -4510,9 +4510,7 @@ Color Fade(Color color, float alpha) // Get hexadecimal value for a Color int ColorToInt(Color color) { - int result = (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); - - return result; + return (int)(((unsigned)color.r << 24) | ((unsigned)color.g << 16) | ((unsigned)color.b << 8) | color.a); } // Get color normalized as float [0..1] From c7f098f4d26753367c33743557c0db016eac25eb Mon Sep 17 00:00:00 2001 From: JupiterRider <60042618+JupiterRider@users.noreply.github.com> Date: Tue, 21 May 2024 20:48:48 +0200 Subject: [PATCH 354/790] Call SDL_GL_SetSwapInterval() after GL context creation (#3997) --- src/platforms/rcore_desktop_sdl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 9dfdd53ab..78fb39f76 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1499,11 +1499,6 @@ int InitPlatform(void) SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); } - if (CORE.Window.flags & FLAG_VSYNC_HINT) - { - SDL_GL_SetSwapInterval(1); - } - if (CORE.Window.flags & FLAG_MSAA_4X_HINT) { SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); @@ -1537,6 +1532,15 @@ int InitPlatform(void) TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height); TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); + + if (CORE.Window.flags & FLAG_VSYNC_HINT) + { + SDL_GL_SetSwapInterval(1); + } + else + { + SDL_GL_SetSwapInterval(0); + } } else { From 3abb6d9eaf9565cc3ae47687d85bfd392c982fb4 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 May 2024 20:52:48 +0200 Subject: [PATCH 355/790] REVIEWED: `ColorToInt()` PR --- src/rtextures.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/rtextures.c b/src/rtextures.c index ca4c60d16..571387f23 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -4510,7 +4510,14 @@ Color Fade(Color color, float alpha) // Get hexadecimal value for a Color int ColorToInt(Color color) { - return (int)(((unsigned)color.r << 24) | ((unsigned)color.g << 16) | ((unsigned)color.b << 8) | color.a); + int result = 0; + + result = (int)(((unsigned int)color.r << 24) | + ((unsigned int)color.g << 16) | + ((unsigned int)color.b << 8) | + (unsigned int)color.a); + + return result; } // Get color normalized as float [0..1] From b212750b8589a5677972d41c3f0449ef1c8cc34f Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 21 May 2024 20:53:51 +0200 Subject: [PATCH 356/790] Update rcore_desktop_sdl.c --- src/platforms/rcore_desktop_sdl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 78fb39f76..c22150efb 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1533,14 +1533,8 @@ int InitPlatform(void) TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); - if (CORE.Window.flags & FLAG_VSYNC_HINT) - { - SDL_GL_SetSwapInterval(1); - } - else - { - SDL_GL_SetSwapInterval(0); - } + if (CORE.Window.flags & FLAG_VSYNC_HINT) SDL_GL_SetSwapInterval(1); + else SDL_GL_SetSwapInterval(0); } else { From d9c5066382615644137b4f65479c65c44820027a Mon Sep 17 00:00:00 2001 From: Antonis Geralis <43617260+planetis-m@users.noreply.github.com> Date: Tue, 21 May 2024 22:51:19 +0300 Subject: [PATCH 357/790] nim bindings are in 5.1-dev, remove umaintained repos (#3999) * nim bindings are in 5.1-dev, remove umaintained repos * Update BINDINGS.md * move to umaintained * Update BINDINGS.md * github editor is pranking me --- BINDINGS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 04102f707..e5cae30d6 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -45,9 +45,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | [raylib-matte](https://github.com/jcorks/raylib-matte) | 4.6-dev | [Matte](https://github.com/jcorks/matte) | MIT | | [Raylib.nelua](https://github.com/AuzFox/Raylib.nelua) | **5.0** | [nelua](https://nelua.io) | Zlib | | [raylib-bindings](https://github.com/vaiorabbit/raylib-bindings) | 4.5 | [Ruby](https://www.ruby-lang.org/en) | Zlib | -| [NimraylibNow!](https://github.com/greenfork/nimraylib_now) | 4.2 | [Nim](https://nim-lang.org) | MIT | -| [raylib-Forever](https://github.com/Guevara-chan/Raylib-Forever) | auto | [Nim](https://nim-lang.org) | **???** | -| [naylib](https://github.com/planetis-m/naylib) | auto | [Nim](https://nim-lang.org) | MIT | +| [naylib](https://github.com/planetis-m/naylib) | **5.1-dev** | [Nim](https://nim-lang.org) | MIT | | [node-raylib](https://github.com/RobLoach/node-raylib) | 4.5 | [Node.js](https://nodejs.org/en) | Zlib | | [raylib-odin](https://github.com/odin-lang/Odin/tree/master/vendor/raylib) | **5.0** | [Odin](https://odin-lang.org) | BSD-3Clause | | [raylib_odin_bindings](https://github.com/Deathbat2190/raylib_odin_bindings) | 4.0-dev | [Odin](https://odin-lang.org) | MIT | @@ -114,6 +112,8 @@ These are older raylib bindings that are more than 2 versions old or have not be | [raylib-nim](https://github.com/Skrylar/raylib-nim) | 2.0 | [Nim](https://nim-lang.org) | | [raylib-Nim](https://gitlab.com/define-private-public/raylib-Nim) | 1.7 | [Nim](https://nim-lang.org) | | [nim-raylib](https://github.com/tomc1998/nim-raylib) | 3.1-dev | [Nim](https://nim-lang.org) | +| [raylib-Forever](https://github.com/Guevara-chan/Raylib-Forever) | auto | [Nim](https://nim-lang.org) | +| [NimraylibNow!](https://github.com/greenfork/nimraylib_now) | 4.2 | [Nim](https://nim-lang.org) | | [raylib-haskell](https://github.com/DevJac/raylib-haskell) | 2.0 | [Haskell](https://www.haskell.org) | | [raylib-cr](https://github.com/AregevDev/raylib-cr) | 2.5-dev | [Crystal](https://crystal-lang.org) | | [raylib.cr](https://github.com/sam0x17/raylib.cr) | 2.0 | [Crystal](https://crystal-lang.org) | From b429dbdc4b41d57ff00456c73646bb1f6f14d8b5 Mon Sep 17 00:00:00 2001 From: listeria <56203103+ListeriaM@users.noreply.github.com> Date: Fri, 24 May 2024 13:24:40 -0300 Subject: [PATCH 358/790] fix WaveCrop(): update wave->frameCount (#4003) also allow `finalFrame = wave->frameCount' as the range of frames does not include it. Co-authored-by: Listeria monocytogenes --- src/raudio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/raudio.c b/src/raudio.c index e74f8590e..c6bd00165 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1278,7 +1278,7 @@ Wave WaveCopy(Wave wave) // NOTE: Security check in case of out-of-range void WaveCrop(Wave *wave, int initFrame, int finalFrame) { - if ((initFrame >= 0) && (initFrame < finalFrame) && ((unsigned int)finalFrame < wave->frameCount)) + if ((initFrame >= 0) && (initFrame < finalFrame) && ((unsigned int)finalFrame <= wave->frameCount)) { int frameCount = finalFrame - initFrame; @@ -1288,6 +1288,7 @@ void WaveCrop(Wave *wave, int initFrame, int finalFrame) RL_FREE(wave->data); wave->data = data; + wave->frameCount = (unsigned int)frameCount; } else TRACELOG(LOG_WARNING, "WAVE: Crop range out of bounds"); } From 785ec74b92da4f91181ff7b1c89c8ae5ee19f1b6 Mon Sep 17 00:00:00 2001 From: Lionel Briand Date: Fri, 24 May 2024 18:26:17 +0200 Subject: [PATCH 359/790] Update BINDINGS.md (#4004) Add L-Briand/raylib-zig-bindings to the Language Bindings table --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index e5cae30d6..118794d52 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -75,6 +75,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to | [raylib-wren](https://github.com/TSnake41/raylib-wren) | 4.0 | [Wren](http://wren.io) | ISC | | [raylib-zig](https://github.com/Not-Nik/raylib-zig) | **5.0** | [Zig](https://ziglang.org) | MIT | | [raylib.zig](https://github.com/ryupold/raylib.zig) | **5.1-dev** | [Zig](https://ziglang.org) | MIT | +| [raylib-zig-bindings](https://github.com/L-Briand/raylib-zig-bindings) | **5.0** | [Zig](https://ziglang.org) | Zlib | | [hare-raylib](https://git.sr.ht/~evantj/hare-raylib) | **auto** | [Hare](https://harelang.org) | Zlib | | [raylib-sunder](https://github.com/ashn-dot-dev/raylib-sunder) | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | | [rayed-bqn](https://github.com/Brian-ED/rayed-bqn) | **auto** | [BQN](https://mlochbaum.github.io/BQN) | MIT | From 9cc7e3528f37dd17c85334c16dffb9392b8a6ad2 Mon Sep 17 00:00:00 2001 From: avx0 Date: Wed, 29 May 2024 15:00:28 +0530 Subject: [PATCH 360/790] [parser] MemoryCopy() calls: Prevent buffer overflow by replacing hard-coded arguments (#4011) In future, if a dev edits the second arg and miscalulates the corresponding 3rd arg, there will be a buffer overflow or the string (2nd arg) will be cut short. This commit prevents that. --- parser/raylib_parser.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index 3e36f41f1..63f957284 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -202,9 +202,12 @@ int main(int argc, char* argv[]) { if (argc > 1) ProcessCommandLine(argc, argv); - if (inFileName[0] == '\0') MemoryCopy(inFileName, "../src/raylib.h\0", 16); - if (outFileName[0] == '\0') MemoryCopy(outFileName, "raylib_api.txt\0", 15); - if (apiDefine[0] == '\0') MemoryCopy(apiDefine, "RLAPI\0", 6); + const char *raylibhPath = "../src/raylib.h\0"; + const char *raylibapiPath = "raylib_api.txt\0"; + const char *rlapiPath = "RLAPI\0"; + if (inFileName[0] == '\0') MemoryCopy(inFileName, raylibhPath, TextLength(raylibhPath) + 1); + if (outFileName[0] == '\0') MemoryCopy(outFileName, raylibapiPath, TextLength(raylibapiPath) + 1); + if (apiDefine[0] == '\0') MemoryCopy(apiDefine, rlapiPath, TextLength(rlapiPath) + 1); int length = 0; char *buffer = LoadFileText(inFileName, &length); @@ -1277,8 +1280,10 @@ static void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type } else if ((typeName[k] == '.') && (typeNameLen == 3)) // Handle varargs ...); { - MemoryCopy(type, "...", 3); - MemoryCopy(name, "args", 4); + const char *varargsDots = "..."; + const char *varargsArg = "args"; + MemoryCopy(type, varargsDots, TextLength(varargsDots)); + MemoryCopy(name, varargsArg, TextLength(varargsArg)); break; } } From 797de0f9ad6f69f78131591f9393e9e0ef9486a2 Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Wed, 29 May 2024 13:16:19 +0200 Subject: [PATCH 361/790] [rmodels] Multiplication of colors in `DrawModelEx` which can be simplified (#4002) * simplifies color multiplication `DrawModelEx` * add explicit casts --- src/rmodels.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 2ef030186..4bf042d5c 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -3546,10 +3546,10 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota Color color = model.materials[model.meshMaterial[i]].maps[MATERIAL_MAP_DIFFUSE].color; Color colorTint = WHITE; - colorTint.r = (unsigned char)((((float)color.r/255.0f)*((float)tint.r/255.0f))*255.0f); - colorTint.g = (unsigned char)((((float)color.g/255.0f)*((float)tint.g/255.0f))*255.0f); - colorTint.b = (unsigned char)((((float)color.b/255.0f)*((float)tint.b/255.0f))*255.0f); - colorTint.a = (unsigned char)((((float)color.a/255.0f)*((float)tint.a/255.0f))*255.0f); + colorTint.r = (unsigned char)(((int)color.r*(int)tint.r)/255); + colorTint.g = (unsigned char)(((int)color.g*(int)tint.g)/255); + colorTint.b = (unsigned char)(((int)color.b*(int)tint.b)/255); + colorTint.a = (unsigned char)(((int)color.a*(int)tint.a)/255); model.materials[model.meshMaterial[i]].maps[MATERIAL_MAP_DIFFUSE].color = colorTint; DrawMesh(model.meshes[i], model.materials[model.meshMaterial[i]], model.transform); From c335c3c52c27ee68765ab3c3dde65190dbebe55c Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 29 May 2024 17:01:42 +0200 Subject: [PATCH 362/790] ADDED: `IsFileNameValid()` --- src/raylib.h | 1 + src/rcore.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index c53ea555b..e810dcdca 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1124,6 +1124,7 @@ RLAPI const char *GetWorkingDirectory(void); // Get current RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths diff --git a/src/rcore.c b/src/rcore.c index 1db865187..3aa5a7a65 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2244,6 +2244,64 @@ bool IsPathFile(const char *path) return S_ISREG(result.st_mode); } +// Check if fileName is valid for the platform/OS +bool IsFileNameValid(const char *fileName) +{ + bool valid = true; + + if ((fileName != NULL) && (fileName[0] != '\0')) + { + int length = strlen(fileName); + bool allPeriods = true; + + for (int i = 0; i < length; i++) + { + // Check invalid characters + if ((fileName[i] == '<') || + (fileName[i] == '>') || + (fileName[i] == ':') || + (fileName[i] == '\"') || + (fileName[i] == '/') || + (fileName[i] == '\\') || + (fileName[i] == '|') || + (fileName[i] == '?') || + (fileName[i] == '*')) { valid = false; break; } + + // Check non-glyph characters + if ((unsigned char)fileName[i] < 32) { valid = false; break; } + + // TODO: Check trailing periods/spaces? + + // Check if filename is not all periods + if (fileName[i] != '.') allPeriods = false; + } + + if (allPeriods) valid = false; + +/* + if (valid) + { + // Check invalid DOS names + if (length >= 3) + { + if (((fileName[0] == 'C') && (fileName[1] == 'O') && (fileName[2] == 'N')) || // CON + ((fileName[0] == 'P') && (fileName[1] == 'R') && (fileName[2] == 'N')) || // PRN + ((fileName[0] == 'A') && (fileName[1] == 'U') && (fileName[2] == 'X')) || // AUX + ((fileName[0] == 'N') && (fileName[1] == 'U') && (fileName[2] == 'L'))) valid = false; // NUL + } + + if (length >= 4) + { + if (((fileName[0] == 'C') && (fileName[1] == 'O') && (fileName[2] == 'M') && ((fileName[3] >= '0') && (fileName[3] <= '9'))) || // COM0-9 + ((fileName[0] == 'L') && (fileName[1] == 'P') && (fileName[2] == 'T') && ((fileName[3] >= '0') && (fileName[3] <= '9')))) valid = false; // LPT0-9 + } + } +*/ + } + + return valid; +} + // Check if a file has been dropped into window bool IsFileDropped(void) { From a942a3bc70d994183fdd94b0346ba34211c50b20 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 29 May 2024 15:02:00 +0000 Subject: [PATCH 363/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 11 + parser/output/raylib_api.lua | 8 + parser/output/raylib_api.txt | 861 +++++++++++++++++----------------- parser/output/raylib_api.xml | 5 +- 4 files changed, 456 insertions(+), 429 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 5a9f4fc5d..f2a9cc61e 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -4499,6 +4499,17 @@ } ] }, + { + "name": "IsFileNameValid", + "description": "Check if fileName is valid for the platform/OS", + "returnType": "bool", + "params": [ + { + "type": "const char *", + "name": "fileName" + } + ] + }, { "name": "LoadDirectoryFiles", "description": "Load directory filepaths", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index d60ea191c..68fef97bb 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -4058,6 +4058,14 @@ return { {type = "const char *", name = "path"} } }, + { + name = "IsFileNameValid", + description = "Check if fileName is valid for the platform/OS", + returnType = "bool", + params = { + {type = "const char *", name = "fileName"} + } + }, { name = "LoadDirectoryFiles", description = "Load directory filepaths", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index f4973dae6..d6576dee5 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 562 +Functions found: 563 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -1709,358 +1709,363 @@ Function 135: IsPathFile() (1 input parameters) Return type: bool Description: Check if a given path is a file or a directory Param[1]: path (type: const char *) -Function 136: LoadDirectoryFiles() (1 input parameters) +Function 136: IsFileNameValid() (1 input parameters) + Name: IsFileNameValid + Return type: bool + Description: Check if fileName is valid for the platform/OS + Param[1]: fileName (type: const char *) +Function 137: LoadDirectoryFiles() (1 input parameters) Name: LoadDirectoryFiles Return type: FilePathList Description: Load directory filepaths Param[1]: dirPath (type: const char *) -Function 137: LoadDirectoryFilesEx() (3 input parameters) +Function 138: LoadDirectoryFilesEx() (3 input parameters) Name: LoadDirectoryFilesEx Return type: FilePathList Description: Load directory filepaths with extension filtering and recursive directory scan Param[1]: basePath (type: const char *) Param[2]: filter (type: const char *) Param[3]: scanSubdirs (type: bool) -Function 138: UnloadDirectoryFiles() (1 input parameters) +Function 139: UnloadDirectoryFiles() (1 input parameters) Name: UnloadDirectoryFiles Return type: void Description: Unload filepaths Param[1]: files (type: FilePathList) -Function 139: IsFileDropped() (0 input parameters) +Function 140: IsFileDropped() (0 input parameters) Name: IsFileDropped Return type: bool Description: Check if a file has been dropped into window No input parameters -Function 140: LoadDroppedFiles() (0 input parameters) +Function 141: LoadDroppedFiles() (0 input parameters) Name: LoadDroppedFiles Return type: FilePathList Description: Load dropped filepaths No input parameters -Function 141: UnloadDroppedFiles() (1 input parameters) +Function 142: UnloadDroppedFiles() (1 input parameters) Name: UnloadDroppedFiles Return type: void Description: Unload dropped filepaths Param[1]: files (type: FilePathList) -Function 142: GetFileModTime() (1 input parameters) +Function 143: GetFileModTime() (1 input parameters) Name: GetFileModTime Return type: long Description: Get file modification time (last write time) Param[1]: fileName (type: const char *) -Function 143: CompressData() (3 input parameters) +Function 144: CompressData() (3 input parameters) Name: CompressData Return type: unsigned char * Description: Compress data (DEFLATE algorithm), memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: compDataSize (type: int *) -Function 144: DecompressData() (3 input parameters) +Function 145: DecompressData() (3 input parameters) Name: DecompressData Return type: unsigned char * Description: Decompress data (DEFLATE algorithm), memory must be MemFree() Param[1]: compData (type: const unsigned char *) Param[2]: compDataSize (type: int) Param[3]: dataSize (type: int *) -Function 145: EncodeDataBase64() (3 input parameters) +Function 146: EncodeDataBase64() (3 input parameters) Name: EncodeDataBase64 Return type: char * Description: Encode data to Base64 string, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: dataSize (type: int) Param[3]: outputSize (type: int *) -Function 146: DecodeDataBase64() (2 input parameters) +Function 147: DecodeDataBase64() (2 input parameters) Name: DecodeDataBase64 Return type: unsigned char * Description: Decode Base64 string data, memory must be MemFree() Param[1]: data (type: const unsigned char *) Param[2]: outputSize (type: int *) -Function 147: LoadAutomationEventList() (1 input parameters) +Function 148: LoadAutomationEventList() (1 input parameters) Name: LoadAutomationEventList Return type: AutomationEventList Description: Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS Param[1]: fileName (type: const char *) -Function 148: UnloadAutomationEventList() (1 input parameters) +Function 149: UnloadAutomationEventList() (1 input parameters) Name: UnloadAutomationEventList Return type: void Description: Unload automation events list from file Param[1]: list (type: AutomationEventList) -Function 149: ExportAutomationEventList() (2 input parameters) +Function 150: ExportAutomationEventList() (2 input parameters) Name: ExportAutomationEventList Return type: bool Description: Export automation events list as text file Param[1]: list (type: AutomationEventList) Param[2]: fileName (type: const char *) -Function 150: SetAutomationEventList() (1 input parameters) +Function 151: SetAutomationEventList() (1 input parameters) Name: SetAutomationEventList Return type: void Description: Set automation event list to record to Param[1]: list (type: AutomationEventList *) -Function 151: SetAutomationEventBaseFrame() (1 input parameters) +Function 152: SetAutomationEventBaseFrame() (1 input parameters) Name: SetAutomationEventBaseFrame Return type: void Description: Set automation event internal base frame to start recording Param[1]: frame (type: int) -Function 152: StartAutomationEventRecording() (0 input parameters) +Function 153: StartAutomationEventRecording() (0 input parameters) Name: StartAutomationEventRecording Return type: void Description: Start recording automation events (AutomationEventList must be set) No input parameters -Function 153: StopAutomationEventRecording() (0 input parameters) +Function 154: StopAutomationEventRecording() (0 input parameters) Name: StopAutomationEventRecording Return type: void Description: Stop recording automation events No input parameters -Function 154: PlayAutomationEvent() (1 input parameters) +Function 155: PlayAutomationEvent() (1 input parameters) Name: PlayAutomationEvent Return type: void Description: Play a recorded automation event Param[1]: event (type: AutomationEvent) -Function 155: IsKeyPressed() (1 input parameters) +Function 156: IsKeyPressed() (1 input parameters) Name: IsKeyPressed Return type: bool Description: Check if a key has been pressed once Param[1]: key (type: int) -Function 156: IsKeyPressedRepeat() (1 input parameters) +Function 157: IsKeyPressedRepeat() (1 input parameters) Name: IsKeyPressedRepeat Return type: bool Description: Check if a key has been pressed again (Only PLATFORM_DESKTOP) Param[1]: key (type: int) -Function 157: IsKeyDown() (1 input parameters) +Function 158: IsKeyDown() (1 input parameters) Name: IsKeyDown Return type: bool Description: Check if a key is being pressed Param[1]: key (type: int) -Function 158: IsKeyReleased() (1 input parameters) +Function 159: IsKeyReleased() (1 input parameters) Name: IsKeyReleased Return type: bool Description: Check if a key has been released once Param[1]: key (type: int) -Function 159: IsKeyUp() (1 input parameters) +Function 160: IsKeyUp() (1 input parameters) Name: IsKeyUp Return type: bool Description: Check if a key is NOT being pressed Param[1]: key (type: int) -Function 160: GetKeyPressed() (0 input parameters) +Function 161: GetKeyPressed() (0 input parameters) Name: GetKeyPressed Return type: int Description: Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty No input parameters -Function 161: GetCharPressed() (0 input parameters) +Function 162: GetCharPressed() (0 input parameters) Name: GetCharPressed Return type: int Description: Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty No input parameters -Function 162: SetExitKey() (1 input parameters) +Function 163: SetExitKey() (1 input parameters) Name: SetExitKey Return type: void Description: Set a custom key to exit program (default is ESC) Param[1]: key (type: int) -Function 163: IsGamepadAvailable() (1 input parameters) +Function 164: IsGamepadAvailable() (1 input parameters) Name: IsGamepadAvailable Return type: bool Description: Check if a gamepad is available Param[1]: gamepad (type: int) -Function 164: GetGamepadName() (1 input parameters) +Function 165: GetGamepadName() (1 input parameters) Name: GetGamepadName Return type: const char * Description: Get gamepad internal name id Param[1]: gamepad (type: int) -Function 165: IsGamepadButtonPressed() (2 input parameters) +Function 166: IsGamepadButtonPressed() (2 input parameters) Name: IsGamepadButtonPressed Return type: bool Description: Check if a gamepad button has been pressed once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 166: IsGamepadButtonDown() (2 input parameters) +Function 167: IsGamepadButtonDown() (2 input parameters) Name: IsGamepadButtonDown Return type: bool Description: Check if a gamepad button is being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 167: IsGamepadButtonReleased() (2 input parameters) +Function 168: IsGamepadButtonReleased() (2 input parameters) Name: IsGamepadButtonReleased Return type: bool Description: Check if a gamepad button has been released once Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 168: IsGamepadButtonUp() (2 input parameters) +Function 169: IsGamepadButtonUp() (2 input parameters) Name: IsGamepadButtonUp Return type: bool Description: Check if a gamepad button is NOT being pressed Param[1]: gamepad (type: int) Param[2]: button (type: int) -Function 169: GetGamepadButtonPressed() (0 input parameters) +Function 170: GetGamepadButtonPressed() (0 input parameters) Name: GetGamepadButtonPressed Return type: int Description: Get the last gamepad button pressed No input parameters -Function 170: GetGamepadAxisCount() (1 input parameters) +Function 171: GetGamepadAxisCount() (1 input parameters) Name: GetGamepadAxisCount Return type: int Description: Get gamepad axis count for a gamepad Param[1]: gamepad (type: int) -Function 171: GetGamepadAxisMovement() (2 input parameters) +Function 172: GetGamepadAxisMovement() (2 input parameters) Name: GetGamepadAxisMovement Return type: float Description: Get axis movement value for a gamepad axis Param[1]: gamepad (type: int) Param[2]: axis (type: int) -Function 172: SetGamepadMappings() (1 input parameters) +Function 173: SetGamepadMappings() (1 input parameters) Name: SetGamepadMappings Return type: int Description: Set internal gamepad mappings (SDL_GameControllerDB) Param[1]: mappings (type: const char *) -Function 173: SetGamepadVibration() (3 input parameters) +Function 174: SetGamepadVibration() (3 input parameters) Name: SetGamepadVibration Return type: void Description: Set gamepad vibration for both motors Param[1]: gamepad (type: int) Param[2]: leftMotor (type: float) Param[3]: rightMotor (type: float) -Function 174: IsMouseButtonPressed() (1 input parameters) +Function 175: IsMouseButtonPressed() (1 input parameters) Name: IsMouseButtonPressed Return type: bool Description: Check if a mouse button has been pressed once Param[1]: button (type: int) -Function 175: IsMouseButtonDown() (1 input parameters) +Function 176: IsMouseButtonDown() (1 input parameters) Name: IsMouseButtonDown Return type: bool Description: Check if a mouse button is being pressed Param[1]: button (type: int) -Function 176: IsMouseButtonReleased() (1 input parameters) +Function 177: IsMouseButtonReleased() (1 input parameters) Name: IsMouseButtonReleased Return type: bool Description: Check if a mouse button has been released once Param[1]: button (type: int) -Function 177: IsMouseButtonUp() (1 input parameters) +Function 178: IsMouseButtonUp() (1 input parameters) Name: IsMouseButtonUp Return type: bool Description: Check if a mouse button is NOT being pressed Param[1]: button (type: int) -Function 178: GetMouseX() (0 input parameters) +Function 179: GetMouseX() (0 input parameters) Name: GetMouseX Return type: int Description: Get mouse position X No input parameters -Function 179: GetMouseY() (0 input parameters) +Function 180: GetMouseY() (0 input parameters) Name: GetMouseY Return type: int Description: Get mouse position Y No input parameters -Function 180: GetMousePosition() (0 input parameters) +Function 181: GetMousePosition() (0 input parameters) Name: GetMousePosition Return type: Vector2 Description: Get mouse position XY No input parameters -Function 181: GetMouseDelta() (0 input parameters) +Function 182: GetMouseDelta() (0 input parameters) Name: GetMouseDelta Return type: Vector2 Description: Get mouse delta between frames No input parameters -Function 182: SetMousePosition() (2 input parameters) +Function 183: SetMousePosition() (2 input parameters) Name: SetMousePosition Return type: void Description: Set mouse position XY Param[1]: x (type: int) Param[2]: y (type: int) -Function 183: SetMouseOffset() (2 input parameters) +Function 184: SetMouseOffset() (2 input parameters) Name: SetMouseOffset Return type: void Description: Set mouse offset Param[1]: offsetX (type: int) Param[2]: offsetY (type: int) -Function 184: SetMouseScale() (2 input parameters) +Function 185: SetMouseScale() (2 input parameters) Name: SetMouseScale Return type: void Description: Set mouse scaling Param[1]: scaleX (type: float) Param[2]: scaleY (type: float) -Function 185: GetMouseWheelMove() (0 input parameters) +Function 186: GetMouseWheelMove() (0 input parameters) Name: GetMouseWheelMove Return type: float Description: Get mouse wheel movement for X or Y, whichever is larger No input parameters -Function 186: GetMouseWheelMoveV() (0 input parameters) +Function 187: GetMouseWheelMoveV() (0 input parameters) Name: GetMouseWheelMoveV Return type: Vector2 Description: Get mouse wheel movement for both X and Y No input parameters -Function 187: SetMouseCursor() (1 input parameters) +Function 188: SetMouseCursor() (1 input parameters) Name: SetMouseCursor Return type: void Description: Set mouse cursor Param[1]: cursor (type: int) -Function 188: GetTouchX() (0 input parameters) +Function 189: GetTouchX() (0 input parameters) Name: GetTouchX Return type: int Description: Get touch position X for touch point 0 (relative to screen size) No input parameters -Function 189: GetTouchY() (0 input parameters) +Function 190: GetTouchY() (0 input parameters) Name: GetTouchY Return type: int Description: Get touch position Y for touch point 0 (relative to screen size) No input parameters -Function 190: GetTouchPosition() (1 input parameters) +Function 191: GetTouchPosition() (1 input parameters) Name: GetTouchPosition Return type: Vector2 Description: Get touch position XY for a touch point index (relative to screen size) Param[1]: index (type: int) -Function 191: GetTouchPointId() (1 input parameters) +Function 192: GetTouchPointId() (1 input parameters) Name: GetTouchPointId Return type: int Description: Get touch point identifier for given index Param[1]: index (type: int) -Function 192: GetTouchPointCount() (0 input parameters) +Function 193: GetTouchPointCount() (0 input parameters) Name: GetTouchPointCount Return type: int Description: Get number of touch points No input parameters -Function 193: SetGesturesEnabled() (1 input parameters) +Function 194: SetGesturesEnabled() (1 input parameters) Name: SetGesturesEnabled Return type: void Description: Enable a set of gestures using flags Param[1]: flags (type: unsigned int) -Function 194: IsGestureDetected() (1 input parameters) +Function 195: IsGestureDetected() (1 input parameters) Name: IsGestureDetected Return type: bool Description: Check if a gesture have been detected Param[1]: gesture (type: unsigned int) -Function 195: GetGestureDetected() (0 input parameters) +Function 196: GetGestureDetected() (0 input parameters) Name: GetGestureDetected Return type: int Description: Get latest detected gesture No input parameters -Function 196: GetGestureHoldDuration() (0 input parameters) +Function 197: GetGestureHoldDuration() (0 input parameters) Name: GetGestureHoldDuration Return type: float Description: Get gesture hold time in milliseconds No input parameters -Function 197: GetGestureDragVector() (0 input parameters) +Function 198: GetGestureDragVector() (0 input parameters) Name: GetGestureDragVector Return type: Vector2 Description: Get gesture drag vector No input parameters -Function 198: GetGestureDragAngle() (0 input parameters) +Function 199: GetGestureDragAngle() (0 input parameters) Name: GetGestureDragAngle Return type: float Description: Get gesture drag angle No input parameters -Function 199: GetGesturePinchVector() (0 input parameters) +Function 200: GetGesturePinchVector() (0 input parameters) Name: GetGesturePinchVector Return type: Vector2 Description: Get gesture pinch delta No input parameters -Function 200: GetGesturePinchAngle() (0 input parameters) +Function 201: GetGesturePinchAngle() (0 input parameters) Name: GetGesturePinchAngle Return type: float Description: Get gesture pinch angle No input parameters -Function 201: UpdateCamera() (2 input parameters) +Function 202: UpdateCamera() (2 input parameters) Name: UpdateCamera Return type: void Description: Update camera position for selected mode Param[1]: camera (type: Camera *) Param[2]: mode (type: int) -Function 202: UpdateCameraPro() (4 input parameters) +Function 203: UpdateCameraPro() (4 input parameters) Name: UpdateCameraPro Return type: void Description: Update camera movement/rotation @@ -2068,36 +2073,36 @@ Function 202: UpdateCameraPro() (4 input parameters) Param[2]: movement (type: Vector3) Param[3]: rotation (type: Vector3) Param[4]: zoom (type: float) -Function 203: SetShapesTexture() (2 input parameters) +Function 204: SetShapesTexture() (2 input parameters) Name: SetShapesTexture Return type: void Description: Set texture and rectangle to be used on shapes drawing Param[1]: texture (type: Texture2D) Param[2]: source (type: Rectangle) -Function 204: GetShapesTexture() (0 input parameters) +Function 205: GetShapesTexture() (0 input parameters) Name: GetShapesTexture Return type: Texture2D Description: Get texture that is used for shapes drawing No input parameters -Function 205: GetShapesTextureRectangle() (0 input parameters) +Function 206: GetShapesTextureRectangle() (0 input parameters) Name: GetShapesTextureRectangle Return type: Rectangle Description: Get texture source rectangle that is used for shapes drawing No input parameters -Function 206: DrawPixel() (3 input parameters) +Function 207: DrawPixel() (3 input parameters) Name: DrawPixel Return type: void Description: Draw a pixel Param[1]: posX (type: int) Param[2]: posY (type: int) Param[3]: color (type: Color) -Function 207: DrawPixelV() (2 input parameters) +Function 208: DrawPixelV() (2 input parameters) Name: DrawPixelV Return type: void Description: Draw a pixel (Vector version) Param[1]: position (type: Vector2) Param[2]: color (type: Color) -Function 208: DrawLine() (5 input parameters) +Function 209: DrawLine() (5 input parameters) Name: DrawLine Return type: void Description: Draw a line @@ -2106,14 +2111,14 @@ Function 208: DrawLine() (5 input parameters) Param[3]: endPosX (type: int) Param[4]: endPosY (type: int) Param[5]: color (type: Color) -Function 209: DrawLineV() (3 input parameters) +Function 210: DrawLineV() (3 input parameters) Name: DrawLineV Return type: void Description: Draw a line (using gl lines) Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: color (type: Color) -Function 210: DrawLineEx() (4 input parameters) +Function 211: DrawLineEx() (4 input parameters) Name: DrawLineEx Return type: void Description: Draw a line (using triangles/quads) @@ -2121,14 +2126,14 @@ Function 210: DrawLineEx() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 211: DrawLineStrip() (3 input parameters) +Function 212: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void Description: Draw lines sequence (using gl lines) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 212: DrawLineBezier() (4 input parameters) +Function 213: DrawLineBezier() (4 input parameters) Name: DrawLineBezier Return type: void Description: Draw line segment cubic-bezier in-out interpolation @@ -2136,7 +2141,7 @@ Function 212: DrawLineBezier() (4 input parameters) Param[2]: endPos (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 213: DrawCircle() (4 input parameters) +Function 214: DrawCircle() (4 input parameters) Name: DrawCircle Return type: void Description: Draw a color-filled circle @@ -2144,7 +2149,7 @@ Function 213: DrawCircle() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 214: DrawCircleSector() (6 input parameters) +Function 215: DrawCircleSector() (6 input parameters) Name: DrawCircleSector Return type: void Description: Draw a piece of a circle @@ -2154,7 +2159,7 @@ Function 214: DrawCircleSector() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 215: DrawCircleSectorLines() (6 input parameters) +Function 216: DrawCircleSectorLines() (6 input parameters) Name: DrawCircleSectorLines Return type: void Description: Draw circle sector outline @@ -2164,7 +2169,7 @@ Function 215: DrawCircleSectorLines() (6 input parameters) Param[4]: endAngle (type: float) Param[5]: segments (type: int) Param[6]: color (type: Color) -Function 216: DrawCircleGradient() (5 input parameters) +Function 217: DrawCircleGradient() (5 input parameters) Name: DrawCircleGradient Return type: void Description: Draw a gradient-filled circle @@ -2173,14 +2178,14 @@ Function 216: DrawCircleGradient() (5 input parameters) Param[3]: radius (type: float) Param[4]: color1 (type: Color) Param[5]: color2 (type: Color) -Function 217: DrawCircleV() (3 input parameters) +Function 218: DrawCircleV() (3 input parameters) Name: DrawCircleV Return type: void Description: Draw a color-filled circle (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 218: DrawCircleLines() (4 input parameters) +Function 219: DrawCircleLines() (4 input parameters) Name: DrawCircleLines Return type: void Description: Draw circle outline @@ -2188,14 +2193,14 @@ Function 218: DrawCircleLines() (4 input parameters) Param[2]: centerY (type: int) Param[3]: radius (type: float) Param[4]: color (type: Color) -Function 219: DrawCircleLinesV() (3 input parameters) +Function 220: DrawCircleLinesV() (3 input parameters) Name: DrawCircleLinesV Return type: void Description: Draw circle outline (Vector version) Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 220: DrawEllipse() (5 input parameters) +Function 221: DrawEllipse() (5 input parameters) Name: DrawEllipse Return type: void Description: Draw ellipse @@ -2204,7 +2209,7 @@ Function 220: DrawEllipse() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 221: DrawEllipseLines() (5 input parameters) +Function 222: DrawEllipseLines() (5 input parameters) Name: DrawEllipseLines Return type: void Description: Draw ellipse outline @@ -2213,7 +2218,7 @@ Function 221: DrawEllipseLines() (5 input parameters) Param[3]: radiusH (type: float) Param[4]: radiusV (type: float) Param[5]: color (type: Color) -Function 222: DrawRing() (7 input parameters) +Function 223: DrawRing() (7 input parameters) Name: DrawRing Return type: void Description: Draw ring @@ -2224,7 +2229,7 @@ Function 222: DrawRing() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 223: DrawRingLines() (7 input parameters) +Function 224: DrawRingLines() (7 input parameters) Name: DrawRingLines Return type: void Description: Draw ring outline @@ -2235,7 +2240,7 @@ Function 223: DrawRingLines() (7 input parameters) Param[5]: endAngle (type: float) Param[6]: segments (type: int) Param[7]: color (type: Color) -Function 224: DrawRectangle() (5 input parameters) +Function 225: DrawRectangle() (5 input parameters) Name: DrawRectangle Return type: void Description: Draw a color-filled rectangle @@ -2244,20 +2249,20 @@ Function 224: DrawRectangle() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 225: DrawRectangleV() (3 input parameters) +Function 226: DrawRectangleV() (3 input parameters) Name: DrawRectangleV Return type: void Description: Draw a color-filled rectangle (Vector version) Param[1]: position (type: Vector2) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 226: DrawRectangleRec() (2 input parameters) +Function 227: DrawRectangleRec() (2 input parameters) Name: DrawRectangleRec Return type: void Description: Draw a color-filled rectangle Param[1]: rec (type: Rectangle) Param[2]: color (type: Color) -Function 227: DrawRectanglePro() (4 input parameters) +Function 228: DrawRectanglePro() (4 input parameters) Name: DrawRectanglePro Return type: void Description: Draw a color-filled rectangle with pro parameters @@ -2265,7 +2270,7 @@ Function 227: DrawRectanglePro() (4 input parameters) Param[2]: origin (type: Vector2) Param[3]: rotation (type: float) Param[4]: color (type: Color) -Function 228: DrawRectangleGradientV() (6 input parameters) +Function 229: DrawRectangleGradientV() (6 input parameters) Name: DrawRectangleGradientV Return type: void Description: Draw a vertical-gradient-filled rectangle @@ -2275,7 +2280,7 @@ Function 228: DrawRectangleGradientV() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 229: DrawRectangleGradientH() (6 input parameters) +Function 230: DrawRectangleGradientH() (6 input parameters) Name: DrawRectangleGradientH Return type: void Description: Draw a horizontal-gradient-filled rectangle @@ -2285,7 +2290,7 @@ Function 229: DrawRectangleGradientH() (6 input parameters) Param[4]: height (type: int) Param[5]: color1 (type: Color) Param[6]: color2 (type: Color) -Function 230: DrawRectangleGradientEx() (5 input parameters) +Function 231: DrawRectangleGradientEx() (5 input parameters) Name: DrawRectangleGradientEx Return type: void Description: Draw a gradient-filled rectangle with custom vertex colors @@ -2294,7 +2299,7 @@ Function 230: DrawRectangleGradientEx() (5 input parameters) Param[3]: col2 (type: Color) Param[4]: col3 (type: Color) Param[5]: col4 (type: Color) -Function 231: DrawRectangleLines() (5 input parameters) +Function 232: DrawRectangleLines() (5 input parameters) Name: DrawRectangleLines Return type: void Description: Draw rectangle outline @@ -2303,14 +2308,14 @@ Function 231: DrawRectangleLines() (5 input parameters) Param[3]: width (type: int) Param[4]: height (type: int) Param[5]: color (type: Color) -Function 232: DrawRectangleLinesEx() (3 input parameters) +Function 233: DrawRectangleLinesEx() (3 input parameters) Name: DrawRectangleLinesEx Return type: void Description: Draw rectangle outline with extended parameters Param[1]: rec (type: Rectangle) Param[2]: lineThick (type: float) Param[3]: color (type: Color) -Function 233: DrawRectangleRounded() (4 input parameters) +Function 234: DrawRectangleRounded() (4 input parameters) Name: DrawRectangleRounded Return type: void Description: Draw rectangle with rounded edges @@ -2318,7 +2323,7 @@ Function 233: DrawRectangleRounded() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 234: DrawRectangleRoundedLines() (4 input parameters) +Function 235: DrawRectangleRoundedLines() (4 input parameters) Name: DrawRectangleRoundedLines Return type: void Description: Draw rectangle lines with rounded edges @@ -2326,7 +2331,7 @@ Function 234: DrawRectangleRoundedLines() (4 input parameters) Param[2]: roundness (type: float) Param[3]: segments (type: int) Param[4]: color (type: Color) -Function 235: DrawRectangleRoundedLinesEx() (5 input parameters) +Function 236: DrawRectangleRoundedLinesEx() (5 input parameters) Name: DrawRectangleRoundedLinesEx Return type: void Description: Draw rectangle with rounded edges outline @@ -2335,7 +2340,7 @@ Function 235: DrawRectangleRoundedLinesEx() (5 input parameters) Param[3]: segments (type: int) Param[4]: lineThick (type: float) Param[5]: color (type: Color) -Function 236: DrawTriangle() (4 input parameters) +Function 237: DrawTriangle() (4 input parameters) Name: DrawTriangle Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -2343,7 +2348,7 @@ Function 236: DrawTriangle() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 237: DrawTriangleLines() (4 input parameters) +Function 238: DrawTriangleLines() (4 input parameters) Name: DrawTriangleLines Return type: void Description: Draw triangle outline (vertex in counter-clockwise order!) @@ -2351,21 +2356,21 @@ Function 237: DrawTriangleLines() (4 input parameters) Param[2]: v2 (type: Vector2) Param[3]: v3 (type: Vector2) Param[4]: color (type: Color) -Function 238: DrawTriangleFan() (3 input parameters) +Function 239: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 239: DrawTriangleStrip() (3 input parameters) +Function 240: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 240: DrawPoly() (5 input parameters) +Function 241: DrawPoly() (5 input parameters) Name: DrawPoly Return type: void Description: Draw a regular polygon (Vector version) @@ -2374,7 +2379,7 @@ Function 240: DrawPoly() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 241: DrawPolyLines() (5 input parameters) +Function 242: DrawPolyLines() (5 input parameters) Name: DrawPolyLines Return type: void Description: Draw a polygon outline of n sides @@ -2383,7 +2388,7 @@ Function 241: DrawPolyLines() (5 input parameters) Param[3]: radius (type: float) Param[4]: rotation (type: float) Param[5]: color (type: Color) -Function 242: DrawPolyLinesEx() (6 input parameters) +Function 243: DrawPolyLinesEx() (6 input parameters) Name: DrawPolyLinesEx Return type: void Description: Draw a polygon outline of n sides with extended parameters @@ -2393,7 +2398,7 @@ Function 242: DrawPolyLinesEx() (6 input parameters) Param[4]: rotation (type: float) Param[5]: lineThick (type: float) Param[6]: color (type: Color) -Function 243: DrawSplineLinear() (4 input parameters) +Function 244: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points @@ -2401,7 +2406,7 @@ Function 243: DrawSplineLinear() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 244: DrawSplineBasis() (4 input parameters) +Function 245: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points @@ -2409,7 +2414,7 @@ Function 244: DrawSplineBasis() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 245: DrawSplineCatmullRom() (4 input parameters) +Function 246: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points @@ -2417,7 +2422,7 @@ Function 245: DrawSplineCatmullRom() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 246: DrawSplineBezierQuadratic() (4 input parameters) +Function 247: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] @@ -2425,7 +2430,7 @@ Function 246: DrawSplineBezierQuadratic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 247: DrawSplineBezierCubic() (4 input parameters) +Function 248: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] @@ -2433,7 +2438,7 @@ Function 247: DrawSplineBezierCubic() (4 input parameters) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 248: DrawSplineSegmentLinear() (4 input parameters) +Function 249: DrawSplineSegmentLinear() (4 input parameters) Name: DrawSplineSegmentLinear Return type: void Description: Draw spline segment: Linear, 2 points @@ -2441,7 +2446,7 @@ Function 248: DrawSplineSegmentLinear() (4 input parameters) Param[2]: p2 (type: Vector2) Param[3]: thick (type: float) Param[4]: color (type: Color) -Function 249: DrawSplineSegmentBasis() (6 input parameters) +Function 250: DrawSplineSegmentBasis() (6 input parameters) Name: DrawSplineSegmentBasis Return type: void Description: Draw spline segment: B-Spline, 4 points @@ -2451,7 +2456,7 @@ Function 249: DrawSplineSegmentBasis() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 250: DrawSplineSegmentCatmullRom() (6 input parameters) +Function 251: DrawSplineSegmentCatmullRom() (6 input parameters) Name: DrawSplineSegmentCatmullRom Return type: void Description: Draw spline segment: Catmull-Rom, 4 points @@ -2461,7 +2466,7 @@ Function 250: DrawSplineSegmentCatmullRom() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 251: DrawSplineSegmentBezierQuadratic() (5 input parameters) +Function 252: DrawSplineSegmentBezierQuadratic() (5 input parameters) Name: DrawSplineSegmentBezierQuadratic Return type: void Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point @@ -2470,7 +2475,7 @@ Function 251: DrawSplineSegmentBezierQuadratic() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: thick (type: float) Param[5]: color (type: Color) -Function 252: DrawSplineSegmentBezierCubic() (6 input parameters) +Function 253: DrawSplineSegmentBezierCubic() (6 input parameters) Name: DrawSplineSegmentBezierCubic Return type: void Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points @@ -2480,14 +2485,14 @@ Function 252: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 253: GetSplinePointLinear() (3 input parameters) +Function 254: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 254: GetSplinePointBasis() (5 input parameters) +Function 255: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2496,7 +2501,7 @@ Function 254: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 255: GetSplinePointCatmullRom() (5 input parameters) +Function 256: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2505,7 +2510,7 @@ Function 255: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 256: GetSplinePointBezierQuad() (4 input parameters) +Function 257: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2513,7 +2518,7 @@ Function 256: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 257: GetSplinePointBezierCubic() (5 input parameters) +Function 258: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2522,13 +2527,13 @@ Function 257: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 258: CheckCollisionRecs() (2 input parameters) +Function 259: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 259: CheckCollisionCircles() (4 input parameters) +Function 260: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2536,27 +2541,27 @@ Function 259: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 260: CheckCollisionCircleRec() (3 input parameters) +Function 261: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 261: CheckCollisionPointRec() (2 input parameters) +Function 262: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 262: CheckCollisionPointCircle() (3 input parameters) +Function 263: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 263: CheckCollisionPointTriangle() (4 input parameters) +Function 264: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2564,14 +2569,14 @@ Function 263: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 264: CheckCollisionPointPoly() (3 input parameters) +Function 265: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) -Function 265: CheckCollisionLines() (5 input parameters) +Function 266: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2580,7 +2585,7 @@ Function 265: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 266: CheckCollisionPointLine() (4 input parameters) +Function 267: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2588,18 +2593,18 @@ Function 266: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 267: GetCollisionRec() (2 input parameters) +Function 268: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 268: LoadImage() (1 input parameters) +Function 269: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 269: LoadImageRaw() (5 input parameters) +Function 270: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2608,20 +2613,20 @@ Function 269: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 270: LoadImageSvg() (3 input parameters) +Function 271: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 271: LoadImageAnim() (2 input parameters) +Function 272: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 272: LoadImageAnimFromMemory() (4 input parameters) +Function 273: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2629,60 +2634,60 @@ Function 272: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 273: LoadImageFromMemory() (3 input parameters) +Function 274: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 274: LoadImageFromTexture() (1 input parameters) +Function 275: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 275: LoadImageFromScreen() (0 input parameters) +Function 276: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 276: IsImageReady() (1 input parameters) +Function 277: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 277: UnloadImage() (1 input parameters) +Function 278: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 278: ExportImage() (2 input parameters) +Function 279: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 279: ExportImageToMemory() (3 input parameters) +Function 280: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 280: ExportImageAsCode() (2 input parameters) +Function 281: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 281: GenImageColor() (3 input parameters) +Function 282: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 282: GenImageGradientLinear() (5 input parameters) +Function 283: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2691,7 +2696,7 @@ Function 282: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 283: GenImageGradientRadial() (5 input parameters) +Function 284: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2700,7 +2705,7 @@ Function 283: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 284: GenImageGradientSquare() (5 input parameters) +Function 285: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2709,7 +2714,7 @@ Function 284: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 285: GenImageChecked() (6 input parameters) +Function 286: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2719,14 +2724,14 @@ Function 285: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 286: GenImageWhiteNoise() (3 input parameters) +Function 287: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 287: GenImagePerlinNoise() (5 input parameters) +Function 288: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2735,39 +2740,39 @@ Function 287: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 288: GenImageCellular() (3 input parameters) +Function 289: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 289: GenImageText() (3 input parameters) +Function 290: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 290: ImageCopy() (1 input parameters) +Function 291: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 291: ImageFromImage() (2 input parameters) +Function 292: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 292: ImageText() (3 input parameters) +Function 293: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 293: ImageTextEx() (5 input parameters) +Function 294: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2776,76 +2781,76 @@ Function 293: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 294: ImageFormat() (2 input parameters) +Function 295: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 295: ImageToPOT() (2 input parameters) +Function 296: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 296: ImageCrop() (2 input parameters) +Function 297: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 297: ImageAlphaCrop() (2 input parameters) +Function 298: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 298: ImageAlphaClear() (3 input parameters) +Function 299: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 299: ImageAlphaMask() (2 input parameters) +Function 300: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 300: ImageAlphaPremultiply() (1 input parameters) +Function 301: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 301: ImageBlurGaussian() (2 input parameters) +Function 302: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 302: ImageKernelConvolution() (3 input parameters) +Function 303: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 303: ImageResize() (3 input parameters) +Function 304: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 304: ImageResizeNN() (3 input parameters) +Function 305: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 305: ImageResizeCanvas() (6 input parameters) +Function 306: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2855,12 +2860,12 @@ Function 305: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 306: ImageMipmaps() (1 input parameters) +Function 307: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 307: ImageDither() (5 input parameters) +Function 308: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2869,109 +2874,109 @@ Function 307: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 308: ImageFlipVertical() (1 input parameters) +Function 309: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 309: ImageFlipHorizontal() (1 input parameters) +Function 310: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 310: ImageRotate() (2 input parameters) +Function 311: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 311: ImageRotateCW() (1 input parameters) +Function 312: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 312: ImageRotateCCW() (1 input parameters) +Function 313: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 313: ImageColorTint() (2 input parameters) +Function 314: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 314: ImageColorInvert() (1 input parameters) +Function 315: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 315: ImageColorGrayscale() (1 input parameters) +Function 316: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 316: ImageColorContrast() (2 input parameters) +Function 317: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 317: ImageColorBrightness() (2 input parameters) +Function 318: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 318: ImageColorReplace() (3 input parameters) +Function 319: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 319: LoadImageColors() (1 input parameters) +Function 320: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 320: LoadImagePalette() (3 input parameters) +Function 321: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 321: UnloadImageColors() (1 input parameters) +Function 322: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 322: UnloadImagePalette() (1 input parameters) +Function 323: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 323: GetImageAlphaBorder() (2 input parameters) +Function 324: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 324: GetImageColor() (3 input parameters) +Function 325: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 325: ImageClearBackground() (2 input parameters) +Function 326: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 326: ImageDrawPixel() (4 input parameters) +Function 327: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2979,14 +2984,14 @@ Function 326: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 327: ImageDrawPixelV() (3 input parameters) +Function 328: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 328: ImageDrawLine() (6 input parameters) +Function 329: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -2996,7 +3001,7 @@ Function 328: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 329: ImageDrawLineV() (4 input parameters) +Function 330: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -3004,7 +3009,7 @@ Function 329: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 330: ImageDrawCircle() (5 input parameters) +Function 331: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3013,7 +3018,7 @@ Function 330: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 331: ImageDrawCircleV() (4 input parameters) +Function 332: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3021,7 +3026,7 @@ Function 331: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 332: ImageDrawCircleLines() (5 input parameters) +Function 333: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3030,7 +3035,7 @@ Function 332: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 333: ImageDrawCircleLinesV() (4 input parameters) +Function 334: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3038,7 +3043,7 @@ Function 333: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 334: ImageDrawRectangle() (6 input parameters) +Function 335: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3048,7 +3053,7 @@ Function 334: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 335: ImageDrawRectangleV() (4 input parameters) +Function 336: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3056,14 +3061,14 @@ Function 335: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 336: ImageDrawRectangleRec() (3 input parameters) +Function 337: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 337: ImageDrawRectangleLines() (4 input parameters) +Function 338: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3071,7 +3076,7 @@ Function 337: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 338: ImageDraw() (5 input parameters) +Function 339: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3080,7 +3085,7 @@ Function 338: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 339: ImageDrawText() (6 input parameters) +Function 340: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3090,7 +3095,7 @@ Function 339: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 340: ImageDrawTextEx() (7 input parameters) +Function 341: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3101,79 +3106,79 @@ Function 340: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 341: LoadTexture() (1 input parameters) +Function 342: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 342: LoadTextureFromImage() (1 input parameters) +Function 343: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 343: LoadTextureCubemap() (2 input parameters) +Function 344: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 344: LoadRenderTexture() (2 input parameters) +Function 345: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 345: IsTextureReady() (1 input parameters) +Function 346: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 346: UnloadTexture() (1 input parameters) +Function 347: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 347: IsRenderTextureReady() (1 input parameters) +Function 348: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 348: UnloadRenderTexture() (1 input parameters) +Function 349: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 349: UpdateTexture() (2 input parameters) +Function 350: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 350: UpdateTextureRec() (3 input parameters) +Function 351: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 351: GenTextureMipmaps() (1 input parameters) +Function 352: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 352: SetTextureFilter() (2 input parameters) +Function 353: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 353: SetTextureWrap() (2 input parameters) +Function 354: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 354: DrawTexture() (4 input parameters) +Function 355: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3181,14 +3186,14 @@ Function 354: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 355: DrawTextureV() (3 input parameters) +Function 356: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 356: DrawTextureEx() (5 input parameters) +Function 357: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3197,7 +3202,7 @@ Function 356: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 357: DrawTextureRec() (4 input parameters) +Function 358: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3205,7 +3210,7 @@ Function 357: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 358: DrawTexturePro() (6 input parameters) +Function 359: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3215,7 +3220,7 @@ Function 358: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 359: DrawTextureNPatch() (6 input parameters) +Function 360: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3225,112 +3230,112 @@ Function 359: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 360: ColorIsEqual() (2 input parameters) +Function 361: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 361: Fade() (2 input parameters) +Function 362: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 362: ColorToInt() (1 input parameters) +Function 363: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 363: ColorNormalize() (1 input parameters) +Function 364: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 364: ColorFromNormalized() (1 input parameters) +Function 365: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 365: ColorToHSV() (1 input parameters) +Function 366: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 366: ColorFromHSV() (3 input parameters) +Function 367: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 367: ColorTint() (2 input parameters) +Function 368: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 368: ColorBrightness() (2 input parameters) +Function 369: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 369: ColorContrast() (2 input parameters) +Function 370: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 370: ColorAlpha() (2 input parameters) +Function 371: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 371: ColorAlphaBlend() (3 input parameters) +Function 372: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 372: GetColor() (1 input parameters) +Function 373: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 373: GetPixelColor() (2 input parameters) +Function 374: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 374: SetPixelColor() (3 input parameters) +Function 375: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 375: GetPixelDataSize() (3 input parameters) +Function 376: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 376: GetFontDefault() (0 input parameters) +Function 377: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 377: LoadFont() (1 input parameters) +Function 378: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 378: LoadFontEx() (4 input parameters) +Function 379: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3338,14 +3343,14 @@ Function 378: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 379: LoadFontFromImage() (3 input parameters) +Function 380: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 380: LoadFontFromMemory() (6 input parameters) +Function 381: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3355,12 +3360,12 @@ Function 380: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 381: IsFontReady() (1 input parameters) +Function 382: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 382: LoadFontData() (6 input parameters) +Function 383: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3370,7 +3375,7 @@ Function 382: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 383: GenImageFontAtlas() (6 input parameters) +Function 384: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3380,30 +3385,30 @@ Function 383: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 384: UnloadFontData() (2 input parameters) +Function 385: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 385: UnloadFont() (1 input parameters) +Function 386: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 386: ExportFontAsCode() (2 input parameters) +Function 387: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 387: DrawFPS() (2 input parameters) +Function 388: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 388: DrawText() (5 input parameters) +Function 389: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3412,7 +3417,7 @@ Function 388: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 389: DrawTextEx() (6 input parameters) +Function 390: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3422,7 +3427,7 @@ Function 389: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 390: DrawTextPro() (8 input parameters) +Function 391: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3434,7 +3439,7 @@ Function 390: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 391: DrawTextCodepoint() (5 input parameters) +Function 392: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3443,7 +3448,7 @@ Function 391: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 392: DrawTextCodepoints() (7 input parameters) +Function 393: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3454,18 +3459,18 @@ Function 392: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 393: SetTextLineSpacing() (1 input parameters) +Function 394: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 394: MeasureText() (2 input parameters) +Function 395: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 395: MeasureTextEx() (4 input parameters) +Function 396: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3473,185 +3478,185 @@ Function 395: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 396: GetGlyphIndex() (2 input parameters) +Function 397: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 397: GetGlyphInfo() (2 input parameters) +Function 398: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 398: GetGlyphAtlasRec() (2 input parameters) +Function 399: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 399: LoadUTF8() (2 input parameters) +Function 400: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 400: UnloadUTF8() (1 input parameters) +Function 401: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 401: LoadCodepoints() (2 input parameters) +Function 402: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 402: UnloadCodepoints() (1 input parameters) +Function 403: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 403: GetCodepointCount() (1 input parameters) +Function 404: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 404: GetCodepoint() (2 input parameters) +Function 405: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 405: GetCodepointNext() (2 input parameters) +Function 406: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 406: GetCodepointPrevious() (2 input parameters) +Function 407: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 407: CodepointToUTF8() (2 input parameters) +Function 408: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 408: TextCopy() (2 input parameters) +Function 409: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 409: TextIsEqual() (2 input parameters) +Function 410: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 410: TextLength() (1 input parameters) +Function 411: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 411: TextFormat() (2 input parameters) +Function 412: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 412: TextSubtext() (3 input parameters) +Function 413: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 413: TextReplace() (3 input parameters) +Function 414: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 414: TextInsert() (3 input parameters) +Function 415: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 415: TextJoin() (3 input parameters) +Function 416: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 416: TextSplit() (3 input parameters) +Function 417: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 417: TextAppend() (3 input parameters) +Function 418: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 418: TextFindIndex() (2 input parameters) +Function 419: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 419: TextToUpper() (1 input parameters) +Function 420: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 420: TextToLower() (1 input parameters) +Function 421: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 421: TextToPascal() (1 input parameters) +Function 422: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 422: TextToInteger() (1 input parameters) +Function 423: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 423: TextToFloat() (1 input parameters) +Function 424: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 424: DrawLine3D() (3 input parameters) +Function 425: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 425: DrawPoint3D() (2 input parameters) +Function 426: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 426: DrawCircle3D() (5 input parameters) +Function 427: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3660,7 +3665,7 @@ Function 426: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 427: DrawTriangle3D() (4 input parameters) +Function 428: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3668,14 +3673,14 @@ Function 427: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 428: DrawTriangleStrip3D() (3 input parameters) +Function 429: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 429: DrawCube() (5 input parameters) +Function 430: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3684,14 +3689,14 @@ Function 429: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 430: DrawCubeV() (3 input parameters) +Function 431: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 431: DrawCubeWires() (5 input parameters) +Function 432: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3700,21 +3705,21 @@ Function 431: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 432: DrawCubeWiresV() (3 input parameters) +Function 433: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 433: DrawSphere() (3 input parameters) +Function 434: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 434: DrawSphereEx() (5 input parameters) +Function 435: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3723,7 +3728,7 @@ Function 434: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 435: DrawSphereWires() (5 input parameters) +Function 436: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3732,7 +3737,7 @@ Function 435: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 436: DrawCylinder() (6 input parameters) +Function 437: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3742,7 +3747,7 @@ Function 436: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 437: DrawCylinderEx() (6 input parameters) +Function 438: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3752,7 +3757,7 @@ Function 437: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 438: DrawCylinderWires() (6 input parameters) +Function 439: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3762,7 +3767,7 @@ Function 438: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 439: DrawCylinderWiresEx() (6 input parameters) +Function 440: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3772,7 +3777,7 @@ Function 439: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 440: DrawCapsule() (6 input parameters) +Function 441: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3782,7 +3787,7 @@ Function 440: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 441: DrawCapsuleWires() (6 input parameters) +Function 442: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3792,51 +3797,51 @@ Function 441: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 442: DrawPlane() (3 input parameters) +Function 443: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 443: DrawRay() (2 input parameters) +Function 444: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 444: DrawGrid() (2 input parameters) +Function 445: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 445: LoadModel() (1 input parameters) +Function 446: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 446: LoadModelFromMesh() (1 input parameters) +Function 447: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 447: IsModelReady() (1 input parameters) +Function 448: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 448: UnloadModel() (1 input parameters) +Function 449: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 449: GetModelBoundingBox() (1 input parameters) +Function 450: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 450: DrawModel() (4 input parameters) +Function 451: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3844,7 +3849,7 @@ Function 450: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 451: DrawModelEx() (6 input parameters) +Function 452: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3854,7 +3859,7 @@ Function 451: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 452: DrawModelWires() (4 input parameters) +Function 453: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3862,7 +3867,7 @@ Function 452: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 453: DrawModelWiresEx() (6 input parameters) +Function 454: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3872,13 +3877,13 @@ Function 453: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 454: DrawBoundingBox() (2 input parameters) +Function 455: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 455: DrawBillboard() (5 input parameters) +Function 456: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3887,7 +3892,7 @@ Function 455: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 456: DrawBillboardRec() (6 input parameters) +Function 457: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3897,7 +3902,7 @@ Function 456: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 457: DrawBillboardPro() (9 input parameters) +Function 458: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3910,13 +3915,13 @@ Function 457: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 458: UploadMesh() (2 input parameters) +Function 459: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 459: UpdateMeshBuffer() (5 input parameters) +Function 460: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3925,19 +3930,19 @@ Function 459: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 460: UnloadMesh() (1 input parameters) +Function 461: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 461: DrawMesh() (3 input parameters) +Function 462: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 462: DrawMeshInstanced() (4 input parameters) +Function 463: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3945,35 +3950,35 @@ Function 462: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 463: GetMeshBoundingBox() (1 input parameters) +Function 464: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 464: GenMeshTangents() (1 input parameters) +Function 465: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 465: ExportMesh() (2 input parameters) +Function 466: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 466: ExportMeshAsCode() (2 input parameters) +Function 467: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 467: GenMeshPoly() (2 input parameters) +Function 468: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 468: GenMeshPlane() (4 input parameters) +Function 469: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3981,42 +3986,42 @@ Function 468: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 469: GenMeshCube() (3 input parameters) +Function 470: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 470: GenMeshSphere() (3 input parameters) +Function 471: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 471: GenMeshHemiSphere() (3 input parameters) +Function 472: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 472: GenMeshCylinder() (3 input parameters) +Function 473: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 473: GenMeshCone() (3 input parameters) +Function 474: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 474: GenMeshTorus() (4 input parameters) +Function 475: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4024,7 +4029,7 @@ Function 474: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 475: GenMeshKnot() (4 input parameters) +Function 476: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4032,84 +4037,84 @@ Function 475: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 476: GenMeshHeightmap() (2 input parameters) +Function 477: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 477: GenMeshCubicmap() (2 input parameters) +Function 478: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 478: LoadMaterials() (2 input parameters) +Function 479: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 479: LoadMaterialDefault() (0 input parameters) +Function 480: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 480: IsMaterialReady() (1 input parameters) +Function 481: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 481: UnloadMaterial() (1 input parameters) +Function 482: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 482: SetMaterialTexture() (3 input parameters) +Function 483: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 483: SetModelMeshMaterial() (3 input parameters) +Function 484: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 484: LoadModelAnimations() (2 input parameters) +Function 485: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 485: UpdateModelAnimation() (3 input parameters) +Function 486: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 486: UnloadModelAnimation() (1 input parameters) +Function 487: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 487: UnloadModelAnimations() (2 input parameters) +Function 488: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 488: IsModelAnimationValid() (2 input parameters) +Function 489: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 489: CheckCollisionSpheres() (4 input parameters) +Function 490: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4117,40 +4122,40 @@ Function 489: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 490: CheckCollisionBoxes() (2 input parameters) +Function 491: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 491: CheckCollisionBoxSphere() (3 input parameters) +Function 492: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 492: GetRayCollisionSphere() (3 input parameters) +Function 493: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 493: GetRayCollisionBox() (2 input parameters) +Function 494: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 494: GetRayCollisionMesh() (3 input parameters) +Function 495: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 495: GetRayCollisionTriangle() (4 input parameters) +Function 496: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4158,7 +4163,7 @@ Function 495: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 496: GetRayCollisionQuad() (5 input parameters) +Function 497: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4167,158 +4172,158 @@ Function 496: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 497: InitAudioDevice() (0 input parameters) +Function 498: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 498: CloseAudioDevice() (0 input parameters) +Function 499: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 499: IsAudioDeviceReady() (0 input parameters) +Function 500: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 500: SetMasterVolume() (1 input parameters) +Function 501: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 501: GetMasterVolume() (0 input parameters) +Function 502: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 502: LoadWave() (1 input parameters) +Function 503: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 503: LoadWaveFromMemory() (3 input parameters) +Function 504: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 504: IsWaveReady() (1 input parameters) +Function 505: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 505: LoadSound() (1 input parameters) +Function 506: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 506: LoadSoundFromWave() (1 input parameters) +Function 507: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 507: LoadSoundAlias() (1 input parameters) +Function 508: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 508: IsSoundReady() (1 input parameters) +Function 509: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 509: UpdateSound() (3 input parameters) +Function 510: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 510: UnloadWave() (1 input parameters) +Function 511: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 511: UnloadSound() (1 input parameters) +Function 512: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 512: UnloadSoundAlias() (1 input parameters) +Function 513: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 513: ExportWave() (2 input parameters) +Function 514: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 514: ExportWaveAsCode() (2 input parameters) +Function 515: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 515: PlaySound() (1 input parameters) +Function 516: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 516: StopSound() (1 input parameters) +Function 517: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 517: PauseSound() (1 input parameters) +Function 518: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 518: ResumeSound() (1 input parameters) +Function 519: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 519: IsSoundPlaying() (1 input parameters) +Function 520: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 520: SetSoundVolume() (2 input parameters) +Function 521: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 521: SetSoundPitch() (2 input parameters) +Function 522: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 522: SetSoundPan() (2 input parameters) +Function 523: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 523: WaveCopy() (1 input parameters) +Function 524: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 524: WaveCrop() (3 input parameters) +Function 525: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 525: WaveFormat() (4 input parameters) +Function 526: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4326,203 +4331,203 @@ Function 525: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 526: LoadWaveSamples() (1 input parameters) +Function 527: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 527: UnloadWaveSamples() (1 input parameters) +Function 528: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 528: LoadMusicStream() (1 input parameters) +Function 529: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 529: LoadMusicStreamFromMemory() (3 input parameters) +Function 530: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 530: IsMusicReady() (1 input parameters) +Function 531: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 531: UnloadMusicStream() (1 input parameters) +Function 532: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 532: PlayMusicStream() (1 input parameters) +Function 533: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 533: IsMusicStreamPlaying() (1 input parameters) +Function 534: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 534: UpdateMusicStream() (1 input parameters) +Function 535: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 535: StopMusicStream() (1 input parameters) +Function 536: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 536: PauseMusicStream() (1 input parameters) +Function 537: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 537: ResumeMusicStream() (1 input parameters) +Function 538: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 538: SeekMusicStream() (2 input parameters) +Function 539: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 539: SetMusicVolume() (2 input parameters) +Function 540: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 540: SetMusicPitch() (2 input parameters) +Function 541: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 541: SetMusicPan() (2 input parameters) +Function 542: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 542: GetMusicTimeLength() (1 input parameters) +Function 543: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 543: GetMusicTimePlayed() (1 input parameters) +Function 544: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 544: LoadAudioStream() (3 input parameters) +Function 545: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 545: IsAudioStreamReady() (1 input parameters) +Function 546: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 546: UnloadAudioStream() (1 input parameters) +Function 547: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 547: UpdateAudioStream() (3 input parameters) +Function 548: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 548: IsAudioStreamProcessed() (1 input parameters) +Function 549: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 549: PlayAudioStream() (1 input parameters) +Function 550: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 550: PauseAudioStream() (1 input parameters) +Function 551: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 551: ResumeAudioStream() (1 input parameters) +Function 552: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 552: IsAudioStreamPlaying() (1 input parameters) +Function 553: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 553: StopAudioStream() (1 input parameters) +Function 554: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 554: SetAudioStreamVolume() (2 input parameters) +Function 555: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 555: SetAudioStreamPitch() (2 input parameters) +Function 556: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 556: SetAudioStreamPan() (2 input parameters) +Function 557: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 557: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 558: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 558: SetAudioStreamCallback() (2 input parameters) +Function 559: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 559: AttachAudioStreamProcessor() (2 input parameters) +Function 560: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 560: DetachAudioStreamProcessor() (2 input parameters) +Function 561: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 561: AttachAudioMixedProcessor() (1 input parameters) +Function 562: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 562: DetachAudioMixedProcessor() (1 input parameters) +Function 563: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index e079a198e..e7fa157b2 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -1075,6 +1075,9 @@ + + + From 2e38069475d78c75580e95c23c01216dda185ee4 Mon Sep 17 00:00:00 2001 From: Dylan Date: Wed, 29 May 2024 11:07:28 -0400 Subject: [PATCH 364/790] [build.zig] Fix Zig emscripten build (#4012) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix for issue #4010 Split the code for Zig's master branch and >= 0.12.0 due to changes in https://github.com/ziglang/zig/pull/19623 * Restore the cache_include path which was removed in error Accidently removed a couple lines I didn't mean to 🙈 --- src/build.zig | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/build.zig b/src/build.zig index d172b3c2a..51a8ab7b0 100644 --- a/src/build.zig +++ b/src/build.zig @@ -201,10 +201,15 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. const cache_include = std.fs.path.join(b.allocator, &.{ b.sysroot.?, "cache", "sysroot", "include" }) catch @panic("Out of memory"); defer b.allocator.free(cache_include); - var dir = std.fs.openDirAbsolute(cache_include, std.fs.Dir.OpenDirOptions{ .access_sub_paths = true, .no_follow = true }) catch @panic("No emscripten cache. Generate it!"); - dir.close(); - - raylib.addIncludePath(b.path(cache_include)); + if (comptime builtin.zig_version.minor > 12) { + var dir = std.fs.cwd().openDir(cache_include, std.fs.Dir.OpenDirOptions{ .access_sub_paths = true, .no_follow = true }) catch @panic("No emscripten cache. Generate it!"); + dir.close(); + raylib.addIncludePath(b.path(cache_include)); + } else { + var dir = std.fs.openDirAbsolute(cache_include, std.fs.Dir.OpenDirOptions{ .access_sub_paths = true, .no_follow = true }) catch @panic("No emscripten cache. Generate it!"); + dir.close(); + raylib.addIncludePath(.{ .path = cache_include }); + } }, else => { @panic("Unsupported OS"); From 2804e758694390d00a0784ebe761531f7021bfc9 Mon Sep 17 00:00:00 2001 From: DarkAssassin23 <15916504+DarkAssassin23@users.noreply.github.com> Date: Wed, 29 May 2024 11:22:59 -0400 Subject: [PATCH 365/790] [rtext] Added cast to ExportFontAsCode output to fix C++ compiler errors (#4013) --- src/rtext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 1ddb62509..5ebabc662 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1093,8 +1093,8 @@ bool ExportFontAsCode(Font font, const char *fileName) #else byteCount += sprintf(txtData + byteCount, " // Assign glyph recs and info data directly\n"); byteCount += sprintf(txtData + byteCount, " // WARNING: This font data must not be unloaded\n"); - byteCount += sprintf(txtData + byteCount, " font.recs = fontRecs_%s;\n", fileNamePascal); - byteCount += sprintf(txtData + byteCount, " font.glyphs = fontGlyphs_%s;\n\n", fileNamePascal); + byteCount += sprintf(txtData + byteCount, " font.recs = (Rectangle *)fontRecs_%s;\n", fileNamePascal); + byteCount += sprintf(txtData + byteCount, " font.glyphs = (GlyphInfo *)fontGlyphs_%s;\n\n", fileNamePascal); #endif byteCount += sprintf(txtData + byteCount, " return font;\n"); byteCount += sprintf(txtData + byteCount, "}\n"); From e37d19ab1eae7d4d0e9d3229c7b2ececf3efb61f Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 29 May 2024 17:28:55 +0200 Subject: [PATCH 366/790] REVIEWED: `ExportFontAsCode()`, avoid `const` #4013 --- src/rtext.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 5ebabc662..5ba4e8b6a 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1035,7 +1035,7 @@ bool ExportFontAsCode(Font font, const char *fileName) // Save font recs data byteCount += sprintf(txtData + byteCount, "// Font characters rectangles data\n"); - byteCount += sprintf(txtData + byteCount, "static const Rectangle fontRecs_%s[%i] = {\n", fileNamePascal, font.glyphCount); + byteCount += sprintf(txtData + byteCount, "static Rectangle fontRecs_%s[%i] = {\n", fileNamePascal, font.glyphCount); for (int i = 0; i < font.glyphCount; i++) { byteCount += sprintf(txtData + byteCount, " { %1.0f, %1.0f, %1.0f , %1.0f },\n", font.recs[i].x, font.recs[i].y, font.recs[i].width, font.recs[i].height); @@ -1047,7 +1047,7 @@ bool ExportFontAsCode(Font font, const char *fileName) // it could be generated from image and recs byteCount += sprintf(txtData + byteCount, "// Font glyphs info data\n"); byteCount += sprintf(txtData + byteCount, "// NOTE: No glyphs.image data provided\n"); - byteCount += sprintf(txtData + byteCount, "static const GlyphInfo fontGlyphs_%s[%i] = {\n", fileNamePascal, font.glyphCount); + byteCount += sprintf(txtData + byteCount, "static GlyphInfo fontGlyphs_%s[%i] = {\n", fileNamePascal, font.glyphCount); for (int i = 0; i < font.glyphCount; i++) { byteCount += sprintf(txtData + byteCount, " { %i, %i, %i, %i, { 0 }},\n", font.glyphs[i].value, font.glyphs[i].offsetX, font.glyphs[i].offsetY, font.glyphs[i].advanceX); @@ -1093,8 +1093,8 @@ bool ExportFontAsCode(Font font, const char *fileName) #else byteCount += sprintf(txtData + byteCount, " // Assign glyph recs and info data directly\n"); byteCount += sprintf(txtData + byteCount, " // WARNING: This font data must not be unloaded\n"); - byteCount += sprintf(txtData + byteCount, " font.recs = (Rectangle *)fontRecs_%s;\n", fileNamePascal); - byteCount += sprintf(txtData + byteCount, " font.glyphs = (GlyphInfo *)fontGlyphs_%s;\n\n", fileNamePascal); + byteCount += sprintf(txtData + byteCount, " font.recs = fontRecs_%s;\n", fileNamePascal); + byteCount += sprintf(txtData + byteCount, " font.glyphs = fontGlyphs_%s;\n\n", fileNamePascal); #endif byteCount += sprintf(txtData + byteCount, " return font;\n"); byteCount += sprintf(txtData + byteCount, "}\n"); From c04629f6d46fbea68a69a3b376c02137a325ca53 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 29 May 2024 17:38:19 +0200 Subject: [PATCH 367/790] Update raylib.h --- src/raylib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index e810dcdca..b870cc6ca 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1124,7 +1124,7 @@ RLAPI const char *GetWorkingDirectory(void); // Get current RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory -RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths From f2344cd08944a7be63b9e5ebf134daf5ff1cd84f Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Wed, 29 May 2024 23:44:20 +0200 Subject: [PATCH 368/790] review color tint functions (#4015) --- src/rtextures.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 571387f23..2f02afece 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2667,17 +2667,12 @@ void ImageColorTint(Image *image, Color color) Color *pixels = LoadImageColors(*image); - float cR = (float)color.r/255; - float cG = (float)color.g/255; - float cB = (float)color.b/255; - float cA = (float)color.a/255; - for (int i = 0; i < image->width*image->height; i++) { - unsigned char r = (unsigned char)(((float)pixels[i].r/255*cR)*255.0f); - unsigned char g = (unsigned char)(((float)pixels[i].g/255*cG)*255.0f); - unsigned char b = (unsigned char)(((float)pixels[i].b/255*cB)*255.0f); - unsigned char a = (unsigned char)(((float)pixels[i].a/255*cA)*255.0f); + unsigned char r = (unsigned char)(((int)pixels[i].r*(int)color.r)/255); + unsigned char g = (unsigned char)(((int)pixels[i].g*(int)color.g)/255); + unsigned char b = (unsigned char)(((int)pixels[i].b*(int)color.b)/255); + unsigned char a = (unsigned char)(((int)pixels[i].a*(int)color.a)/255); pixels[i].r = r; pixels[i].g = g; @@ -4639,15 +4634,10 @@ Color ColorTint(Color color, Color tint) { Color result = color; - float cR = (float)tint.r/255; - float cG = (float)tint.g/255; - float cB = (float)tint.b/255; - float cA = (float)tint.a/255; - - unsigned char r = (unsigned char)(((float)color.r/255*cR)*255.0f); - unsigned char g = (unsigned char)(((float)color.g/255*cG)*255.0f); - unsigned char b = (unsigned char)(((float)color.b/255*cB)*255.0f); - unsigned char a = (unsigned char)(((float)color.a/255*cA)*255.0f); + unsigned char r = (unsigned char)(((int)color.r*(int)tint.r)/255); + unsigned char g = (unsigned char)(((int)color.g*(int)tint.g)/255); + unsigned char b = (unsigned char)(((int)color.b*(int)tint.b)/255); + unsigned char a = (unsigned char)(((int)color.a*(int)tint.a)/255); result.r = r; result.g = g; From d7a8af144d066e28e821916ac10e66407e7bfa05 Mon Sep 17 00:00:00 2001 From: vaezim <91099081+vaezim@users.noreply.github.com> Date: Thu, 30 May 2024 02:22:07 -0400 Subject: [PATCH 369/790] Fix typos in markdowns and comments, Fix invalid links in HISTORY.md (#4017) --- BINDINGS.md | 2 +- CHANGELOG | 2 +- CONTRIBUTING.md | 12 +- CONVENTIONS.md | 4 +- FAQ.md | 20 +-- HISTORY.md | 150 +++++++++--------- ROADMAP.md | 4 +- examples/README.md | 2 +- examples/core/core_custom_frame_control.c | 2 +- .../raylib_npp_parser/raylib_npp.xml | 4 +- .../raylib_npp_parser/raylib_to_parse.h | 2 +- src/config.h | 2 +- src/raylib.h | 6 +- 13 files changed, 106 insertions(+), 106 deletions(-) diff --git a/BINDINGS.md b/BINDINGS.md index 118794d52..81bc6abda 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -1,6 +1,6 @@ # raylib bindings and wrappers -Some people ported raylib to other languages in form of bindings or wrappers to the library. Here is a list with all the ports available. Feel free to send a PR if you know of any binding/wrapper not in this list. +Some people ported raylib to other languages in the form of bindings or wrappers to the library. Here is a list with all the ports available. Feel free to send a PR if you know of any binding/wrapper not in this list. ### Language Bindings diff --git a/CHANGELOG b/CHANGELOG index 77df794db..2141926ce 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -642,7 +642,7 @@ Release: raylib 4.0 - 8th Anniversary Edition (05 November 2021) KEY CHANGES: - Naming consistency and coherency: Complete review of the library: syntax, naming, comments, decriptions, logs... - Event Automation System: Support for input events recording and automatic re-playing, useful for automated testing and more! - - Custom game-loop control: Intended for advance users that want to control the events polling and the timming mechanisms + - Custom game-loop control: Intended for advanced users that want to control the events polling and the timming mechanisms - rlgl 4.0: Completely decoupling from platform layer and raylib, intended for standalone usage as single-file header-only - raymath 1.5: Complete review following new conventions, to make it more portable and self-contained - raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 644a89bf4..78f953baf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ Do you enjoy raylib and want to contribute? Nice! You can help with the followin - `Testing` - Can you find some bugs in raylib? This document contains a set of guidelines to contribute to the project. These are mostly guidelines, not rules. -Use your best judgement, and feel free to propose changes to this document in a pull request. +Use your best judgment, and feel free to propose changes to this document in a pull request. ### raylib philosophy @@ -28,14 +28,14 @@ Use your best judgement, and feel free to propose changes to this document in a - [raylib license](LICENSE) - [raylib roadmap](ROADMAP.md) -[raylib Wiki](https://github.com/raysan5/raylib/wiki) contains some information about the library and is open to anyone for edit. +[raylib Wiki](https://github.com/raysan5/raylib/wiki) contains some information about the library and is open to anyone to edit. Feel free to review it if required, just take care not to break something. ### raylib C coding conventions Despite being written in C, raylib does not follow the standard Hungarian notation for C, it [follows Pascal-case/camel-case notation](https://github.com/raysan5/raylib/wiki/raylib-coding-conventions), -more common on C# language. All code formatting decisions have been carefully taken +more common in C# language. All code formatting decisions have been carefully taken to make it easier for students/users to read, write and understand code. Source code is extensively commented for that purpose, raylib primary learning method is: @@ -46,12 +46,12 @@ For detailed information on building raylib and examples, please check [raylib W ### Opening new Issues -To open new issue for raylib (bug, enhancement, discussion...), just try to follow these rules: +To open new issues for raylib (bug, enhancement, discussion...), just try to follow these rules: - Make sure the issue has not already been reported before by searching on GitHub under Issues. - If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample demonstrating the unexpected behavior. - - If applies, attach some screenshot of the issue and a .zip file with the code sample and required resources. + - If applicable, attach some screenshot of the issue and a .zip file with the code sample and required resources. - On issue description, add a brackets tag about the raylib module that relates to this issue. If don't know which module, just report the issue, I will review it. - You can check other issues to see how is being done! @@ -60,7 +60,7 @@ To open new issue for raylib (bug, enhancement, discussion...), just try to foll - Make sure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. - Don't send big pull requests (lots of changelists), they are difficult to review. It's better to send small pull requests, one at a time. - - Verify that changes don't break the build (at least on Windows platform). As many platforms where you can test it, the better, but don't worry + - Verify that changes don't break the build (at least on Windows platform). The more platforms where you can test it, the better, but don't worry if you cannot test all the platforms. ### Contact information diff --git a/CONVENTIONS.md b/CONVENTIONS.md index 37db230e5..b7ace0275 100644 --- a/CONVENTIONS.md +++ b/CONVENTIONS.md @@ -1,6 +1,6 @@ ## C Coding Style Conventions -Here it is a list with some of the code conventions used by raylib: +Here is a list with some of the code conventions used by raylib: Code element | Convention | Example --- | :---: | --- @@ -79,7 +79,7 @@ _NOTE: Avoid any space or special character in the files/dir naming!_ - Data files should be organized by context and usage in the game, think about the loading requirements for data and put all the resources that need to be loaded at the same time together. - Use descriptive names for the files, it would be perfect if just reading the name of the file, it was possible to know what is that file and where fits in the game. - - Here it is an example, note that some resources require to be loaded all at once while other require to be loaded only at initialization (gui, font). + - Here is an example, note that some resources require to be loaded all at once while other require to be loaded only at initialization (gui, font). ``` resources/audio/fx/long_jump.wav diff --git a/FAQ.md b/FAQ.md index be06657b9..d2f9308ac 100644 --- a/FAQ.md +++ b/FAQ.md @@ -40,13 +40,13 @@ Yes, raylib can be used to create any kind of application, not just videogames. ### How can I learn to use raylib? Is there some official documentation or tutorials? -raylib does not provide a "standard" API reference documentation like other libraries, all of the raylib functionality is exposed in a simple [cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html). Most of the functions are self-explanatory and the required parameters are very intuitive. It's also highly recommended to take a look to [`raylib.h`](https://github.com/raysan5/raylib/blob/master/src/raylib.h) header file or even the source code, that is very clean and organized, intended for teaching. +raylib does not provide a "standard" API reference documentation like other libraries, all of the raylib functionality is exposed in a simple [cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html). Most of the functions are self-explanatory and the required parameters are very intuitive. It's also highly recommended to take a look at [`raylib.h`](https://github.com/raysan5/raylib/blob/master/src/raylib.h) header file or even the source code, that is very clean and organized, intended for teaching. raylib also provides a big [collection of examples](https://www.raylib.com/examples.html), to showcase the multiple functionality usage (+120 examples). Examples are categorized by the internal module functionality and also define an estimated level of difficulty to guide the users checking them. There is also a [FAQ on the raylib Wiki](https://github.com/raysan5/raylib/wiki/Frequently-Asked-Questions) with common technical questions. -There are also many tutorials on the internet and YouTube created by the growing raylib community along the years. +There are also many tutorials on the internet and YouTube created by the growing raylib community over the years. [raylib Discord Community](https://discord.gg/raylib) is also a great place to join and ask questions, the community is very friendly and always ready to help. @@ -56,7 +56,7 @@ raylib is [free and open source](https://github.com/raysan5/raylib). Anyone can ### What is the raylib license? -raylib source code is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](https://github.com/raysan5/raylib/blob/master/LICENSE) for further details. +raylib source code is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed-source software. Check [LICENSE](https://github.com/raysan5/raylib/blob/master/LICENSE) for further details. ### What platforms are supported by raylib? @@ -90,25 +90,25 @@ I personally consider raylib a graphics library with some high-level features ra ### What does raylib provide that other engines or libraries don't? -I would say "simplicity" and "enjoyment" at a really low-level of coding but actually is up to the user to discover it, to try it and to see if it fits their needs. raylib is not good for everyone but it's worth a try. +I would say "simplicity" and "enjoyment" at a really low level of coding but actually is up to the user to discover it, to try it and to see if it fits their needs. raylib is not good for everyone but it's worth a try. ### How does raylib compare to Unity/Unreal/Godot? Those engines are usually big and complex to use, providing lot of functionality. They require some time to learn and test, they usually abstract many parts of the game development process and they usually provide a set of tools to assist users on their creations (like a GUI editor). -raylib is a simple programming library, with no integrated tools or editors. It gives full control to users at a very low-level to create graphics applications in a more handmade way. +raylib is a simple programming library, with no integrated tools or editors. It gives full control to users at a very low level to create graphics applications in a more handmade way. ### What development tools are required for raylib? To develop raylib programs you only need a text editor (with recommended code syntax highlighting) and a compiler. -A [raylib Windows Installer](https://raysan5.itch.io/raylib) package is distributed including the Notepad++ editor and MinGW (GCC) compiler pre-configured for Windows for new users as an starter-pack but for more advance configurations with other editors/compilers, [raylib Wiki](https://github.com/raysan5/raylib/wiki) provides plenty of configuration tutorials. +A [raylib Windows Installer](https://raysan5.itch.io/raylib) package is distributed including the Notepad++ editor and MinGW (GCC) compiler pre-configured for Windows for new users as an starter-pack but for more advanced configurations with other editors/compilers, [raylib Wiki](https://github.com/raysan5/raylib/wiki) provides plenty of configuration tutorials. ### What are raylib's external dependencies? -raylib is self-contained, it has no external dependencies to build it. But internally raylib uses several libraries from other developers, mostly used to load specific file-formats. +raylib is self-contained, it has no external dependencies to build it. But internally raylib uses several libraries from other developers, mostly used to load specific file formats. -A detailed list of raylib dependencies could be found on the [raylib Wiki](https://github.com/raysan5/raylib/wiki/raylib-dependencies). +A detailed list of raylib dependencies can be found on the [raylib Wiki](https://github.com/raysan5/raylib/wiki/raylib-dependencies). ### Can I use raylib with other technologies or libraries? @@ -129,10 +129,10 @@ No, raylib is built on top of OpenGL API, and there are currently no plans to su ### What could I expect to see in raylib in the future? -The main focus of the library is simplicity. Most of the efforts are invested in maintainability and bug-fixing. Despite new small features are regularly added, it's not the objective for raylib to become a full-featured engine. Personally I prefer to keep it small and enjoyable. +The main focus of the library is simplicity. Most of the efforts are invested in maintainability and bug-fixing. Despite new small features being regularly added, it's not the objective for raylib to become a full-featured engine. Personally I prefer to keep it small and enjoyable. ### Who are the raylib developers? -The main raylib developer and maintainer is [Ramon Santamaria](https://www.linkedin.com/in/raysan/) but there's 360+ contributors that have helped by adding new features, testing the library and solving issues in the 9+ years life of raylib. +The main raylib developer and maintainer is [Ramon Santamaria](https://www.linkedin.com/in/raysan/) but there are 360+ contributors that have helped by adding new features, testing the library and solving issues in the 9+ years life of raylib. The full list of raylib contributors can be seen [on GitHub](https://github.com/raysan5/raylib/graphs/contributors). diff --git a/HISTORY.md b/HISTORY.md index de14b651c..035054dbe 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,13 +3,13 @@ introduction ------------ -I started developing videogames in 2006 and some years later I started teaching videogames development to young people with artistic profile, most of students had never written a single line of code. +I started developing videogames in 2006 and some years later I started teaching videogames development to young people with artistic profiles, most of students had never written a single line of code. I decided to start with C language basis and, after searching for the most simple and easy-to-use library to teach videogames programming, I found [WinBGI](https://winbgim.codecutter.org/); it was great and it worked very well with students, in just a couple of weeks, those students that had never written a single line of code were able to program (and understand) a simple PONG game, some of them even a BREAKOUT! -But WinBGI was not the clearer and most organized library for my taste. There were lots of things I found confusing and some function names were not clear enough for most of the students; not to mention the lack of transparencies support and no hardware acceleration. +But WinBGI was not the clearest and most organized library for my taste. There were lots of things I found confusing and some function names were not clear enough for most of the students; not to mention the lack of transparencies support and no hardware acceleration. -So, I decided to create my own library, hardware accelerated, clear function names, quite organized, well structured, plain C coding and, the most important, primarily intended to learn videogames programming. +So, I decided to create my own library, hardware accelerated, clear function names, quite organized, well structured, plain C coding and, most importantly, primarily intended to learn videogames programming. My previous videogames development experience was mostly in C# and [XNA](https://en.wikipedia.org/wiki/Microsoft_XNA) and I really loved it, so, I decided to use C# language style notation and XNA naming conventions. That way, students were able to move from raylib to XNA, MonoGame or similar libs extremely easily. @@ -20,28 +20,28 @@ Enjoy it. notes on raylib 1.1 ------------------- -On April 2014, after 6 month of first raylib release, raylib 1.1 has been released. This new version presents a complete internal redesign of the library to support OpenGL 1.1, OpenGL 3.3+ and OpenGL ES 2.0. +On April 2014, after 6 months of first raylib release, raylib 1.1 was released. This new version presents a complete internal redesign of the library to support OpenGL 1.1, OpenGL 3.3+ and OpenGL ES 2.0. - A new module named [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) has been added to the library. This new module translates raylib-OpenGL-style immediate mode functions (i.e. rlVertex3f(), rlBegin(), ...) to different versions of OpenGL (1.1, 3.3+, ES2), selectable by one define. - [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) also comes with a second new module named [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h), which includes a bunch of useful functions for 3d-math with vectors, matrices and quaternions. -Some other big changes of this new version have been the support for OGG files loading and stream playing, and the support of DDS texture files (compressed and uncompressed) along with mipmaps support. +Some other big changes of this new version have been the support for OGG file loading and stream playing, and the support of DDS texture files (compressed and uncompressed) along with mipmaps support. -Lots of code changes and lot of testing have concluded in this amazing new raylib 1.1. +Lots of code changes and a lot of testing have concluded in this amazing new raylib 1.1. notes on raylib 1.2 ------------------- -On September 2014, after 5 month of raylib 1.1 release, it comes raylib 1.2. Again, this version presents a complete internal redesign of [core](https://github.com/raysan5/raylib/blob/master/src/rcore.c) module to support two new platforms: [Android](http://www.android.com/) and [Raspberry Pi](http://www.raspberrypi.org/). +On September 2014, after 5 months of raylib 1.1 release, it comes raylib 1.2. Again, this version presents a complete internal redesign of [core](https://github.com/raysan5/raylib/blob/master/src/rcore.c) module to support two new platforms: [Android](http://www.android.com/) and [Raspberry Pi](http://www.raspberrypi.org/). -It's been some month of really hard work to accomodate raylib to those new platforms while keeping it easy for the users. On Android, raylib manages internally the activity cicle, as well as the inputs; on Raspberry Pi, a complete raw input system has been written from scratch. +It's been some months of really hard work to accommodate raylib to those new platforms while keeping it easy for the users. On Android, raylib manages internally the activity cycle, as well as the inputs; on Raspberry Pi, a complete raw input system has been written from scratch. - - A new display initialization system has been created to support multiple resolutions, adding black bars if required; user only defines desired screen size and it gets properly displayed. + - A new display initialization system has been created to support multiple resolutions, adding black bars if required; the user only defines the desired screen size and it gets properly displayed. - Now raylib can easily deploy games to Android devices and Raspberry Pi (console mode). -Lots of code changes and lot of testing have concluded in this amazing new raylib 1.2. +Lots of code changes and a lot of testing have concluded in this amazing new raylib 1.2. In December 2014, new raylib 1.2.2 was published with support to compile directly for web (html5) using [emscripten](http://kripken.github.io/emscripten-site/) and [asm.js](http://asmjs.org/). @@ -50,26 +50,26 @@ notes on raylib 1.3 On September 2015, after 1 year of raylib 1.2 release, arrives raylib 1.3. This version adds shaders functionality, improves tremendously textures module and also provides some new modules (camera system, gestures system, immediate-mode gui). - - Shaders support is the biggest addition to raylib 1.3, with support for easy shaders loading and use. Loaded shaders can be attached to 3d models or used as fullscreen postrocessing effects. A bunch of postprocessing shaders are also included in this release, check raylib/shaders folder. + - Shaders support is the biggest addition to raylib 1.3, with support for easy shaders loading and use. Loaded shaders can be attached to 3d models or used as fullscreen post-processing effects. A bunch of postprocessing shaders are also included in this release, check raylib/shaders folder. - Textures module has grown to support most of the internal texture formats available in OpenGL (RGB565, RGB888, RGBA5551, RGBA4444, etc.), including compressed texture formats (DXT, ETC1, ETC2, ASTC, PVRT); raylib 1.3 can load .dds, .pkm, .ktx, .astc and .pvr files. - - A brand new [camera](https://github.com/raysan5/raylib/blob/master/src/rcamera.c) module offers to the user multiple preconfigured ready-to-use camera systems (free camera, 1st person, 3rd person). Camera modes are very easy to use, just check examples: [core_3d_camera_free.c](https://github.com/raysan5/raylib/blob/master/examples/core_3d_camera_free.c) and [core_3d_camera_first_person.c](https://github.com/raysan5/raylib/blob/master/examples/core_3d_camera_first_person.c). + - A brand new [camera](https://github.com/raysan5/raylib/blob/master/src/rcamera.h) module offers to the user multiple preconfigured ready-to-use camera systems (free camera, 1st person, 3rd person). Camera modes are very easy to use, just check examples: [core_3d_camera_free.c](https://github.com/raysan5/raylib/blob/master/examples/core/core_3d_camera_free.c) and [core_3d_camera_first_person.c](https://github.com/raysan5/raylib/blob/master/examples/core/core_3d_camera_first_person.c). - New [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.h) module simplifies gestures detection on Android and HTML5 programs. - - [raygui](https://github.com/raysan5/raylib/blob/master/src/raygui.h), the new immediate-mode GUI module offers a set of functions to create simple user interfaces, primary intended for tools development. It's still in experimental state but already fully functional. + - [raygui](https://github.com/raysan5/raylib/blob/master/examples/shapes/raygui.h), the new immediate-mode GUI module offers a set of functions to create simple user interfaces, primarily intended for tools development. It's still in an experimental state but already fully functional. Most of the examples have been completely rewritten and +10 new examples have been added to show the new raylib features. -Lots of code changes and lot of testing have concluded in this amazing new raylib 1.3. +Lots of code changes and a lot of testing have concluded in this amazing new raylib 1.3. notes on raylib 1.4 ------------------- On February 2016, after 4 months of raylib 1.3 release, it comes raylib 1.4. For this new version, lots of parts of the library have been reviewed, lots of bugs have been solved and some interesting features have been added. - - First big addition is a set of [Image manipulation functions](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L673) have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. Now a basic image processing can be done before converting the image to texture for usage. + - First big addition is a set of [Image manipulation functions](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L1331) that have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. Now basic image processing can be done before converting the image to texture for usage. - SpriteFonts system has been improved, adding support for AngelCode fonts (.fnt) and TrueType Fonts (using [stb_truetype](https://github.com/nothings/stb/blob/master/stb_truetype.h) helper library). Now raylib can read standard .fnt font data and also generate at loading a SpriteFont from a TTF file. @@ -77,12 +77,12 @@ On February 2016, after 4 months of raylib 1.3 release, it comes raylib 1.4. For - [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h) module has been reviewed; some bugs have been solved and the module has been converted to a header-only file for easier portability, optionally, functions can also be used as inline. - - [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.c) module has redesigned and simplified, now it can process touch events from any source, including mouse. This way, gestures system can be used on any platform providing an unified way to work with inputs and allowing the user to create multiplatform games with only one source code. + - [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.h) module has been redesigned and simplified, now it can process touch events from any source, including the mouse. This way, gestures system can be used on any platform providing a unified way to work with inputs and allowing the user to create multiplatform games with only one source code. - Raspberry Pi input system has been redesigned to better read raw inputs using generic Linux event handlers (keyboard:`stdin`, mouse:`/dev/input/mouse0`, gamepad:`/dev/input/js0`). Gamepad support has also been added (experimental). Other important improvements are the functional raycast system for 3D picking, including some ray collision-detection functions, -and the addition of two simple functions for persistent data storage. Now raylib user can save and load game data in a file (only some platforms supported). A simple [easings](https://github.com/raysan5/raylib/blob/master/src/easings.h) module has also been added for values animation. +and the addition of two simple functions for persistent data storage. Now raylib users can save and load game data in a file (only some platforms are supported). A simple [easings](https://github.com/raysan5/raylib/blob/master/examples/shapes/reasings.h) module has also been added for values animation. Up to 8 new code examples have been added to show the new raylib features and +10 complete game samples have been provided to learn how to create some classic games like Arkanoid, Asteroids, Missile Commander, Snake or Tetris. @@ -94,36 +94,36 @@ notes on raylib 1.5 On July 2016, after 5 months of raylib 1.4 release, arrives raylib 1.5. This new version is the biggest boost of the library until now, lots of parts of the library have been redesigned, lots of bugs have been solved and some **AMAZING** new features have been added. - - VR support: raylib supports **Oculus Rift CV1**, one of the most anticipated VR devices in the market. Additionally, raylib supports simulated VR stereo rendering, independent of the VR device; it means, raylib can generate stereo renders with custom head-mounted-display device parameteres, that way, any VR device in the market can be **simulated in any platform** just configuring device parameters (and consequently, lens distortion). To enable VR is [extremely easy](https://github.com/raysan5/raylib/blob/master/examples/core_oculus_rift.c). + - VR support: raylib supports **Oculus Rift CV1**, one of the most anticipated VR devices in the market. Additionally, raylib supports simulated VR stereo rendering, independent of the VR device; it means, raylib can generate stereo renders with custom head-mounted-display device parameters, that way, any VR device in the market can be **simulated in any platform** just configuring device parameters (and consequently, lens distortion). To enable VR is [extremely easy](https://github.com/raysan5/raylib/blob/master/examples/core_oculus_rift.c). - New materials system: now raylib supports standard material properties for 3D models, including diffuse-ambient-specular colors and diffuse-normal-specular textures. Just assign values to standard material and everything is processed internally. - - New lighting system: added support for up to 8 configurable lights and 3 light types: **point**, **directional** and **spot** lights. Just create a light, configure its parameters and raylib manages render internally for every 3d object using standard material. + - New lighting system: added support for up to 8 configurable lights and 3 light types: **point**, **directional** and **spot** lights. Just create a light, configure its parameters and raylib manages to render internally for every 3d object using standard material. - Complete gamepad support on Raspberry Pi: Gamepad system has been completely redesigned. Now multiple gamepads can be easily configured and used; gamepad data is read and processed in raw mode in a second thread. - - Redesigned physics module: [physac](https://github.com/raysan5/raylib/blob/master/src/physac.h) module has been converted to header only and usage [has been simplified](https://github.com/raysan5/raylib/blob/master/examples/physics_basic_rigidbody.c). Performance has also been singnificantly improved, now physic objects are managed internally in a second thread. + - Redesigned physics module: [physac](https://github.com/raysan5/raylib/blob/master/src/physac.h) module has been converted to header only and usage [has been simplified](https://github.com/raysan5/raylib/blob/master/examples/physics_basic_rigidbody.c). Performance has also been significantly improved, now physic objects are managed internally in a second thread. - - Audio chiptunese support and mixing channels: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels are now also supported. All this features thanks to the amazing work of @kd7tck. + - Audio chiptunes support and mixing channels: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels are now also supported. All these features thanks to the amazing work of @kd7tck. -Other additions include a [2D camera system](https://github.com/raysan5/raylib/blob/master/examples/core_2d_rcamera.c), render textures for offline render (and most comprehensive [postprocessing](https://github.com/raysan5/raylib/blob/master/examples/shaders_postprocessing.c)) or support for legacy OpenGL 2.1 on desktop platforms. +Other additions include a [2D camera system](https://github.com/raysan5/raylib/blob/master/examples/core/core_2d_rcamera.c), render textures for offline render (and most comprehensive [postprocessing](https://github.com/raysan5/raylib/blob/master/examples/shaders/shaders_postprocessing.c)) or support for legacy OpenGL 2.1 on desktop platforms. -This new version is so massive that is difficult to list all the improvements, most of raylib modules have been reviewed and [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c) module has been completely redesigned to accomodate to new material-lighting systems and stereo rendering. You can check [CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG) file for a more detailed list of changes. +This new version is so massive that is difficult to list all the improvements, most of the raylib modules have been reviewed and [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) module has been completely redesigned to accommodate to new material-lighting systems and stereo rendering. You can check [CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG) file for a more detailed list of changes. -Up to 8 new code examples have been added to show the new raylib features and also some samples to show the usage of [rlgl](https://github.com/raysan5/raylib/blob/master/examples/rlgl_standalone.c) and [audio](https://github.com/raysan5/raylib/blob/master/examples/audio_standalone.c) raylib modules as standalone libraries. +Up to 8 new code examples have been added to show the new raylib features and also some samples to show the usage of [rlgl](https://github.com/raysan5/raylib/blob/master/examples/others/rlgl_standalone.c) and [audio](https://github.com/raysan5/raylib/blob/master/examples/audio_standalone.c) raylib modules as standalone libraries. Lots of code changes (+400 commits) and lots of hours of hard work have concluded in this amazing new raylib 1.5. notes on raylib 1.6 ------------------- -On November 2016, only 4 months after raylib 1.5, arrives raylib 1.6. This new version represents another big review of the library and includes some interesting additions. This version conmmemorates raylib 3rd anniversary (raylib 1.0 was published on November 2013) and it is a stepping stone for raylib future. raylib roadmap has been reviewed and redefined to focus on its primary objective: create a simple and easy-to-use library to learn videogames programming. Some of the new features: +On November 2016, only 4 months after raylib 1.5, arrives raylib 1.6. This new version represents another big review of the library and includes some interesting additions. This version commemorates raylib 3rd anniversary (raylib 1.0 was published on November 2013) and it is a stepping stone for raylib future. raylib roadmap has been reviewed and redefined to focus on its primary objective: create a simple and easy-to-use library to learn videogames programming. Some of the new features: - Complete [raylib Lua binding](https://github.com/raysan5/raylib-lua). All raylib functions plus the +60 code examples have been ported to Lua, now Lua users can enjoy coding videogames in Lua while using all the internal power of raylib. This addition also open the doors to Lua scripting support for a future raylib-based engine, being able to move game logic (Init, Update, Draw, De-Init) to Lua scripts while keep using raylib functionality. - - Completely redesigned [audio module](https://github.com/raysan5/raylib/blob/master/src/raudio.c). Based on the new direction taken in raylib 1.5, it has been further improved and more functionality added (+20 new functions) to allow raw audio processing and streaming. [FLAC file format support](https://github.com/raysan5/raylib/blob/master/src/external/dr_flac.h) has also been added. In the same line, [OpenAL Soft](https://github.com/kcat/openal-soft) backend is now provided as a static library in Windows to allow static linking and get ride of OpenAL32.dll. Now raylib Windows games are completey self-contained, no external libraries required any more! + - Completely redesigned [audio module](https://github.com/raysan5/raylib/blob/master/src/raudio.c). Based on the new direction taken in raylib 1.5, it has been further improved and more functionality added (+20 new functions) to allow raw audio processing and streaming. [FLAC file format support](https://github.com/raysan5/raylib/blob/master/src/external/dr_flac.h) has also been added. In the same line, [OpenAL Soft](https://github.com/kcat/openal-soft) backend is now provided as a static library in Windows to allow static linking and get ride of OpenAL32.dll. Now raylib Windows games are completely self-contained, no external libraries are required anymore! - - [Physac](https://github.com/victorfisac/Physac) module has been moved to its own repository and it has been improved A LOT, actually, library has been completely rewritten from scratch by [@victorfisac](https://github.com/victorfisac), multiple samples have been added together with countless new features to match current standard 2D physic libraries. Results are amazing! + - [Physac](https://github.com/victorfisac/Physac) module has been moved to its own repository and it has been improved A LOT, actually, the library has been completely rewritten from scratch by [@victorfisac](https://github.com/victorfisac), multiple samples have been added together with countless new features to match current standard 2D physic libraries. Results are amazing! - Camera and gestures modules have been reviewed, highly simplified and ported to single-file header-only libraries for easier portability and usage flexibility. Consequently, camera system usage has been simplified in all examples. @@ -131,41 +131,41 @@ On November 2016, only 4 months after raylib 1.5, arrives raylib 1.6. This new v - Improved textures and text functionality, adding new functions for texture filtering control and better TTF/AngelCode fonts loading and generation support. -Build system improvement. Added support for raylib dynamic library generation (raylib.dll) for users that prefer dynamic library linking. Also thinking on advance users, it has been added pre-configured [Visual Studio C++ 2015 solution](https://github.com/raysan5/raylib/tree/master/project/vs2015) with raylib project and C/C++ examples for users that prefer that professional IDE and compiler. +Build system improvement. Added support for raylib dynamic library generation (raylib.dll) for users that prefer dynamic library linking. Also thinking on advanced users, it has been added pre-configured [Visual Studio C++ 2015 solution](https://github.com/raysan5/raylib/tree/master/projects/vs2015) with raylib project and C/C++ examples for users that prefer that professional IDE and compiler. New examples, new functions, complete code-base review, multiple bugs corrected... this is raylib 1.6. Enjoy making games. notes on raylib 1.7 ------------------- -On May 2017, around 6 month after raylib 1.6, comes another raylib instalment, raylib 1.7. This time library has been improved a lot in terms of consistency and cleanness. As stated in [this patreon article](https://www.patreon.com/posts/raylib-future-7501034), this new raylib version has focused efforts in becoming more simple and easy-to-use to learn videogames programming. Some highlights of this new version are: +On May 2017, around 6 months after raylib 1.6, comes another raylib installment, raylib 1.7. This time library has been improved a lot in terms of consistency and cleanness. As stated in [this patreon article](https://www.patreon.com/posts/raylib-future-7501034), this new raylib version has focused efforts in becoming more simple and easy-to-use to learn videogames programming. Some highlights of this new version are: - More than 30 new functions added to the library, functions to control Window, utils to work with filenames and extensions, functions to draw lines with custom thick, mesh loading, functions for 3d ray collisions detailed detection, functions for VR simulation and much more... Just check [CHANGELOG](CHANGELOG) for a detailed list of additions! - - Support of [configuration flags](https://github.com/raysan5/raylib/issues/200) on every raylib module. Advance users can customize raylib just choosing desired features, defining some configuration flags on modules compilation. That way users can control library size and available functionality. + - Support of [configuration flags](https://github.com/raysan5/raylib/issues/200) on every raylib module. Advanced users can customize raylib just by choosing desired features, and defining some configuration flags on modules compilation. That way users can control library size and available functionality. - - Improved [build system](https://github.com/raysan5/raylib/blob/master/src/Makefile) for all supported platforms (Windows, Linux, OSX, RPI, Android, HTML5) with a unique Makefile to compile sources. Added support for Android compilation with a custom standalone toolchain and also multiple build compliation flags. + - Improved [build system](https://github.com/raysan5/raylib/blob/master/src/Makefile) for all supported platforms (Windows, Linux, OSX, RPI, Android, HTML5) with a unique Makefile to compile sources. Added support for Android compilation with a custom standalone toolchain and also multiple build compilation flags. - - New [examples](http://www.raylib.com/examples.html) and [sample games](http://www.raylib.com/games.html) added. All samples material has been reviewed, removing useless examples and adding more comprehensive ones; all material has been ported to latest raylib version and tested in multiple platforms. Examples folder structure has been improved and also build systems. + - New [examples](http://www.raylib.com/examples.html) and [sample games](http://www.raylib.com/games.html) added. All sample material has been reviewed, removing useless examples and adding more comprehensive ones; all material has been ported to the latest raylib version and tested on multiple platforms. Examples folder structure has been improved and also build systems. - - Improved library consistency and organization in general. Functions and parameters have been renamed, some parts of the library have been cleaned and simplyfied, some functions has been moved to examples (lighting, Oculus Rift CV1 support) towards a more generic library implementation. Lots of hours have been invested in this process... + - Improved library consistency and organization in general. Functions and parameters have been renamed, some parts of the library have been cleaned and simplified, some functions have been moved to examples (lighting, Oculus Rift CV1 support) towards a more generic library implementation. Lots of hours have been invested in this process... Some other features: Gamepad support on HTML5, RPI touch screen support, 32bit audio support, frames timing improvements, public log system, rres file format support, automatic GIF recording... -And here it is another version of **raylib, a simple and easy-to-use library to enjoy videogames programming**. Enjoy it. +And here is another version of **raylib, a simple and easy-to-use library to enjoy videogames programming**. Enjoy it. notes on raylib 1.8 ------------------- October 2017, around 5 months after latest raylib version, another release is published: raylib 1.8. Again, several modules of the library have been reviewed and some new functionality added. Main changes of this new release are: - - [Procedural image generation](https://github.com/raysan5/raylib/blob/master/examples/textures/textures_image_generation.c) function, a set of new functions have been added to generate gradients, checked, noise and cellular images from scratch. Image generation could be useful for certain textures or learning pourpouses. + - [Procedural image generation](https://github.com/raysan5/raylib/blob/master/examples/textures/textures_image_generation.c) function, a set of new functions have been added to generate gradients, checked, noise and cellular images from scratch. Image generation could be useful for certain textures or learning purposes. - [Parametric mesh generation](https://github.com/raysan5/raylib/blob/master/examples/models/models_mesh_generation.c) functions, create 3d meshes from scratch just defining a set of parameters, meshes like cube, sphere, cylinder, torus, knot and more can be very useful for prototyping or for lighting and texture testing. - - PBR Materials support, a completely redesigned shaders and material system allows advance materials definition and usage, with fully customizable shaders. Some new functions have been added to generate the environment textures required for PBR shading and a a new complete [PBR material example](https://github.com/raysan5/raylib/blob/master/examples/models/models_material_pbr.c) is also provided for reference. + - PBR Materials support, a completely redesigned shaders and material system allows advanced materials definition and usage, with fully customizable shaders. Some new functions have been added to generate the environment textures required for PBR shading and a a new complete [PBR material example](https://github.com/raysan5/raylib/blob/master/examples/models/models_material_pbr.c) is also provided for reference. - - Custom Android APK build pipeline with [simple Makefile](https://github.com/raysan5/raylib/blob/master/templates/simple_game/Makefile). Actually, full code building mechanism based on plain Makefile has been completely reviewed and Android building has been added for sources and also for examples and templates building into final APK package. This way, raylib Android building has been greatly simplified and integrated seamlessly into standard build scripts. + - Custom Android APK build pipeline with [simple Makefile](https://github.com/raysan5/raylib/blob/master/templates/simple_game/Makefile). Actually, full code building mechanism based on plain Makefile has been completely reviewed and Android building has been added for sources and also for examples and templates building into the final APK package. This way, raylib Android building has been greatly simplified and integrated seamlessly into standard build scripts. - [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) module has been completely reviewed and most of the functions renamed for consistency. This way, standalone usage of rlgl is promoted, with a [complete example provided](https://github.com/raysan5/raylib/blob/master/examples/others/rlgl_standalone.c). rlgl offers a pseudo-OpenGL 1.1 immediate-mode programming-style layer, with backends to multiple OpenGL versions. @@ -178,37 +178,37 @@ New installer provided, web updated, examples re-builded, documentation reviewed notes on raylib 2.0 ------------------- -It's been 9 month since last raylib version was published, a lots of things have changed since then... This new raylib version represents an inflexion point in the development of the library and so, we jump to a new major version... Here it is the result of almost **5 years and thousands of hours of hard work**... here it is... **raylib 2.0** +It's been 9 months since last raylib version was published, a lot of things have changed since then... This new raylib version represents an inflection point in the development of the library and so, we jump to a new major version... Here is the result of almost **5 years and thousands of hours of hard work**... here is... **raylib 2.0** In **raylib 2.0** the full API has been carefully reviewed for better consistency, some new functionality has been added and the overall raylib experience has been greatly improved... The key features of new version are: - - **Complete removal of external dependencies.** Finally, raylib does not require external libraries to be installed and linked along with raylib, all required libraries are contained and compiled within raylib. Obviously some external libraries are required but only the strictly platform-dependant ones, the ones that come installed with the OS. So, raylib becomes a self-contained platform-independent games development library. + - **Complete removal of external dependencies.** Finally, raylib does not require external libraries to be installed and linked along with raylib, all required libraries are contained and compiled within raylib. Obviously some external libraries are required but only the strictly platform-dependent ones, the ones that come installed with the OS. So, raylib becomes a self-contained platform-independent games development library. - **Full redesign of audio module to use the amazing miniaudio library**, along with external dependencies removal, OpenAL library has been replaced by [miniaudio](https://github.com/dr-soft/miniaudio), this brand new library offers automatic dynamic linking with default OS audio systems. Undoubtedly, the perfect low-level companion for raylib audio module! - - **Support for continuous integration building*** through AppVeyor and Travis CI. Consequently, raylib GitHub develop branch has been removed, simplyfing the code-base to a single master branch, always stable. Every time a new commit is deployed, library is compiled for **up-to 12 different configurations**, including multiple platforms, 32bit/64bit and multiple compiler options! All those binaries are automatically attached to any new release! + - **Support for continuous integration building*** through AppVeyor and Travis CI. Consequently, raylib GitHub develop branch has been removed, simplifying the code-base to a single master branch, always stable. Every time a new commit is deployed, library is compiled for **up-to 12 different configurations**, including multiple platforms, 32bit/64bit and multiple compiler options! All those binaries are automatically attached to any new release! - **More platforms supported and tested**, including BSD family (FreeBSD, openBSD, NetBSD, DragonFly) and Linux-based family platforms (openSUSE, Debian, Ubuntu, Arch, NixOS...). raylib has already been added to some package managers! Oh, and last but not less important, **Android 64bit** is already supported by raylib! - - **Support for TCC compiler!** Thanks to the lack of external dependencies, raylib can now be easily compiled with a **minimal toolchain**, like the one provide by Tiny C Compiler. It opens the door to an amazing future, allowing, for example, static linkage of libtcc for **runtime compilation of raylib-based code**... and the library itself if required! Moreover, TCC is blazing fast, it can compile all raylib in a couple of seconds! + - **Support for TCC compiler!** Thanks to the lack of external dependencies, raylib can now be easily compiled with a **minimal toolchain**, like the one provided by Tiny C Compiler. It opens the door to an amazing future, allowing, for example, static linkage of libtcc for **runtime compilation of raylib-based code**... and the library itself if required! Moreover, TCC is blazing fast, it can compile all raylib in a couple of seconds! - - Refactored all raylib configuration #defines into a **centralized `config.h` header**, with more than **40 possible configuration options** to compile a totally customizable raylib version including only desired options like supported file-formats or specific functionality support. It allows generating a trully ligth-weight version of the library if desired! + - Refactored all raylib configuration #defines into a **centralized `config.h` header**, with more than **40 possible configuration options** to compile a totally customizable raylib version including only desired options like supported file formats or specific functionality support. It allows generating a trully ligth-weight version of the library if desired! A part of that, lots of new features, like a brand **new font rendering and packaging system** for TTF fonts with **SDF support** (thanks to the amazing STB headers), new functions for **CPU image data manipulation**, new orthographic 3d camera mode, a complete review of `raymath.h` single-file header-only library for better consistency and performance, new examples and way, [way more](https://github.com/raysan5/raylib/blob/master/CHANGELOG). -Probably by now, **raylib 2.0 is the simplest and easiest-to-use library to enjoy (and learn) videogames programming**... but, undoubtedly its development has exceeded any initial objective; raylib has become a simple and easy-to-use trully multiplatform portable standalone media library with thousands of possibilities... and that's just the beginning! +Probably by now, **raylib 2.0 is the simplest and easiest-to-use library to enjoy (and learn) videogames programming**... but, undoubtedly its development has exceeded any initial objective; raylib has become a simple and easy-to-use truly multiplatform portable standalone media library with thousands of possibilities... and that's just the beginning! notes on raylib 2.5 ------------------- -After almost one years since latest raylib installment, here it is **raylib 2.5**. A lot of work has been put on this new version and consequently I decided to bump versioning several digits. The complete list of changes and additions is humungous, details can be found in the [CHANGELOG](CHANGELOG), and here it is a short recap with the highlight improvements. +After almost one years since latest raylib installment, here is **raylib 2.5**. A lot of work has been put on this new version and consequently I decided to bump versioning several digits. The complete list of changes and additions is humungous, details can be found in the [CHANGELOG](CHANGELOG), and here is a short recap with the highlight improvements. - New **window management and file system functions** to query monitor information, deal with clipboard, check directory files info and even launch a URL with default system web browser. Experimental **High-DPI monitor support** has also been added through a compile flag. - **Redesigned Gamepad mechanism**, now generic for all platforms and gamepads, no more specific gamepad configurations. **Redesigned UWP input system**, now raylib supports UWP seamlessly, previous implementation required a custom input system implemented in user code. - - `rlgl` module has been redesigned to **support a unique buffer for shapes drawing batching**, including LINES, TRIANGLES, QUADS in the same indexed buffer, also added support for multi-buffering if required. Additionally, `rlPushMatrix()`/`rlPopMatrix()` functionality has been reviewed to behave exactly like OpenGL 1.1, `models_rlgl_solar_system` example has been added to illustrate this behaviour. + - `rlgl` module has been redesigned to **support a unique buffer for shapes drawing batching**, including LINES, TRIANGLES, QUADS in the same indexed buffer, also added support for multi-buffering if required. Additionally, `rlPushMatrix()`/`rlPopMatrix()` functionality has been reviewed to behave exactly like OpenGL 1.1, `models_rlgl_solar_system` example has been added to illustrate this behavior. - **VR simulator** has been reviewed to **allow custom configuration of Head-Mounted-Device parameters and distortion shader**, `core_vr_simulator` has been properly adapted to showcase this new functionality, now the VR simulator is a generic configurable stereo rendering system that allows any VR device simulation with just a few lines of code or even dynamic tweaking of HMD parameters. @@ -220,30 +220,30 @@ After almost one years since latest raylib installment, here it is **raylib 2.5* - Experimental **cubemap support**, to automatically load multiple cubemap layouts (`LoadTextureCubemap()`). It required some internal `rlgl` redesign to allow cubemap textures. - - **Skeletal animation support for 3d models**, this addition implied a redesign of `Model` data structure to accomodate multiple mesh/multiple materials support and bones information. Multiple models functions have been reviewed and added on this process, also **glTF models loading support** has been added. + - **Skeletal animation support for 3d models**, this addition implied a redesign of `Model` data structure to accommodate multiple mesh/multiple materials support and bones information. Multiple models functions have been reviewed and added on this process, also **glTF models loading support** has been added. -This is a just a brief list with some of the changes of the new **raylib 2.5** but there is way more, about **70 new functions** have been added and several subsystems have been redesigned. More than **30 new examples** have been created to show the new functionalities and better illustrate already available ones. +This is just a brief list with some of the changes of the new **raylib 2.5** but there is way more, about **70 new functions** have been added and several subsystems have been redesigned. More than **30 new examples** have been created to show the new functionalities and better illustrate already available ones. It has been a long year of hard work to make raylib a solid technology to develop new products over it. notes on raylib 3.0 ------------------- -After **10 months of intense development**, new raylib version is ready. Despite primary intended as a minor release, the [CHANGELIST](CHANGELOG) has grown so big and the library has changed so much internally that it finally became a major release. Library **internal ABI** has reveived a big redesign and review, targeting portability, integration with other platforms and making it a perfect option for other progamming [language bindings](BINDINGS.md). +After **10 months of intense development**, new raylib version is ready. Despite primary intended as a minor release, the [CHANGELIST](CHANGELOG) has grown so big and the library has changed so much internally that it finally became a major release. Library **internal ABI** has received a big redesign and review, targeting portability, integration with other platforms and making it a perfect option for other programming [language bindings](BINDINGS.md). - - All **global variables** from the multiple raylib modules have been moved to a **global context state**, it has several benefits, first, better code readability with more comprehensive variables naming and categorization (organized by types, i.e. `CORE.Window.display.width`, `CORE.Input.Keyboard.currentKeyState` or `RLGL.State.modelview`). Second, it allows better memory management to load global context state dynamically when required (not at the moment), making it easy to implement a **hot-reloading mechanism** if desired. + - All **global variables** from the multiple raylib modules have been moved to a **global context state**, it has several benefits, first, better code readability with more comprehensive variable naming and categorization (organized by types, i.e. `CORE.Window.display.width`, `CORE.Input.Keyboard.currentKeyState` or `RLGL.State.modelview`). Second, it allows better memory management to load global context state dynamically when required (not at the moment), making it easy to implement a **hot-reloading mechanism** if desired. - - All **memory allocations** on raylib and its dependencies now use `RL_MALLOC`, `RL_FREE` and similar macros. Now users can easely hook their own memory allocations mechanism if desired, having more control over memory allocated internally by the library. Additionally, it makes it easier to port the library to embedded devices where memory control is critical. For more info check raylib issue #1074. + - All **memory allocations** on raylib and its dependencies now use `RL_MALLOC`, `RL_FREE` and similar macros. Now users can easily hook their own memory allocation mechanism if desired, having more control over memory allocated internally by the library. Additionally, it makes it easier to port the library to embedded devices where memory control is critical. For more info check raylib issue #1074. - All **I/O file accesses** from raylib are being moved to **memory data access**, now all I/O file access is centralized into just four functions: `LoadFileData()`, `SaveFileData()`, `LoadFileText()`, `SaveFileText()`. Users can just update those functions to any I/O file system. This change makes it easier to integrate raylib with **Virtual File Systems** or custom I/O file implementations. - All **raylib data structures** have been reviewed and optimized for pass-by-value usage. One of raylib distinctive design decisions is that most of its functions receive and return data by value. This design makes raylib really simple for newcomers, avoiding pointers and allowing complete access to all structures data in a simple way. The downside is that data is copied on stack every function call and that copy could be costly so, all raylib data structures have been optimized to **stay under 64 bytes** for fast copy and retrieve. - - All **raylib tracelog messages** have been reviewd and categorized for a more comprehensive output information when developing raylib applications, now all display, input, timer, platform, auxiliar libraries, file-accesses, data loading/unloading issues are properly reported with more detailed and visual messages. + - All **raylib tracelog messages** have been reviewed and categorized for a more comprehensive output information when developing raylib applications, now all display, input, timer, platform, auxiliar libraries, file-accesses, data loading/unloading issues are properly reported with more detailed and visual messages. - - `raudio` module has been internally reviewed to accomodate the new `Music` structure (converted from previous pointer format) and the module has been adapted to the **highly improved** [`miniaudio v0.10`](https://github.com/dr-soft/miniaudio). + - `raudio` module has been internally reviewed to accommodate the new `Music` structure (converted from previous pointer format) and the module has been adapted to the **highly improved** [`miniaudio v0.10`](https://github.com/dr-soft/miniaudio). - - `text` module reviewed to **improve fonts generation** and text management functions, `Font` structure has been redesigned to better accomodate characters data, decoupling individual characters as `Image` glyphs from the font atlas parameters. Several improvements have been made to better support Unicode strings with UTF-8 encoding. + - `text` module reviewed to **improve fonts generation** and text management functions, `Font` structure has been redesigned to better accommodate characters data, decoupling individual characters as `Image` glyphs from the font atlas parameters. Several improvements have been made to better support Unicode strings with UTF-8 encoding. - **Multiple new examples added** (most of them contributed by raylib users) and all examples reviewed for correct execution on most of the supported platforms, specially Web and Raspberry Pi. A detailed categorized table has been created on github for easy examples navigation and code access. @@ -274,19 +274,19 @@ Here the list with some highlights for `raylib 3.5`. - NEW **configuration options** exposed: For custom raylib builds, `config.h` now exposes **more than 150 flags and defines** to build raylib with only the desired features, for example, it allows to build a minimal raylib library in just some KB removing all external data filetypes supported, very useful to generate **small executables or embedded devices**. - - NEW **automatic GIF recording** feature: Actually, automatic GIF recording (**CTRL+F12**) for any raylib application has been available for some versions but this feature was really slow and low-performant using an old gif library with many file-accesses. It has been replaced by a **high-performant alternative** (`msf_gif.h`) that operates directly on memory... and actually works very well! Try it out! + - NEW **automatic GIF recording** feature: Actually, automatic GIF recording (**CTRL+F12**) for any raylib application has been available for some versions but this feature was really slow and low-performant using an old gif library with many file accesses. It has been replaced by a **high-performant alternative** (`msf_gif.h`) that operates directly on memory... and actually works very well! Try it out! - - NEW **RenderBatch** system: `rlgl` module has been redesigned to support custom **render batches** to allow grouping draw calls as desired, previous implementation just had one default render batch. This feature has not been exposed to raylib API yet but it can be used by advance users dealing with `rlgl` directly. For example, multiple `RenderBatch` can be created for 2D sprites and 3D geometry independently. + - NEW **RenderBatch** system: `rlgl` module has been redesigned to support custom **render batches** to allow grouping draw calls as desired, previous implementation just had one default render batch. This feature has not been exposed to raylib API yet but it can be used by advanced users dealing with `rlgl` directly. For example, multiple `RenderBatch` can be created for 2D sprites and 3D geometry independently. - - NEW **Framebuffer** system: `rlgl` module now exposes an API for custom **Framebuffer attachments** (including cubemaps!). raylib `RenderTexture` is a basic use-case, just allowing color and depth textures, but this new API allows the creation of more advance Framebuffers with multiple attachments, like the **G-Buffers**. `GenTexture*()` functions have been redesigned to use this new API. + - NEW **Framebuffer** system: `rlgl` module now exposes an API for custom **Framebuffer attachments** (including cubemaps!). raylib `RenderTexture` is a basic use-case, just allowing color and depth textures, but this new API allows the creation of more advanced Framebuffers with multiple attachments, like the **G-Buffers**. `GenTexture*()` functions have been redesigned to use this new API. - Improved **software rendering**: raylib `Image*()` API is intended for software rendering, for those cases when **no GPU or no Window is available**. Those functions operate directly with **multi-format** pixel data on RAM and they have been completely redesigned to be way faster, specially for small resolutions and retro-gaming. Low-end embedded devices like **microcontrollers with custom displays** could benefit of this raylib functionality! - File **loading from memory**: Multiple functions have been redesigned to load data from memory buffers **instead of directly accessing the files**, now all raylib file loading/saving goes through a couple of functions that load data into memory. This feature allows **custom virtual-file-systems** and it gives more control to the user to access data already loaded in memory (i.e. images, fonts, sounds...). - - NEW **Window states** management system: raylib `core` module has been redesigned to support Window **state check and setup more easily** and also **before/after Window initialization**, `SetConfigFlags()` has been reviewed and `SetWindowState()` has been added to control Window minification, maximization, hidding, focusing, topmost and more. + - NEW **Window states** management system: raylib `core` module has been redesigned to support Window **state check and setup more easily** and also **before/after Window initialization**, `SetConfigFlags()` has been reviewed and `SetWindowState()` has been added to control Window minification, maximization, hiding, focusing, topmost and more. - - NEW **GitHub Actions** CI/CD system: Previous CI implementation has been reviewed and improved a lot to support **multiple build configurations** (platforms, compilers, static/shared build) and also an **automatic deploy system** has been implemented to automatically attach the diferent generated artifacts to every new release. As the system seems to work very good, previous CI platforms (AppVeyor/TravisCI) have been removed. + - NEW **GitHub Actions** CI/CD system: Previous CI implementation has been reviewed and improved a lot to support **multiple build configurations** (platforms, compilers, static/shared build) and also an **automatic deploy system** has been implemented to automatically attach the different generated artifacts to every new release. As the system seems to work very good, previous CI platforms (AppVeyor/TravisCI) have been removed. A part of those changes, many new functions have been added, some redundant functions removed and many functions have been reviewed for consistency with the full API (function name, parameters name and order, code formatting...). Again, this release represents is a **great improvement for raylib and marks the way forward** for the library. Make sure to check [CHANGELOG](CHANGELOG) for details! Hope you enjoy it! @@ -295,7 +295,7 @@ Happy holidays! :) notes on raylib 3.7 ------------------- -April 2021, it's been about 4 months since last raylib release and here it is already a new one, this time with a bunch of internal redesigns and improvements. Surprisingly, on April the 8th I was awarded for a second time with the [Google Open Source Peer Bonus Award](https://opensource.googleblog.com/2021/04/announcing-first-group-of-google-open-source-peer-bonus-winners.html) for my contribution to open source world with raylib and it seems the library is getting some traction, what a better moment for a new release? Let's see what can be found in this new version: +April 2021, it's been about 4 months since the last raylib release and here is already a new one, this time with a bunch of internal redesigns and improvements. Surprisingly, on April 8th I was awarded for a second time with the [Google Open Source Peer Bonus Award](https://opensource.googleblog.com/2021/04/announcing-first-group-of-google-open-source-peer-bonus-winners.html) for my contribution to open source world with raylib and it seems the library is getting some traction, what a better moment for a new release? Let's see what can be found in this new version: Let's start with some numbers: @@ -315,18 +315,18 @@ Highlights for `raylib 3.7`: - **ADDED: glTF animations support**. glTF is the preferred models file format to be used with raylib and along the addition of a models animation API on latest raylib versions, now animations support for glTF format has come to raylib, thanks for this great contribution to [Hristo Stamenov](@object71) - - **ADDED: Music streaming support from memory**. raylib has been adding the `Load*FromMemory()` option to all its supported file formats but **music streaming** was not supported yet... until now. Thanks to this great contribution by [Agnis "NeZvērs" Aldiņš](@nezvers), now raylib supports music streamming from memory data for all supported file formats: WAV, OGG, MP3, FLAC, XM and MOD. + - **ADDED: Music streaming support from memory**. raylib has been adding the `Load*FromMemory()` option to all its supported file formats but **music streaming** was not supported yet... until now. Thanks to this great contribution by [Agnis "NeZvērs" Aldiņš](@nezvers), now raylib supports music streaming from memory data for all supported file formats: WAV, OGG, MP3, FLAC, XM and MOD. - **RENAMED: enums values for consistency**. Most raylib enums names and values names have been renamed for consistency, now all value names start with the type of data they represent. It increases clarity and readability when using those values and also **improves overall library consistency**. -Beside those key changes, many functions have been reviewed with improvements and bug fixes, many of them contributed by the community! Thanks! And again, this release sets a **new milestone for raylib library**. Make sure to check [CHANGELOG](CHANGELOG) for detailed list of changes! Hope you enjoy this new raylib installment! +Besides those key changes, many functions have been reviewed with improvements and bug fixes, many of them contributed by the community! Thanks! And again, this release sets a **new milestone for raylib library**. Make sure to check [CHANGELOG](CHANGELOG) for detailed list of changes! Hope you enjoy this new raylib installment! Happy **gamedev/tools/graphics** programming! :) notes on raylib 4.0 - 8th Anniversary Edition --------------------------------------------- -It's been about 6 months since last raylib release and it's been **8 years since I started with this project**, what an adventure! It's time for a new release: `raylib 4.0`, **the biggest release ever** and an inflexion point for the library. Many hours have been put in this release to make it special, **many library details have been polished**: syntax, naming conventions, code comments, functions descriptions, log outputs... Almost all the issues have been closed (only 3 remain open at the moment of this writing) and some amazing new features have been added. I expect this **`raylib 4.0`** to be a long term version (LTS), stable and complete enough for any new graphic/game/tool application development. +It's been about 6 months since last raylib release and it's been **8 years since I started with this project**, what an adventure! It's time for a new release: `raylib 4.0`, **the biggest release ever** and an inflection point for the library. Many hours have been put in this release to make it special, **many library details have been polished**: syntax, naming conventions, code comments, functions descriptions, log outputs... Almost all the issues have been closed (only 3 remain open at the moment of this writing) and some amazing new features have been added. I expect this **`raylib 4.0`** to be a long-term version (LTS), stable and complete enough for any new graphic/game/tool application development. Let's start with some numbers: @@ -339,11 +339,11 @@ Let's start with some numbers: Highlights for `raylib 4.0`: - - **Naming consistency and coherency**: `raylib` API has been completely reviewed to be consistent on naming conventions for data structures and functions, comments and descriptions have been reviewed, also the syntax of many symbols for consistency; some functions and structs have been renamed (i.e. `struct CharInfo` to `struct GlyphInfo`). Output log messages have been also improved to show more info to the users. Several articles have been writen in this process: [raylib_syntax analysis](https://github.com/raysan5/raylib/wiki/raylib-syntax-analysis) and [raylib API usage analysis](https://gist.github.com/raysan5/7c0c9fff1b6c19af24bb4a51b7383f1e). In general, a big polishment of the library to make it more consistent and coherent. + - **Naming consistency and coherency**: `raylib` API has been completely reviewed to be consistent on naming conventions for data structures and functions, comments and descriptions have been reviewed, also the syntax of many symbols for consistency; some functions and structs have been renamed (i.e. `struct CharInfo` to `struct GlyphInfo`). Output log messages have been also improved to show more info to the users. Several articles have been written in this process: [raylib_syntax analysis](https://github.com/raysan5/raylib/wiki/raylib-syntax-analysis) and [raylib API usage analysis](https://gist.github.com/raysan5/7c0c9fff1b6c19af24bb4a51b7383f1e). In general, a big polishment of the library to make it more consistent and coherent. - - **Event Automation System**: This new _experimental_ feature has been added for future usage, it allows to **record input events and re-play them automatically**. This feature could be very useful to automatize examples testing but also for tutorials with assited game playing, in-game cinematics, speedruns, AI playing and more! Note this feature is still experimental. + - **Event Automation System**: This new _experimental_ feature has been added for future usage, it allows to **record input events and re-play them automatically**. This feature could be very useful to automatize examples testing but also for tutorials with assisted game playing, in-game cinematics, speedruns, AI playing and more! Note this feature is still experimental. - - **Custom game-loop control**: As requested by some advance users, **the game-loop control can be exposed** compiling raylib with the config flag: `SUPPORT_CUSTOM_FRAME_CONTROL`. It's intended for advance users that want to control the events polling and also the timming mechanisms of their games. + - **Custom game-loop control**: As requested by some advanced users, **the game-loop control can be exposed** compiling raylib with the config flag: `SUPPORT_CUSTOM_FRAME_CONTROL`. It's intended for advanced users that want to control the events polling and also the timing mechanisms of their games. - [**`rlgl 4.0`**](https://github.com/raysan5/raylib/blob/master/src/rlgl.h): This module has been completely **decoupled from platform layer** and raylib, now `rlgl` single-file header-only library only depends on the multiple OpenGL backends supported, even the dependency on `raymath` has been removed. Additionally, **support for OpenGL 4.3** has been added, supporting compute shaders and Shader Storage Buffer Objects (SSBO). Now `rlgl` can be used as a complete standalone portable library to wrap several OpenGL version and providing **a simple and easy-to-use pseudo-OpenGL immediate-mode API**. @@ -361,12 +361,12 @@ Highlights for `raylib 4.0`: Those are some of the key features for this new release but actually there is way more! **Support for `VOX` ([MagikaVoxel](https://ephtracy.github.io/)) 3d model format** has been added, **new [raylib_game_template](https://github.com/raysan5/raylib-game-template)** repo shared, **new `EncodeDataBase64()` and `DecodeDataBase64()` functions** added, **improved HiDPI support**, new `DrawTextPro()` with support for text rotations, completely **reviewed `glTF` models loading**, added **`SeekMusicStream()` for music seeking**, many new examples and +20 examples reviewed... **hundreds of improvements and bug fixes**! Make sure to check [CHANGELOG](CHANGELOG) for a detailed list of changes! -Undoubtely, **this is the best raylib ever**. Enjoy gamedev/tools/graphics programming! :) +Undoubtedly, **this is the best raylib ever**. Enjoy gamedev/tools/graphics programming! :) notes on raylib 4.2 ------------------- -**New raylib release!** Nine months after latest raylib, here it is a new version. It was supposed to be just a small update but, actually, it's a huge update with lots of changes a improvements. It has been possible thanks to the many contributors that has helped with issues and improvements, it's the **update with more contributors to date** and that's amazing! +**New raylib release!** Nine months after latest raylib, here is a new version. It was supposed to be just a small update but, actually, it's a huge update with lots of changes a improvements. It has been possible thanks to the many contributors that has helped with issues and improvements, it's the **update with more contributors to date** and that's amazing! Some numbers to start with: @@ -390,7 +390,7 @@ Highlights for `raylib 4.2`: - **New file system API**: Current API has been redesigned to be more comprehensive and better aligned with raylib naming conventions, two new functions are provided `LoadDirectoryFiles()`/`LoadDirectoryFilesEx()` to load a `FilePathList` for provided path, supporting extension filtering and recursive directory scan. `LoadDroppedFiles()` has been renamed to better reflect its internal functionality. Now, all raylib functions that start with `Load*()` allocate memory internally and a equivalent `Unload*()` function is defined to take care of that memory internally when not required any more! - - **New audio stream processors API** (_experimental_): Now real-time audio stream data processors can be added using callbacks to played Music. It allows users to create custom effects for audio like delays of low-pass-filtering (example provided). The new API uses a callback system and it's still _ highly experimental_, it differs from the usual level of complexity that provides raylib and it is intended for advance users. It could change in the future but, actually, `raudio` module is in the spotlight for future updates; [miniaudio](https://github.com/mackron/miniaudio) implements a new higher-level API that can be useful in the future for raylib. + - **New audio stream processors API** (_experimental_): Now real-time audio stream data processors can be added using callbacks to played Music. It allows users to create custom effects for audio like delays of low-pass-filtering (example provided). The new API uses a callback system and it's still _ highly experimental_, it differs from the usual level of complexity that provides raylib and it is intended for advanced users. It could change in the future but, actually, `raudio` module is in the spotlight for future updates; [miniaudio](https://github.com/mackron/miniaudio) implements a new higher-level API that can be useful in the future for raylib. As always, there are more improvements than the key features listed, make sure to check raylib [CHANGELOG](CHANGELOG) for the detailed list of changes; for this release a `WARNING` flag has been added to all the changes that could affect bindings or productivity code. **raylib keeps improving one more version** and a special focus on maintainability has been put on the library for the future. Specific/advance functionality will be provided through **raylib-extras** repos and raylib main repo devlelopment will be focused on what made raylib popular: being a simple and easy-to-use library to **enjoy videogames programming**. @@ -399,7 +399,7 @@ As always, there are more improvements than the key features listed, make sure t notes on raylib 4.5 ------------------- -It's been **7 months** since latest raylib release. As usual, **many parts of the library have been reviewed and improved** along those months. Many issues have been closed, staying under 10 open issues at the moment of this writting and also many PRs from contributors have been received, reviewed and merged into raylib library. Some new functions have been added and some others have been removed to improve library coherence and avoid moving too high level, giving the users the tools to implement advance functionality themselfs over raylib. Again, this is a big release with a considerable amount of changes and improvements. Here it is a small summary highlighting this new **rayib 4.5**. +It's been **7 months** since latest raylib release. As usual, **many parts of the library have been reviewed and improved** along those months. Many issues have been closed, staying under 10 open issues at the moment of this writting and also many PRs from contributors have been received, reviewed and merged into raylib library. Some new functions have been added and some others have been removed to improve library coherence and avoid moving too high level, giving the users the tools to implement advance functionality themselfs over raylib. Again, this is a big release with a considerable amount of changes and improvements. Here is a small summary highlighting this new **rayib 4.5**. Some numbers for this release: @@ -413,7 +413,7 @@ Highlights for `raylib 4.5`: - **`NEW` Improved ANGLE support on Desktop platforms**: Support for OpenGL ES 2.0 on Desktop platforms (Windows, Linux, macOS) has been reviewed by @wtnbgo GitHub user. Now raylib can be compiled on desktop for OpenGL ES 2.0 and linked against [`ANGLE`](https://github.com/google/angle). This _small_ addition open the door to building raylib for all **ANGLE supported backends: Direct3D 11, Vulkan and Metal**. Please note that this new feature is still experimental and requires further testing! - - **`NEW` Camera module**: A brand new implementation from scratch for `rcamera` module, contributed by @Crydsch GitHub user! **New camera system is simpler, more flexible, more granular and more extendable**. Specific camera math transformations (movement/rotation) have been moved to individual functions, exposing them to users if required. Global state has been removed from the module and standalone usage has been greatly improved; now `rcamera.h` single-file header-only library can be used externally, independently of raylib. A new `UpdateCameraPro()` function has been added to address input-dependency of `UpdateCamera()`, now advance users have **full control over camera inputs and movement/rotation speeds**! + - **`NEW` Camera module**: A brand new implementation from scratch for `rcamera` module, contributed by @Crydsch GitHub user! **New camera system is simpler, more flexible, more granular and more extendable**. Specific camera math transformations (movement/rotation) have been moved to individual functions, exposing them to users if required. Global state has been removed from the module and standalone usage has been greatly improved; now `rcamera.h` single-file header-only library can be used externally, independently of raylib. A new `UpdateCameraPro()` function has been added to address input-dependency of `UpdateCamera()`, now advanced users have **full control over camera inputs and movement/rotation speeds**! - **`NEW` Support for M3D models and M3D/GLTF animations**: 3d models animations support has been a limited aspect of raylib for long time, some versions ago IQM animations were supported but raylib 4.5 also adds support for the brand new [M3D file format](https://bztsrc.gitlab.io/model3d/), including animations and the long expected support for **GLTF animations**! The new M3D file format is **simple, portable, feature complete, extensible and open source**. It also provides a complete set of tools to export/visualize M3D models from/to Blender! Now raylib supports up to **3 model file-formats with animations**: `IQM`, `GLTF` and `M3D`. @@ -425,7 +425,7 @@ Highlights for `raylib 4.5`: - **Reviewed `rshapes` module to minimize the rlgl dependency**: Now `rshapes` 2d shapes drawing functions **only depend on 6 low-level functions**: `rlBegin()`, `rlEnd()`, `rlVertex3f()`, `rlTexCoord2f()`, `rlNormal3f()`, `rlSetTexture()`. With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement converts `rshapes` module in a **self-contained, portable shapes-drawing library that can be used independently of raylib**, as far as entry points for those 6 functions are provided by the user. It even allows to be used for software rendering, with the proper backend! - - **Added data structures validation functions**: Multiple functions have been added by @RobLoach GitHub user to ease the validation of raylib data structures: `IsImageReady()`, `IsTextureReady()`, `IsSoundReady()`... Now users have a simple mechanism to **make sure data has been correctly loaded**, instead of checking internal structure values by themselfs. + - **Added data structures validation functions**: Multiple functions have been added by @RobLoach GitHub user to ease the validation of raylib data structures: `IsImageReady()`, `IsTextureReady()`, `IsSoundReady()`... Now users have a simple mechanism to **make sure data has been correctly loaded**, instead of checking internal structure values by themselves. As usual, those are only some highlights but there is much more! New image generators, new color transformation functionality, improved blending support for color/alpha, etc... Make sure to check raylib [CHANGELOG]([CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG)) for a detailed list of changes! Please, note that all breaking changes have been flagged with a `WARNING` in the CHANGELOG, specially useful for binding creators! @@ -436,7 +436,7 @@ Let's keep **enjoying games/tools/graphics programming!** :) notes on raylib 5.0 ------------------- -It's been **7 months** since latest raylib release and **10 years** since raylib 1.0 was officially released... what an adventure! In the last 10 years raylib has improved a lot, new functions have been added, many new features and improvements implemented, up to **500 contributors** have helped to shape the library as it is today. `raylib 5.0` is the final result of all this incredible amount of work and dedication. Here it is the summary with the key features and additions of this NEW major version of raylib. +It's been **7 months** since latest raylib release and **10 years** since raylib 1.0 was officially released... what an adventure! In the last 10 years raylib has improved a lot, new functions have been added, many new features and improvements implemented, up to **500 contributors** have helped to shape the library as it is today. `raylib 5.0` is the final result of all this incredible amount of work and dedication. Here is the summary with the key features and additions of this NEW major version of raylib. Some numbers for this release: @@ -448,9 +448,9 @@ Some numbers for this release: Highlights for `raylib 5.0`: - - **`rcore` module platform-split**: Probably the biggest raylib redesign in the last 10 years. raylib started as a library targeting 3 desktop platforms: `Windows`, `Linux` and `macOS` (thanks to `GLFW` underlying library) but with the years support for several new platforms has been added (`Android`, `Web`, `Rapsberry Pi`, `RPI native`...); lot of the platform code was shared so the logic was all together on `rcore.c` module, separated by compilation flags. This approach was very handy but also made it very difficult to support new platforms and specially painful for contributors not familiar with the module, navigating +8000 lines of code in a single file. A big redesign was really needed but the amount of work required was humungus and quite scary for a solo-developer like me, moreover considering that everything was working and the chances to break things were really high. Fortunately, some contributors were ready for the task (@ubkp, @michaelfiber, @Bigfoot71) and thanks to their initiative and super-hard work, the `rcore` [platform split](https://github.com/raysan5/raylib/blob/master/src/platforms) has been possible! This new raylib architecture greatly improves the platforms maintenance but also greatly simplifies the addition of new platforms. A [`platforms/rcore_template.c`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_template.c) file is provided with the required structure and functions to be filled for the addition of new platforms, actually it has been simplified to mostly filling some pre-defined functions: `InitPlatform()`, `ClosePlatform`, `PollInputEvents`... Undoubtely, **this redesign opens the doors to a new era for raylib**, letting the users to plug new platforms as desired. + - **`rcore` module platform-split**: Probably the biggest raylib redesign in the last 10 years. raylib started as a library targeting 3 desktop platforms: `Windows`, `Linux` and `macOS` (thanks to `GLFW` underlying library) but with the years support for several new platforms has been added (`Android`, `Web`, `Rapsberry Pi`, `RPI native`...); lot of the platform code was shared so the logic was all together on `rcore.c` module, separated by compilation flags. This approach was very handy but also made it very difficult to support new platforms and specially painful for contributors not familiar with the module, navigating +8000 lines of code in a single file. A big redesign was really needed but the amount of work required was humungous and quite scary for a solo-developer like me, moreover considering that everything was working and the chances to break things were really high. Fortunately, some contributors were ready for the task (@ubkp, @michaelfiber, @Bigfoot71) and thanks to their initiative and super-hard work, the `rcore` [platform split](https://github.com/raysan5/raylib/blob/master/src/platforms) has been possible! This new raylib architecture greatly improves the platforms maintenance but also greatly simplifies the addition of new platforms. A [`platforms/rcore_template.c`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_template.c) file is provided with the required structure and functions to be filled for the addition of new platforms, actually it has been simplified to mostly filling some pre-defined functions: `InitPlatform()`, `ClosePlatform`, `PollInputEvents`... Undoubtedly, **this redesign opens the doors to a new era for raylib**, letting the users to plug new platforms as desired. - - **`NEW` Platform backend supported: SDL**: Thanks to the new `rcore` platform-split, the addition of new platforms/backends to raylib has been greatly simplified. As a proof of concept, [`SDL2`](https://libsdl.org/) platform backend has been added to raylib as an aternative for `GLFW` library for desktop builds: [`platforms/rcore_desktop_sdl`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_desktop_sdl.c). Lot of work has been put to provide exactly the same features as the other platforms and carefully test the new implementation. Now `SDL2` fans can use this new backend, just providing the required include libraries on compilation and linkage (not included in raylib, like `GLFW`). `SDL` backend support also **eases the process of supporting a wider range of platforms** that already support `SDL`. + - **`NEW` Platform backend supported: SDL**: Thanks to the new `rcore` platform-split, the addition of new platforms/backends to raylib has been greatly simplified. As a proof of concept, [`SDL2`](https://libsdl.org/) platform backend has been added to raylib as an alternative for `GLFW` library for desktop builds: [`platforms/rcore_desktop_sdl`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_desktop_sdl.c). Lot of work has been put to provide exactly the same features as the other platforms and carefully test the new implementation. Now `SDL2` fans can use this new backend, just providing the required include libraries on compilation and linkage (not included in raylib, like `GLFW`). `SDL` backend support also **eases the process of supporting a wider range of platforms** that already support `SDL`. - **`NEW` Platform backend supported: Nintendo Switch (closed source)**: The addition of the `SDL` backend was quite a challenge but to really verify the robustness and ease of the new platform plugin system, adding support for a console was a more demanding adventure. Surprisingly, only two days of work were required to add support for `Nintendo Switch` to raylib! Implementation result showed an outstanding level of simplicity, with a **self-contained module** (`rcore_swith.cpp`) supporting graphics and inputs. Unfortunately this module can not be open-sourced due to licensing restrictions. @@ -468,6 +468,6 @@ As always, those are only some highlights of the new `raylib 5.0` but there is m Make sure to check raylib [CHANGELOG]([CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG)) for a detailed list of changes! -Undoubtely, this is the **biggest raylib update in 10 years**. Many new features and improvements with a special focus on maintainabiliy and long-term sustainability. **Undoubtely, this is the raylib of the future**. +Undoubtedly, this is the **biggest raylib update in 10 years**. Many new features and improvements with a special focus on maintainability and long-term sustainability. **Undoubtedly, this is the raylib of the future**. **Enjoy programming!** :) diff --git a/ROADMAP.md b/ROADMAP.md index 8755333c8..87ca2e1c8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # raylib roadmap -Here it is a wishlist with features and ideas to improve the library. Note that features listed here are usually long term improvements or just describe a route to follow for the library. There are also some additional places to look for raylib improvements and ideas: +Here is a wishlist with features and ideas to improve the library. Note that features listed here are usually long term improvements or just describe a route to follow for the library. There are also some additional places to look for raylib improvements and ideas: - [GitHub Issues](https://github.com/raysan5/raylib/issues) has several open issues for possible improvements or bugs to fix. - [raylib source code](https://github.com/raysan5/raylib/tree/master/src) has multiple *TODO* comments around code with pending things to review or improve. @@ -73,7 +73,7 @@ _Current version of raylib is complete and functional but there is always room f **raylib 1.5** - [x] Support Oculus Rift CV1 and VR stereo rendering (simulator) - [x] Redesign Shaders/Textures system -> New Materials system - - [x] Support lighting: Omni, Directional and Spot lights + - [x] Support lighting: Omni, Directional and Spotlights - [x] Redesign physics module (physac) - [x] Chiptunes audio modules support diff --git a/examples/README.md b/examples/README.md index 94f5369db..d790f7d84 100644 --- a/examples/README.md +++ b/examples/README.md @@ -202,5 +202,5 @@ Examples showing raylib misc functionality that does not fit in other categories | 125 | [raylib_opengl_interop](others/raylib_opengl_interop.c) | raylib_opengl_interop | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Stephan Soller](https://github.com/arkanis) | | 126 | [embedded_files_loading](others/embedded_files_loading.c) | embedded_files_loading | ⭐️⭐️☆☆ | 3.5 | 3.5 | [Kristian Holmgren](https://github.com/defutura) | -As always contributions are welcome, feel free to send new examples! Here it is an [examples template](examples_template.c) to start with! +As always contributions are welcome, feel free to send new examples! Here is an [examples template](examples_template.c) to start with! diff --git a/examples/core/core_custom_frame_control.c b/examples/core/core_custom_frame_control.c index 6e494d86e..9793fc359 100644 --- a/examples/core/core_custom_frame_control.c +++ b/examples/core/core_custom_frame_control.c @@ -2,7 +2,7 @@ * * raylib [core] example - custom frame control * -* NOTE: WARNING: This is an example for advance users willing to have full control over +* NOTE: WARNING: This is an example for advanced users willing to have full control over * the frame processes. By default, EndDrawing() calls the following processes: * 1. Draw remaining batch data: rlDrawRenderBatchActive() * 2. SwapScreenBuffer() diff --git a/projects/Notepad++/raylib_npp_parser/raylib_npp.xml b/projects/Notepad++/raylib_npp_parser/raylib_npp.xml index 6c0552974..c869a1a18 100644 --- a/projects/Notepad++/raylib_npp_parser/raylib_npp.xml +++ b/projects/Notepad++/raylib_npp_parser/raylib_npp.xml @@ -509,7 +509,7 @@ - + @@ -2822,7 +2822,7 @@ - + diff --git a/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h b/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h index 8776d4349..0a3c2417d 100644 --- a/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h +++ b/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h @@ -134,7 +134,7 @@ RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal me RLAPI void MemFree(void *ptr); // Internal memory free // Set custom callbacks -// WARNING: Callbacks setup is intended for advance users +// WARNING: Callbacks setup is intended for advanced users RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver diff --git a/src/config.h b/src/config.h index 3c92de72d..c54583e74 100644 --- a/src/config.h +++ b/src/config.h @@ -66,7 +66,7 @@ #define SUPPORT_COMPRESSION_API 1 // Support automatic generated events, loading and recording of those events when required #define SUPPORT_AUTOMATION_EVENTS 1 -// Support custom frame control, only for advance users +// Support custom frame control, only for advanced users // By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() // Enabling this flag allows manual control of the frame processes, use at your own risk //#define SUPPORT_CUSTOM_FRAME_CONTROL 1 diff --git a/src/raylib.h b/src/raylib.h index b870cc6ca..1bf740b9b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -934,7 +934,7 @@ typedef enum { } NPatchLayout; // Callbacks to hook some internal functions -// WARNING: These callbacks are intended for advance users +// WARNING: These callbacks are intended for advanced users typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data @@ -1066,7 +1066,7 @@ RLAPI double GetTime(void); // Get elapsed RLAPI int GetFPS(void); // Get current FPS // Custom frame control functions -// NOTE: Those functions are intended for advance users that want full control over the frame processing +// NOTE: Those functions are intended for advanced users that want full control over the frame processing // By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() // To avoid that behaviour and control frame processes manually, enable in config.h: SUPPORT_CUSTOM_FRAME_CONTROL RLAPI void SwapScreenBuffer(void); // Swap back buffer with front buffer (screen drawing) @@ -1093,7 +1093,7 @@ RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal me RLAPI void MemFree(void *ptr); // Internal memory free // Set custom callbacks -// WARNING: Callbacks setup is intended for advance users +// WARNING: Callbacks setup is intended for advanced users RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver From 606cc1d897db0a2df201b1c5f7e98bda29d74c64 Mon Sep 17 00:00:00 2001 From: kai-z99 <147789796+kai-z99@users.noreply.github.com> Date: Wed, 29 May 2024 23:24:44 -0700 Subject: [PATCH 370/790] [rshapes]Circle line collision function (#4018) * inital function * working 1 * optimize * optimized dot product * simplify * cleanup * cleanup * cleanup * comment * var name change * epsilon --- src/raylib.h | 1 + src/rshapes.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index 1bf740b9b..dfa98efb8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1295,6 +1295,7 @@ RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Ve RLAPI bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision //------------------------------------------------------------------------------------ diff --git a/src/rshapes.c b/src/rshapes.c index 80df64e2d..cb85c1c54 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2315,6 +2315,30 @@ bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshol return collision; } +// Check if circle collides with a line created betweeen two points [p1] and [p2] +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2) +{ + float dx = p1.x - p2.x; + float dy = p1.y - p2.y; + + if ((fabsf(dx) + fabsf(dy)) <= FLT_EPSILON) + { + return CheckCollisionCircles(p1, 0, center, radius); + } + + float lengthSQ = ((dx * dx) + (dy * dy)); + float dotProduct = (((center.x - p1.x) * (p2.x - p1.x)) + ((center.y - p1.y) * (p2.y - p1.y))) / (lengthSQ); + + if (dotProduct > 1.0f) dotProduct = 1.0f; + else if (dotProduct < 0.0f) dotProduct = 0.0f; + + float dx2 = (p1.x - (dotProduct * (dx))) - center.x; + float dy2 = (p1.y - (dotProduct * (dy))) - center.y; + float distanceSQ = ((dx2 * dx2) + (dy2 * dy2)); + + return (distanceSQ <= radius * radius); +} + // Get collision rectangle for two rectangles collision Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) { From 1344979c708bdf5000d8963d26d938ae4db5d771 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 30 May 2024 06:24:58 +0000 Subject: [PATCH 371/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 23 ++ parser/output/raylib_api.lua | 11 + parser/output/raylib_api.txt | 602 +++++++++++++++++----------------- parser/output/raylib_api.xml | 8 +- 4 files changed, 346 insertions(+), 298 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index f2a9cc61e..4bfce70d1 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -6703,6 +6703,29 @@ } ] }, + { + "name": "CheckCollisionCircleLine", + "description": "Check if circle collides with a line created betweeen two points [p1] and [p2]", + "returnType": "bool", + "params": [ + { + "type": "Vector2", + "name": "center" + }, + { + "type": "float", + "name": "radius" + }, + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + } + ] + }, { "name": "GetCollisionRec", "description": "Get collision rectangle for two rectangles collision", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 68fef97bb..4a6998bbd 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5266,6 +5266,17 @@ return { {type = "int", name = "threshold"} } }, + { + name = "CheckCollisionCircleLine", + description = "Check if circle collides with a line created betweeen two points [p1] and [p2]", + returnType = "bool", + params = { + {type = "Vector2", name = "center"}, + {type = "float", name = "radius"}, + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"} + } + }, { name = "GetCollisionRec", description = "Get collision rectangle for two rectangles collision", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index d6576dee5..979ef0d56 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 563 +Functions found: 564 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -2593,18 +2593,26 @@ Function 267: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 268: GetCollisionRec() (2 input parameters) +Function 268: CheckCollisionCircleLine() (4 input parameters) + Name: CheckCollisionCircleLine + Return type: bool + Description: Check if circle collides with a line created betweeen two points [p1] and [p2] + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: p1 (type: Vector2) + Param[4]: p2 (type: Vector2) +Function 269: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 269: LoadImage() (1 input parameters) +Function 270: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 270: LoadImageRaw() (5 input parameters) +Function 271: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2613,20 +2621,20 @@ Function 270: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 271: LoadImageSvg() (3 input parameters) +Function 272: LoadImageSvg() (3 input parameters) Name: LoadImageSvg Return type: Image Description: Load image from SVG file data or string with specified size Param[1]: fileNameOrString (type: const char *) Param[2]: width (type: int) Param[3]: height (type: int) -Function 272: LoadImageAnim() (2 input parameters) +Function 273: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 273: LoadImageAnimFromMemory() (4 input parameters) +Function 274: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2634,60 +2642,60 @@ Function 273: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 274: LoadImageFromMemory() (3 input parameters) +Function 275: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 275: LoadImageFromTexture() (1 input parameters) +Function 276: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 276: LoadImageFromScreen() (0 input parameters) +Function 277: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 277: IsImageReady() (1 input parameters) +Function 278: IsImageReady() (1 input parameters) Name: IsImageReady Return type: bool Description: Check if an image is ready Param[1]: image (type: Image) -Function 278: UnloadImage() (1 input parameters) +Function 279: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 279: ExportImage() (2 input parameters) +Function 280: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 280: ExportImageToMemory() (3 input parameters) +Function 281: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 281: ExportImageAsCode() (2 input parameters) +Function 282: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 282: GenImageColor() (3 input parameters) +Function 283: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 283: GenImageGradientLinear() (5 input parameters) +Function 284: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2696,7 +2704,7 @@ Function 283: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 284: GenImageGradientRadial() (5 input parameters) +Function 285: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2705,7 +2713,7 @@ Function 284: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 285: GenImageGradientSquare() (5 input parameters) +Function 286: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2714,7 +2722,7 @@ Function 285: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 286: GenImageChecked() (6 input parameters) +Function 287: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2724,14 +2732,14 @@ Function 286: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 287: GenImageWhiteNoise() (3 input parameters) +Function 288: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 288: GenImagePerlinNoise() (5 input parameters) +Function 289: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2740,39 +2748,39 @@ Function 288: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 289: GenImageCellular() (3 input parameters) +Function 290: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 290: GenImageText() (3 input parameters) +Function 291: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 291: ImageCopy() (1 input parameters) +Function 292: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 292: ImageFromImage() (2 input parameters) +Function 293: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 293: ImageText() (3 input parameters) +Function 294: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 294: ImageTextEx() (5 input parameters) +Function 295: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2781,76 +2789,76 @@ Function 294: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 295: ImageFormat() (2 input parameters) +Function 296: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 296: ImageToPOT() (2 input parameters) +Function 297: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 297: ImageCrop() (2 input parameters) +Function 298: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 298: ImageAlphaCrop() (2 input parameters) +Function 299: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 299: ImageAlphaClear() (3 input parameters) +Function 300: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 300: ImageAlphaMask() (2 input parameters) +Function 301: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 301: ImageAlphaPremultiply() (1 input parameters) +Function 302: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 302: ImageBlurGaussian() (2 input parameters) +Function 303: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 303: ImageKernelConvolution() (3 input parameters) +Function 304: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) Param[2]: kernel (type: float*) Param[3]: kernelSize (type: int) -Function 304: ImageResize() (3 input parameters) +Function 305: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 305: ImageResizeNN() (3 input parameters) +Function 306: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 306: ImageResizeCanvas() (6 input parameters) +Function 307: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2860,12 +2868,12 @@ Function 306: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 307: ImageMipmaps() (1 input parameters) +Function 308: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 308: ImageDither() (5 input parameters) +Function 309: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2874,109 +2882,109 @@ Function 308: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 309: ImageFlipVertical() (1 input parameters) +Function 310: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 310: ImageFlipHorizontal() (1 input parameters) +Function 311: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 311: ImageRotate() (2 input parameters) +Function 312: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 312: ImageRotateCW() (1 input parameters) +Function 313: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 313: ImageRotateCCW() (1 input parameters) +Function 314: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 314: ImageColorTint() (2 input parameters) +Function 315: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 315: ImageColorInvert() (1 input parameters) +Function 316: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 316: ImageColorGrayscale() (1 input parameters) +Function 317: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 317: ImageColorContrast() (2 input parameters) +Function 318: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 318: ImageColorBrightness() (2 input parameters) +Function 319: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 319: ImageColorReplace() (3 input parameters) +Function 320: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 320: LoadImageColors() (1 input parameters) +Function 321: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 321: LoadImagePalette() (3 input parameters) +Function 322: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 322: UnloadImageColors() (1 input parameters) +Function 323: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 323: UnloadImagePalette() (1 input parameters) +Function 324: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 324: GetImageAlphaBorder() (2 input parameters) +Function 325: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 325: GetImageColor() (3 input parameters) +Function 326: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 326: ImageClearBackground() (2 input parameters) +Function 327: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 327: ImageDrawPixel() (4 input parameters) +Function 328: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -2984,14 +2992,14 @@ Function 327: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 328: ImageDrawPixelV() (3 input parameters) +Function 329: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 329: ImageDrawLine() (6 input parameters) +Function 330: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -3001,7 +3009,7 @@ Function 329: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 330: ImageDrawLineV() (4 input parameters) +Function 331: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -3009,7 +3017,7 @@ Function 330: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 331: ImageDrawCircle() (5 input parameters) +Function 332: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3018,7 +3026,7 @@ Function 331: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 332: ImageDrawCircleV() (4 input parameters) +Function 333: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3026,7 +3034,7 @@ Function 332: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 333: ImageDrawCircleLines() (5 input parameters) +Function 334: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3035,7 +3043,7 @@ Function 333: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 334: ImageDrawCircleLinesV() (4 input parameters) +Function 335: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3043,7 +3051,7 @@ Function 334: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 335: ImageDrawRectangle() (6 input parameters) +Function 336: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3053,7 +3061,7 @@ Function 335: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 336: ImageDrawRectangleV() (4 input parameters) +Function 337: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3061,14 +3069,14 @@ Function 336: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 337: ImageDrawRectangleRec() (3 input parameters) +Function 338: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 338: ImageDrawRectangleLines() (4 input parameters) +Function 339: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3076,7 +3084,7 @@ Function 338: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 339: ImageDraw() (5 input parameters) +Function 340: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3085,7 +3093,7 @@ Function 339: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 340: ImageDrawText() (6 input parameters) +Function 341: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3095,7 +3103,7 @@ Function 340: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 341: ImageDrawTextEx() (7 input parameters) +Function 342: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3106,79 +3114,79 @@ Function 341: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 342: LoadTexture() (1 input parameters) +Function 343: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 343: LoadTextureFromImage() (1 input parameters) +Function 344: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 344: LoadTextureCubemap() (2 input parameters) +Function 345: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 345: LoadRenderTexture() (2 input parameters) +Function 346: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 346: IsTextureReady() (1 input parameters) +Function 347: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 347: UnloadTexture() (1 input parameters) +Function 348: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 348: IsRenderTextureReady() (1 input parameters) +Function 349: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 349: UnloadRenderTexture() (1 input parameters) +Function 350: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 350: UpdateTexture() (2 input parameters) +Function 351: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 351: UpdateTextureRec() (3 input parameters) +Function 352: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 352: GenTextureMipmaps() (1 input parameters) +Function 353: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 353: SetTextureFilter() (2 input parameters) +Function 354: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 354: SetTextureWrap() (2 input parameters) +Function 355: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 355: DrawTexture() (4 input parameters) +Function 356: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3186,14 +3194,14 @@ Function 355: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 356: DrawTextureV() (3 input parameters) +Function 357: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 357: DrawTextureEx() (5 input parameters) +Function 358: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3202,7 +3210,7 @@ Function 357: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 358: DrawTextureRec() (4 input parameters) +Function 359: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3210,7 +3218,7 @@ Function 358: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 359: DrawTexturePro() (6 input parameters) +Function 360: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3220,7 +3228,7 @@ Function 359: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 360: DrawTextureNPatch() (6 input parameters) +Function 361: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3230,112 +3238,112 @@ Function 360: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 361: ColorIsEqual() (2 input parameters) +Function 362: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 362: Fade() (2 input parameters) +Function 363: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 363: ColorToInt() (1 input parameters) +Function 364: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 364: ColorNormalize() (1 input parameters) +Function 365: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 365: ColorFromNormalized() (1 input parameters) +Function 366: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 366: ColorToHSV() (1 input parameters) +Function 367: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 367: ColorFromHSV() (3 input parameters) +Function 368: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 368: ColorTint() (2 input parameters) +Function 369: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 369: ColorBrightness() (2 input parameters) +Function 370: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 370: ColorContrast() (2 input parameters) +Function 371: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 371: ColorAlpha() (2 input parameters) +Function 372: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 372: ColorAlphaBlend() (3 input parameters) +Function 373: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 373: GetColor() (1 input parameters) +Function 374: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 374: GetPixelColor() (2 input parameters) +Function 375: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 375: SetPixelColor() (3 input parameters) +Function 376: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 376: GetPixelDataSize() (3 input parameters) +Function 377: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 377: GetFontDefault() (0 input parameters) +Function 378: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 378: LoadFont() (1 input parameters) +Function 379: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 379: LoadFontEx() (4 input parameters) +Function 380: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3343,14 +3351,14 @@ Function 379: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 380: LoadFontFromImage() (3 input parameters) +Function 381: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 381: LoadFontFromMemory() (6 input parameters) +Function 382: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3360,12 +3368,12 @@ Function 381: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 382: IsFontReady() (1 input parameters) +Function 383: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 383: LoadFontData() (6 input parameters) +Function 384: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3375,7 +3383,7 @@ Function 383: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 384: GenImageFontAtlas() (6 input parameters) +Function 385: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3385,30 +3393,30 @@ Function 384: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 385: UnloadFontData() (2 input parameters) +Function 386: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 386: UnloadFont() (1 input parameters) +Function 387: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 387: ExportFontAsCode() (2 input parameters) +Function 388: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 388: DrawFPS() (2 input parameters) +Function 389: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 389: DrawText() (5 input parameters) +Function 390: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3417,7 +3425,7 @@ Function 389: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 390: DrawTextEx() (6 input parameters) +Function 391: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3427,7 +3435,7 @@ Function 390: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 391: DrawTextPro() (8 input parameters) +Function 392: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3439,7 +3447,7 @@ Function 391: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 392: DrawTextCodepoint() (5 input parameters) +Function 393: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3448,7 +3456,7 @@ Function 392: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 393: DrawTextCodepoints() (7 input parameters) +Function 394: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3459,18 +3467,18 @@ Function 393: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 394: SetTextLineSpacing() (1 input parameters) +Function 395: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 395: MeasureText() (2 input parameters) +Function 396: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 396: MeasureTextEx() (4 input parameters) +Function 397: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3478,185 +3486,185 @@ Function 396: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 397: GetGlyphIndex() (2 input parameters) +Function 398: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 398: GetGlyphInfo() (2 input parameters) +Function 399: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 399: GetGlyphAtlasRec() (2 input parameters) +Function 400: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 400: LoadUTF8() (2 input parameters) +Function 401: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 401: UnloadUTF8() (1 input parameters) +Function 402: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 402: LoadCodepoints() (2 input parameters) +Function 403: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 403: UnloadCodepoints() (1 input parameters) +Function 404: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 404: GetCodepointCount() (1 input parameters) +Function 405: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 405: GetCodepoint() (2 input parameters) +Function 406: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 406: GetCodepointNext() (2 input parameters) +Function 407: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 407: GetCodepointPrevious() (2 input parameters) +Function 408: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 408: CodepointToUTF8() (2 input parameters) +Function 409: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 409: TextCopy() (2 input parameters) +Function 410: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 410: TextIsEqual() (2 input parameters) +Function 411: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 411: TextLength() (1 input parameters) +Function 412: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 412: TextFormat() (2 input parameters) +Function 413: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 413: TextSubtext() (3 input parameters) +Function 414: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 414: TextReplace() (3 input parameters) +Function 415: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 415: TextInsert() (3 input parameters) +Function 416: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 416: TextJoin() (3 input parameters) +Function 417: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 417: TextSplit() (3 input parameters) +Function 418: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 418: TextAppend() (3 input parameters) +Function 419: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 419: TextFindIndex() (2 input parameters) +Function 420: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 420: TextToUpper() (1 input parameters) +Function 421: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 421: TextToLower() (1 input parameters) +Function 422: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 422: TextToPascal() (1 input parameters) +Function 423: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 423: TextToInteger() (1 input parameters) +Function 424: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 424: TextToFloat() (1 input parameters) +Function 425: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 425: DrawLine3D() (3 input parameters) +Function 426: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 426: DrawPoint3D() (2 input parameters) +Function 427: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 427: DrawCircle3D() (5 input parameters) +Function 428: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3665,7 +3673,7 @@ Function 427: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 428: DrawTriangle3D() (4 input parameters) +Function 429: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3673,14 +3681,14 @@ Function 428: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 429: DrawTriangleStrip3D() (3 input parameters) +Function 430: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 430: DrawCube() (5 input parameters) +Function 431: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3689,14 +3697,14 @@ Function 430: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 431: DrawCubeV() (3 input parameters) +Function 432: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 432: DrawCubeWires() (5 input parameters) +Function 433: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3705,21 +3713,21 @@ Function 432: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 433: DrawCubeWiresV() (3 input parameters) +Function 434: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 434: DrawSphere() (3 input parameters) +Function 435: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 435: DrawSphereEx() (5 input parameters) +Function 436: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3728,7 +3736,7 @@ Function 435: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 436: DrawSphereWires() (5 input parameters) +Function 437: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3737,7 +3745,7 @@ Function 436: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 437: DrawCylinder() (6 input parameters) +Function 438: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3747,7 +3755,7 @@ Function 437: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 438: DrawCylinderEx() (6 input parameters) +Function 439: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3757,7 +3765,7 @@ Function 438: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 439: DrawCylinderWires() (6 input parameters) +Function 440: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3767,7 +3775,7 @@ Function 439: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 440: DrawCylinderWiresEx() (6 input parameters) +Function 441: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3777,7 +3785,7 @@ Function 440: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 441: DrawCapsule() (6 input parameters) +Function 442: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3787,7 +3795,7 @@ Function 441: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 442: DrawCapsuleWires() (6 input parameters) +Function 443: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3797,51 +3805,51 @@ Function 442: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 443: DrawPlane() (3 input parameters) +Function 444: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 444: DrawRay() (2 input parameters) +Function 445: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 445: DrawGrid() (2 input parameters) +Function 446: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 446: LoadModel() (1 input parameters) +Function 447: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 447: LoadModelFromMesh() (1 input parameters) +Function 448: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 448: IsModelReady() (1 input parameters) +Function 449: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 449: UnloadModel() (1 input parameters) +Function 450: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 450: GetModelBoundingBox() (1 input parameters) +Function 451: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 451: DrawModel() (4 input parameters) +Function 452: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3849,7 +3857,7 @@ Function 451: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 452: DrawModelEx() (6 input parameters) +Function 453: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3859,7 +3867,7 @@ Function 452: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 453: DrawModelWires() (4 input parameters) +Function 454: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3867,7 +3875,7 @@ Function 453: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 454: DrawModelWiresEx() (6 input parameters) +Function 455: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3877,13 +3885,13 @@ Function 454: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 455: DrawBoundingBox() (2 input parameters) +Function 456: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 456: DrawBillboard() (5 input parameters) +Function 457: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3892,7 +3900,7 @@ Function 456: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 457: DrawBillboardRec() (6 input parameters) +Function 458: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3902,7 +3910,7 @@ Function 457: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 458: DrawBillboardPro() (9 input parameters) +Function 459: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3915,13 +3923,13 @@ Function 458: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 459: UploadMesh() (2 input parameters) +Function 460: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 460: UpdateMeshBuffer() (5 input parameters) +Function 461: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3930,19 +3938,19 @@ Function 460: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 461: UnloadMesh() (1 input parameters) +Function 462: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 462: DrawMesh() (3 input parameters) +Function 463: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 463: DrawMeshInstanced() (4 input parameters) +Function 464: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3950,35 +3958,35 @@ Function 463: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 464: GetMeshBoundingBox() (1 input parameters) +Function 465: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 465: GenMeshTangents() (1 input parameters) +Function 466: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 466: ExportMesh() (2 input parameters) +Function 467: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 467: ExportMeshAsCode() (2 input parameters) +Function 468: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 468: GenMeshPoly() (2 input parameters) +Function 469: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 469: GenMeshPlane() (4 input parameters) +Function 470: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3986,42 +3994,42 @@ Function 469: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 470: GenMeshCube() (3 input parameters) +Function 471: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 471: GenMeshSphere() (3 input parameters) +Function 472: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 472: GenMeshHemiSphere() (3 input parameters) +Function 473: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 473: GenMeshCylinder() (3 input parameters) +Function 474: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 474: GenMeshCone() (3 input parameters) +Function 475: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 475: GenMeshTorus() (4 input parameters) +Function 476: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4029,7 +4037,7 @@ Function 475: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 476: GenMeshKnot() (4 input parameters) +Function 477: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4037,84 +4045,84 @@ Function 476: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 477: GenMeshHeightmap() (2 input parameters) +Function 478: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 478: GenMeshCubicmap() (2 input parameters) +Function 479: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 479: LoadMaterials() (2 input parameters) +Function 480: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 480: LoadMaterialDefault() (0 input parameters) +Function 481: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 481: IsMaterialReady() (1 input parameters) +Function 482: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 482: UnloadMaterial() (1 input parameters) +Function 483: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 483: SetMaterialTexture() (3 input parameters) +Function 484: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 484: SetModelMeshMaterial() (3 input parameters) +Function 485: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 485: LoadModelAnimations() (2 input parameters) +Function 486: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 486: UpdateModelAnimation() (3 input parameters) +Function 487: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 487: UnloadModelAnimation() (1 input parameters) +Function 488: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 488: UnloadModelAnimations() (2 input parameters) +Function 489: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 489: IsModelAnimationValid() (2 input parameters) +Function 490: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 490: CheckCollisionSpheres() (4 input parameters) +Function 491: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4122,40 +4130,40 @@ Function 490: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 491: CheckCollisionBoxes() (2 input parameters) +Function 492: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 492: CheckCollisionBoxSphere() (3 input parameters) +Function 493: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 493: GetRayCollisionSphere() (3 input parameters) +Function 494: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 494: GetRayCollisionBox() (2 input parameters) +Function 495: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 495: GetRayCollisionMesh() (3 input parameters) +Function 496: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 496: GetRayCollisionTriangle() (4 input parameters) +Function 497: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4163,7 +4171,7 @@ Function 496: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 497: GetRayCollisionQuad() (5 input parameters) +Function 498: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4172,158 +4180,158 @@ Function 497: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 498: InitAudioDevice() (0 input parameters) +Function 499: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 499: CloseAudioDevice() (0 input parameters) +Function 500: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 500: IsAudioDeviceReady() (0 input parameters) +Function 501: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 501: SetMasterVolume() (1 input parameters) +Function 502: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 502: GetMasterVolume() (0 input parameters) +Function 503: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 503: LoadWave() (1 input parameters) +Function 504: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 504: LoadWaveFromMemory() (3 input parameters) +Function 505: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 505: IsWaveReady() (1 input parameters) +Function 506: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 506: LoadSound() (1 input parameters) +Function 507: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 507: LoadSoundFromWave() (1 input parameters) +Function 508: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 508: LoadSoundAlias() (1 input parameters) +Function 509: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 509: IsSoundReady() (1 input parameters) +Function 510: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 510: UpdateSound() (3 input parameters) +Function 511: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 511: UnloadWave() (1 input parameters) +Function 512: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 512: UnloadSound() (1 input parameters) +Function 513: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 513: UnloadSoundAlias() (1 input parameters) +Function 514: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 514: ExportWave() (2 input parameters) +Function 515: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 515: ExportWaveAsCode() (2 input parameters) +Function 516: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 516: PlaySound() (1 input parameters) +Function 517: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 517: StopSound() (1 input parameters) +Function 518: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 518: PauseSound() (1 input parameters) +Function 519: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 519: ResumeSound() (1 input parameters) +Function 520: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 520: IsSoundPlaying() (1 input parameters) +Function 521: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 521: SetSoundVolume() (2 input parameters) +Function 522: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 522: SetSoundPitch() (2 input parameters) +Function 523: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 523: SetSoundPan() (2 input parameters) +Function 524: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 524: WaveCopy() (1 input parameters) +Function 525: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 525: WaveCrop() (3 input parameters) +Function 526: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 526: WaveFormat() (4 input parameters) +Function 527: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4331,203 +4339,203 @@ Function 526: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 527: LoadWaveSamples() (1 input parameters) +Function 528: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 528: UnloadWaveSamples() (1 input parameters) +Function 529: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 529: LoadMusicStream() (1 input parameters) +Function 530: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 530: LoadMusicStreamFromMemory() (3 input parameters) +Function 531: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 531: IsMusicReady() (1 input parameters) +Function 532: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 532: UnloadMusicStream() (1 input parameters) +Function 533: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 533: PlayMusicStream() (1 input parameters) +Function 534: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 534: IsMusicStreamPlaying() (1 input parameters) +Function 535: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 535: UpdateMusicStream() (1 input parameters) +Function 536: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 536: StopMusicStream() (1 input parameters) +Function 537: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 537: PauseMusicStream() (1 input parameters) +Function 538: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 538: ResumeMusicStream() (1 input parameters) +Function 539: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 539: SeekMusicStream() (2 input parameters) +Function 540: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 540: SetMusicVolume() (2 input parameters) +Function 541: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 541: SetMusicPitch() (2 input parameters) +Function 542: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 542: SetMusicPan() (2 input parameters) +Function 543: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 543: GetMusicTimeLength() (1 input parameters) +Function 544: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 544: GetMusicTimePlayed() (1 input parameters) +Function 545: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 545: LoadAudioStream() (3 input parameters) +Function 546: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 546: IsAudioStreamReady() (1 input parameters) +Function 547: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 547: UnloadAudioStream() (1 input parameters) +Function 548: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 548: UpdateAudioStream() (3 input parameters) +Function 549: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 549: IsAudioStreamProcessed() (1 input parameters) +Function 550: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 550: PlayAudioStream() (1 input parameters) +Function 551: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 551: PauseAudioStream() (1 input parameters) +Function 552: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 552: ResumeAudioStream() (1 input parameters) +Function 553: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 553: IsAudioStreamPlaying() (1 input parameters) +Function 554: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 554: StopAudioStream() (1 input parameters) +Function 555: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 555: SetAudioStreamVolume() (2 input parameters) +Function 556: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 556: SetAudioStreamPitch() (2 input parameters) +Function 557: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 557: SetAudioStreamPan() (2 input parameters) +Function 558: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 558: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 559: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 559: SetAudioStreamCallback() (2 input parameters) +Function 560: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 560: AttachAudioStreamProcessor() (2 input parameters) +Function 561: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 561: DetachAudioStreamProcessor() (2 input parameters) +Function 562: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 562: AttachAudioMixedProcessor() (1 input parameters) +Function 563: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 563: DetachAudioMixedProcessor() (1 input parameters) +Function 564: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index e7fa157b2..c4a16f97e 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -1671,6 +1671,12 @@ + + + + + + From 2998f8671beaec6d1faed8f40c16a9ec31cab7c0 Mon Sep 17 00:00:00 2001 From: Jett <30197659+JettMonstersGoBoom@users.noreply.github.com> Date: Sun, 2 Jun 2024 05:51:25 -0400 Subject: [PATCH 372/790] LoadModelAnimationsIQM: fix corrupted animation names (#4026) Correctly copies animation names from IQM animation to raylib animation. --- src/rmodels.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index 4bf042d5c..e1e9418cb 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4621,6 +4621,8 @@ static ModelAnimation *LoadModelAnimationsIQM(const char *fileName, int *animCou animations[a].boneCount = iqmHeader->num_poses; animations[a].bones = RL_MALLOC(iqmHeader->num_poses*sizeof(BoneInfo)); animations[a].framePoses = RL_MALLOC(anim[a].num_frames*sizeof(Transform *)); + memcpy(animations[a].name, fileDataPtr + iqmHeader->ofs_text + anim[a].name, 32); // I don't like this 32 here + TraceLog(LOG_INFO, "IQM Anim %s", animations[a].name); // animations[a].framerate = anim.framerate; // TODO: Use animation framerate data? for (unsigned int j = 0; j < iqmHeader->num_poses; j++) From 11202bf299a70a8ef30e28ab99a8184bbb119a99 Mon Sep 17 00:00:00 2001 From: David Holland Date: Sun, 2 Jun 2024 19:52:00 +1000 Subject: [PATCH 373/790] [rmodels] Send full matModel to shader in DrawMesh (#4005) (#4022) --- src/rmodels.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index e1e9418cb..5cf848b68 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1389,14 +1389,14 @@ void DrawMesh(Mesh mesh, Material material, Matrix transform) if (material.shader.locs[SHADER_LOC_MATRIX_VIEW] != -1) rlSetUniformMatrix(material.shader.locs[SHADER_LOC_MATRIX_VIEW], matView); if (material.shader.locs[SHADER_LOC_MATRIX_PROJECTION] != -1) rlSetUniformMatrix(material.shader.locs[SHADER_LOC_MATRIX_PROJECTION], matProjection); - // Model transformation matrix is sent to shader uniform location: SHADER_LOC_MATRIX_MODEL - if (material.shader.locs[SHADER_LOC_MATRIX_MODEL] != -1) rlSetUniformMatrix(material.shader.locs[SHADER_LOC_MATRIX_MODEL], transform); - // Accumulate several model transformations: // transform: model transformation provided (includes DrawModel() params combined with model.transform) // rlGetMatrixTransform(): rlgl internal transform matrix due to push/pop matrix stack matModel = MatrixMultiply(transform, rlGetMatrixTransform()); + // Model transformation matrix is sent to shader uniform location: SHADER_LOC_MATRIX_MODEL + if (material.shader.locs[SHADER_LOC_MATRIX_MODEL] != -1) rlSetUniformMatrix(material.shader.locs[SHADER_LOC_MATRIX_MODEL], matModel); + // Get model-view matrix matModelView = MatrixMultiply(matModel, matView); From 0cad25f79878211783ce550b06e20f13cc9176a1 Mon Sep 17 00:00:00 2001 From: MrScautHD <65916181+MrScautHD@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:52:51 +0200 Subject: [PATCH 374/790] Update Raylib-CSharp to `5.1-dev`. (#4030) * Update BINDINGS.md * Update BINDINGS.md * Update BINDINGS.md --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 81bc6abda..9ec8c3c3c 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -12,7 +12,7 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [Raylib-cs](https://github.com/ChrisDill/Raylib-cs) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | | [Raylib-CsLo](https://github.com/NotNotTech/Raylib-CsLo) | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | | [Raylib-CSharp-Vinculum](https://github.com/ZeroElectric/Raylib-CSharp-Vinculum) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | -| [Raylib-CSharp](https://github.com/MrScautHD/Raylib-CSharp) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | +| [Raylib-CSharp](https://github.com/MrScautHD/Raylib-CSharp) | **5.1-dev** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | | [Raylib.NET](https://github.com/Odex64/Raylib.NET) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | | [cl-raylib](https://github.com/longlene/cl-raylib) | 4.0 | [Common Lisp](https://common-lisp.net) | MIT | | [claylib/wrap](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib | From 06f8c4f73318488e5a4bf1f7bd82fe991a66827e Mon Sep 17 00:00:00 2001 From: Jett <30197659+JettMonstersGoBoom@users.noreply.github.com> Date: Mon, 3 Jun 2024 03:03:33 -0400 Subject: [PATCH 375/790] LoadIQM: attempt to load texture from IQM at loadtime. (#4029) tries to load the texture with the base path of the original IQM file, relative paths should work. --- src/rmodels.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index 5cf848b68..249201513 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4268,6 +4268,8 @@ static Model LoadIQM(const char *fileName) // In case file can not be read, return an empty model if (fileDataPtr == NULL) return model; + const char* basePath = GetDirectoryPath(fileName); + // Read IQM header IQMHeader *iqmHeader = (IQMHeader *)fileDataPtr; @@ -4312,6 +4314,7 @@ static Model LoadIQM(const char *fileName) memcpy(material, fileDataPtr + iqmHeader->ofs_text + imesh[i].material, MATERIAL_NAME_LENGTH*sizeof(char)); model.materials[i] = LoadMaterialDefault(); + model.materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture(TextFormat("%s/%s", basePath, material)); TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material); From 39f12859dcdf92822c8fefece1135bf6e76a1573 Mon Sep 17 00:00:00 2001 From: IoIxD <30945097+IoIxD@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:13:28 -0700 Subject: [PATCH 376/790] rtext: added functions for camel case and snake case (reopened due to formatting errors) (#4033) * rtext: added functions for camel case and snake case * Update raylib_api.* by CI * rtext: removed always false comparison --------- Co-authored-by: github-actions[bot] --- parser/output/raylib_api.json | 22 +++ parser/output/raylib_api.lua | 16 ++ parser/output/raylib_api.txt | 294 ++++++++++++++++++---------------- parser/output/raylib_api.xml | 8 +- src/raylib.h | 3 + src/rtext.c | 65 ++++++++ 6 files changed, 265 insertions(+), 143 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 4bfce70d1..961578e53 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -9479,6 +9479,28 @@ } ] }, + { + "name": "TextToSnake", + "description": "Get Snake case notation version of provided string", + "returnType": "const char *", + "params": [ + { + "type": "const char *", + "name": "text" + } + ] + }, + { + "name": "TextToCamel", + "description": "Get Camel case notation version of provided string", + "returnType": "const char *", + "params": [ + { + "type": "const char *", + "name": "text" + } + ] + }, { "name": "TextToInteger", "description": "Get integer value from text (negative values not supported)", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 4a6998bbd..eb88daab9 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -6776,6 +6776,22 @@ return { {type = "const char *", name = "text"} } }, + { + name = "TextToSnake", + description = "Get Snake case notation version of provided string", + returnType = "const char *", + params = { + {type = "const char *", name = "text"} + } + }, + { + name = "TextToCamel", + description = "Get Camel case notation version of provided string", + returnType = "const char *", + params = { + {type = "const char *", name = "text"} + } + }, { name = "TextToInteger", description = "Get integer value from text (negative values not supported)", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 979ef0d56..66880130e 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 564 +Functions found: 566 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -3641,30 +3641,40 @@ Function 423: TextToPascal() (1 input parameters) Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 424: TextToInteger() (1 input parameters) +Function 424: TextToSnake() (1 input parameters) + Name: TextToSnake + Return type: const char * + Description: Get Snake case notation version of provided string + Param[1]: text (type: const char *) +Function 425: TextToCamel() (1 input parameters) + Name: TextToCamel + Return type: const char * + Description: Get Camel case notation version of provided string + Param[1]: text (type: const char *) +Function 426: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 425: TextToFloat() (1 input parameters) +Function 427: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 426: DrawLine3D() (3 input parameters) +Function 428: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 427: DrawPoint3D() (2 input parameters) +Function 429: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 428: DrawCircle3D() (5 input parameters) +Function 430: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3673,7 +3683,7 @@ Function 428: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 429: DrawTriangle3D() (4 input parameters) +Function 431: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3681,14 +3691,14 @@ Function 429: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 430: DrawTriangleStrip3D() (3 input parameters) +Function 432: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 431: DrawCube() (5 input parameters) +Function 433: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3697,14 +3707,14 @@ Function 431: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 432: DrawCubeV() (3 input parameters) +Function 434: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 433: DrawCubeWires() (5 input parameters) +Function 435: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3713,21 +3723,21 @@ Function 433: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 434: DrawCubeWiresV() (3 input parameters) +Function 436: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 435: DrawSphere() (3 input parameters) +Function 437: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 436: DrawSphereEx() (5 input parameters) +Function 438: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3736,7 +3746,7 @@ Function 436: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 437: DrawSphereWires() (5 input parameters) +Function 439: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3745,7 +3755,7 @@ Function 437: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 438: DrawCylinder() (6 input parameters) +Function 440: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3755,7 +3765,7 @@ Function 438: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 439: DrawCylinderEx() (6 input parameters) +Function 441: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3765,7 +3775,7 @@ Function 439: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 440: DrawCylinderWires() (6 input parameters) +Function 442: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3775,7 +3785,7 @@ Function 440: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 441: DrawCylinderWiresEx() (6 input parameters) +Function 443: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3785,7 +3795,7 @@ Function 441: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 442: DrawCapsule() (6 input parameters) +Function 444: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3795,7 +3805,7 @@ Function 442: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 443: DrawCapsuleWires() (6 input parameters) +Function 445: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3805,51 +3815,51 @@ Function 443: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 444: DrawPlane() (3 input parameters) +Function 446: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 445: DrawRay() (2 input parameters) +Function 447: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 446: DrawGrid() (2 input parameters) +Function 448: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 447: LoadModel() (1 input parameters) +Function 449: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 448: LoadModelFromMesh() (1 input parameters) +Function 450: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 449: IsModelReady() (1 input parameters) +Function 451: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 450: UnloadModel() (1 input parameters) +Function 452: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 451: GetModelBoundingBox() (1 input parameters) +Function 453: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 452: DrawModel() (4 input parameters) +Function 454: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3857,7 +3867,7 @@ Function 452: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 453: DrawModelEx() (6 input parameters) +Function 455: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3867,7 +3877,7 @@ Function 453: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 454: DrawModelWires() (4 input parameters) +Function 456: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3875,7 +3885,7 @@ Function 454: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 455: DrawModelWiresEx() (6 input parameters) +Function 457: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3885,13 +3895,13 @@ Function 455: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 456: DrawBoundingBox() (2 input parameters) +Function 458: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 457: DrawBillboard() (5 input parameters) +Function 459: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3900,7 +3910,7 @@ Function 457: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 458: DrawBillboardRec() (6 input parameters) +Function 460: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3910,7 +3920,7 @@ Function 458: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 459: DrawBillboardPro() (9 input parameters) +Function 461: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3923,13 +3933,13 @@ Function 459: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 460: UploadMesh() (2 input parameters) +Function 462: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 461: UpdateMeshBuffer() (5 input parameters) +Function 463: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3938,19 +3948,19 @@ Function 461: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 462: UnloadMesh() (1 input parameters) +Function 464: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 463: DrawMesh() (3 input parameters) +Function 465: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 464: DrawMeshInstanced() (4 input parameters) +Function 466: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3958,35 +3968,35 @@ Function 464: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 465: GetMeshBoundingBox() (1 input parameters) +Function 467: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 466: GenMeshTangents() (1 input parameters) +Function 468: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 467: ExportMesh() (2 input parameters) +Function 469: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 468: ExportMeshAsCode() (2 input parameters) +Function 470: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 469: GenMeshPoly() (2 input parameters) +Function 471: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 470: GenMeshPlane() (4 input parameters) +Function 472: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -3994,42 +4004,42 @@ Function 470: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 471: GenMeshCube() (3 input parameters) +Function 473: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 472: GenMeshSphere() (3 input parameters) +Function 474: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 473: GenMeshHemiSphere() (3 input parameters) +Function 475: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 474: GenMeshCylinder() (3 input parameters) +Function 476: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 475: GenMeshCone() (3 input parameters) +Function 477: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 476: GenMeshTorus() (4 input parameters) +Function 478: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4037,7 +4047,7 @@ Function 476: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 477: GenMeshKnot() (4 input parameters) +Function 479: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4045,84 +4055,84 @@ Function 477: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 478: GenMeshHeightmap() (2 input parameters) +Function 480: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 479: GenMeshCubicmap() (2 input parameters) +Function 481: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 480: LoadMaterials() (2 input parameters) +Function 482: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 481: LoadMaterialDefault() (0 input parameters) +Function 483: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 482: IsMaterialReady() (1 input parameters) +Function 484: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 483: UnloadMaterial() (1 input parameters) +Function 485: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 484: SetMaterialTexture() (3 input parameters) +Function 486: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 485: SetModelMeshMaterial() (3 input parameters) +Function 487: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 486: LoadModelAnimations() (2 input parameters) +Function 488: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 487: UpdateModelAnimation() (3 input parameters) +Function 489: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 488: UnloadModelAnimation() (1 input parameters) +Function 490: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 489: UnloadModelAnimations() (2 input parameters) +Function 491: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 490: IsModelAnimationValid() (2 input parameters) +Function 492: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 491: CheckCollisionSpheres() (4 input parameters) +Function 493: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4130,40 +4140,40 @@ Function 491: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 492: CheckCollisionBoxes() (2 input parameters) +Function 494: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 493: CheckCollisionBoxSphere() (3 input parameters) +Function 495: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 494: GetRayCollisionSphere() (3 input parameters) +Function 496: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 495: GetRayCollisionBox() (2 input parameters) +Function 497: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 496: GetRayCollisionMesh() (3 input parameters) +Function 498: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 497: GetRayCollisionTriangle() (4 input parameters) +Function 499: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4171,7 +4181,7 @@ Function 497: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 498: GetRayCollisionQuad() (5 input parameters) +Function 500: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4180,158 +4190,158 @@ Function 498: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 499: InitAudioDevice() (0 input parameters) +Function 501: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 500: CloseAudioDevice() (0 input parameters) +Function 502: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 501: IsAudioDeviceReady() (0 input parameters) +Function 503: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 502: SetMasterVolume() (1 input parameters) +Function 504: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 503: GetMasterVolume() (0 input parameters) +Function 505: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 504: LoadWave() (1 input parameters) +Function 506: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 505: LoadWaveFromMemory() (3 input parameters) +Function 507: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 506: IsWaveReady() (1 input parameters) +Function 508: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 507: LoadSound() (1 input parameters) +Function 509: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 508: LoadSoundFromWave() (1 input parameters) +Function 510: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 509: LoadSoundAlias() (1 input parameters) +Function 511: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 510: IsSoundReady() (1 input parameters) +Function 512: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 511: UpdateSound() (3 input parameters) +Function 513: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 512: UnloadWave() (1 input parameters) +Function 514: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 513: UnloadSound() (1 input parameters) +Function 515: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 514: UnloadSoundAlias() (1 input parameters) +Function 516: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 515: ExportWave() (2 input parameters) +Function 517: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 516: ExportWaveAsCode() (2 input parameters) +Function 518: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 517: PlaySound() (1 input parameters) +Function 519: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 518: StopSound() (1 input parameters) +Function 520: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 519: PauseSound() (1 input parameters) +Function 521: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 520: ResumeSound() (1 input parameters) +Function 522: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 521: IsSoundPlaying() (1 input parameters) +Function 523: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 522: SetSoundVolume() (2 input parameters) +Function 524: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 523: SetSoundPitch() (2 input parameters) +Function 525: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 524: SetSoundPan() (2 input parameters) +Function 526: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 525: WaveCopy() (1 input parameters) +Function 527: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 526: WaveCrop() (3 input parameters) +Function 528: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 527: WaveFormat() (4 input parameters) +Function 529: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4339,203 +4349,203 @@ Function 527: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 528: LoadWaveSamples() (1 input parameters) +Function 530: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 529: UnloadWaveSamples() (1 input parameters) +Function 531: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 530: LoadMusicStream() (1 input parameters) +Function 532: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 531: LoadMusicStreamFromMemory() (3 input parameters) +Function 533: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 532: IsMusicReady() (1 input parameters) +Function 534: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 533: UnloadMusicStream() (1 input parameters) +Function 535: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 534: PlayMusicStream() (1 input parameters) +Function 536: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 535: IsMusicStreamPlaying() (1 input parameters) +Function 537: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 536: UpdateMusicStream() (1 input parameters) +Function 538: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 537: StopMusicStream() (1 input parameters) +Function 539: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 538: PauseMusicStream() (1 input parameters) +Function 540: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 539: ResumeMusicStream() (1 input parameters) +Function 541: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 540: SeekMusicStream() (2 input parameters) +Function 542: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 541: SetMusicVolume() (2 input parameters) +Function 543: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 542: SetMusicPitch() (2 input parameters) +Function 544: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 543: SetMusicPan() (2 input parameters) +Function 545: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 544: GetMusicTimeLength() (1 input parameters) +Function 546: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 545: GetMusicTimePlayed() (1 input parameters) +Function 547: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 546: LoadAudioStream() (3 input parameters) +Function 548: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 547: IsAudioStreamReady() (1 input parameters) +Function 549: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 548: UnloadAudioStream() (1 input parameters) +Function 550: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 549: UpdateAudioStream() (3 input parameters) +Function 551: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 550: IsAudioStreamProcessed() (1 input parameters) +Function 552: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 551: PlayAudioStream() (1 input parameters) +Function 553: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 552: PauseAudioStream() (1 input parameters) +Function 554: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 553: ResumeAudioStream() (1 input parameters) +Function 555: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 554: IsAudioStreamPlaying() (1 input parameters) +Function 556: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 555: StopAudioStream() (1 input parameters) +Function 557: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 556: SetAudioStreamVolume() (2 input parameters) +Function 558: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 557: SetAudioStreamPitch() (2 input parameters) +Function 559: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 558: SetAudioStreamPan() (2 input parameters) +Function 560: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 559: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 561: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 560: SetAudioStreamCallback() (2 input parameters) +Function 562: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 561: AttachAudioStreamProcessor() (2 input parameters) +Function 563: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 562: DetachAudioStreamProcessor() (2 input parameters) +Function 564: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 563: AttachAudioMixedProcessor() (1 input parameters) +Function 565: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 564: DetachAudioMixedProcessor() (1 input parameters) +Function 566: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index c4a16f97e..0e096d5a2 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -2405,6 +2405,12 @@ + + + + + + diff --git a/src/raylib.h b/src/raylib.h index dfa98efb8..c61285641 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1489,6 +1489,9 @@ RLAPI int TextFindIndex(const char *text, const char *find); RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string +RLAPI const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) diff --git a/src/rtext.c b/src/rtext.c index 5ba4e8b6a..118a559d6 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1786,6 +1786,71 @@ const char *TextToPascal(const char *text) return buffer; } +// Get snake case notation version of provided string +// WARNING: Limited functionality, only basic characters set +const char *TextToSnake(const char *text) +{ + static char buffer[MAX_TEXT_BUFFER_LENGTH] = {0}; + memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); + + if (text != NULL) + { + // Check for next separator to upper case another character + for (int i = 0, j = 0; (i < MAX_TEXT_BUFFER_LENGTH - 1) && (text[j] != '\0'); i++, j++) + { + if ((text[j] >= 'A') && (text[j] <= 'Z')) + { + if (i >= 1) + { + buffer[i] = '_'; + i++; + } + buffer[i] = text[j] + 32; + } + else + { + buffer[i] = text[j]; + } + } + } + + return buffer; +} + +// Get Camel case notation version of provided string +// WARNING: Limited functionality, only basic characters set +const char *TextToCamel(const char *text) +{ + static char buffer[MAX_TEXT_BUFFER_LENGTH] = {0}; + memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); + + if (text != NULL) + { + // Lower case first character + if ((text[0] >= 'A') && (text[0] <= 'Z')) + buffer[0] = text[0] + 32; + else + buffer[0] = text[0]; + + // Check for next separator to upper case another character + for (int i = 1, j = 1; (i < MAX_TEXT_BUFFER_LENGTH - 1) && (text[j] != '\0'); i++, j++) + { + if (text[j] != '_') + buffer[i] = text[j]; + else + { + j++; + if ((text[j] >= 'a') && (text[j] <= 'z')) + { + buffer[i] = text[j] - 32; + } + } + } + } + + return buffer; +} + // Encode text codepoint into UTF-8 text // REQUIRES: memcpy() // WARNING: Allocated memory must be manually freed From e1379afb01e5ad758b3928d055e418c2fb511d2a Mon Sep 17 00:00:00 2001 From: Paul Melis Date: Tue, 4 Jun 2024 11:46:57 +0200 Subject: [PATCH 377/790] Fix #4024, cylinder drawing was incorrect due to imprecise angle (#4034) * Fix #4024, cylinder drawing was incorrect due to imprecise angle stepping (mostly noticeable with semi-transparent cylinders) * Fix var name and spacing --- src/rmodels.c | 55 ++++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 249201513..57059a017 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -508,6 +508,8 @@ void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float h { if (sides < 3) sides = 3; + const float angleStep = 360.0f/sides; + rlPushMatrix(); rlTranslatef(position.x, position.y, position.z); @@ -517,43 +519,44 @@ void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float h if (radiusTop > 0) { // Draw Body ------------------------------------------------------------------------------------- - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); //Bottom Left - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusBottom, 0, cosf(DEG2RAD*(i + 360.0f/sides))*radiusBottom); //Bottom Right - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusTop, height, cosf(DEG2RAD*(i + 360.0f/sides))*radiusTop); //Top Right + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); //Bottom Left + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusBottom, 0, cosf(DEG2RAD*(i+1)*angleStep)*radiusBottom); //Bottom Right + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusTop, height, cosf(DEG2RAD*(i+1)*angleStep)*radiusTop); //Top Right - rlVertex3f(sinf(DEG2RAD*i)*radiusTop, height, cosf(DEG2RAD*i)*radiusTop); //Top Left - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); //Bottom Left - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusTop, height, cosf(DEG2RAD*(i + 360.0f/sides))*radiusTop); //Top Right + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusTop, height, cosf(DEG2RAD*i*angleStep)*radiusTop); //Top Left + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); //Bottom Left + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusTop, height, cosf(DEG2RAD*(i+1)*angleStep)*radiusTop); //Top Right } // Draw Cap -------------------------------------------------------------------------------------- - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { rlVertex3f(0, height, 0); - rlVertex3f(sinf(DEG2RAD*i)*radiusTop, height, cosf(DEG2RAD*i)*radiusTop); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusTop, height, cosf(DEG2RAD*(i + 360.0f/sides))*radiusTop); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusTop, height, cosf(DEG2RAD*i*angleStep)*radiusTop); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusTop, height, cosf(DEG2RAD*(i+1)*angleStep)*radiusTop); } } else { // Draw Cone ------------------------------------------------------------------------------------- - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { rlVertex3f(0, height, 0); - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusBottom, 0, cosf(DEG2RAD*(i + 360.0f/sides))*radiusBottom); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusBottom, 0, cosf(DEG2RAD*(i+1)*angleStep)*radiusBottom); } } // Draw Base ----------------------------------------------------------------------------------------- - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { rlVertex3f(0, 0, 0); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusBottom, 0, cosf(DEG2RAD*(i + 360.0f/sides))*radiusBottom); - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*(i+1)*angleStep)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); } + rlEnd(); rlPopMatrix(); } @@ -623,25 +626,27 @@ void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, fl { if (sides < 3) sides = 3; + const float angleStep = 360.0f/sides; + rlPushMatrix(); rlTranslatef(position.x, position.y, position.z); rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusBottom, 0, cosf(DEG2RAD*(i + 360.0f/sides))*radiusBottom); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusBottom, 0, cosf(DEG2RAD*(i+1)*angleStep)*radiusBottom); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusBottom, 0, cosf(DEG2RAD*(i + 360.0f/sides))*radiusBottom); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusTop, height, cosf(DEG2RAD*(i + 360.0f/sides))*radiusTop); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusBottom, 0, cosf(DEG2RAD*(i+1)*angleStep)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusTop, height, cosf(DEG2RAD*(i+1)*angleStep)*radiusTop); - rlVertex3f(sinf(DEG2RAD*(i + 360.0f/sides))*radiusTop, height, cosf(DEG2RAD*(i + 360.0f/sides))*radiusTop); - rlVertex3f(sinf(DEG2RAD*i)*radiusTop, height, cosf(DEG2RAD*i)*radiusTop); + rlVertex3f(sinf(DEG2RAD*(i+1)*angleStep)*radiusTop, height, cosf(DEG2RAD*(i+1)*angleStep)*radiusTop); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusTop, height, cosf(DEG2RAD*i*angleStep)*radiusTop); - rlVertex3f(sinf(DEG2RAD*i)*radiusTop, height, cosf(DEG2RAD*i)*radiusTop); - rlVertex3f(sinf(DEG2RAD*i)*radiusBottom, 0, cosf(DEG2RAD*i)*radiusBottom); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusTop, height, cosf(DEG2RAD*i*angleStep)*radiusTop); + rlVertex3f(sinf(DEG2RAD*i*angleStep)*radiusBottom, 0, cosf(DEG2RAD*i*angleStep)*radiusBottom); } rlEnd(); rlPopMatrix(); From 5767c4cd059e07355ae5588966d0aee97038a86b Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 4 Jun 2024 23:00:12 +0200 Subject: [PATCH 378/790] Update rcore_desktop.c --- src/platforms/rcore_desktop.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index f08774165..6fe054a8a 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -1443,15 +1443,12 @@ int InitPlatform(void) else { // No-fullscreen window creation - bool wantWindowedFullscreen = (CORE.Window.screen.height == 0) && (CORE.Window.screen.width == 0); + bool requestWindowedFullscreen = (CORE.Window.screen.height == 0) && (CORE.Window.screen.width == 0); // If we are windowed fullscreen, ensures that window does not minimize when focus is lost. // This hinting code will not work if the user already specified the correct monitor dimensions; // at this point we don't know the monitor's dimensions. (Though, how did the user then?) - if (wantWindowedFullscreen) - { - glfwWindowHint(GLFW_AUTO_ICONIFY, 0); - } + if (requestWindowedFullscreen) glfwWindowHint(GLFW_AUTO_ICONIFY, 0); // Default to at least one pixel in size, as creation with a zero dimension is not allowed. int creationWidth = CORE.Window.screen.width != 0 ? CORE.Window.screen.width : 1; @@ -1471,11 +1468,7 @@ int InitPlatform(void) monitor = monitors[monitorIndex]; SetDimensionsFromMonitor(monitor); - TRACELOG(LOG_INFO, "wantWindowed: %d, size: %dx%d", wantWindowedFullscreen, CORE.Window.screen.width, CORE.Window.screen.height); - if (wantWindowedFullscreen) - { - glfwSetWindowSize(platform.handle, CORE.Window.screen.width, CORE.Window.screen.height); - } + if (requestWindowedFullscreen) glfwSetWindowSize(platform.handle, CORE.Window.screen.width, CORE.Window.screen.height); } else { From 38018192b8055024c4aa9b041943aa4e85bdd773 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 6 Jun 2024 10:12:23 +0200 Subject: [PATCH 379/790] RENAME: near, far vaiables --- src/raymath.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/raymath.h b/src/raymath.h index d036721a2..8b69cbd53 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -1837,32 +1837,32 @@ RMAPI Matrix MatrixScale(float x, float y, float z) } // Get perspective projection matrix -RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far) +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) { Matrix result = { 0 }; float rl = (float)(right - left); float tb = (float)(top - bottom); - float fn = (float)(far - near); + float fn = (float)(farPlane - nearPlane); - result.m0 = ((float)near*2.0f)/rl; + result.m0 = ((float)nearPlane*2.0f)/rl; result.m1 = 0.0f; result.m2 = 0.0f; result.m3 = 0.0f; result.m4 = 0.0f; - result.m5 = ((float)near*2.0f)/tb; + result.m5 = ((float)nearPlane*2.0f)/tb; result.m6 = 0.0f; result.m7 = 0.0f; result.m8 = ((float)right + (float)left)/rl; result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)far + (float)near)/fn; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; result.m11 = -1.0f; result.m12 = 0.0f; result.m13 = 0.0f; - result.m14 = -((float)far*(float)near*2.0f)/fn; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; result.m15 = 0.0f; return result; From e74d13e6dbdd8bbdde8112f396935b8b88349f5f Mon Sep 17 00:00:00 2001 From: Sprix <91488389+Sprixitite@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:47:07 +0100 Subject: [PATCH 380/790] Fix examples not building with gestures system disabled (#4020) Build no longer fails with -DSUPPORT_GESTURES_SYSTEM=OFF and -DBUILD_EXAMPLES=ON --- examples/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 922323674..28550eaec 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -113,6 +113,13 @@ elseif ("${PLATFORM}" STREQUAL "DRM") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) +elseif (NOT SUPPORT_GESTURES_SYSTEM) + # Items requiring gestures system + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_mouse_painting.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_basic_screen_manager.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures_web.c) + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures.c) + endif () # The rlgl_standalone example only targets desktop, without shared libraries. From f05316b11d0a1b17088e3e75e4682e2e7ce54b91 Mon Sep 17 00:00:00 2001 From: jgabaut <109908086+jgabaut@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:29:15 +0200 Subject: [PATCH 381/790] [rlgl] Rename near, far variables (#4039) --- src/rlgl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index bef7eaf18..2f6a03b8a 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -590,7 +590,7 @@ RLAPI void rlMultMatrixf(const float *matf); // Multiply the current RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area -RLAPI void rlSetClipPlanes(double near, double far); // Set clip planes distances +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far @@ -1371,10 +1371,10 @@ void rlViewport(int x, int y, int width, int height) } // Set clip planes distances -void rlSetClipPlanes(double near, double far) +void rlSetClipPlanes(double nearPlane, double farPlane) { - rlCullDistanceNear = near; - rlCullDistanceFar = far; + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; } // Get cull plane distance near From 3948656d84da2e02ba4c2fda80ac813f6c81813e Mon Sep 17 00:00:00 2001 From: Konrad Gutvik Grande Date: Fri, 7 Jun 2024 10:21:02 +0200 Subject: [PATCH 382/790] The example always showed a xbox controller, never a ps3 controller (#4040) --- examples/core/core_input_gamepad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/core/core_input_gamepad.c b/examples/core/core_input_gamepad.c index 843d5d90b..656f7c244 100644 --- a/examples/core/core_input_gamepad.c +++ b/examples/core/core_input_gamepad.c @@ -22,7 +22,7 @@ // NOTE: Gamepad name ID depends on drivers and OS #define XBOX360_LEGACY_NAME_ID "Xbox Controller" #define XBOX360_NAME_ID "Xbox 360 Controller" -#define PS3_NAME_ID "PLAYSTATION(R)3 Controller" +#define PS3_NAME_ID "Sony PLAYSTATION(R)3 Controller" //------------------------------------------------------------------------------------ // Program main entry point @@ -67,7 +67,7 @@ int main(void) { DrawText(TextFormat("GP%d: %s", gamepad, GetGamepadName(gamepad)), 10, 10, 10, BLACK); - if (true) + if (TextIsEqual(GetGamepadName(gamepad), XBOX360_LEGACY_NAME_ID) || TextIsEqual(GetGamepadName(gamepad), XBOX360_NAME_ID)) { DrawTexture(texXboxPad, 0, 0, DARKGRAY); From 7b92b5bde77f857dbf25a2e0aaacb79f592c18b2 Mon Sep 17 00:00:00 2001 From: fruzitent <40008647+fruzitent@users.noreply.github.com> Date: Fri, 7 Jun 2024 11:22:24 +0300 Subject: [PATCH 383/790] fix: infer CMAKE_MODULE_PATH in super-build (#4042) --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57719691a..a5e3408c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ cmake_policy(SET CMP0063 NEW) # Directory for easier includes # Anywhere you see include(...) you can check /cmake for that file -set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # RAYLIB_IS_MAIN determines whether the project is being used from root # or if it is added as a dependency (through add_subdirectory for example). @@ -51,7 +51,7 @@ add_subdirectory(src raylib) # Uninstall target if(NOT TARGET uninstall) configure_file( - "${CMAKE_MODULE_PATH}/Uninstall.cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Uninstall.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) From 8c712f82d12c08fd4710468d908be765ee54e748 Mon Sep 17 00:00:00 2001 From: Colleague Riley Date: Sat, 8 Jun 2024 16:26:46 -0400 Subject: [PATCH 384/790] Update RGFW (#4048) * Fix Makefile issues (RGFW) (linux) (macOS) * Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW) * remove #define RGFWDEF and make the #undefs only happen for their OS * Update RGFW.h * fix to match the RGFW updates * remove line that shows the cursor for no reason --- src/external/RGFW.h | 882 ++++++++++++++++++----------- src/platforms/rcore_desktop_rgfw.c | 8 +- 2 files changed, 561 insertions(+), 329 deletions(-) diff --git a/src/external/RGFW.h b/src/external/RGFW.h index 67c67e91c..a0ca21cec 100644 --- a/src/external/RGFW.h +++ b/src/external/RGFW.h @@ -34,7 +34,9 @@ #define RGFW_BUFFER - (optional) just draw directly to (RGFW) window pixel buffer that is drawn to screen (the buffer is in the RGBA format) #define RGFW_EGL - (optional) use EGL for loading an OpenGL context (instead of the system's opengl api) #define RGFW_OPENGL_ES1 - (optional) use EGL to load and use Opengl ES (version 1) for backend rendering (instead of the system's opengl api) + This version doesn't work for desktops (I'm pretty sure) #define RGFW_OPENGL_ES2 - (optional) use OpenGL ES (version 2) + #define RGFW_OPENGL_ES3 - (optional) use OpenGL ES (version 3) #define RGFW_VULKAN - (optional) use vulkan for the rendering backend (rather than opengl) #define RGFW_DIRECTX - (optional) use directX for the rendering backend (rather than opengl) (windows only, defaults to opengl for unix) #define RGFW_NO_API - (optional) don't use any rendering API (no opengl, no vulkan, no directX) @@ -90,12 +92,16 @@ #ifndef RGFWDEF #ifdef __APPLE__ -#define RGFWDEF extern inline +#define RGFWDEF static inline #else #define RGFWDEF inline #endif #endif +#ifndef RGFW_UNUSED +#define RGFW_UNUSED(x) if (x){} +#endif + #ifdef __cplusplus extern "C" { #endif @@ -106,7 +112,7 @@ extern "C" { #define RGFW_HEADER #if !defined(u8) -#include + #include typedef uint8_t u8; typedef int8_t i8; @@ -130,12 +136,16 @@ extern "C" { #define RGFW_WINDOWS -#if defined(_WIN32) +#if defined(_WIN32) && !defined(WIN32) #define WIN32 #endif #if defined(_WIN64) + +#ifndef WIN64 #define WIN64 +#endif + #define _AMD64_ #undef _X86_ #else @@ -163,7 +173,7 @@ extern "C" { #define RGFW_MACOS #endif -#if (defined(RGFW_OPENGL_ES1) || defined(RGFW_OPENGL_ES2)) && !defined(RGFW_EGL) +#if (defined(RGFW_OPENGL_ES1) || defined(RGFW_OPENGL_ES2) || defined(RGFW_OPENGL_ES3)) && !defined(RGFW_EGL) #define RGFW_EGL #endif #if defined(RGFW_EGL) && defined(__APPLE__) @@ -193,7 +203,7 @@ extern "C" { #include #endif -#if defined(RGFW_X11) && defined(RGFW_OPENGL) +#if defined(RGFW_X11) && (defined(RGFW_OPENGL)) #ifndef GLX_MESA_swap_control #define GLX_MESA_swap_control #endif @@ -384,10 +394,10 @@ typedef struct { i32 x, y; } RGFW_vector; RGFW_vector point; /*!< mouse x, y of event (or drop point) */ u32 keyCode; /*!< keycode of event !!Keycodes defined at the bottom of the header file!! */ - u32 inFocus; /*if the window is in focus or not*/ - u32 fps; /*the current fps of the window [the fps is checked when events are checked]*/ - u32 current_ticks, frames; /* this is used for counting the fps */ + u64 frameTime, frameTime2; /* this is used for counting the fps */ + + u8 inFocus; /*if the window is in focus or not*/ u8 lockState; @@ -416,9 +426,10 @@ typedef struct { i32 x, y; } RGFW_vector; u32 display; void* displayLink; void* window; + u8 dndPassed; #endif -#if defined(RGFW_OPENGL) && !defined(RGFW_OSMESA) +#if (defined(RGFW_OPENGL)) && !defined(RGFW_OSMESA) #ifdef RGFW_MACOS void* rSurf; /*!< source graphics context */ #endif @@ -460,6 +471,7 @@ typedef struct { i32 x, y; } RGFW_vector; #ifdef RGFW_EGL EGLSurface EGL_surface; EGLDisplay EGL_display; + EGLContext EGL_context; #endif #if defined(RGFW_OSMESA) || defined(RGFW_BUFFER) @@ -508,7 +520,7 @@ typedef struct { i32 x, y; } RGFW_vector; RGFW_rect r; /* the x, y, w and h of the struct */ - u8 fpsCap; /*!< the fps cap of the window should run at (change this var to change the fps cap, 0 = no limit)*/ + u32 fpsCap; /*!< the fps cap of the window should run at (change this var to change the fps cap, 0 = no limit)*/ /*[the fps is capped when events are checked]*/ } RGFW_window; /*!< Window structure for managing the window */ @@ -627,7 +639,6 @@ typedef struct { i32 x, y; } RGFW_vector; this is run by default if the user uses the arg `RGFW_SCALE_TO_MONITOR` during window creation */ RGFWDEF void RGFW_window_scaleToMonitor(RGFW_window* win); - /* get the struct of the window's monitor */ RGFWDEF RGFW_monitor RGFW_window_getMonitor(RGFW_window* win); @@ -635,11 +646,16 @@ typedef struct { i32 x, y; } RGFW_vector; RGFWDEF void RGFW_window_makeCurrent(RGFW_window* win); /*error handling*/ - RGFWDEF u8 RGFW_Error(); /* returns true if an error has occurred (doesn't print errors itself) */ + RGFWDEF u8 RGFW_Error(void); /* returns true if an error has occurred (doesn't print errors itself) */ /*!< if window == NULL, it checks if the key is pressed globally. Otherwise, it checks only if the key is pressed while the window in focus.*/ RGFWDEF u8 RGFW_isPressedI(RGFW_window* win, u32 key); /*!< if key is pressed (key code)*/ + RGFWDEF u8 RGFW_wasPressedI(RGFW_window* win, u32 key); /*!< if key was pressed (checks prev keymap only) (key code)*/ + + RGFWDEF u8 RGFW_isHeldI(RGFW_window* win, u32 key); /*!< if key is held (key code)*/ + RGFWDEF u8 RGFW_isReleasedI(RGFW_window* win, u32 key); /*!< if key is released (key code)*/ + /* !!Keycodes defined at the bottom of the header file!! */ @@ -676,7 +692,14 @@ typedef struct { i32 x, y; } RGFW_vector; if you're going to use sili which is a good idea generally */ - RGFWDEF RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args); /*!< create a thread*/ + + #if defined(__unix__) || defined(__APPLE__) + typedef void* (* RGFW_threadFunc_ptr)(void*); + #else + typedef DWORD (* RGFW_threadFunc_ptr)(void*); + #endif + + RGFWDEF RGFW_thread RGFW_createThread(RGFW_threadFunc_ptr ptr, void* args); /*!< create a thread*/ RGFWDEF void RGFW_cancelThread(RGFW_thread thread); /*!< cancels a thread*/ RGFWDEF void RGFW_joinThread(RGFW_thread thread); /*!< join thread to current thread */ RGFWDEF void RGFW_setThreadPriority(RGFW_thread thread, u8 priority); /*!< sets the priority priority */ @@ -694,7 +717,7 @@ typedef struct { i32 x, y; } RGFW_vector; /*! native opengl functions */ #ifdef RGFW_OPENGL /*! Get max OpenGL version */ - RGFWDEF u8* RGFW_getMaxGLVersion(); + RGFWDEF u8* RGFW_getMaxGLVersion(void); /* OpenGL init hints */ RGFWDEF void RGFW_setGLStencil(i32 stencil); /* set stencil buffer bit size (8 by default) */ RGFWDEF void RGFW_setGLSamples(i32 samples); /* set number of sampiling buffers (4 by default) */ @@ -754,8 +777,8 @@ typedef struct { i32 x, y; } RGFW_vector; RGFWDEF void RGFW_createSurface(VkInstance instance, RGFW_window* win); int RGFW_deviceInitialization(RGFW_window* win); int RGFW_createSwapchain(RGFW_window* win); - RGFWDEF int RGFW_createRenderPass(); - int RGFW_createCommandPool(); + RGFWDEF int RGFW_createRenderPass(void); + int RGFW_createCommandPool(void); int RGFW_createCommandBuffers(RGFW_window* win); int RGFW_createSyncObjects(RGFW_window* win); RGFWDEF int RGFW_createFramebuffers(RGFW_window* win); @@ -780,8 +803,7 @@ typedef struct { i32 x, y; } RGFW_vector; RGFWDEF void RGFW_window_checkFPS(RGFW_window* win); /*!< updates fps / sets fps to cap (ran by RGFW_window_checkEvent)*/ RGFWDEF u64 RGFW_getTime(void); /* get time in seconds */ RGFWDEF u64 RGFW_getTimeNS(void); /* get time in nanoseconds */ - RGFWDEF u32 RGFW_getFPS(void); /* get current FPS (win->event.fps) */ - RGFWDEF void RGFW_sleep(u32 microsecond); /* sleep for a set time */ + RGFWDEF void RGFW_sleep(u64 microsecond); /* sleep for a set time */ #endif /* RGFW_HEADER */ /* @@ -859,20 +881,19 @@ typedef struct { i32 x, y; } RGFW_vector; #ifdef RGFW_WINDOWS -#define WIN32_LEAN_AND_MEAN - #include #endif #ifdef RGFW_MACOS -#include - /* based on silicon.h */ +#ifndef GL_SILENCE_DEPRECATION #define GL_SILENCE_DEPRECATION +#endif + #include #include #include @@ -914,7 +935,7 @@ typedef struct { i32 x, y; } RGFW_vector; #define abi_objc_msgSend_fpret objc_msgSend_fpret #endif -#define NSAlloc(nsclass) objc_msgSend_id(nsclass, sel_registerName("alloc")) +#define NSAlloc(nsclass) objc_msgSend_id((id)nsclass, sel_registerName("alloc")) #define objc_msgSend_bool ((BOOL (*)(id, SEL))objc_msgSend) #define objc_msgSend_void ((void (*)(id, SEL))objc_msgSend) #define objc_msgSend_void_id ((void (*)(id, SEL, id))objc_msgSend) @@ -948,7 +969,7 @@ typedef struct { i32 x, y; } RGFW_vector; loadFunc("stringWithUTF8String:"); return ((id(*)(id, SEL, const char*))objc_msgSend) - (objc_getClass("NSString"), func, str); + ((id)objc_getClass("NSString"), func, str); } const char* NSString_to_char(NSString* str) { @@ -1053,7 +1074,7 @@ typedef struct { i32 x, y; } RGFW_vector; void* func = sel_registerName("initWithBitmapDataPlanes:pixelsWide:pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:"); return (NSBitmapImageRep*) ((id(*)(id, SEL, unsigned char**, NSInteger, NSInteger, NSInteger, NSInteger, bool, bool, const char*, NSBitmapFormat, NSInteger, NSInteger))objc_msgSend) - (NSAlloc(objc_getClass("NSBitmapImageRep")), func, planes, width, height, bps, spp, alpha, isPlanar, NSString_stringWithUTF8String(colorSpaceName), bitmapFormat, rowBytes, pixelBits); + (NSAlloc((id)objc_getClass("NSBitmapImageRep")), func, planes, width, height, bps, spp, alpha, isPlanar, NSString_stringWithUTF8String(colorSpaceName), bitmapFormat, rowBytes, pixelBits); } NSColor* NSColor_colorWithSRGB(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha) { @@ -1079,7 +1100,7 @@ typedef struct { i32 x, y; } RGFW_vector; NSImage* NSImage_initWithSize(NSSize size) { void* func = sel_registerName("initWithSize:"); return ((id(*)(id, SEL, NSSize))objc_msgSend) - (NSAlloc(objc_getClass("NSImage")), func, size); + (NSAlloc((id)objc_getClass("NSImage")), func, size); } #define NS_OPENGL_ENUM_DEPRECATED(minVers, maxVers) API_AVAILABLE(macos(minVers)) typedef NS_ENUM(NSInteger, NSOpenGLContextParameter) { @@ -1111,13 +1132,13 @@ typedef struct { i32 x, y; } RGFW_vector; void* NSOpenGLPixelFormat_initWithAttributes(const uint32_t* attribs) { void* func = sel_registerName("initWithAttributes:"); return (void*) ((id(*)(id, SEL, const uint32_t*))objc_msgSend) - (NSAlloc(objc_getClass("NSOpenGLPixelFormat")), func, attribs); + (NSAlloc((id)objc_getClass("NSOpenGLPixelFormat")), func, attribs); } NSOpenGLView* NSOpenGLView_initWithFrame(NSRect frameRect, uint32_t* format) { void* func = sel_registerName("initWithFrame:pixelFormat:"); return (NSOpenGLView*) ((id(*)(id, SEL, NSRect, uint32_t*))objc_msgSend) - (NSAlloc(objc_getClass("NSOpenGLView")), func, frameRect, format); + (NSAlloc((id)objc_getClass("NSOpenGLView")), func, frameRect, format); } void NSCursor_performSelector(NSCursor* cursor, void* selector) { @@ -1126,7 +1147,7 @@ typedef struct { i32 x, y; } RGFW_vector; } NSPasteboard* NSPasteboard_generalPasteboard(void) { - return (NSPasteboard*) objc_msgSend_id(objc_getClass("NSPasteboard"), sel_registerName("generalPasteboard")); + return (NSPasteboard*) objc_msgSend_id((id)objc_getClass("NSPasteboard"), sel_registerName("generalPasteboard")); } NSString** cstrToNSStringArray(char** strs, size_t len) { @@ -1144,27 +1165,22 @@ typedef struct { i32 x, y; } RGFW_vector; } NSArray* c_array_to_NSArray(void* array, size_t len) { - void* func = sel_registerName("initWithObjects:count:"); + SEL func = sel_registerName("initWithObjects:count:"); void* nsclass = objc_getClass("NSArray"); - - return ((id(*)(id, SEL, void*, NSUInteger))objc_msgSend) - (NSAlloc(nsclass), func, array, len); + return ((id (*)(id, SEL, void*, NSUInteger))objc_msgSend) + (NSAlloc(nsclass), func, array, len); } - + void NSregisterForDraggedTypes(void* view, NSPasteboardType* newTypes, size_t len) { - NSString** ntypes = cstrToNSStringArray(newTypes, len); - - void* func = sel_registerName("registerForDraggedTypes:"); + NSString** ntypes = cstrToNSStringArray((char**)newTypes, len); NSArray* array = c_array_to_NSArray(ntypes, len); - objc_msgSend_void_id(view, sel_registerName("registerForDraggedTypes:"), array); - NSRelease(array); } NSInteger NSPasteBoard_declareTypes(NSPasteboard* pasteboard, NSPasteboardType* newTypes, size_t len, void* owner) { - NSString** ntypes = cstrToNSStringArray(newTypes, len); + NSString** ntypes = cstrToNSStringArray((char**)newTypes, len); void* func = sel_registerName("declareTypes:owner:"); @@ -1252,13 +1268,17 @@ typedef struct { i32 x, y; } RGFW_vector; (pasteboard, func, array, options); NSRelease(array); - NSUInteger count = NSArray_count(output); const char** res = si_array_init_reserve(sizeof(const char*), count); - for (NSUInteger i = 0; i < count; i++) - res[i] = NSString_to_char(NSArray_objectAtIndex(output, i)); + void* path_func = sel_registerName("path"); + + for (NSUInteger i = 0; i < count; i++) { + void* url = NSArray_objectAtIndex(output, i); + NSString* url_str = ((id(*)(id, SEL))objc_msgSend)(url, path_func); + res[i] = NSString_to_char(url_str); + } return res; } @@ -1301,12 +1321,20 @@ typedef struct { i32 x, y; } RGFW_vector; } #endif + #ifdef RGFW_WINDOWS + __declspec(dllimport) u32 __stdcall timeBeginPeriod(u32 uPeriod); + #endif + RGFWDEF RGFW_window* RGFW_window_basic_init(RGFW_rect rect, u16 args); RGFWDEF void RGFW_init_buffer(RGFW_window* win); RGFW_window* RGFW_window_basic_init(RGFW_rect rect, u16 args) { RGFW_window* win = (RGFW_window*) RGFW_MALLOC(sizeof(RGFW_window)); /* make a new RGFW struct */ + #ifdef RGFW_WINDOWS + timeBeginPeriod(1); + #endif + #ifdef RGFW_ALLOC_DROPFILES win->event.droppedFiles = (char**) RGFW_MALLOC(sizeof(char*) * RGFW_MAX_DROPS); u32 i; @@ -1406,6 +1434,8 @@ typedef struct { i32 x, y; } RGFW_vector; win->src.hdcMem = CreateCompatibleDC(win->src.hdc); #endif +#else +RGFW_UNUSED(win); /* if buffer rendering is not being used */ #endif } @@ -1827,9 +1857,18 @@ typedef struct { i32 x, y; } RGFW_vector; #endif #if defined(RGFW_MACOS) - u8 RGFW_keyMap[128] = { 0 }; + u8 RGFW_keyBoard[128] = { 0 }; + u8 RGFW_keyBoard_prev[128]; #endif + u8 RGFW_isHeldI(RGFW_window* win, u32 key) { + return (RGFW_isPressedI(win, key) && RGFW_wasPressedI(win, key)); + } + + u8 RGFW_isReleasedI(RGFW_window* win, u32 key) { + return (!RGFW_isPressedI(win, key) && RGFW_wasPressedI(win, key)); + } + char* RGFW_keyCodeTokeyStr(u64 key) { #if defined(RGFW_MACOS) static char* keyStrs[128] = { "a", "s", "d", "f", "h", "g", "z", "x", "c", "v", "0", "b", "q", "w", "e", "r", "y", "t", "1", "2", "3", "4", "6", "5", "Equals", "9", "7", "Minus", "8", "0", "CloseBracket", "o", "u", "Bracket", "i", "p", "Return", "l", "j", "Apostrophe", "k", "Semicolon", "BackSlash", "Comma", "Slash", "n", "m", "Period", "Tab", "Space", "Backtick", "BackSpace", "0", "Escape", "0", "Super", "Shift", "CapsLock", "Alt", "Control", "0", "0", "0", "0", "0", "KP_Period", "0", "KP_Minus", "0", "0", "0", "0", "Numlock", "0", "0", "0", "KP_Multiply", "KP_Return", "0", "0", "0", "0", "KP_Slash", "KP_0", "KP_1", "KP_2", "KP_3", "KP_4", "KP_5", "KP_6", "KP_7", "0", "KP_8", "KP_9", "0", "0", "0", "F5", "F6", "F7", "F3", "F8", "F9", "0", "F11", "0", "F13", "0", "F14", "0", "F10", "0", "F12", "0", "F15", "Insert", "Home", "PageUp", "Delete", "F4", "End", "F2", "PageDown", "Left", "Right", "Down", "Up", "F1" }; @@ -1998,12 +2037,14 @@ typedef struct { i32 x, y; } RGFW_vector; u32 RGFW_isPressedJS(RGFW_window* win, u16 c, u8 button) { return win->src.jsPressed[c][button]; } #else - typedef DWORD (WINAPI * PFN_XInputGetState)(DWORD,XINPUT_STATE*); + typedef u64 (WINAPI * PFN_XInputGetState)(DWORD,XINPUT_STATE*); PFN_XInputGetState XInputGetStateSRC = NULL; #define XInputGetState XInputGetStateSRC static HMODULE RGFW_XInput_dll = NULL; u32 RGFW_isPressedJS(RGFW_window* win, u16 c, u8 button) { + RGFW_UNUSED(win) + XINPUT_STATE state; if (XInputGetState == NULL || XInputGetState(c, &state) == ERROR_DEVICE_NOT_CONNECTED) return 0; @@ -2027,9 +2068,15 @@ typedef struct { i32 x, y; } RGFW_vector; } #endif -#ifdef RGFW_OPENGL +#if defined(RGFW_OPENGL) || defined(RGFW_EGL) i32 RGFW_majorVersion = 0, RGFW_minorVersion = 0; + + #ifndef RGFW_EGL i32 RGFW_STENCIL = 8, RGFW_SAMPLES = 4, RGFW_STEREO = GL_FALSE, RGFW_AUX_BUFFERS = 0; + #else + i32 RGFW_STENCIL = 0, RGFW_SAMPLES = 0, RGFW_STEREO = GL_FALSE, RGFW_AUX_BUFFERS = 0; + #endif + void RGFW_setGLStencil(i32 stencil) { RGFW_STENCIL = stencil; } void RGFW_setGLSamples(i32 samples) { RGFW_SAMPLES = samples; } @@ -2041,7 +2088,7 @@ typedef struct { i32 x, y; } RGFW_vector; RGFW_minorVersion = minor; } - u8* RGFW_getMaxGLVersion() { + u8* RGFW_getMaxGLVersion(void) { RGFW_window* dummy = RGFW_createWindow("dummy", RGFW_RECT(0, 0, 1, 1), 0); const char* versionStr = (const char*) glGetString(GL_VERSION); @@ -2055,6 +2102,8 @@ typedef struct { i32 x, y; } RGFW_vector; return version; } +#ifndef RGFW_EGL + #define RGFW_GL_RENDER_TYPE RGFW_OS_BASED_VALUE(GLX_X_VISUAL_TYPE, 0x2003, 73) #define RGFW_GL_ALPHA_SIZE RGFW_OS_BASED_VALUE(GLX_ALPHA_SIZE, 0x201b, 11) #define RGFW_GL_DEPTH_SIZE RGFW_OS_BASED_VALUE(GLX_DEPTH_SIZE, 0x2022, 12) @@ -2087,6 +2136,7 @@ typedef struct { i32 x, y; } RGFW_vector; #endif static u32* RGFW_initAttribs(u32 useSoftware) { + RGFW_UNUSED(useSoftware); static u32 attribs[] = { #ifndef RGFW_MACOS RGFW_GL_RENDER_TYPE, @@ -2165,9 +2215,9 @@ typedef struct { i32 x, y; } RGFW_vector; return attribs; } -#endif +#else -#ifdef RGFW_EGL +#include #if defined(RGFW_LINK_EGL) typedef EGLBoolean(EGLAPIENTRY* PFN_eglInitialize)(EGLDisplay, EGLint*, EGLint*); @@ -2202,8 +2252,8 @@ typedef struct { i32 x, y; } RGFW_vector; #endif -#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 -#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30fb +#define EGL_SURFACE_MAJOR_VERSION_KHR 0x3098 +#define EGL_SURFACE_MINOR_VERSION_KHR 0x30fb #ifndef RGFW_GL_ADD_ATTRIB #define RGFW_GL_ADD_ATTRIB(attrib, attVal) \ @@ -2214,9 +2264,8 @@ typedef struct { i32 x, y; } RGFW_vector; } #endif - void RGFW_createOpenGLContext(RGFW_window* win) { - static EGLContext globalCtx = EGL_NO_CONTEXT; + void RGFW_createOpenGLContext(RGFW_window* win) { #if defined(RGFW_LINK_EGL) eglInitializeSource = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize"); eglGetConfigsSource = (PFNEGLGETCONFIGSPROC) eglGetProcAddress("eglGetConfigs"); @@ -2233,69 +2282,101 @@ typedef struct { i32 x, y; } RGFW_vector; eglDestroySurfaceSource = (PFNEGLDESTROYSURFACEPROC) eglGetProcAddress("eglDestroySurface"); #endif /* RGFW_LINK_EGL */ + #ifdef RGFW_WINDOWS + win->src.EGL_display = eglGetDisplay((EGLNativeDisplayType) win->src.hdc); + #else win->src.EGL_display = eglGetDisplay((EGLNativeDisplayType) win->src.display); + #endif EGLint major, minor; eglInitialize(win->src.EGL_display, &major, &minor); - EGLint config_attribs[] = { + #ifndef EGL_OPENGL_ES1_BIT + #define EGL_OPENGL_ES1_BIT 0x1 + #endif + + EGLint egl_config[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, #ifdef RGFW_OPENGL_ES1 EGL_OPENGL_ES1_BIT, - #endif - #ifdef RGFW_OPENGL_ES2 + #elif defined(RGFW_OPENGL_ES3) + EGL_OPENGL_ES3_BIT, + #elif defined(RGFW_OPENGL_ES2) EGL_OPENGL_ES2_BIT, #else EGL_OPENGL_BIT, #endif - EGL_NONE + EGL_NONE, EGL_NONE }; EGLConfig config; - EGLint num_configs; - eglChooseConfig(win->src.EGL_display, config_attribs, &config, 1, &num_configs); + EGLint numConfigs; + eglChooseConfig(win->src.EGL_display, egl_config, &config, 1, &numConfigs); -#if defined(RGFW_OPENGL_ES2) || defined(RGFW_OPENGL_ES1) - eglBindAPI(EGL_OPENGL_ES_API); -#else - eglBindAPI(EGL_OPENGL_API); -#endif - EGLint attribs[]{ - EGL_CONTEXT_OPENGL_PROFILE_MASK, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT, - 0, 0, 0, 0 - }; - - size_t index = 2; - RGFW_GL_ADD_ATTRIB(EGL_STENCIL_SIZE, RGFW_STENCIL); - RGFW_GL_ADD_ATTRIB(EGL_SAMPLES, RGFW_SAMPLES); - RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MAJOR_VERSION, RGFW_majorVersion); - RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MINOR_VERSION, RGFW_minorVersion); - - win->src.rSurf = eglCreateContext(win->src.EGL_display, config, globalCtx, attribs); win->src.EGL_surface = eglCreateWindowSurface(win->src.EGL_display, config, (EGLNativeWindowType) win->src.window, NULL); - if (globalCtx == EGL_NO_CONTEXT) - RGFW_EGLglobalContext = win->src.rSurf; + EGLint attribs[] = { + EGL_CONTEXT_CLIENT_VERSION, + #ifdef RGFW_OPENGL_ES1 + 1, + #else + 2, + #endif + EGL_NONE, EGL_NONE, EGL_NONE, EGL_NONE, EGL_NONE, EGL_NONE + }; - eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.rSurf); + size_t index = 4; + RGFW_GL_ADD_ATTRIB(EGL_STENCIL_SIZE, RGFW_STENCIL); + RGFW_GL_ADD_ATTRIB(EGL_SAMPLES, RGFW_SAMPLES); + + if (RGFW_majorVersion) { + attribs[1] = RGFW_majorVersion; + RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_OPENGL_PROFILE_MASK, EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT); + RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MAJOR_VERSION, RGFW_majorVersion); + RGFW_GL_ADD_ATTRIB(EGL_CONTEXT_MINOR_VERSION, RGFW_minorVersion); + } + + #if defined(RGFW_OPENGL_ES1) || defined(RGFW_OPENGL_ES2) || defined(RGFW_OPENGL_ES3) + eglBindAPI(EGL_OPENGL_ES_API); + #else + eglBindAPI(EGL_OPENGL_API); + #endif + + win->src.EGL_context = eglCreateContext(win->src.EGL_display, config, EGL_NO_CONTEXT, attribs); + + eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.EGL_context); eglSwapBuffers(win->src.EGL_display, win->src.EGL_surface); - - eglSwapInterval(win->src.EGL_display, 1); } - void* RGFW_getProcAddress(const char* procname) { return (void*) eglGetProcAddress(procname); } + #ifdef RGFW_APPLE + void* RGFWnsglFramework = NULL; + #elif defined(RGFW_WINDOWS) + static HMODULE wglinstance = NULL; + #endif + + void* RGFW_getProcAddress(const char* procname) { + #if defined(RGFW_WINDOWS) + void* proc = (void*) GetProcAddress(wglinstance, procname); + + if (proc) + return proc; + #endif + + return (void*) eglGetProcAddress(procname); + } void RGFW_closeEGL(RGFW_window* win) { eglDestroySurface(win->src.EGL_display, win->src.EGL_surface); - eglDestroyContext(win->src.EGL_display, win->src.rSurf); + eglDestroyContext(win->src.EGL_display, win->src.EGL_context); eglTerminate(win->src.EGL_display); } #endif /* RGFW_EGL */ +#endif /* RGFW_GL stuff? */ /* This is where OS specific stuff starts @@ -2388,7 +2469,7 @@ typedef struct { i32 x, y; } RGFW_vector; } u32 i; - for (i = 0; i < fbcount; i++) { + for (i = 0; i < (u32)fbcount; i++) { XVisualInfo* vi = glXGetVisualFromFBConfig((Display*) win->src.display, fbc[i]); if (vi == NULL) continue; @@ -2398,8 +2479,9 @@ typedef struct { i32 x, y; } RGFW_vector; i32 samp_buf, samples; glXGetFBConfigAttrib((Display*) win->src.display, fbc[i], GLX_SAMPLE_BUFFERS, &samp_buf); glXGetFBConfigAttrib((Display*) win->src.display, fbc[i], GLX_SAMPLES, &samples); - if ((best_fbc < 0 || samp_buf) && (samples == RGFW_SAMPLES)) + if ((best_fbc < 0 || samp_buf) && (samples == RGFW_SAMPLES || best_fbc == -1)) { best_fbc = i; + } } if (best_fbc == -1) { @@ -2471,11 +2553,6 @@ typedef struct { i32 x, y; } RGFW_vector; win->src.rSurf = glXCreateContextAttribsARB((Display*) win->src.display, bestFbc, ctx, True, context_attribs); #endif - -#ifdef RGFW_EGL - RGFW_createOpenGLContext(win); -#endif - if (RGFW_root == NULL) RGFW_root = win; @@ -2558,6 +2635,10 @@ typedef struct { i32 x, y; } RGFW_vector; PropModeReplace, (u8*) &version, 1); /* turns on drag and drop */ } + #ifdef RGFW_EGL + RGFW_createOpenGLContext(win); + #endif + RGFW_window_setMouseDefault(win); RGFW_windowsOpen++; @@ -2593,9 +2674,11 @@ typedef struct { i32 x, y; } RGFW_vector; int xAxis = 0, yAxis = 0; + char RGFW_keyboard[32]; + char RGFW_keyboard_prev[32]; + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { assert(win != NULL); - win->event.type = 0; #ifdef __linux__ @@ -2650,13 +2733,6 @@ typedef struct { i32 x, y; } RGFW_vector; } u32 i; - - if (win->event.droppedFilesCount) { - for (i = 0; i < win->event.droppedFilesCount; i++) - win->event.droppedFiles[i][0] = '\0'; - } - - win->event.droppedFilesCount = 0; win->event.type = 0; @@ -2676,6 +2752,11 @@ typedef struct { i32 x, y; } RGFW_vector; win->event.keyCode = XkbKeycodeToKeysym((Display*) win->src.display, E.xkey.keycode, 0, E.xkey.state & ShiftMask ? 1 : 0); win->event.keyName = XKeysymToString(win->event.keyCode); /* convert to string */ + if (RGFW_isPressedI(win, win->event.keyCode)) + RGFW_keyboard_prev[E.xkey.keycode >> 3] |= (1 << (E.xkey.keycode & 7)); + else + RGFW_keyboard_prev[E.xkey.keycode >> 3] |= 0; + /* get keystate data */ win->event.type = (E.type == KeyPress) ? RGFW_keyPressed : RGFW_keyReleased; @@ -2690,6 +2771,8 @@ typedef struct { i32 x, y; } RGFW_vector; else if (win->event.keyCode == XK_Num_Lock) win->event.lockState |= RGFW_NUMLOCK; } + + XQueryKeymap(win->src.display, RGFW_keyboard); /* query the keymap */ break; case ButtonPress: @@ -2718,6 +2801,14 @@ typedef struct { i32 x, y; } RGFW_vector; win->event.type = RGFW_quit; break; } + + /* reset DND values */ + if (win->event.droppedFilesCount) { + for (i = 0; i < win->event.droppedFilesCount; i++) + win->event.droppedFiles[i][0] = '\0'; + } + + win->event.droppedFilesCount = 0; /* much of this event (drag and drop code) is source from glfw @@ -3002,13 +3093,13 @@ typedef struct { i32 x, y; } RGFW_vector; win->src.winArgs &= ~RGFW_MOUSE_CHANGED; } - if (win->src.winArgs & RGFW_HOLD_MOUSE && win->event.inFocus && win->event.type == RGFW_mousePosChanged) { - RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); - - if (XEventsQueued((Display*) win->src.display, QueuedAfterReading) <= 1) - XSync(win->src.display, True); - } + if (win->src.winArgs & RGFW_HOLD_MOUSE && win->event.inFocus && win->event.type == RGFW_mousePosChanged) { + RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + if (XEventsQueued((Display*) win->src.display, QueuedAfterReading) <= 1) + XSync(win->src.display, True); + } + XFlush((Display*) win->src.display); @@ -3022,7 +3113,7 @@ typedef struct { i32 x, y; } RGFW_vector; assert(win != NULL); #ifdef RGFW_VULKAN - for (int i = 0; i < win->src.image_count; i++) { + for (u32 i = 0; i < win->src.image_count; i++) { vkDestroyImageView(RGFW_vulkan_info.device, win->src.swapchain_image_views[i], NULL); } @@ -3212,7 +3303,7 @@ typedef struct { i32 x, y; } RGFW_vector; #ifndef RGFW_NO_X11_CURSOR /* free the previous cursor */ - if (win->src.cursor && win->src.cursor != -1) + if (win->src.cursor) XFreeCursor((Display*) win->src.display, (Cursor) win->src.cursor); XcursorImage* native = XcursorImageCreate(a.w, a.h); @@ -3235,6 +3326,8 @@ typedef struct { i32 x, y; } RGFW_vector; win->src.cursor = XcursorImageLoadCursor((Display*) win->src.display, native); XcursorImageDestroy(native); +#else + RGFW_UNUSED(image) RGFW_UNUSED(a.w) RGFW_UNUSED(channels) #endif } @@ -3256,7 +3349,7 @@ typedef struct { i32 x, y; } RGFW_vector; } RGFWDEF void RGFW_window_disableMouse(RGFW_window* win) { - + RGFW_UNUSED(win); } void RGFW_window_setMouseDefault(RGFW_window* win) { @@ -3267,7 +3360,7 @@ typedef struct { i32 x, y; } RGFW_vector; assert(win != NULL); /* free the previous cursor */ - if (win->src.cursor && win->src.cursor != -1) + if (win->src.cursor) XFreeCursor((Display*) win->src.display, (Cursor) win->src.cursor); win->src.winArgs |= RGFW_MOUSE_CHANGED; @@ -3615,7 +3708,7 @@ typedef struct { i32 x, y; } RGFW_vector; monitor.physW = (monitor.rect.w * 25.4f / 96.f); monitor.physH = (monitor.rect.h * 25.4f / 96.f); - strncpy(monitor.name, DisplayString(display), 128); + strcpy(monitor.name, DisplayString(display)); XGetSystemContentScale(display, &monitor.scaleX, &monitor.scaleY); @@ -3648,7 +3741,7 @@ typedef struct { i32 x, y; } RGFW_vector; RGFW_monitor RGFW_monitors[6]; RGFW_monitor* RGFW_getMonitors(void) { size_t i; - for (i = 0; i < ScreenCount(RGFW_root->src.display) && i < 6; i++) + for (i = 0; i < (size_t)ScreenCount(RGFW_root->src.display) && i < 6; i++) RGFW_monitors[i] = RGFW_XCreateMonitor(i); return RGFW_monitors; @@ -3684,9 +3777,7 @@ typedef struct { i32 x, y; } RGFW_vector; RGFW_monitor RGFW_window_getMonitor(RGFW_window* win) { return RGFW_XCreateMonitor(DefaultScreen(win->src.display)); } - - char keyboard[32]; - + u8 RGFW_isPressedI(RGFW_window* win, u32 key) { Display* d; if (win == (RGFW_window*) 0) @@ -3695,11 +3786,22 @@ typedef struct { i32 x, y; } RGFW_vector; return 0; else d = (Display*) win->src.display; - - XQueryKeymap(d, keyboard); /* query the keymap */ - + KeyCode kc2 = XKeysymToKeycode(d, key); /* convert the key to a keycode */ - return !!(keyboard[kc2 >> 3] & (1 << (kc2 & 7))); /* check if the key is pressed */ + return (RGFW_keyboard[kc2 >> 3] & (1 << (kc2 & 7))); /* check if the key is pressed */ + } + + u8 RGFW_wasPressedI(RGFW_window* win, u32 key) { + Display* d; + if (win == (RGFW_window*) 0) + d = RGFW_root->src.display; + else if (!win->event.inFocus) + return 0; + else + d = (Display*) win->src.display; + + KeyCode kc2 = XKeysymToKeycode(d, key); /* convert the key to a keycode */ + return !!(RGFW_keyboard_prev[kc2 >> 3] & (1 << (kc2 & 7))); /* check if the key is pressed */ } #endif @@ -3742,8 +3844,8 @@ typedef struct { i32 x, y; } RGFW_vector; void* RGFWjoystickApi = NULL; /* these two wgl functions need to be preloaded */ - typedef HGLRC(WINAPI* wglCreateContextAttribsARB_type)(HDC hdc, HGLRC hShareContext, - const i32* attribList); + typedef long long int (WINAPI* wglCreateContextAttribsARB_type)(HDC hdc, HGLRC hShareContext, + const int* attribList); wglCreateContextAttribsARB_type wglCreateContextAttribsARB = NULL; /* defines for creating ARB attributes */ @@ -3785,7 +3887,9 @@ typedef struct { i32 x, y; } RGFW_vector; #define WGL_SAMPLES_ARB 0x2042 #define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9 +#ifndef RGFW_EGL static HMODULE wglinstance = NULL; +#endif #ifdef RGFW_WGL_LOAD typedef HGLRC(WINAPI* PFN_wglCreateContext)(HDC); @@ -3802,13 +3906,13 @@ static HMODULE wglinstance = NULL; PFN_wglGetCurrentDC wglGetCurrentDCSRC; PFN_wglGetCurrentContext wglGetCurrentContextSRC; -#define wglCreateContext wglCreateContextSRC -#define wglDeleteContext wglDeleteContextSRC -#define wglGetProcAddress wglGetProcAddressSRC -#define wglMakeCurrent wglMakeCurrentSRC + #define wglCreateContext wglCreateContextSRC + #define wglDeleteContext wglDeleteContextSRC + #define wglGetProcAddress wglGetProcAddressSRC + #define wglMakeCurrent wglMakeCurrentSRC -#define wglGetCurrentDC wglGetCurrentDCSRC -#define wglGetCurrentContext wglGetCurrentContextSRC + #define wglGetCurrentDC wglGetCurrentDCSRC + #define wglGetCurrentContext wglGetCurrentContextSRC #endif #ifdef RGFW_OPENGL @@ -3820,11 +3924,11 @@ static HMODULE wglinstance = NULL; return (void*) GetProcAddress(wglinstance, procname); } - typedef BOOL(APIENTRY* PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); + typedef u64 (APIENTRY* PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); static PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB = NULL; #endif - RGFW_window RGFW_eventWindow = { {NULL} }; + RGFW_window RGFW_eventWindow; LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { @@ -3845,7 +3949,7 @@ static HMODULE wglinstance = NULL; #ifndef RGFW_NO_DPI static HMODULE RGFW_Shcore_dll = NULL; - typedef HRESULT (WINAPI * PFN_GetDpiForMonitor)(HMONITOR,MONITOR_DPI_TYPE,UINT*,UINT*); + typedef u64 (WINAPI * PFN_GetDpiForMonitor)(HMONITOR,MONITOR_DPI_TYPE,UINT*,UINT*); PFN_GetDpiForMonitor GetDpiForMonitorSRC = NULL; #define GetDpiForMonitor GetDpiForMonitorSRC #endif @@ -3898,6 +4002,7 @@ static HMODULE wglinstance = NULL; if (name[0] == 0) name = (char*) " "; RGFW_eventWindow.r = RGFW_RECT(-1, -1, -1, -1); + RGFW_eventWindow.src.window = NULL; RGFW_window* win = RGFW_window_basic_init(rect, args); @@ -4036,7 +4141,7 @@ static HMODULE wglinstance = NULL; ReleaseDC(dummyWin, dummy_dc); if (wglCreateContextAttribsARB != NULL) { - PIXELFORMATDESCRIPTOR pfd = { sizeof(pfd), 1, PFD_TYPE_RGBA, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, 32, 8, PFD_MAIN_PLANE, 24, 8 }; + PIXELFORMATDESCRIPTOR pfd = (PIXELFORMATDESCRIPTOR){ sizeof(pfd), 1, PFD_TYPE_RGBA, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, 32, 8, PFD_MAIN_PLANE, 24, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; if (args & RGFW_OPENGL_SOFTWARE) pfd.dwFlags |= PFD_GENERIC_FORMAT | PFD_GENERIC_ACCELERATED; @@ -4059,15 +4164,15 @@ static HMODULE wglinstance = NULL; u32 index = 0; i32 attribs[40]; -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 - SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB); + + SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB); if (RGFW_majorVersion || RGFW_minorVersion) { SET_ATTRIB(WGL_CONTEXT_MAJOR_VERSION_ARB, RGFW_majorVersion); SET_ATTRIB(WGL_CONTEXT_MINOR_VERSION_ARB, RGFW_minorVersion); } - SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB); + SET_ATTRIB(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB); if (RGFW_majorVersion || RGFW_minorVersion) { SET_ATTRIB(WGL_CONTEXT_MAJOR_VERSION_ARB, RGFW_majorVersion); @@ -4076,7 +4181,7 @@ static HMODULE wglinstance = NULL; SET_ATTRIB(0, 0); - win->src.rSurf = wglCreateContextAttribsARB(win->src.hdc, NULL, attribs); + win->src.rSurf = (HGLRC)wglCreateContextAttribsARB(win->src.hdc, NULL, attribs); } else { fprintf(stderr, "Failed to create an accelerated OpenGL Context\n"); @@ -4293,6 +4398,9 @@ static HMODULE wglinstance = NULL; return 0; } + BYTE RGFW_keyBoard[256]; + BYTE RGFW_keyBoard_prev[256]; + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { assert(win != NULL); @@ -4317,14 +4425,6 @@ static HMODULE wglinstance = NULL; return &win->event; } - if (win->event.droppedFilesCount) { - u32 i; - for (i = 0; i < win->event.droppedFilesCount; i++) - win->event.droppedFiles[i][0] = '\0'; - } - - win->event.droppedFilesCount = 0; - win->event.inFocus = (GetForegroundWindow() == win->src.window); if (RGFW_checkXInput(&win->event)) @@ -4334,7 +4434,6 @@ static HMODULE wglinstance = NULL; return NULL; static BYTE keyboardState[256]; - GetKeyboardState(keyboardState); if (PeekMessageA(&msg, win->src.window, 0u, 0u, PM_REMOVE)) { switch (msg.message) { @@ -4345,24 +4444,37 @@ static HMODULE wglinstance = NULL; case WM_KEYUP: win->event.keyCode = (u32) msg.wParam; + if (RGFW_isPressedI(win, win->event.keyCode)) + RGFW_keyBoard_prev[win->event.keyCode] |= 0x80; + else + RGFW_keyBoard_prev[win->event.keyCode] = 0; + strncpy(win->event.keyName, RGFW_keyCodeTokeyStr(msg.lParam), 16); - if (GetKeyState(VK_SHIFT) & 0x8000) { + if (RGFW_isPressedI(win, VK_SHIFT)) { ToAscii((UINT) msg.wParam, MapVirtualKey((UINT) msg.wParam, MAPVK_VK_TO_CHAR), keyboardState, (LPWORD) win->event.keyName, 0); } win->event.type = RGFW_keyReleased; + GetKeyboardState(RGFW_keyBoard); break; case WM_KEYDOWN: win->event.keyCode = (u32) msg.wParam; + + if (RGFW_isPressedI(win, win->event.keyCode)) + RGFW_keyBoard_prev[win->event.keyCode] |= 0x80; + else + RGFW_keyBoard_prev[win->event.keyCode] = 0; + strncpy(win->event.keyName, RGFW_keyCodeTokeyStr(msg.lParam), 16); - if (GetKeyState(VK_SHIFT) & 0x8000) { + if (RGFW_isPressedI(win, VK_SHIFT) & 0x8000) { ToAscii((UINT) msg.wParam, MapVirtualKey((UINT) msg.wParam, MAPVK_VK_TO_CHAR), keyboardState, (LPWORD) win->event.keyName, 0); } win->event.type = RGFW_keyPressed; + GetKeyboardState(RGFW_keyBoard); break; case WM_MOUSEMOVE: @@ -4413,6 +4525,15 @@ static HMODULE wglinstance = NULL; much of this event is source from glfw */ case WM_DROPFILES: { + + if (win->event.droppedFilesCount) { + u32 i; + for (i = 0; i < win->event.droppedFilesCount; i++) + win->event.droppedFiles[i][0] = '\0'; + } + + win->event.droppedFilesCount = 0; + win->event.type = RGFW_dnd; HDROP drop = (HDROP) msg.wParam; @@ -4522,6 +4643,9 @@ static HMODULE wglinstance = NULL; typedef struct { int iIndex; HMONITOR hMonitor; } RGFW_mInfo; BOOL CALLBACK GetMonitorByHandle(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { + RGFW_UNUSED(hdcMonitor) + RGFW_UNUSED(lprcMonitor) + RGFW_mInfo* info = (RGFW_mInfo*) dwData; if (info->hMonitor == hMonitor) return FALSE; @@ -4586,6 +4710,9 @@ static HMODULE wglinstance = NULL; RGFW_monitor RGFW_monitors[6]; BOOL CALLBACK GetMonitorHandle(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { + RGFW_UNUSED(hdcMonitor) + RGFW_UNUSED(lprcMonitor) + RGFW_mInfo* info = (RGFW_mInfo*) dwData; if (info->iIndex >= 6) @@ -4618,9 +4745,20 @@ static HMODULE wglinstance = NULL; if (win != NULL && !win->event.inFocus) return 0; - if (GetAsyncKeyState(key) & 0x8000) + if (RGFW_keyBoard[key] & 0x80) return 1; - else return 0; + + return 0; + } + + u8 RGFW_wasPressedI(RGFW_window* win, u32 key) { + if (win != NULL && !win->event.inFocus) + return 0; + + if (RGFW_keyBoard_prev[key] & 0x80) + return 1; + + return 0; } HICON RGFW_loadHandleImage(RGFW_window* win, u8* src, RGFW_area a, BOOL icon) { @@ -4684,6 +4822,7 @@ static HMODULE wglinstance = NULL; void RGFW_window_setMouse(RGFW_window* win, u8* image, RGFW_area a, i32 channels) { assert(win != NULL); + RGFW_UNUSED(channels) HCURSOR cursor = (HCURSOR) RGFW_loadHandleImage(win, image, a, FALSE); SetClassLongPtrA(win->src.window, GCLP_HCURSOR, (LPARAM) cursor); @@ -4824,6 +4963,7 @@ static HMODULE wglinstance = NULL; /* much of this function is sourced from GLFW */ void RGFW_window_setIcon(RGFW_window* win, u8* src, RGFW_area a, i32 channels) { assert(win != NULL); + RGFW_UNUSED(channels) HICON handle = RGFW_loadHandleImage(win, src, a, TRUE); @@ -4900,12 +5040,14 @@ static HMODULE wglinstance = NULL; u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) { assert(win != NULL); + RGFW_UNUSED(jsNumber) + return RGFW_registerJoystickF(win, (char*) ""); } u16 RGFW_registerJoystickF(RGFW_window* win, char* file) { assert(win != NULL); - + RGFW_UNUSED(file) return win->src.joystickCount - 1; } @@ -4936,7 +5078,7 @@ static HMODULE wglinstance = NULL; } #ifndef RGFW_NO_THREADS - RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args) { return CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) *function_ptr, args, 0, NULL); } + RGFW_thread RGFW_createThread(RGFW_threadFunc_ptr ptr, void* args) { return CreateThread(NULL, 0, ptr, args, 0, NULL); } void RGFW_cancelThread(RGFW_thread thread) { CloseHandle((HANDLE) thread); } void RGFW_joinThread(RGFW_thread thread) { WaitForSingleObject((HANDLE) thread, INFINITE); } void RGFW_setThreadPriority(RGFW_thread thread, u8 priority) { SetThreadPriority((HANDLE) thread, priority); } @@ -4962,7 +5104,10 @@ static HMODULE wglinstance = NULL; } #endif - CVReturn displayCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* inNow, const CVTimeStamp* inOutputTime, CVOptionFlags flagsIn, CVOptionFlags* flagsOut, void* displayLinkContext) { return kCVReturnSuccess; } + CVReturn displayCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* inNow, const CVTimeStamp* inOutputTime, CVOptionFlags flagsIn, CVOptionFlags* flagsOut, void* displayLinkContext) { + RGFW_UNUSED(displayLink) RGFW_UNUSED(inNow) RGFW_UNUSED(inOutputTime) RGFW_UNUSED(flagsIn) RGFW_UNUSED(flagsOut) RGFW_UNUSED(displayLinkContext) + return kCVReturnSuccess; + } RGFW_window* RGFW_windows[10]; u32 RGFW_windows_size = 0; @@ -4983,17 +5128,25 @@ static HMODULE wglinstance = NULL; } /* NOTE(EimaMei): Fixes the constant clicking when the app is running under a terminal. */ - bool acceptsFirstResponder() { return true; } - bool performKeyEquivalent(NSEvent* event) { return true; } + bool acceptsFirstResponder(void) { return true; } + bool performKeyEquivalent(NSEvent* event) { RGFW_UNUSED(event); return true; } - NSDragOperation draggingEntered(id self, SEL sel, id sender) { return NSDragOperationCopy; } - NSDragOperation draggingUpdated(id self, SEL sel, id sender) { return NSDragOperationCopy; } + NSDragOperation draggingEntered(id self, SEL sel, id sender) { + RGFW_UNUSED(sender); RGFW_UNUSED(self); RGFW_UNUSED(sel); + return NSDragOperationCopy; + } + NSDragOperation draggingUpdated(id self, SEL sel, id sender) { + RGFW_UNUSED(sender); RGFW_UNUSED(self); RGFW_UNUSED(sel); + return NSDragOperationCopy; + } bool prepareForDragOperation(void) { return true; } - void RGFW__osxDraggingEnded(id self, SEL sel, id sender) { return; } + void RGFW__osxDraggingEnded(id self, SEL sel, id sender) { RGFW_UNUSED(sender); RGFW_UNUSED(self); RGFW_UNUSED(sel); return; } /* NOTE(EimaMei): Usually, you never need 'id self, SEL cmd' for C -> Obj-C methods. This isn't the case. */ bool performDragOperation(id self, SEL sel, id sender) { + RGFW_UNUSED(sender); RGFW_UNUSED(self); RGFW_UNUSED(sel); + NSWindow* window = objc_msgSend_id(sender, sel_registerName("draggingDestinationWindow")); u32 i; bool found = false; @@ -5007,10 +5160,10 @@ static HMODULE wglinstance = NULL; if (!found) i = 0; - Class* array[] = { objc_getClass("NSURL"), NULL }; - char** droppedFiles = (char**) NSPasteboard_readObjectsForClasses( - (NSPasteboard*) objc_msgSend_id(sender, sel_registerName("draggingPasteboard")), - array, 1, NULL); + Class array[] = { objc_getClass("NSURL"), NULL }; + NSPasteboard* pasteBoard = objc_msgSend_id(sender, sel_registerName("draggingPasteboard")); + + char** droppedFiles = (char**) NSPasteboard_readObjectsForClasses(pasteBoard, array, 1, NULL); RGFW_windows[i]->event.droppedFilesCount = si_array_len(droppedFiles); @@ -5020,11 +5173,12 @@ static HMODULE wglinstance = NULL; strcpy(RGFW_windows[i]->event.droppedFiles[y], droppedFiles[y]); RGFW_windows[i]->event.type = RGFW_dnd; + RGFW_windows[i]->src.dndPassed = false; - NSPoint p = *(NSPoint*) objc_msgSend_id(sender, sel_registerName("draggingLocation")); - RGFW_windows[i]->event.point.x = p.x; - RGFW_windows[i]->event.point.x = p.y; + NSPoint p = ((NSPoint(*)(id, SEL)) objc_msgSend)(sender, sel_registerName("draggingLocation")); + RGFW_windows[i]->event.point.x = (i32)p.x; + RGFW_windows[i]->event.point.x = (i32)p.y; return true; } @@ -5059,6 +5213,8 @@ static HMODULE wglinstance = NULL; NSSize RGFW__osxWindowResize(void* self, SEL sel, NSSize frameSize) { + RGFW_UNUSED(sel); + u32 i; for (i = 0; i < RGFW_windows_size; i++) { if (RGFW_windows[i] && NSWindow_delegate(RGFW_windows[i]) == self) { @@ -5074,6 +5230,8 @@ static HMODULE wglinstance = NULL; } void RGFW__osxWindowMove(void* self, SEL sel) { + RGFW_UNUSED(sel); + u32 i; for (i = 0; i < RGFW_windows_size; i++) { if (RGFW_windows[i] && NSWindow_delegate(RGFW_windows[i]) == self) { @@ -5093,8 +5251,8 @@ static HMODULE wglinstance = NULL; #define APPKIT_EXTERN extern #endif - APPKIT_EXTERN NSPasteboardType const NSPasteboardTypeURL = "public.url"; API_AVAILABLE(macos(10.13)); // Equivalent to kUTTypeURL - APPKIT_EXTERN NSPasteboardType const NSPasteboardTypeFileURL = "public.file-url"; API_AVAILABLE(macos(10.13)); // Equivalent to kUTTypeFileURL + NSPasteboardType const NSPasteboardTypeURL = "public.url"; + NSPasteboardType const NSPasteboardTypeFileURL = "public.file-url"; RGFW_window* RGFW_createWindow(const char* name, RGFW_rect rect, u16 args) { static u8 RGFW_loaded = 0; @@ -5109,7 +5267,7 @@ static HMODULE wglinstance = NULL; si_func_to_SEL("NSWindow", performKeyEquivalent); if (NSApp == NULL) { - NSApp = objc_msgSend_id(objc_getClass("NSApplication"), sel_registerName("sharedApplication")); + NSApp = objc_msgSend_id((id)objc_getClass("NSApplication"), sel_registerName("sharedApplication")); ((void (*)(id, SEL, NSUInteger))objc_msgSend) (NSApp, sel_registerName("setActivationPolicy:"), NSApplicationActivationPolicyRegular); @@ -5164,7 +5322,7 @@ static HMODULE wglinstance = NULL; #else NSRect contentRect = NSMakeRect(0, 0, win->r.w, win->r.h); win->src.view = ((id(*)(id, SEL, NSRect))objc_msgSend) - (NSAlloc(objc_getClass("NSView")), sel_registerName("initWithFrame:"), + (NSAlloc((id)objc_getClass("NSView")), sel_registerName("initWithFrame:"), contentRect); #endif @@ -5193,7 +5351,7 @@ static HMODULE wglinstance = NULL; } win->src.display = CGMainDisplayID(); - CVDisplayLinkCreateWithCGDisplay(win->src.display, &win->src.displayLink); + CVDisplayLinkCreateWithCGDisplay(win->src.display, (CVDisplayLinkRef*)&win->src.displayLink); CVDisplayLinkSetOutputCallback(win->src.displayLink, displayCallback, win); CVDisplayLinkStart(win->src.displayLink); @@ -5213,35 +5371,17 @@ static HMODULE wglinstance = NULL; NSMoveToResourceDir(); Class delegateClass = objc_allocateClassPair(objc_getClass("NSObject"), "WindowDelegate", 0); + + class_addMethod(delegateClass, sel_registerName("windowWillResize:toSize:"), (IMP) RGFW__osxWindowResize, "{NSSize=ff}@:{NSSize=ff}"); class_addMethod(delegateClass, sel_registerName("windowWillMove:"), (IMP) RGFW__osxWindowMove, ""); class_addMethod(delegateClass, sel_registerName("windowDidMove:"), (IMP) RGFW__osxWindowMove, ""); - - - if (args & RGFW_ALLOW_DND) { - win->src.winArgs |= RGFW_ALLOW_DND; - -/* - NSPasteboardType types[] = {NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSPasteboardTypeString}; - - siArray(NSPasteboardType) array = sic_arrayInit(types, sizeof(id), countof(types)); - NSWindow_registerForDraggedTypes(win->hwnd, array); - - win->dndHead = win->dndPrev = out; -*/ - - NSPasteboardType array[] = {NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSPasteboardTypeString}; - NSregisterForDraggedTypes(win->src.window, array, 3); - - /* NOTE(EimaMei): Drag 'n Drop requires too many damn functions for just a Drag 'n Drop event. */ - class_addMethod(delegateClass, "draggingEntered:", draggingEntered, "l@:@"); - class_addMethod(delegateClass, "draggingUpdated:", draggingUpdated, "l@:@"); - class_addMethod(delegateClass, "draggingExited:", RGFW__osxDraggingEnded, "v@:@"); - class_addMethod(delegateClass, "draggingEnded:", RGFW__osxDraggingEnded, "v@:@"); - class_addMethod(delegateClass, "prepareForDragOperation:", prepareForDragOperation, "B@:@"); - class_addMethod(delegateClass, "performDragOperation:", performDragOperation, "B@:@"); - - } + class_addMethod(delegateClass, sel_registerName("draggingEntered:"), (IMP)draggingEntered, "l@:@"); + class_addMethod(delegateClass, sel_registerName("draggingUpdated:"), (IMP)draggingUpdated, "l@:@"); + class_addMethod(delegateClass, sel_registerName("draggingExited:"), (IMP)RGFW__osxDraggingEnded, "v@:@"); + class_addMethod(delegateClass, sel_registerName("draggingEnded:"), (IMP)RGFW__osxDraggingEnded, "v@:@"); + class_addMethod(delegateClass, sel_registerName("prepareForDragOperation:"), (IMP)prepareForDragOperation, "B@:@"); + class_addMethod(delegateClass, sel_registerName("performDragOperation:"), (IMP)performDragOperation, "B@:@"); id delegate = objc_msgSend_id(NSAlloc(delegateClass), sel_registerName("init")); @@ -5249,6 +5389,13 @@ static HMODULE wglinstance = NULL; objc_msgSend_void_id(win->src.window, sel_registerName("setDelegate:"), delegate); + if (args & RGFW_ALLOW_DND) { + win->src.winArgs |= RGFW_ALLOW_DND; + + NSPasteboardType types[] = {NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSPasteboardTypeString}; + NSregisterForDraggedTypes(win->src.window, types, 3); + } + // Show the window ((id(*)(id, SEL, SEL))objc_msgSend)(win->src.window, sel_registerName("makeKeyAndOrderFront:"), NULL); objc_msgSend_void_bool(win->src.window, sel_registerName("setIsVisible:"), true); @@ -5259,6 +5406,8 @@ static HMODULE wglinstance = NULL; RGFW_loaded = 1; } + objc_msgSend_void(win->src.window, sel_registerName("makeKeyWindow")); + NSApplication_finishLaunching(NSApp); RGFW_windows_size++; @@ -5385,12 +5534,25 @@ static HMODULE wglinstance = NULL; }; + typedef enum NSEventModifierFlags { + NSEventModifierFlagCapsLock = 1 << 16, + NSEventModifierFlagShift = 1 << 17, + NSEventModifierFlagControl = 1 << 18, + NSEventModifierFlagOption = 1 << 19, + NSEventModifierFlagCommand = 1 << 20 + } NSEventModifierFlags; + RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) { assert(win != NULL); if (win->event.type == RGFW_quit) return &win->event; + if (win->event.type == RGFW_dnd && win->src.dndPassed == 0) { + win->src.dndPassed = 1; + return &win->event; + } + static void* eventFunc = NULL; if (eventFunc == NULL) eventFunc = sel_registerName("nextEventMatchingMask:untilDate:inMode:dequeue:"); @@ -5426,85 +5588,156 @@ static HMODULE wglinstance = NULL; win->event.inFocus = (bool) objc_msgSend_bool(win->src.window, sel_registerName("isKeyWindow")); switch (objc_msgSend_uint(e, sel_registerName("type"))) { - case NSEventTypeKeyDown: - win->event.type = RGFW_keyPressed; - win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); - win->event.keyName = (const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); + case NSEventTypeKeyDown: + win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); + RGFW_keyBoard_prev[win->event.keyCode] = RGFW_keyBoard[win->event.keyCode]; - RGFW_keyMap[win->event.keyCode] = 1; - break; + win->event.type = RGFW_keyPressed; + win->event.keyName = (char*)(const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); - case NSEventTypeKeyUp: - win->event.type = RGFW_keyReleased; - win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); - win->event.keyName = (const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); + RGFW_keyBoard[win->event.keyCode] = 1; + break; - RGFW_keyMap[win->event.keyCode] = 0; - break; + case NSEventTypeKeyUp: + win->event.keyCode = (u16) objc_msgSend_uint(e, sel_registerName("keyCode")); - case NSEventTypeLeftMouseDragged: - case NSEventTypeOtherMouseDragged: - case NSEventTypeRightMouseDragged: - case NSEventTypeMouseMoved: - win->event.type = RGFW_mousePosChanged; - NSPoint p = ((NSPoint(*)(id, SEL)) objc_msgSend)(e, sel_registerName("locationInWindow")); + RGFW_keyBoard_prev[win->event.keyCode] = RGFW_keyBoard[win->event.keyCode]; - win->event.point = RGFW_VECTOR((u32) p.x, (u32) (win->r.h - p.y)); + win->event.type = RGFW_keyReleased; + win->event.keyName = (char*)(const char*) NSString_to_char(objc_msgSend_id(e, sel_registerName("characters"))); - if (win->src.winArgs & RGFW_HOLD_MOUSE) { - RGFW_vector mouse = RGFW_getGlobalMousePoint(); - if ((mouse.x != win->r.x + (win->r.w / 2) || mouse.y != win->r.y + (win->r.h / 2))) { - RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + RGFW_keyBoard[win->event.keyCode] = 0; + break; + + case NSEventTypeFlagsChanged: { + u32 flags = objc_msgSend_uint(e, sel_registerName("modifierFlags")); + memcpy(RGFW_keyBoard_prev + 55, RGFW_keyBoard + 55, 5); + + if ((flags & NSEventModifierFlagCapsLock) && !RGFW_wasPressedI(win, 57)) { + RGFW_keyBoard[57] = 1; + win->event.type = RGFW_keyPressed; + win->event.keyCode = 57; + break; + } if (!(flags & NSEventModifierFlagCapsLock) && RGFW_wasPressedI(win, 57)) { + RGFW_keyBoard[57] = 0; + win->event.type = RGFW_keyReleased; + win->event.keyCode = 57; + break; } + + if ((flags & NSEventModifierFlagOption) && !RGFW_wasPressedI(win, 58)) { + RGFW_keyBoard[58] = 1; + win->event.type = RGFW_keyPressed; + win->event.keyCode = 58; + break; + } if (!(flags & NSEventModifierFlagOption) && RGFW_wasPressedI(win, 58)) { + RGFW_keyBoard[58] = 0; + win->event.type = RGFW_keyReleased; + win->event.keyCode = 58; + break; + } + + if ((flags & NSEventModifierFlagControl) && !RGFW_wasPressedI(win, 59)) { + RGFW_keyBoard[59] = 1; + win->event.type = RGFW_keyPressed; + win->event.keyCode = 59; + break; + } if (!(flags & NSEventModifierFlagControl) && RGFW_wasPressedI(win, 59)) { + RGFW_keyBoard[59] = 0; + win->event.type = RGFW_keyReleased; + win->event.keyCode = 59; + break; + } + + if ((flags & NSEventModifierFlagCommand) && !RGFW_wasPressedI(win, 55)) { + RGFW_keyBoard[55] = 1; + win->event.type = RGFW_keyPressed; + win->event.keyCode = 55; + break; + } if (!(flags & NSEventModifierFlagCommand) && RGFW_wasPressedI(win, 55)) { + RGFW_keyBoard[55] = 0; + win->event.type = RGFW_keyReleased; + win->event.keyCode = 55; + break; + } + + if ((flags & NSEventModifierFlagShift) && !RGFW_wasPressedI(win, 56)) { + RGFW_keyBoard[56] = 1; + win->event.type = RGFW_keyPressed; + win->event.keyCode = 56; + break; + } if (!(flags & NSEventModifierFlagShift) && RGFW_wasPressedI(win, 56)) { + RGFW_keyBoard[56] = 0; + win->event.type = RGFW_keyReleased; + win->event.keyCode = 56; + break; + } + + break; } - break; + case NSEventTypeLeftMouseDragged: + case NSEventTypeOtherMouseDragged: + case NSEventTypeRightMouseDragged: + case NSEventTypeMouseMoved: + win->event.type = RGFW_mousePosChanged; + NSPoint p = ((NSPoint(*)(id, SEL)) objc_msgSend)(e, sel_registerName("locationInWindow")); - case NSEventTypeLeftMouseDown: - win->event.button = RGFW_mouseLeft; - win->event.type = RGFW_mouseButtonPressed; - break; + win->event.point = RGFW_VECTOR((u32) p.x, (u32) (win->r.h - p.y)); - case NSEventTypeOtherMouseDown: - win->event.button = RGFW_mouseMiddle; - win->event.type = RGFW_mouseButtonPressed; - break; + if (win->src.winArgs & RGFW_HOLD_MOUSE) { + RGFW_vector mouse = RGFW_getGlobalMousePoint(); + if ((mouse.x != win->r.x + (win->r.w / 2) || mouse.y != win->r.y + (win->r.h / 2))) { + RGFW_window_moveMouse(win, RGFW_VECTOR(win->r.x + (win->r.w / 2), win->r.y + (win->r.h / 2))); + } + } + break; - case NSEventTypeRightMouseDown: - win->event.button = RGFW_mouseRight; - win->event.type = RGFW_mouseButtonPressed; - break; + case NSEventTypeLeftMouseDown: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonPressed; + break; - case NSEventTypeLeftMouseUp: - win->event.button = RGFW_mouseLeft; - win->event.type = RGFW_mouseButtonReleased; - break; + case NSEventTypeOtherMouseDown: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonPressed; + break; - case NSEventTypeOtherMouseUp: - win->event.button = RGFW_mouseMiddle; - win->event.type = RGFW_mouseButtonReleased; - break; + case NSEventTypeRightMouseDown: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonPressed; + break; - case NSEventTypeScrollWheel: { - double deltaY = ((CGFloat(*)(id, SEL))abi_objc_msgSend_fpret)(e, sel_registerName("deltaY")); + case NSEventTypeLeftMouseUp: + win->event.button = RGFW_mouseLeft; + win->event.type = RGFW_mouseButtonReleased; + break; - if (deltaY > 0) - win->event.button = RGFW_mouseScrollUp; + case NSEventTypeOtherMouseUp: + win->event.button = RGFW_mouseMiddle; + win->event.type = RGFW_mouseButtonReleased; + break; - else if (deltaY < 0) - win->event.button = RGFW_mouseScrollDown; + case NSEventTypeScrollWheel: { + double deltaY = ((CGFloat(*)(id, SEL))abi_objc_msgSend_fpret)(e, sel_registerName("deltaY")); - win->event.scroll = deltaY; + if (deltaY > 0) + win->event.button = RGFW_mouseScrollUp; - win->event.type = RGFW_mouseButtonReleased; - break; - } - case NSEventTypeRightMouseUp: - win->event.button = RGFW_mouseRight; - win->event.type = RGFW_mouseButtonReleased; - break; + else if (deltaY < 0) + win->event.button = RGFW_mouseScrollDown; - default: - break; + win->event.scroll = deltaY; + + win->event.type = RGFW_mouseButtonReleased; + break; + } + case NSEventTypeRightMouseUp: + win->event.button = RGFW_mouseRight; + win->event.type = RGFW_mouseButtonReleased; + break; + + default: + break; } objc_msgSend_void_id(NSApp, sel_registerName("sendEvent:"), e); @@ -5617,6 +5850,8 @@ static HMODULE wglinstance = NULL; } void RGFW_window_showMouse(RGFW_window* win, i8 show) { + RGFW_UNUSED(win); + if (show) { CGDisplayShowCursor(kCGDirectMainDisplay); } @@ -5626,11 +5861,13 @@ static HMODULE wglinstance = NULL; } void RGFW_window_setMouseStandard(RGFW_window* win, void* mouse) { + RGFW_UNUSED(win); CGDisplayShowCursor(kCGDirectMainDisplay); objc_msgSend_void(mouse, sel_registerName("set")); } void RGFW_window_moveMouse(RGFW_window* win, RGFW_vector v) { + RGFW_UNUSED(win); assert(win != NULL); CGWarpMouseCursorPosition(CGPointMake(v.x, v.y)); @@ -5716,6 +5953,7 @@ static HMODULE wglinstance = NULL; } u8 RGFW_isPressedI(RGFW_window* win, u32 key) { + RGFW_UNUSED(win); if (key >= 128) { #ifdef RGFW_PRINT_ERRORS fprintf(stderr, "RGFW_isPressedI : invalid keycode\n"); @@ -5723,7 +5961,19 @@ static HMODULE wglinstance = NULL; RGFW_error = 1; } - return RGFW_keyMap[key]; + return RGFW_keyBoard[key]; + } + + u8 RGFW_wasPressedI(RGFW_window* win, u32 key) { + RGFW_UNUSED(win); + if (key >= 128) { +#ifdef RGFW_PRINT_ERRORS + fprintf(stderr, "RGFW_wasPressedI : invalid keycode\n"); +#endif + RGFW_error = 1; + } + + return RGFW_keyBoard_prev[key]; } #ifdef __cplusplus @@ -5740,6 +5990,8 @@ static HMODULE wglinstance = NULL; } void RGFW_writeClipboard(const char* text, u32 textLen) { + RGFW_UNUSED(textLen); + NSPasteboardType array[] = { NSPasteboardTypeString, NULL }; NSPasteBoard_declareTypes(NSPasteboard_generalPasteboard(), array, 1, NULL); @@ -5747,12 +5999,16 @@ static HMODULE wglinstance = NULL; } u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) { + RGFW_UNUSED(jsNumber); + assert(win != NULL); return RGFW_registerJoystickF(win, (char*) ""); } u16 RGFW_registerJoystickF(RGFW_window* win, char* file) { + RGFW_UNUSED(file); + assert(win != NULL); return win->src.joystickCount - 1; @@ -5820,9 +6076,11 @@ static HMODULE wglinstance = NULL; #ifndef RGFW_NO_THREADS #include - RGFW_thread RGFW_createThread(void* (*function_ptr)(void*), void* args) { + RGFW_thread RGFW_createThread(RGFW_threadFunc_ptr ptr, void* args) { + RGFW_UNUSED(args); + RGFW_thread t; - pthread_create((pthread_t*) &t, NULL, *function_ptr, NULL); + pthread_create((pthread_t*) &t, NULL, *ptr, NULL); return t; } void RGFW_cancelThread(RGFW_thread thread) { pthread_cancel((pthread_t) thread); } @@ -5848,7 +6106,7 @@ static HMODULE wglinstance = NULL; #endif #else #ifdef RGFW_EGL - eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.rSurf); + eglMakeCurrent(win->src.EGL_display, win->src.EGL_surface, win->src.EGL_surface, win->src.EGL_context); #endif #endif @@ -5927,9 +6185,6 @@ static HMODULE wglinstance = NULL; void RGFW_window_swapBuffers(RGFW_window* win) { assert(win != NULL); - win->event.frames++; - RGFW_window_checkFPS(win); - RGFW_window_makeCurrent(win); /* clear the window*/ @@ -5958,10 +6213,10 @@ static HMODULE wglinstance = NULL; RGFW_area area = RGFW_getScreenSize(); #ifndef RGFW_X11_DONT_CONVERT_BGR - win->src.bitmap->data = (const char*) win->buffer; + win->src.bitmap->data = (char*) win->buffer; u32 x, y; - for (y = 0; y < win->r.h; y++) { - for (x = 0; x < win->r.w; x++) { + for (y = 0; y < (u32)win->r.h; y++) { + for (x = 0; x < (u32)win->r.w; x++) { u32 index = (y * 4 * area.w) + x * 4; u8 red = win->src.bitmap->data[index]; @@ -5992,7 +6247,7 @@ static HMODULE wglinstance = NULL; "NSDeviceRGBColorSpace", 0, area.w * 4, 32 ); - id image = NSAlloc(objc_getClass("NSImage")); + id image = NSAlloc((id)objc_getClass("NSImage")); NSImage_addRepresentation(image, rep); objc_msgSend_void_id(layer, sel_registerName("setContents:"), (id) image); @@ -6009,28 +6264,25 @@ static HMODULE wglinstance = NULL; #endif } - if (win->src.winArgs & RGFW_NO_GPU_RENDER) - return; + if (!(win->src.winArgs & RGFW_NO_GPU_RENDER)) { + #ifdef RGFW_EGL + eglSwapBuffers(win->src.EGL_display, win->src.EGL_surface); + #elif defined(RGFW_OPENGL) + #if defined(RGFW_X11) && defined(RGFW_OPENGL) + glXSwapBuffers((Display*) win->src.display, (Window) win->src.window); + #elif defined(RGFW_WINDOWS) + SwapBuffers(win->src.hdc); + #elif defined(RGFW_MACOS) + NSOpenGLContext_flushBuffer(win->src.rSurf); + #endif + #endif -#ifdef RGFW_OPENGL -#ifdef RGFW_EGL - eglSwapBuffers(win->src.EGL_display, win->src.EGL_surface); -#else -#if defined(RGFW_X11) && defined(RGFW_OPENGL) - glXSwapBuffers((Display*) win->src.display, (Window) win->src.window); -#endif -#ifdef RGFW_WINDOWS - SwapBuffers(win->src.hdc); -#endif -#if defined(RGFW_MACOS) - NSOpenGLContext_flushBuffer(win->src.rSurf); -#endif -#endif -#endif + #if defined(RGFW_WINDOWS) && defined(RGFW_DIRECTX) + win->src.swapchain->lpVtbl->Present(win->src.swapchain, 0, 0); + #endif + } -#if defined(RGFW_WINDOWS) && defined(RGFW_DIRECTX) - win->src.swapchain->lpVtbl->Present(win->src.swapchain, 0, 0); -#endif + RGFW_window_checkFPS(win); } void RGFW_window_maximize(RGFW_window* win) { @@ -6072,11 +6324,11 @@ static HMODULE wglinstance = NULL; #endif } - void RGFW_sleep(u32 ms) { + void RGFW_sleep(u64 ms) { #ifndef RGFW_WINDOWS struct timespec time; time.tv_sec = 0; - time.tv_nsec = ms * 1000; + time.tv_nsec = ms * 1e+6; nanosleep(&time, NULL); #else @@ -6084,32 +6336,31 @@ static HMODULE wglinstance = NULL; #endif } - static float currentFrameTime = 0; - void RGFW_window_checkFPS(RGFW_window* win) { - assert(win != NULL); + u64 deltaTime = RGFW_getTimeNS() - win->event.frameTime; - win->event.fps = RGFW_getFPS(); + u64 fps = round(1e+9 / deltaTime); + win->event.fps = fps; - if (win->fpsCap == 0) - return; + if (win->fpsCap && fps > win->fpsCap) { + u64 frameTimeNS = 1e+9 / win->fpsCap; + u64 sleepTimeMS = (frameTimeNS - deltaTime) / 1e6; - double targetFrameTime = 1.0 / win->fpsCap; - double elapsedTime = RGFW_getTime() - currentFrameTime; - - if (elapsedTime < targetFrameTime) { - u32 sleepTime = (u32) ((targetFrameTime - elapsedTime) * 1e3); - RGFW_sleep(sleepTime); + if (sleepTimeMS > 0) { + RGFW_sleep(sleepTimeMS); + win->event.frameTime = 0; + } } - currentFrameTime = (float) RGFW_getTime(); + win->event.frameTime = RGFW_getTimeNS(); + + if (win->fpsCap) { + u64 deltaTime = RGFW_getTimeNS() - win->event.frameTime2; - if (elapsedTime < targetFrameTime) { - u32 sleepTime = (u32) ((targetFrameTime - elapsedTime) * 1e3); - RGFW_sleep(sleepTime); + win->event.fps = round(1e+9 / deltaTime); + + win->event.frameTime2 = RGFW_getTimeNS(); } - - currentFrameTime = (float) RGFW_getTime(); } #ifdef __APPLE__ @@ -6127,7 +6378,7 @@ static HMODULE wglinstance = NULL; return (u64) (counter.QuadPart * 1e9 / frequency.QuadPart); #elif defined(__unix__) struct timespec ts = { 0 }; - clock_gettime(CLOCK_MONOTONIC, &ts); + clock_gettime(1, &ts); unsigned long long int nanoSeconds = (unsigned long long int)ts.tv_sec*1000000000LLU + (unsigned long long int)ts.tv_nsec; return nanoSeconds; @@ -6151,7 +6402,7 @@ static HMODULE wglinstance = NULL; return (u64) (counter.QuadPart / (double) frequency.QuadPart); #elif defined(__unix__) struct timespec ts = { 0 }; - clock_gettime(CLOCK_MONOTONIC, &ts); + clock_gettime(1, &ts); unsigned long long int nanoSeconds = (unsigned long long int)ts.tv_sec*1000000000LLU + (unsigned long long int)ts.tv_nsec; return (double)(nanoSeconds) * 1e-9; @@ -6165,27 +6416,6 @@ static HMODULE wglinstance = NULL; return 0; } - u32 RGFW_getFPS(void) { - static double previousSeconds = 0.0; - if (previousSeconds == 0.0) - previousSeconds = (double) RGFW_getTime();//glfwGetTime(); - - static i16 frameCount; - double currentSeconds = (double) RGFW_getTime();//glfwGetTime(); - double elapsedSeconds = currentSeconds - previousSeconds; - static double fps = 0; - - if (elapsedSeconds > 0.25) { - previousSeconds = currentSeconds; - fps = (double) frameCount / elapsedSeconds; - frameCount = 0; - } - - frameCount++; - - return (u32) fps; - } - #endif /*RGFW_IMPLEMENTATION*/ #define RGFW_Escape RGFW_OS_BASED_VALUE(0xff1b, 0x1B, 53) diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c index 623dc0e76..f4e317497 100644 --- a/src/platforms/rcore_desktop_rgfw.c +++ b/src/platforms/rcore_desktop_rgfw.c @@ -431,7 +431,11 @@ void SetWindowFocused(void) // Get native window handle void *GetWindowHandle(void) { - return platform.window->src.window; + #ifndef RGFW_WINDOWS + return (void*)platform.window->src.window; + #else + return platform.window->src.hwnd; + #endif } // Get number of monitors @@ -890,8 +894,6 @@ void PollInputEvents(void) CORE.Input.Mouse.currentPosition.x = (event->point.x - (platform.window->r.w / 2)) * 2; CORE.Input.Mouse.currentPosition.y = (event->point.y - (platform.window->r.h / 2)) * 2; - - RGFW_window_showMouse(platform.window, 1); } else { CORE.Input.Mouse.previousPosition = CORE.Input.Mouse.currentPosition; From 6b3c1148bfbcd354dc7e6c825fb1e452c6e0fbfd Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 9 Jun 2024 13:16:18 +0200 Subject: [PATCH 385/790] REVIEWED: Animation name being NULL #4037 --- src/rmodels.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 57059a017..14cfc64aa 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -5772,8 +5772,11 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo animDuration = (t > animDuration)? t : animDuration; } - strncpy(animations[i].name, animData.name, sizeof(animations[i].name)); - animations[i].name[sizeof(animations[i].name) - 1] = '\0'; + if (animData.name != NULL) + { + strncpy(animations[i].name, animData.name, sizeof(animations[i].name)); + animations[i].name[sizeof(animations[i].name) - 1] = '\0'; + } animations[i].frameCount = (int)(animDuration*1000.0f/GLTF_ANIMDELAY) + 1; animations[i].framePoses = RL_MALLOC(animations[i].frameCount*sizeof(Transform *)); @@ -5823,7 +5826,7 @@ static ModelAnimation *LoadModelAnimationsGLTF(const char *fileName, int *animCo BuildPoseFromParentJoints(animations[i].bones, animations[i].boneCount, animations[i].framePoses[j]); } - TRACELOG(LOG_INFO, "MODEL: [%s] Loaded animation: %s (%d frames, %fs)", fileName, animData.name, animations[i].frameCount, animDuration); + TRACELOG(LOG_INFO, "MODEL: [%s] Loaded animation: %s (%d frames, %fs)", fileName, (animData.name != NULL)? animData.name : "NULL", animations[i].frameCount, animDuration); RL_FREE(boneChannels); } } From 8cbde7f84c345b9c8ae9d226ed9ba315f14658b4 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 9 Jun 2024 13:16:29 +0200 Subject: [PATCH 386/790] tweaks --- src/rcore.c | 2 +- src/rtext.c | 19 +++++-------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 3aa5a7a65..a4fc4d675 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2251,7 +2251,7 @@ bool IsFileNameValid(const char *fileName) if ((fileName != NULL) && (fileName[0] != '\0')) { - int length = strlen(fileName); + int length = (int)strlen(fileName); bool allPeriods = true; for (int i = 0; i < length; i++) diff --git a/src/rtext.c b/src/rtext.c index 118a559d6..6ad0f90a0 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1807,10 +1807,7 @@ const char *TextToSnake(const char *text) } buffer[i] = text[j] + 32; } - else - { - buffer[i] = text[j]; - } + else buffer[i] = text[j]; } } @@ -1827,23 +1824,17 @@ const char *TextToCamel(const char *text) if (text != NULL) { // Lower case first character - if ((text[0] >= 'A') && (text[0] <= 'Z')) - buffer[0] = text[0] + 32; - else - buffer[0] = text[0]; + if ((text[0] >= 'A') && (text[0] <= 'Z')) buffer[0] = text[0] + 32; + else buffer[0] = text[0]; // Check for next separator to upper case another character for (int i = 1, j = 1; (i < MAX_TEXT_BUFFER_LENGTH - 1) && (text[j] != '\0'); i++, j++) { - if (text[j] != '_') - buffer[i] = text[j]; + if (text[j] != '_') buffer[i] = text[j]; else { j++; - if ((text[j] >= 'a') && (text[j] <= 'z')) - { - buffer[i] = text[j] - 32; - } + if ((text[j] >= 'a') && (text[j] <= 'z')) buffer[i] = text[j] - 32; } } } From a0a81fddee9365657015b300ed1b892db74acff5 Mon Sep 17 00:00:00 2001 From: carverdamien Date: Sun, 9 Jun 2024 13:29:09 +0200 Subject: [PATCH 387/790] Make addRaylib use options.opengl_version (#4049) --- src/build.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/build.zig b/src/build.zig index 51a8ab7b0..35622a462 100644 --- a/src/build.zig +++ b/src/build.zig @@ -22,6 +22,7 @@ pub fn addRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. .platform_drm = options.platform_drm, .shared = options.shared, .linux_display_backend = options.linux_display_backend, + .opengl_version = options.opengl_version, }); const raylib = raylib_dep.artifact("raylib"); From 29ac31f40980d48087db36072693e62743c96ce1 Mon Sep 17 00:00:00 2001 From: MrScautHD <65916181+MrScautHD@users.noreply.github.com> Date: Sun, 9 Jun 2024 18:03:05 +0200 Subject: [PATCH 388/790] Removed Raylib.NET (#4050) --- BINDINGS.md | 1 - 1 file changed, 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index 9ec8c3c3c..d24bf67c7 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -13,7 +13,6 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [Raylib-CsLo](https://github.com/NotNotTech/Raylib-CsLo) | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | | [Raylib-CSharp-Vinculum](https://github.com/ZeroElectric/Raylib-CSharp-Vinculum) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | | [Raylib-CSharp](https://github.com/MrScautHD/Raylib-CSharp) | **5.1-dev** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | -| [Raylib.NET](https://github.com/Odex64/Raylib.NET) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT | | [cl-raylib](https://github.com/longlene/cl-raylib) | 4.0 | [Common Lisp](https://common-lisp.net) | MIT | | [claylib/wrap](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib | | [claw-raylib](https://github.com/bohonghuang/claw-raylib) | **auto** | [Common Lisp](https://common-lisp.net) | Apache-2.0 | From c636618d777053d1a2b968c1aa76e8e06190f29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1zaro=20Albuquerque?= <33807434+lzralbu@users.noreply.github.com> Date: Mon, 10 Jun 2024 14:50:09 -0400 Subject: [PATCH 389/790] Update Makefile (#4054) Since the flag CUSTOM_CFLAGS should allow users customize things, in particular the optimization level, I figured it should come after other default ones. Based on: "If you use multiple -O options, with or without level numbers, the last such option is the one that is effective." Source: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html --- src/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 23742565d..19251b956 100644 --- a/src/Makefile +++ b/src/Makefile @@ -316,7 +316,7 @@ endif # -D_GNU_SOURCE access to lots of nonstandard GNU/Linux extension functions # -Werror=pointer-arith catch unportable code that does direct arithmetic on void pointers # -fno-strict-aliasing jar_xm.h does shady stuff (breaks strict aliasing) -CFLAGS = -Wall -D_GNU_SOURCE -D$(PLATFORM) -D$(GRAPHICS) -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing $(CUSTOM_CFLAGS) +CFLAGS = -Wall -D_GNU_SOURCE -D$(PLATFORM) -D$(GRAPHICS) -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing ifneq ($(RAYLIB_CONFIG_FLAGS), NONE) CFLAGS += -DEXTERNAL_CONFIG_FLAGS $(RAYLIB_CONFIG_FLAGS) @@ -449,6 +449,8 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif endif +CFLAGS += $(CUSTOM_CFLAGS) + # Define include paths for required headers: INCLUDE_PATHS # NOTE: Several external required libraries (stb and others) #------------------------------------------------------------------------------------------------ From 0fc4b619065291a06787fe38388d1318f7ecfc12 Mon Sep 17 00:00:00 2001 From: VitoTringolo Date: Tue, 11 Jun 2024 11:50:42 +0200 Subject: [PATCH 390/790] LoadBoneInfoGLTF add check for animation name being NULL (#4053) Co-authored-by: Vito Tringolo --- src/rmodels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 14cfc64aa..1ee27602d 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4864,7 +4864,7 @@ static BoneInfo *LoadBoneInfoGLTF(cgltf_skin skin, int *boneCount) for (unsigned int i = 0; i < skin.joints_count; i++) { cgltf_node node = *skin.joints[i]; - strncpy(bones[i].name, node.name, sizeof(bones[i].name)); + if (node.name != NULL) strncpy(bones[i].name, node.name, sizeof(bones[i].name)); // Find parent bone index unsigned int parentIndex = -1; From 2609211207419ceab2e00113b4a442bfdab434d3 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Tue, 11 Jun 2024 02:51:49 -0700 Subject: [PATCH 391/790] [SHAPES] Make functions that draw point arrays take them as const (#4051) * Update raylib_api.* by CI * make functions that take a pointer to an array take them as const pointers * Update raylib_api.* by CI * fix comment alignment. --------- Co-authored-by: github-actions[bot] --- parser/output/raylib_api.json | 20 ++++++++++---------- parser/output/raylib_api.lua | 20 ++++++++++---------- parser/output/raylib_api.txt | 20 ++++++++++---------- parser/output/raylib_api.xml | 20 ++++++++++---------- src/raylib.h | 22 +++++++++++----------- src/rmodels.c | 2 +- src/rshapes.c | 18 +++++++++--------- 7 files changed, 61 insertions(+), 61 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 961578e53..1a38c03ab 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -5345,7 +5345,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6022,7 +6022,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6041,7 +6041,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6145,7 +6145,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6168,7 +6168,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6191,7 +6191,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6214,7 +6214,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6237,7 +6237,7 @@ "returnType": "void", "params": [ { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -6644,7 +6644,7 @@ "name": "point" }, { - "type": "Vector2 *", + "type": "const Vector2 *", "name": "points" }, { @@ -9613,7 +9613,7 @@ "returnType": "void", "params": [ { - "type": "Vector3 *", + "type": "const Vector3 *", "name": "points" }, { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index eb88daab9..3dec7f371 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -4636,7 +4636,7 @@ return { description = "Draw lines sequence (using gl lines)", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "Color", name = "color"} } @@ -4947,7 +4947,7 @@ return { description = "Draw a triangle fan defined by points (first vertex is the center)", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "Color", name = "color"} } @@ -4957,7 +4957,7 @@ return { description = "Draw a triangle strip defined by points", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "Color", name = "color"} } @@ -5004,7 +5004,7 @@ return { description = "Draw spline: Linear, minimum 2 points", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "float", name = "thick"}, {type = "Color", name = "color"} @@ -5015,7 +5015,7 @@ return { description = "Draw spline: B-Spline, minimum 4 points", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "float", name = "thick"}, {type = "Color", name = "color"} @@ -5026,7 +5026,7 @@ return { description = "Draw spline: Catmull-Rom, minimum 4 points", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "float", name = "thick"}, {type = "Color", name = "color"} @@ -5037,7 +5037,7 @@ return { description = "Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "float", name = "thick"}, {type = "Color", name = "color"} @@ -5048,7 +5048,7 @@ return { description = "Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]", returnType = "void", params = { - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "float", name = "thick"}, {type = "Color", name = "color"} @@ -5239,7 +5239,7 @@ return { returnType = "bool", params = { {type = "Vector2", name = "point"}, - {type = "Vector2 *", name = "points"}, + {type = "const Vector2 *", name = "points"}, {type = "int", name = "pointCount"} } }, @@ -6855,7 +6855,7 @@ return { description = "Draw a triangle strip defined by points", returnType = "void", params = { - {type = "Vector3 *", name = "points"}, + {type = "const Vector3 *", name = "points"}, {type = "int", name = "pointCount"}, {type = "Color", name = "color"} } diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 66880130e..2a33a995f 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -2130,7 +2130,7 @@ Function 212: DrawLineStrip() (3 input parameters) Name: DrawLineStrip Return type: void Description: Draw lines sequence (using gl lines) - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) Function 213: DrawLineBezier() (4 input parameters) @@ -2360,14 +2360,14 @@ Function 239: DrawTriangleFan() (3 input parameters) Name: DrawTriangleFan Return type: void Description: Draw a triangle fan defined by points (first vertex is the center) - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) Function 240: DrawTriangleStrip() (3 input parameters) Name: DrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) Function 241: DrawPoly() (5 input parameters) @@ -2402,7 +2402,7 @@ Function 244: DrawSplineLinear() (4 input parameters) Name: DrawSplineLinear Return type: void Description: Draw spline: Linear, minimum 2 points - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) @@ -2410,7 +2410,7 @@ Function 245: DrawSplineBasis() (4 input parameters) Name: DrawSplineBasis Return type: void Description: Draw spline: B-Spline, minimum 4 points - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) @@ -2418,7 +2418,7 @@ Function 246: DrawSplineCatmullRom() (4 input parameters) Name: DrawSplineCatmullRom Return type: void Description: Draw spline: Catmull-Rom, minimum 4 points - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) @@ -2426,7 +2426,7 @@ Function 247: DrawSplineBezierQuadratic() (4 input parameters) Name: DrawSplineBezierQuadratic Return type: void Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) @@ -2434,7 +2434,7 @@ Function 248: DrawSplineBezierCubic() (4 input parameters) Name: DrawSplineBezierCubic Return type: void Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] - Param[1]: points (type: Vector2 *) + Param[1]: points (type: const Vector2 *) Param[2]: pointCount (type: int) Param[3]: thick (type: float) Param[4]: color (type: Color) @@ -2574,7 +2574,7 @@ Function 265: CheckCollisionPointPoly() (3 input parameters) Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) - Param[2]: points (type: Vector2 *) + Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) Function 266: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines @@ -3695,7 +3695,7 @@ Function 432: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points - Param[1]: points (type: Vector3 *) + Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) Function 433: DrawCube() (5 input parameters) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 0e096d5a2..130f22f75 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -1317,7 +1317,7 @@ - + @@ -1493,12 +1493,12 @@ - + - + @@ -1525,31 +1525,31 @@ - + - + - + - + - + @@ -1655,7 +1655,7 @@ - + @@ -2440,7 +2440,7 @@ - + diff --git a/src/raylib.h b/src/raylib.h index c61285641..b1da83cb8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1233,7 +1233,7 @@ RLAPI void DrawPixelV(Vector2 position, Color color); RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) -RLAPI void DrawLineStrip(Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation RLAPI void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle RLAPI void DrawCircleSector(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw a piece of a circle @@ -1260,18 +1260,18 @@ RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segment RLAPI void DrawRectangleRoundedLinesEx(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline (vertex in counter-clockwise order!) -RLAPI void DrawTriangleFan(Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) -RLAPI void DrawTriangleStrip(Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawTriangleFan(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points RLAPI void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) RLAPI void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a polygon outline of n sides RLAPI void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color); // Draw a polygon outline of n sides with extended parameters // Splines drawing functions -RLAPI void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points -RLAPI void DrawSplineBasis(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points -RLAPI void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points -RLAPI void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -RLAPI void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points @@ -1292,7 +1292,7 @@ RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle -RLAPI bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +RLAPI bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] @@ -1342,7 +1342,7 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation -RLAPI void ImageKernelConvolution(Image *image, float* kernel, int kernelSize); // Apply Custom Square image convolution kernel +RLAPI void ImageKernelConvolution(Image *image, float* kernel, int kernelSize); // Apply Custom Square image convolution kernel RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color @@ -1504,7 +1504,7 @@ RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); RLAPI void DrawPoint3D(Vector3 position, Color color); // Draw a point in 3D space, actually a small line RLAPI void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space RLAPI void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) -RLAPI void DrawTriangleStrip3D(Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points +RLAPI void DrawTriangleStrip3D(const Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points RLAPI void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube RLAPI void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) RLAPI void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires diff --git a/src/rmodels.c b/src/rmodels.c index 1ee27602d..5a6c6414c 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -226,7 +226,7 @@ void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color) } // Draw a triangle strip defined by points -void DrawTriangleStrip3D(Vector3 *points, int pointCount, Color color) +void DrawTriangleStrip3D(const Vector3 *points, int pointCount, Color color) { if (pointCount < 3) return; // Security check diff --git a/src/rshapes.c b/src/rshapes.c index cb85c1c54..058c96863 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -196,7 +196,7 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) } // Draw lines sequuence (using gl lines) -void DrawLineStrip(Vector2 *points, int pointCount, Color color) +void DrawLineStrip(const Vector2 *points, int pointCount, Color color) { if (pointCount < 2) return; // Security check @@ -1385,7 +1385,7 @@ void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color) // Draw a triangle fan defined by points // NOTE: First vertex provided is the center, shared by all triangles // By default, following vertex should be provided in counter-clockwise order -void DrawTriangleFan(Vector2 *points, int pointCount, Color color) +void DrawTriangleFan(const Vector2 *points, int pointCount, Color color) { if (pointCount >= 3) { @@ -1416,7 +1416,7 @@ void DrawTriangleFan(Vector2 *points, int pointCount, Color color) // Draw a triangle strip defined by points // NOTE: Every new vertex connects with previous two -void DrawTriangleStrip(Vector2 *points, int pointCount, Color color) +void DrawTriangleStrip(const Vector2 *points, int pointCount, Color color) { if (pointCount >= 3) { @@ -1570,7 +1570,7 @@ void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, fl //---------------------------------------------------------------------------------- // Draw spline: linear, minimum 2 points -void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) +void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 2) return; @@ -1687,7 +1687,7 @@ void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color) } // Draw spline: B-Spline, minimum 4 points -void DrawSplineBasis(Vector2 *points, int pointCount, float thick, Color color) +void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 4) return; @@ -1763,7 +1763,7 @@ void DrawSplineBasis(Vector2 *points, int pointCount, float thick, Color color) } // Draw spline: Catmull-Rom, minimum 4 points -void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color color) +void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 4) return; @@ -1829,7 +1829,7 @@ void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color co } // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Color color) +void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 3) return; @@ -1840,7 +1840,7 @@ void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Col } // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] -void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color color) +void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 4) return; @@ -2195,7 +2195,7 @@ bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 // Check if point is within a polygon described by array of vertices // NOTE: Based on http://jeffreythompson.org/collision-detection/poly-point.php -bool CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount) +bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount) { bool inside = false; From fffae1a975dbfff8e6c8ee37c989f5256debc90f Mon Sep 17 00:00:00 2001 From: Karl Zylinski Date: Tue, 11 Jun 2024 20:55:13 +0200 Subject: [PATCH 392/790] Fix fragPosition using wrong matrix in lighting_instancing.vs (#4056) fragPosition was multiplied by mvp*instanceTransform, but it should only be multiplied by instanceTransform. Compare to lighting.vs, there we only use mvp for gl_Position, but matModel for the fragPosition. --- .../resources/shaders/glsl330/lighting_instancing.vs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/examples/shaders/resources/shaders/glsl330/lighting_instancing.vs b/examples/shaders/resources/shaders/glsl330/lighting_instancing.vs index 6775a2eb6..3e4da1e28 100644 --- a/examples/shaders/resources/shaders/glsl330/lighting_instancing.vs +++ b/examples/shaders/resources/shaders/glsl330/lighting_instancing.vs @@ -22,15 +22,12 @@ out vec3 fragNormal; void main() { - // Compute MVP for current instance - mat4 mvpi = mvp*instanceTransform; - // Send vertex attributes to fragment shader - fragPosition = vec3(mvpi*vec4(vertexPosition, 1.0)); + fragPosition = vec3(instanceTransform*vec4(vertexPosition, 1.0)); fragTexCoord = vertexTexCoord; //fragColor = vertexColor; fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0))); - // Calculate final vertex position - gl_Position = mvpi*vec4(vertexPosition, 1.0); + // Calculate final vertex position, note that we multiply mvp by instanceTransform + gl_Position = mvp*instanceTransform*vec4(vertexPosition, 1.0); } From 33c598123c4b6ef78ff2ac3dcc1094da4dd6efef Mon Sep 17 00:00:00 2001 From: Alexey Kutepov Date: Wed, 12 Jun 2024 16:42:41 +0700 Subject: [PATCH 393/790] [raudio] Add 24 bits samples support for FLAC format (#4058) Similarly to how it's done for WAV format, by forcing the conversion to s16 on UpdateMusicStream(). --- src/raudio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/raudio.c b/src/raudio.c index c6bd00165..177bdb5aa 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1428,7 +1428,9 @@ Music LoadMusicStream(const char *fileName) { music.ctxType = MUSIC_AUDIO_FLAC; music.ctxData = ctxFlac; - music.stream = LoadAudioStream(ctxFlac->sampleRate, ctxFlac->bitsPerSample, ctxFlac->channels); + int sampleSize = ctxFlac->bitsPerSample; + if (ctxFlac->bitsPerSample == 24) sampleSize = 16; // Forcing conversion to s16 on UpdateMusicStream() + music.stream = LoadAudioStream(ctxFlac->sampleRate, sampleSize, ctxFlac->channels); music.frameCount = (unsigned int)ctxFlac->totalPCMFrameCount; music.looping = true; // Looping enabled by default musicLoaded = true; From 735c0160b5cc5fa2a2cdd60843d61afa25551991 Mon Sep 17 00:00:00 2001 From: TokyoSU <77746747+TokyoSU@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:36:25 +0200 Subject: [PATCH 394/790] Update rlgl.h (#4059) - The function rlGetMatrixProjectionStereo and rlGetMatrixViewOffsetStereo have RLAPI for the function declaration and cause error when compiling using RLGL_IMPLEMENTATION. --- src/rlgl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 2f6a03b8a..530e44efc 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -4518,7 +4518,7 @@ Matrix rlGetMatrixTransform(void) } // Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixProjectionStereo(int eye) +Matrix rlGetMatrixProjectionStereo(int eye) { Matrix mat = rlMatrixIdentity(); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) @@ -4528,7 +4528,7 @@ RLAPI Matrix rlGetMatrixProjectionStereo(int eye) } // Get internal view offset matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) { Matrix mat = rlMatrixIdentity(); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) From df849d2fb0c7df6a818f2f79dd8343565dd1274c Mon Sep 17 00:00:00 2001 From: listeria <56203103+ListeriaM@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:05:22 -0300 Subject: [PATCH 395/790] [raudio] fix mapping of wave data in LoadWaveSamples() (#4062) Co-authored-by: Listeria monocytogenes --- src/raudio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 177bdb5aa..623984e1d 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1304,8 +1304,8 @@ float *LoadWaveSamples(Wave wave) for (unsigned int i = 0; i < wave.frameCount*wave.channels; i++) { - if (wave.sampleSize == 8) samples[i] = (float)(((unsigned char *)wave.data)[i] - 127)/256.0f; - else if (wave.sampleSize == 16) samples[i] = (float)(((short *)wave.data)[i])/32767.0f; + if (wave.sampleSize == 8) samples[i] = (float)(((unsigned char *)wave.data)[i] - 128)/128.0f; + else if (wave.sampleSize == 16) samples[i] = (float)(((short *)wave.data)[i])/32768.0f; else if (wave.sampleSize == 32) samples[i] = ((float *)wave.data)[i]; } From fca53c77996ab0b723dd4ee5235671cba9274ca7 Mon Sep 17 00:00:00 2001 From: kai-z99 <147789796+kai-z99@users.noreply.github.com> Date: Thu, 13 Jun 2024 23:19:17 -0700 Subject: [PATCH 396/790] optimize (#4065) --- src/rshapes.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index 058c96863..e9a84834e 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2233,9 +2233,10 @@ bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, floa float dx = center2.x - center1.x; // X distance between centers float dy = center2.y - center1.y; // Y distance between centers - float distance = sqrtf(dx*dx + dy*dy); // Distance between centers + float distanceSquared = dx * dx + dy * dy; // Distance between centers squared + float radiusSum = radius1 + radius2; - if (distance <= (radius1 + radius2)) collision = true; + collision = (distanceSquared <= (radiusSum * radiusSum)); return collision; } From b4fbdc028302f9a697f196e8d02a7dca28912f59 Mon Sep 17 00:00:00 2001 From: ShalokShalom Date: Fri, 14 Jun 2024 22:46:50 +0200 Subject: [PATCH 397/790] Update Julia Bindings (#4068) --- BINDINGS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BINDINGS.md b/BINDINGS.md index d24bf67c7..22b740588 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -36,7 +36,7 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [jaylib](https://github.com/janet-lang/jaylib) | **5.0** | [Janet](https://janet-lang.org) | MIT | | [jaylib](https://github.com/electronstudio/jaylib/) | 4.5 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | | [raylib-j](https://github.com/CreedVI/Raylib-J) | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | -| [raylib.jl](https://github.com/irishgreencitrus/raylib.jl) | 4.2 | [Julia](https://julialang.org) | Zlib | +| [Raylib.jl](https://github.com/chengchingwen/Raylib.jl) | 4.2 | [Julia](https://julialang.org) | Zlib | | [kaylib](https://github.com/electronstudio/kaylib) | 3.7 | [Kotlin/native](https://kotlinlang.org) | **???** | | [KaylibKit](https://codeberg.org/Kenta/KaylibKit) | 4.5 | [Kotlin/native](https://kotlinlang.org) | Zlib | | [raylib-lua](https://github.com/TSnake41/raylib-lua) | 4.5 | [Lua](http://www.lua.org) | ISC | From eff7b065eba17725ddc3c16aef16eb8eeca1d888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20Poceduli=C4=87?= <58425080+okvik@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:37:45 +0200 Subject: [PATCH 398/790] [build.zig] Fix raygui build when using addRaygui externally (#4027) When addRaygui is used from an external build, for example in a bindings project, the build of a generated `raygui.c` fails with "raylib.h not found" error from the compiler. I've traced this down to a raylib step not adding its `src/` to the shared list of include paths using `addIncludePath` but relying on `addCSourceFiles` `.root` to provide the implicit include path for raylib proper's own files. If raygui is later added to the step the compiler won't know where to look for `raylib.h` and friends and will fail to build. This change simply adds raylib's `src/` to the include path list. --- src/build.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/build.zig b/src/build.zig index 35622a462..81d4a7662 100644 --- a/src/build.zig +++ b/src/build.zig @@ -217,6 +217,7 @@ fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std. }, } + raylib.addIncludePath(b.path("src")); raylib.root_module.addCSourceFiles(.{ .root = b.path("src"), .files = c_source_files.items, From 81ff879b047186e1453cb682c70782c0bd338f2a Mon Sep 17 00:00:00 2001 From: Mike Will Date: Sun, 16 Jun 2024 03:38:54 -0400 Subject: [PATCH 399/790] zig: run examples from their directories (#4063) So that they can find their respective resource folders. --- examples/build.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/build.zig b/examples/build.zig index 5a17382ca..df0cdf8c1 100644 --- a/examples/build.zig +++ b/examples/build.zig @@ -75,6 +75,7 @@ fn add_module(comptime module: []const u8, b: *std.Build, target: std.Build.Reso const install_cmd = b.addInstallArtifact(exe, .{}); const run_cmd = b.addRunArtifact(exe); + run_cmd.cwd = b.path(module); run_cmd.step.dependOn(&install_cmd.step); const run_step = b.step(name, name); From 640eaca8bf1d2b49a6a730c274b94a96c3a87146 Mon Sep 17 00:00:00 2001 From: Santiago Pelufo Date: Sun, 16 Jun 2024 05:21:54 -0300 Subject: [PATCH 400/790] [rshapes] Fix multisegment Bezier splines. (#3744) * [rshapes] Fix multisegment Bezier splines. It seems to me that these functions are wrong, if you step the index by 1 you move to a control point instead of the next segment. * Fix example shapes/shapes_splines_drawing for bezier splines. * Draw circles to fill gaps between bezier segments. --- examples/shapes/shapes_splines_drawing.c | 21 +++++++++++++++++---- src/rshapes.c | 14 ++++++++++---- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 8df5f09f4..0d5693eb2 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -63,7 +63,7 @@ int main(void) Vector2 *focusedControlPoint = NULL; // Cubic Bezier control points initialization - ControlPoint control[MAX_SPLINE_POINTS] = { 0 }; + ControlPoint control[MAX_SPLINE_POINTS-1] = { 0 }; for (int i = 0; i < pointCount - 1; i++) { control[i].start = (Vector2){ points[i].x + 50, points[i].y }; @@ -88,6 +88,9 @@ int main(void) if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON) && (pointCount < MAX_SPLINE_POINTS)) { points[pointCount] = GetMousePosition(); + int i = pointCount - 1; + control[i].start = (Vector2){ points[i].x + 50, points[i].y }; + control[i].end = (Vector2){ points[i + 1].x - 50, points[i + 1].y }; pointCount++; } @@ -114,7 +117,7 @@ int main(void) if ((splineTypeActive == SPLINE_BEZIER) && (focusedPoint == -1)) { // Spline control point focus and selection logic - for (int i = 0; i < pointCount; i++) + for (int i = 0; i < pointCount - 1; i++) { if (CheckCollisionPointCircle(GetMousePosition(), control[i].start, 6.0f)) { @@ -186,10 +189,20 @@ int main(void) else if (splineTypeActive == SPLINE_BEZIER) { // Draw spline: cubic-bezier (with control points) + + Vector2 fullPoints[3*(MAX_SPLINE_POINTS-1)+1] = {0}; + for (int i = 0; i < pointCount-1; i++) { + fullPoints[3*i] = points[i]; + fullPoints[3*i+1] = control[i].start; + fullPoints[3*i+2] = control[i].end; + } + fullPoints[3*(pointCount-1)] = points[pointCount-1], + DrawSplineBezierCubic(fullPoints, 3*(pointCount-1)+1, splineThickness, RED); + for (int i = 0; i < pointCount - 1; i++) { // Drawing individual segments, not considering thickness connection compensation - DrawSplineSegmentBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], splineThickness, RED); + // DrawSplineSegmentBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], splineThickness, RED); // Every cubic bezier point should have two control points DrawCircleV(control[i].start, 6, GOLD); @@ -244,4 +257,4 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; -} \ No newline at end of file +} diff --git a/src/rshapes.c b/src/rshapes.c index e9a84834e..2c4a57d38 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -1832,8 +1832,11 @@ void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Co void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 3) return; - - for (int i = 0; i < pointCount - 2; i++) + for (int i = 2; i < pointCount - 2; i += 2) + { + DrawCircleV(points[i], thick/2.0f, color); + } + for (int i = 0; i < pointCount - 2; i += 2) { DrawSplineSegmentBezierQuadratic(points[i], points[i + 1], points[i + 2], thick, color); } @@ -1843,8 +1846,11 @@ void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thic void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color) { if (pointCount < 4) return; - - for (int i = 0; i < pointCount - 3; i++) + for (int i = 3; i < pointCount - 3; i += 3) + { + DrawCircleV(points[i], thick/2.0f, color); + } + for (int i = 0; i < pointCount - 3; i += 3) { DrawSplineSegmentBezierCubic(points[i], points[i + 1], points[i + 2], points[i + 3], thick, color); } From 4119b6dd660544bff9f6431fa04f162eacb612a3 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 16 Jun 2024 10:23:38 +0200 Subject: [PATCH 401/790] Update raylib.h --- src/raylib.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index b1da83cb8..9f06462fb 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1141,7 +1141,7 @@ RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize // Automation events functionality RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording @@ -1342,10 +1342,10 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation -RLAPI void ImageKernelConvolution(Image *image, float* kernel, int kernelSize); // Apply Custom Square image convolution kernel +RLAPI void ImageKernelConvolution(Image *image, float *kernel, int kernelSize); // Apply Custom Square image convolution kernel RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) -RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color +RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color RLAPI void ImageMipmaps(Image *image); // Compute all mipmap levels for a provided image RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) RLAPI void ImageFlipVertical(Image *image); // Flip image vertically @@ -1436,7 +1436,7 @@ RLAPI int GetPixelDataSize(int width, int height, int format); // G // Font loading/unloading functions RLAPI Font GetFontDefault(void); // Get the default Font RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) -RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set +RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' RLAPI bool IsFontReady(Font font); // Check if a font is ready From 32c98717b159c3b34ab1e22a6bf99a8d70b4a9e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 16 Jun 2024 08:23:57 +0000 Subject: [PATCH 402/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 2 +- parser/output/raylib_api.lua | 2 +- parser/output/raylib_api.txt | 2 +- parser/output/raylib_api.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 1a38c03ab..ad49b64a5 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -7359,7 +7359,7 @@ "name": "image" }, { - "type": "float*", + "type": "float *", "name": "kernel" }, { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 3dec7f371..2918b934c 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5621,7 +5621,7 @@ return { returnType = "void", params = { {type = "Image *", name = "image"}, - {type = "float*", name = "kernel"}, + {type = "float *", name = "kernel"}, {type = "int", name = "kernelSize"} } }, diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 2a33a995f..ffcea1615 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -2842,7 +2842,7 @@ Function 304: ImageKernelConvolution() (3 input parameters) Return type: void Description: Apply Custom Square image convolution kernel Param[1]: image (type: Image *) - Param[2]: kernel (type: float*) + Param[2]: kernel (type: float *) Param[3]: kernelSize (type: int) Function 305: ImageResize() (3 input parameters) Name: ImageResize diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 130f22f75..58f7df806 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -1844,7 +1844,7 @@ - + From 715633e0de101cb1a2b7b322455e4eab047f5f15 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 16 Jun 2024 10:41:47 +0200 Subject: [PATCH 403/790] REVIEWED: Spline cubic bezier example --- examples/shapes/shapes_splines_drawing.c | 37 ++++++++++++++++-------- src/rshapes.c | 30 +++++++++---------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 0d5693eb2..7c099e7ef 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -56,6 +56,10 @@ int main(void) { 710.0f, 260.0f }, }; + // Array required for spline bezier-cubic, + // including control points interleaved with start-end segment points + Vector2 pointsInterleaved[3*(MAX_SPLINE_POINTS - 1) + 1] = { 0 }; + int pointCount = 5; int selectedPoint = -1; int focusedPoint = -1; @@ -188,23 +192,32 @@ int main(void) } else if (splineTypeActive == SPLINE_BEZIER) { - // Draw spline: cubic-bezier (with control points) - - Vector2 fullPoints[3*(MAX_SPLINE_POINTS-1)+1] = {0}; - for (int i = 0; i < pointCount-1; i++) { - fullPoints[3*i] = points[i]; - fullPoints[3*i+1] = control[i].start; - fullPoints[3*i+2] = control[i].end; + // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be + // provided interleaved with the start and end point of every segment + for (int i = 0; i < (pointCount - 1); i++) + { + pointsInterleaved[3*i] = points[i]; + pointsInterleaved[3*i + 1] = control[i].start; + pointsInterleaved[3*i + 2] = control[i].end; } - fullPoints[3*(pointCount-1)] = points[pointCount-1], - DrawSplineBezierCubic(fullPoints, 3*(pointCount-1)+1, splineThickness, RED); + + pointsInterleaved[3*(pointCount - 1)] = points[pointCount - 1]; - for (int i = 0; i < pointCount - 1; i++) + // Draw spline: cubic-bezier (with control points) + DrawSplineBezierCubic(pointsInterleaved, 3*(pointCount - 1) + 1, splineThickness, RED); + + /* + for (int i = 0; i < 3*(pointCount - 1); i += 3) { // Drawing individual segments, not considering thickness connection compensation - // DrawSplineSegmentBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], splineThickness, RED); + DrawSplineSegmentBezierCubic(pointsInterleaved[i], pointsInterleaved[i + 1], pointsInterleaved[i + 2], pointsInterleaved[i + 3], splineThickness, MAROON); + } + */ - // Every cubic bezier point should have two control points + // Draw spline control points + for (int i = 0; i < pointCount - 1; i++) + { + // Every cubic bezier point have two control points DrawCircleV(control[i].start, 6, GOLD); DrawCircleV(control[i].end, 6, GOLD); if (focusedControlPoint == &control[i].start) DrawCircleV(control[i].start, 8, GREEN); diff --git a/src/rshapes.c b/src/rshapes.c index 2c4a57d38..95c54770e 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -1759,7 +1759,8 @@ void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color c DrawTriangleStrip(vertices, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); } - DrawCircleV(currentPoint, thick/2.0f, color); // Draw end line circle-cap + // Cap circle drawing at the end of every segment + DrawCircleV(currentPoint, thick/2.0f, color); } // Draw spline: Catmull-Rom, minimum 4 points @@ -1825,34 +1826,31 @@ void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Co DrawTriangleStrip(vertices, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); } - DrawCircleV(currentPoint, thick/2.0f, color); // Draw end line circle-cap + // Cap circle drawing at the end of every segment + DrawCircleV(currentPoint, thick/2.0f, color); } // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color) { - if (pointCount < 3) return; - for (int i = 2; i < pointCount - 2; i += 2) + if (pointCount >= 3) { - DrawCircleV(points[i], thick/2.0f, color); - } - for (int i = 0; i < pointCount - 2; i += 2) - { - DrawSplineSegmentBezierQuadratic(points[i], points[i + 1], points[i + 2], thick, color); + for (int i = 0; i < pointCount - 2; i += 2) DrawSplineSegmentBezierQuadratic(points[i], points[i + 1], points[i + 2], thick, color); + + // Cap circle drawing at the end of every segment + //for (int i = 2; i < pointCount - 2; i += 2) DrawCircleV(points[i], thick/2.0f, color); } } // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color) { - if (pointCount < 4) return; - for (int i = 3; i < pointCount - 3; i += 3) + if (pointCount >= 4) { - DrawCircleV(points[i], thick/2.0f, color); - } - for (int i = 0; i < pointCount - 3; i += 3) - { - DrawSplineSegmentBezierCubic(points[i], points[i + 1], points[i + 2], points[i + 3], thick, color); + for (int i = 0; i < pointCount - 3; i += 3) DrawSplineSegmentBezierCubic(points[i], points[i + 1], points[i + 2], points[i + 3], thick, color); + + // Cap circle drawing at the end of every segment + //for (int i = 3; i < pointCount - 3; i += 3) DrawCircleV(points[i], thick/2.0f, color); } } From cc40a91343b124abf87ab0ae2fae22abf1f9561b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1zaro=20Albuquerque?= <33807434+lzralbu@users.noreply.github.com> Date: Sun, 16 Jun 2024 04:42:50 -0400 Subject: [PATCH 404/790] [build] Fix some warnings on web builds and remove some redundant flags. (#4069) * update * Revert "update" This reverts commit e8adcabd94830be66938e12143c8fe23cdeab605. * update * remove a not stricly required flag --- cmake/LibraryConfigurations.cmake | 1 - examples/CMakeLists.txt | 5 ++--- src/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/cmake/LibraryConfigurations.cmake b/cmake/LibraryConfigurations.cmake index 23a7ec2f0..f6dd4f314 100644 --- a/cmake/LibraryConfigurations.cmake +++ b/cmake/LibraryConfigurations.cmake @@ -59,7 +59,6 @@ if (${PLATFORM} MATCHES "Desktop") elseif (${PLATFORM} MATCHES "Web") set(PLATFORM_CPP "PLATFORM_WEB") set(GRAPHICS "GRAPHICS_API_OPENGL_ES2") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s USE_GLFW=3 -s ASSERTIONS=1 --profiling") set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") elseif (${PLATFORM} MATCHES "Android") diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 28550eaec..64b6d7604 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -96,10 +96,9 @@ if (${PLATFORM} MATCHES "Android") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_basic_lighting.c) elseif (${PLATFORM} MATCHES "Web") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s ASYNCIFY") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os") # Since WASM is used, ALLOW_MEMORY_GROWTH has no extra overheads - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s ALLOW_MEMORY_GROWTH=1 --no-heap-copy") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s WASM=1 -s ASYNCIFY -s ALLOW_MEMORY_GROWTH=1 --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html") set(CMAKE_EXECUTABLE_SUFFIX ".html") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 387665705..bfb4b05b5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -69,7 +69,7 @@ else() endif() if (${PLATFORM} MATCHES "Web") - target_link_options(raylib PRIVATE "-sUSE_GLFW=3") + target_link_options(raylib PUBLIC "-sUSE_GLFW=3") endif() set_target_properties(raylib PROPERTIES From a29d334734f720431872266743ba5560870e3453 Mon Sep 17 00:00:00 2001 From: kai-z99 <147789796+kai-z99@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:44:31 -0700 Subject: [PATCH 405/790] [rmodels] Read uninitialized values in GenMeshTangents() - fix bounding case (#4066) * fix * assert --- src/rmodels.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index 5a6c6414c..308fb0a70 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -3436,7 +3436,12 @@ void GenMeshTangents(Mesh *mesh) Vector3 *tan1 = (Vector3 *)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); Vector3 *tan2 = (Vector3 *)RL_MALLOC(mesh->vertexCount*sizeof(Vector3)); - for (int i = 0; i < mesh->vertexCount - 3; i += 3) + if (mesh->vertexCount % 3 != 0) + { + TRACELOG(LOG_WARNING, "MESH: vertexCount expected to be a multiple of 3. Expect uninitialized values."); + } + + for (int i = 0; i <= mesh->vertexCount - 3; i += 3) { // Get triangle vertices Vector3 v1 = { mesh->vertices[(i + 0)*3 + 0], mesh->vertices[(i + 0)*3 + 1], mesh->vertices[(i + 0)*3 + 2] }; From 307c998495a769092a8587c91a3efdb526de909c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1zaro=20Albuquerque?= <33807434+lzralbu@users.noreply.github.com> Date: Sun, 16 Jun 2024 04:49:59 -0400 Subject: [PATCH 406/790] [build] Making `config.h` fully available to CMake users (#4044) * Create ParseConfigHeader.cmake This script parses the config.h file to automate the process of exposing the configuration flags and configuration values found in the latter. * Update CompileDefinitions.cmake Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent. * Update CMakeOptions.txt Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent. * Update CMakeLists.txt Changes required to make possible building raylib for web on Windows 10. * Update LibraryConfigurations.cmake Removes a warning that linker-only flags were being passed to the compiler, which is in accordance to https://emscripten.org/docs/tools_reference/settings_reference.html. * Update CMakeOptions.txt Removed clutter. * Update CompileDefinitions.cmake Removed clutter. * Update CompileDefinitions.cmake Some applications might check for PLATFORM_WEB instead of __EMSCRIPTEN__. * Update CompileDefinitions.cmake Reverting * Update CMakeLists.txt USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO. * Update CompileDefinitions.cmake USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO. * Update ParseConfigHeader.cmake * Revert "Update CMakeLists.txt" This reverts commit 1785fc06b5b89e65515cea3afd3e3c095f15e350. * Revert "Update CompileDefinitions.cmake" This reverts commit 62f9a3a0ea21af7bd0a1ab74d10a305fca2a5695. * Revert "Update CMakeLists.txt" This reverts commit 3e7912144edc5c69c53ed5a9515ae21d66937963. * Revert "Update LibraryConfigurations.cmake" This reverts commit bcc4310c4960c200c340671caa298983340ea386. --- CMakeOptions.txt | 84 ++------------------- cmake/CompileDefinitions.cmake | 130 ++++----------------------------- cmake/ParseConfigHeader.cmake | 17 +++++ 3 files changed, 38 insertions(+), 193 deletions(-) create mode 100644 cmake/ParseConfigHeader.cmake diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 2c58cd5cc..b063f02a1 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -1,4 +1,4 @@ -### Config options ### +# ## Config options ### include(CMakeDependentOption) include(EnumOption) @@ -9,14 +9,14 @@ enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific # Configuration options option(BUILD_EXAMPLES "Build the examples." ${RAYLIB_IS_MAIN}) option(CUSTOMIZE_BUILD "Show options for customizing your Raylib library build." OFF) -option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF) +option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF) option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF) option(ENABLE_MSAN "Enable MemorySanitizer (MSan) for debugging (not recommended to run with ASAN)" OFF) # Shared library is always PIC. Static library should be PIC too if linked into a shared library option(WITH_PIC "Compile static library as position-independent code" OFF) option(BUILD_SHARED_LIBS "Build raylib as a shared library" OFF) -option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF) +option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF) cmake_dependent_option(USE_AUDIO "Build raylib with audio module" ON CUSTOMIZE_BUILD ON) enum_option(USE_EXTERNAL_GLFW "OFF;IF_POSSIBLE;ON" "Link raylib against system GLFW instead of embedded one") @@ -28,77 +28,9 @@ option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON) option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage" OFF) set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option") -# raylib modules included -cmake_dependent_option(SUPPORT_MODULE_RSHAPES "Include module: rshapes" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_MODULE_RTEXTURES "Include module: rtextures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_MODULE_RTEXT "Include module: rtext" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_MODULE_RMODELS "Include module: rmodels" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_MODULE_RAUDIO "Include module: raudio" ON CUSTOMIZE_BUILD ON) +include(ParseConfigHeader) -# rcore.c -cmake_dependent_option(SUPPORT_CAMERA_SYSTEM "Provide camera module (rcamera.h) with multiple predefined cameras: free, 1st/3rd person, orbital" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_GESTURES_SYSTEM "Gestures module is included (rgestures.h) to support gestures detection: tap, hold, swipe, drag" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_RPRAND_GENERATOR "Include pseudo-random numbers generator (rprand.h), based on Xoshiro128** and SplitMix64" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_MOUSE_GESTURES "Mouse gestures are directly mapped like touches and processed by gestures system" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_SSH_KEYBOARD_RPI "Reconfigure standard input to receive key inputs, works with SSH connection" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_DEFAULT_FONT "Default font is loaded on window initialization to be available for the user to render simple text. If enabled, uses external module functions to load default raylib font (module: text)" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_SCREEN_CAPTURE "Allow automatic screen capture of current screen pressing F12, defined in KeyCallback()" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_GIF_RECORDING "Allow automatic gif recording of current screen pressing CTRL+F12, defined in KeyCallback()" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_BUSY_WAIT_LOOP "Use busy wait loop for timing sync instead of a high-resolution timer" OFF CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_EVENTS_WAITING "Wait for events passively (sleeping while no events) instead of polling them actively every frame" OFF CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_WINMM_HIGHRES_TIMER "Setting a higher resolution can improve the accuracy of time-out intervals in wait functions" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_COMPRESSION_API "Support for compression API" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_EVENTS_AUTOMATION "Support automatic generated events, loading and recording of those events when required" OFF CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_CUSTOM_FRAME_CONTROL "Enabling this flag allows manual control of the frame processes, use at your own risk" OFF CUSTOMIZE_BUILD OFF) - -# rshapes.c -cmake_dependent_option(SUPPORT_QUADS_DRAW_MODE "Use QUADS instead of TRIANGLES for drawing when possible. Some lines-based shapes could still use lines" ON CUSTOMIZE_BUILD ON) - -# rtextures.c -cmake_dependent_option(SUPPORT_IMAGE_EXPORT "Support image exporting to file" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_IMAGE_GENERATION "Support procedural image generation functionality (gradient, spot, perlin-noise, cellular)" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_IMAGE_MANIPULATION "Support multiple image editing functions to scale, adjust colors, flip, draw on images, crop... If not defined only three image editing functions supported: ImageFormat(), ImageAlphaMask(), ImageToPOT()" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_PNG "Support loading PNG as textures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_DDS "Support loading DDS as textures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_HDR "Support loading HDR as textures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_PIC "Support loading PIC as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_PNM "Support loading PNM as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_KTX "Support loading KTX as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_ASTC "Support loading ASTC as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_BMP "Support loading BMP as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_TGA "Support loading TGA as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_JPG "Support loading JPG as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_GIF "Support loading GIF as textures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_QOI "Support loading QOI as textures" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_PSD "Support loading PSD as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_PKM "Support loading PKM as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_PVR "Support loading PVR as textures" ${OFF} CUSTOMIZE_BUILD OFF) -cmake_dependent_option(SUPPORT_FILEFORMAT_SVG "Support loading SVG as textures" ${OFF} CUSTOMIZE_BUILD OFF) - -# rtext.c -cmake_dependent_option(SUPPORT_FILEFORMAT_FNT "Support loading fonts in FNT format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_TTF "Support loading font in TTF/OTF format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_TEXT_MANIPULATION "Support text manipulation functions" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FONT_ATLAS_WHITE_REC "Support white rec on font atlas bottom-right corner" ON CUSTOMIZE_BUILD ON) - -# rmodels.c -cmake_dependent_option(SUPPORT_MESH_GENERATION "Support procedural mesh generation functions, uses external par_shapes.h library. NOTE: Some generated meshes DO NOT include generated texture coordinates" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_OBJ "Support loading OBJ file format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_MTL "Support loading MTL file format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_IQM "Support loading IQM file format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_GLTF "Support loading GLTF file format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_VOX "Support loading VOX file format" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_M3D "Support loading M3D file format" ON CUSTOMIZE_BUILD ON) - -# raudio.c -cmake_dependent_option(SUPPORT_FILEFORMAT_WAV "Support loading WAV for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_OGG "Support loading OGG for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_XM "Support loading XM for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_MOD "Support loading MOD for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_MP3 "Support loading MP3 for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_QOA "Support loading QOA for sound" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_FILEFORMAT_FLAC "Support loading FLAC for sound" ${OFF} CUSTOMIZE_BUILD OFF) - -# utils.c -cmake_dependent_option(SUPPORT_STANDARD_FILEIO "Support standard file io library (stdio.h)" ON CUSTOMIZE_BUILD ON) -cmake_dependent_option(SUPPORT_TRACELOG "Show TraceLog() output messages. NOTE: By default LOG_DEBUG traces not shown" ON CUSTOMIZE_BUILD ON) +foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS) + string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG}) + cmake_dependent_option(${CMAKE_MATCH_1} "" ${CMAKE_MATCH_2} CUSTOMIZE_BUILD ${CMAKE_MATCH_2}) +endforeach() diff --git a/cmake/CompileDefinitions.cmake b/cmake/CompileDefinitions.cmake index cc8324c4b..0acbe2fa5 100644 --- a/cmake/CompileDefinitions.cmake +++ b/cmake/CompileDefinitions.cmake @@ -3,126 +3,22 @@ target_compile_definitions("raylib" PUBLIC "${PLATFORM_CPP}") target_compile_definitions("raylib" PUBLIC "${GRAPHICS}") function(define_if target variable) - if (${${variable}}) + if(${${variable}}) message(STATUS "${variable}=${${variable}}") - target_compile_definitions(${target} PUBLIC "${variable}") - endif () + target_compile_definitions(${target} PRIVATE "${variable}") + endif() endfunction() -if (${CUSTOMIZE_BUILD}) - target_compile_definitions("raylib" PUBLIC EXTERNAL_CONFIG_FLAGS) +if(${CUSTOMIZE_BUILD}) + target_compile_definitions("raylib" PRIVATE EXTERNAL_CONFIG_FLAGS) define_if("raylib" USE_AUDIO) - define_if("raylib" SUPPORT_MODULE_RSHAPES) - define_if("raylib" SUPPORT_MODULE_RTEXTURES) - define_if("raylib" SUPPORT_MODULE_RTEXT) - define_if("raylib" SUPPORT_MODULE_RMODELS) - define_if("raylib" SUPPORT_MODULE_RAUDIO) - define_if("raylib" SUPPORT_CAMERA_SYSTEM) - define_if("raylib" SUPPORT_GESTURES_SYSTEM) - define_if("raylib" SUPPORT_MOUSE_GESTURES) - define_if("raylib" SUPPORT_SSH_KEYBOARD_RPI) - define_if("raylib" SUPPORT_DEFAULT_FONT) - define_if("raylib" SUPPORT_SCREEN_CAPTURE) - define_if("raylib" SUPPORT_GIF_RECORDING) - define_if("raylib" SUPPORT_BUSY_WAIT_LOOP) - define_if("raylib" SUPPORT_EVENTS_WAITING) - define_if("raylib" SUPPORT_WINMM_HIGHRES_TIMER) - define_if("raylib" SUPPORT_COMPRESSION_API) - define_if("raylib" SUPPORT_EVENTS_AUTOMATION) - define_if("raylib" SUPPORT_CUSTOM_FRAME_CONTROL) - define_if("raylib" SUPPORT_QUADS_DRAW_MODE) - define_if("raylib" SUPPORT_IMAGE_EXPORT) - define_if("raylib" SUPPORT_IMAGE_GENERATION) - define_if("raylib" SUPPORT_IMAGE_MANIPULATION) - define_if("raylib" SUPPORT_FILEFORMAT_PNG) - define_if("raylib" SUPPORT_FILEFORMAT_DDS) - define_if("raylib" SUPPORT_FILEFORMAT_HDR) - define_if("raylib" SUPPORT_FILEFORMAT_PIC) - define_if("raylib" SUPPORT_FILEFORMAT_PNM) - define_if("raylib" SUPPORT_FILEFORMAT_KTX) - define_if("raylib" SUPPORT_FILEFORMAT_ASTC) - define_if("raylib" SUPPORT_FILEFORMAT_BMP) - define_if("raylib" SUPPORT_FILEFORMAT_TGA) - define_if("raylib" SUPPORT_FILEFORMAT_JPG) - define_if("raylib" SUPPORT_FILEFORMAT_GIF) - define_if("raylib" SUPPORT_FILEFORMAT_QOI) - define_if("raylib" SUPPORT_FILEFORMAT_PSD) - define_if("raylib" SUPPORT_FILEFORMAT_PKM) - define_if("raylib" SUPPORT_FILEFORMAT_PVR) - define_if("raylib" SUPPORT_FILEFORMAT_SVG) - define_if("raylib" SUPPORT_FILEFORMAT_FNT) - define_if("raylib" SUPPORT_FILEFORMAT_TTF) - define_if("raylib" SUPPORT_TEXT_MANIPULATION) - define_if("raylib" SUPPORT_MESH_GENERATION) - define_if("raylib" SUPPORT_FILEFORMAT_OBJ) - define_if("raylib" SUPPORT_FILEFORMAT_MTL) - define_if("raylib" SUPPORT_FILEFORMAT_IQM) - define_if("raylib" SUPPORT_FILEFORMAT_GLTF) - define_if("raylib" SUPPORT_FILEFORMAT_VOX) - define_if("raylib" SUPPORT_FILEFORMAT_M3D) - define_if("raylib" SUPPORT_FILEFORMAT_WAV) - define_if("raylib" SUPPORT_FILEFORMAT_OGG) - define_if("raylib" SUPPORT_FILEFORMAT_XM) - define_if("raylib" SUPPORT_FILEFORMAT_MOD) - define_if("raylib" SUPPORT_FILEFORMAT_MP3) - define_if("raylib" SUPPORT_FILEFORMAT_QOA) - define_if("raylib" SUPPORT_FILEFORMAT_FLAC) - define_if("raylib" SUPPORT_STANDARD_FILEIO) - define_if("raylib" SUPPORT_TRACELOG) - if (UNIX AND NOT APPLE) - target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=4096") - else () - target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=512") - endif () - - target_compile_definitions("raylib" PUBLIC "MAX_GAMEPADS=4") - target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_AXIS=8") - target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_BUTTONS=32") - target_compile_definitions("raylib" PUBLIC "MAX_TOUCH_POINTS=10") - target_compile_definitions("raylib" PUBLIC "MAX_KEY_PRESSED_QUEUE=16") - - target_compile_definitions("raylib" PUBLIC "STORAGE_DATA_FILE=\"storage.data\"") - target_compile_definitions("raylib" PUBLIC "MAX_CHAR_PRESSED_QUEUE=16") - target_compile_definitions("raylib" PUBLIC "MAX_DECOMPRESSION_SIZE=64") - - if (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_33" OR ${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_11") - target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=8192") - elseif (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES2") - target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=2048") - endif () - - target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_DRAWCALLS=256") - target_compile_definitions("raylib" PUBLIC "MAX_MATRIX_STACK_SIZE=32") - target_compile_definitions("raylib" PUBLIC "MAX_SHADER_LOCATIONS=32") - target_compile_definitions("raylib" PUBLIC "MAX_MATERIAL_MAPS=12") - target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_NEAR=0.01") - target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_FAR=1000.0") - - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION=0") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD=1") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL=2") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR=3") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT=4") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2=5") - - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION=\"vertexPosition\"") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD=\"vertexTexCoord\"") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL=\"vertexNormal\"") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR=\"vertexColor\"") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT=\"vertexTangent\"") - target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2=\"vertexTexCoord2\"") - - target_compile_definitions("raylib" PUBLIC "MAX_TEXT_BUFFER_LENGTH=1024") - target_compile_definitions("raylib" PUBLIC "MAX_TEXT_UNICODE_CHARS=512") - target_compile_definitions("raylib" PUBLIC "MAX_TEXTSPLIT_COUNT=128") - - target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_FORMAT=ma_format_f32") - target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_CHANNELS=2") - target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_SAMPLE_RATE=44100") - target_compile_definitions("raylib" PUBLIC "DEFAULT_AUDIO_BUFFER_SIZE=4096") - - target_compile_definitions("raylib" PUBLIC "MAX_TRACELOG_MSG_LENGTH=128") - target_compile_definitions("raylib" PUBLIC "MAX_UWP_MESSAGES=512") -endif () + foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS) + string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG}) + define_if("raylib" ${CMAKE_MATCH_1}) + endforeach() + foreach(VALUE IN LISTS CONFIG_HEADER_VALUES) + target_compile_definitions("raylib" PRIVATE ${VALUE}) + endforeach() +endif() diff --git a/cmake/ParseConfigHeader.cmake b/cmake/ParseConfigHeader.cmake new file mode 100644 index 000000000..797eea3cd --- /dev/null +++ b/cmake/ParseConfigHeader.cmake @@ -0,0 +1,17 @@ +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/src/config.h" CONFIG_HEADER_CONTENT) + +set(BLANK_OR_BACKSLASH_PATTERN "[ \t\r\n\\]") +set(VALID_IDENTIFIER_PATTERN "[A-Za-z_]+[A-Za-z_0-9]*") +set(VALID_VALUE_PATTERN [=["?[A-Za-z_0-9.-]+"?]=]) # not really correct but does the job since the config.h file hopefully will have been checked by a C preprocessor. +set(MACRO_REGEX "(//${BLANK_OR_BACKSLASH_PATTERN}*)?\#define${BLANK_OR_BACKSLASH_PATTERN}+(${VALID_IDENTIFIER_PATTERN})${BLANK_OR_BACKSLASH_PATTERN}+(${VALID_VALUE_PATTERN})") + +string(REGEX MATCHALL ${MACRO_REGEX} MACRO_LIST ${CONFIG_HEADER_CONTENT}) + +set(CONFIG_HEADER_FLAGS ${MACRO_LIST}) +list(FILTER CONFIG_HEADER_FLAGS INCLUDE REGEX "^.+SUPPORT_") +list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=OFF]] REGEX "^//") +list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=ON]]) + +set(CONFIG_HEADER_VALUES ${MACRO_LIST}) +list(FILTER CONFIG_HEADER_VALUES EXCLUDE REGEX "(^.+SUPPORT_)|(^//)") +list(TRANSFORM CONFIG_HEADER_VALUES REPLACE ${MACRO_REGEX} [[\2=\3]]) From dcf2f6a8e97911c90efce5722bd7f0c7cdc8601e Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 16 Jun 2024 11:17:34 +0200 Subject: [PATCH 407/790] Added note about performace #4067 --- examples/models/models_waving_cubes.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/models/models_waving_cubes.c b/examples/models/models_waving_cubes.c index 5dc1fc4aa..521a4afd5 100644 --- a/examples/models/models_waving_cubes.c +++ b/examples/models/models_waving_cubes.c @@ -89,6 +89,8 @@ int main() }; // Pick a color with a hue depending on cube position for the rainbow color effect + // NOTE: This function is quite costly to be done per cube and frame, + // pre-catching the results into a separate array could improve performance Color cubeColor = ColorFromHSV((float)(((x + y + z)*18)%360), 0.75f, 0.9f); // Calculate cube size From 52f2a10db610d0e9f619fd7c521db08a876547d0 Mon Sep 17 00:00:00 2001 From: Anthony Carbajal <5776225+CrackedPixel@users.noreply.github.com> Date: Mon, 17 Jun 2024 06:42:53 -0500 Subject: [PATCH 408/790] fixed issue with GetScreenWidth/GetScreenHeight (#4074) --- src/platforms/rcore_desktop.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/platforms/rcore_desktop.c b/src/platforms/rcore_desktop.c index 6fe054a8a..bb3fcf4f0 100644 --- a/src/platforms/rcore_desktop.c +++ b/src/platforms/rcore_desktop.c @@ -666,6 +666,9 @@ void SetWindowMaxSize(int width, int height) // Set window dimensions void SetWindowSize(int width, int height) { + CORE.Window.screen.width = width; + CORE.Window.screen.height = height; + glfwSetWindowSize(platform.handle, width, height); } From e7acdd12d8b02617728f11720725ca989fe2390b Mon Sep 17 00:00:00 2001 From: manuel5975p Date: Fri, 21 Jun 2024 09:07:01 +0200 Subject: [PATCH 409/790] [build] CMake: support OpenGL ES3 in `LibraryConfigurations.cmake` (#4079) * Allow ES3 in LibraryConfigurations.cmake * Put FULL_ES3 as linker option --- cmake/LibraryConfigurations.cmake | 4 +++- src/CMakeLists.txt | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/LibraryConfigurations.cmake b/cmake/LibraryConfigurations.cmake index f6dd4f314..6d2250c71 100644 --- a/cmake/LibraryConfigurations.cmake +++ b/cmake/LibraryConfigurations.cmake @@ -58,7 +58,9 @@ if (${PLATFORM} MATCHES "Desktop") elseif (${PLATFORM} MATCHES "Web") set(PLATFORM_CPP "PLATFORM_WEB") - set(GRAPHICS "GRAPHICS_API_OPENGL_ES2") + if(NOT GRAPHICS) + set(GRAPHICS "GRAPHICS_API_OPENGL_ES2") + endif() set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") elseif (${PLATFORM} MATCHES "Android") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bfb4b05b5..4ba1c7007 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -70,6 +70,9 @@ endif() if (${PLATFORM} MATCHES "Web") target_link_options(raylib PUBLIC "-sUSE_GLFW=3") + if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") + target_link_options(raylib PUBLIC "-sFULL_ES3=1") + endif() endif() set_target_properties(raylib PROPERTIES From 0d59235adef78ca11e1d6940521815b3b0786286 Mon Sep 17 00:00:00 2001 From: Anthony Carbajal <5776225+CrackedPixel@users.noreply.github.com> Date: Sat, 22 Jun 2024 12:15:21 -0500 Subject: [PATCH 410/790] add warning log multiple of 4 (#4080) --- src/external/rl_gputex.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/external/rl_gputex.h b/src/external/rl_gputex.h index c57730552..6b26d1c8d 100644 --- a/src/external/rl_gputex.h +++ b/src/external/rl_gputex.h @@ -171,6 +171,10 @@ void *rl_load_dds_from_memory(const unsigned char *file_data, unsigned int file_ *width = header->width; *height = header->height; + + if (*width % 4 != 0) LOG("WARNING: IMAGE: DDS file width must be multiple of 4. Image will not display correctly"); + if (*height % 4 != 0) LOG("WARNING: IMAGE: DDS file height must be multiple of 4. Image will not display correctly"); + image_pixel_size = header->width*header->height; if (header->mipmap_count == 0) *mips = 1; // Parameter not used From 28f88fd9840057991a1573212a497b0123631fbc Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Sat, 22 Jun 2024 18:16:36 +0100 Subject: [PATCH 411/790] Fix mistakes in example usages in raylib_parser help text (#4084) --- parser/raylib_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index 63f957284..cfb0133c3 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -1100,7 +1100,7 @@ static void ShowCommandLineInfo(void) printf(" NOTE: If not specified, defaults to: raylib_api.txt\n\n"); printf(" -f, --format : Define output format for parser data.\n"); printf(" Supported types: DEFAULT, JSON, XML, LUA, CODE\n\n"); - printf(" -d, --define : Define functions specifiers (i.e. RLAPI for raylib.h, RMDEF for raymath.h, etc.)\n"); + printf(" -d, --define : Define functions specifiers (i.e. RLAPI for raylib.h, RMAPI for raymath.h, etc.)\n"); printf(" NOTE: If no specifier defined, defaults to: RLAPI\n\n"); printf(" -t, --truncate : Define string to truncate input after (i.e. \"RLGL IMPLEMENTATION\" for rlgl.h)\n"); printf(" NOTE: If not specified, the full input file is parsed.\n\n"); @@ -1110,7 +1110,7 @@ static void ShowCommandLineInfo(void) printf(" Process to generate \n\n"); printf(" > raylib_parser --output raylib_data.info --format XML\n"); printf(" Process to generate as XML text data\n\n"); - printf(" > raylib_parser --input raymath.h --output raymath_data.info --format XML\n"); + printf(" > raylib_parser --input raymath.h --output raymath_data.info --format XML --define RMAPI\n"); printf(" Process to generate as XML text data\n\n"); } From b0d49579c17e7b2bcebd0afc0b8cdb7314b5f41d Mon Sep 17 00:00:00 2001 From: Alice Nyaa <62451415+Minnowo@users.noreply.github.com> Date: Sat, 22 Jun 2024 13:17:31 -0400 Subject: [PATCH 412/790] fixed LoadCodepoints returning a freed ptr when count is 0 (#4089) --- src/rtext.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 6ad0f90a0..62d786eac 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -1892,8 +1892,7 @@ int *LoadCodepoints(const char *text, int *count) } // Re-allocate buffer to the actual number of codepoints loaded - int *temp = (int *)RL_REALLOC(codepoints, codepointCount*sizeof(int)); - if (temp != NULL) codepoints = temp; + codepoints = (int *)RL_REALLOC(codepoints, codepointCount*sizeof(int)); *count = codepointCount; From 5ba18575decc14409d9aecb6614624abb7a313b6 Mon Sep 17 00:00:00 2001 From: manuel5975p Date: Sat, 22 Jun 2024 19:20:33 +0200 Subject: [PATCH 413/790] [build] CMake: pass -sFULL_ES3 instead of -sFULL_ES3=1 (#4090) * Allow ES3 in LibraryConfigurations.cmake * Put FULL_ES3 as linker option * Remove =1 --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ba1c7007..c1360ee29 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -71,7 +71,7 @@ endif() if (${PLATFORM} MATCHES "Web") target_link_options(raylib PUBLIC "-sUSE_GLFW=3") if(${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES3") - target_link_options(raylib PUBLIC "-sFULL_ES3=1") + target_link_options(raylib PUBLIC "-sFULL_ES3") endif() endif() From d582becbc2a358202de65cac39bd68ed9148a731 Mon Sep 17 00:00:00 2001 From: Paul Melis Date: Sat, 22 Jun 2024 19:42:11 +0200 Subject: [PATCH 414/790] [rmodels] Initial work to correctly handle the node hierarchy in a glTF file (#4037) * Initial work to correctly handle the node hierarchy in a glTF file. Static meshes seem to work fine in my tests. Haven't tried anything animated yet, but it's almost certainly broken. * Fix variable naming, some comment tweaks * Only count primitives made up of triangles in glTF meshes * Update processing of gltf mesh animation data, to match earlier changes to vertex/normal/tangent data --- src/rmodels.c | 143 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 112 insertions(+), 31 deletions(-) diff --git a/src/rmodels.c b/src/rmodels.c index 308fb0a70..e48ec9dfd 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4895,6 +4895,7 @@ static Model LoadGLTF(const char *fileName) /********************************************************************************************* Function implemented by Wilhem Barbier(@wbrbr), with modifications by Tyler Bezera(@gamerfiend) + Transform handling implemented by Paul Melis (@paulmelis). Reviewed by Ramon Santamaria (@raysan5) FEATURES: @@ -4904,6 +4905,10 @@ static Model LoadGLTF(const char *fileName) PBR specular/glossiness flow and extended texture flows not supported - Supports multiple meshes per model (every primitives is loaded as a separate mesh) - Supports basic animations + - Transforms, including parent-child relations, are applied on the mesh data, but the + hierarchy is not kept (as it can't be represented). + - Mesh instances in the glTF file (i.e. same mesh linked from multiple nodes) + are turned into separate raylib Meshes. RESTRICTIONS: - Only triangle meshes supported @@ -4913,7 +4918,8 @@ static Model LoadGLTF(const char *fileName) > Texcoords: vec2: float > Colors: vec4: u8, u16, f32 (normalized) > Indices: u16, u32 (truncated to u16) - - Node hierarchies or transforms not supported + - Scenes defined in the glTF file are ignored. All nodes in the file + are used. ***********************************************************************************************/ @@ -4965,8 +4971,22 @@ static Model LoadGLTF(const char *fileName) if (result != cgltf_result_success) TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load mesh/material buffers", fileName); int primitivesCount = 0; - // NOTE: We will load every primitive in the glTF as a separate raylib mesh - for (unsigned int i = 0; i < data->meshes_count; i++) primitivesCount += (int)data->meshes[i].primitives_count; + // NOTE: We will load every primitive in the glTF as a separate raylib Mesh. + // Determine total number of meshes needed from the node hierarchy. + for (unsigned int i = 0; i < data->nodes_count; i++) + { + cgltf_node *node = &(data->nodes[i]); + cgltf_mesh *mesh = node->mesh; + if (!mesh) + continue; + + for (unsigned int p = 0; p < mesh->primitives_count; p++) + { + if (mesh->primitives[p].type == cgltf_primitive_type_triangles) + primitivesCount++; + } + } + TRACELOG(LOG_DEBUG, " > Primitives (triangles only) count based on hierarchy : %i", primitivesCount); // Load our model data: meshes and materials model.meshCount = primitivesCount; @@ -5069,27 +5089,51 @@ static Model LoadGLTF(const char *fileName) // has_clearcoat, has_transmission, has_volume, has_ior, has specular, has_sheen } - // Load meshes data + // Visit each node in the hierarchy and process any mesh linked from it. + // Each primitive within a glTF node becomes a Raylib Mesh. + // The local-to-world transform of each node is used to transform the + // points/normals/tangents of the created Mesh(es). + // Any glTF mesh linked from more than one Node (i.e. instancing) + // is turned into multiple Mesh's, as each Node will have its own + // transform applied. + // Note: the code below disregards the scenes defined in the file, all nodes are used. //---------------------------------------------------------------------------------------------------- - for (unsigned int i = 0, meshIndex = 0; i < data->meshes_count; i++) + int meshIndex = 0; + for (unsigned int i = 0; i < data->nodes_count; i++) { - // NOTE: meshIndex accumulates primitives + cgltf_node *node = &(data->nodes[i]); - for (unsigned int p = 0; p < data->meshes[i].primitives_count; p++) + cgltf_mesh *mesh = node->mesh; + if (!mesh) + continue; + + cgltf_float worldTransform[16]; + cgltf_node_transform_world(node, worldTransform); + + Matrix worldMatrix = { + worldTransform[0], worldTransform[4], worldTransform[8], worldTransform[12], + worldTransform[1], worldTransform[5], worldTransform[9], worldTransform[13], + worldTransform[2], worldTransform[6], worldTransform[10], worldTransform[14], + worldTransform[3], worldTransform[7], worldTransform[11], worldTransform[15] + }; + + Matrix worldMatrixNormals = MatrixTranspose(MatrixInvert(worldMatrix)); + + for (unsigned int p = 0; p < mesh->primitives_count; p++) { // NOTE: We only support primitives defined by triangles // Other alternatives: points, lines, line_strip, triangle_strip - if (data->meshes[i].primitives[p].type != cgltf_primitive_type_triangles) continue; + if (mesh->primitives[p].type != cgltf_primitive_type_triangles) continue; // NOTE: Attributes data could be provided in several data formats (8, 8u, 16u, 32...), // Only some formats for each attribute type are supported, read info at the top of this function! - for (unsigned int j = 0; j < data->meshes[i].primitives[p].attributes_count; j++) + for (unsigned int j = 0; j < mesh->primitives[p].attributes_count; j++) { // Check the different attributes for every primitive - if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_position) // POSITION, vec3, float + if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_position) // POSITION, vec3, float { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; // WARNING: SPECS: POSITION accessor MUST have its min and max properties defined @@ -5101,12 +5145,22 @@ static Model LoadGLTF(const char *fileName) // Load 3 components of float data type into mesh.vertices LOAD_ATTRIBUTE(attribute, 3, float, model.meshes[meshIndex].vertices) + + // Transform the vertices + float *vertices = model.meshes[meshIndex].vertices; + for (int k = 0; k < attribute->count; k++) + { + Vector3 vt = Vector3Transform((Vector3){ vertices[3*k], vertices[3*k+1], vertices[3*k+2] }, worldMatrix); + vertices[3*k] = vt.x; + vertices[3*k+1] = vt.y; + vertices[3*k+2] = vt.z; + } } else TRACELOG(LOG_WARNING, "MODEL: [%s] Vertices attribute data format not supported, use vec3 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_normal) // NORMAL, vec3, float + else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_normal) // NORMAL, vec3, float { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; if ((attribute->type == cgltf_type_vec3) && (attribute->component_type == cgltf_component_type_r_32f)) { @@ -5115,12 +5169,22 @@ static Model LoadGLTF(const char *fileName) // Load 3 components of float data type into mesh.normals LOAD_ATTRIBUTE(attribute, 3, float, model.meshes[meshIndex].normals) + + // Transform the normals + float *normals = model.meshes[meshIndex].normals; + for (int k = 0; k < attribute->count; k++) + { + Vector3 nt = Vector3Transform((Vector3){ normals[3*k], normals[3*k+1], normals[3*k+2] }, worldMatrixNormals); + normals[3*k] = nt.x; + normals[3*k+1] = nt.y; + normals[3*k+2] = nt.z; + } } else TRACELOG(LOG_WARNING, "MODEL: [%s] Normal attribute data format not supported, use vec3 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_tangent) // TANGENT, vec3, float + else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_tangent) // TANGENT, vec3, float { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; if ((attribute->type == cgltf_type_vec4) && (attribute->component_type == cgltf_component_type_r_32f)) { @@ -5129,15 +5193,25 @@ static Model LoadGLTF(const char *fileName) // Load 4 components of float data type into mesh.tangents LOAD_ATTRIBUTE(attribute, 4, float, model.meshes[meshIndex].tangents) + + // Transform the tangents + float *tangents = model.meshes[meshIndex].tangents; + for (int k = 0; k < attribute->count; k++) + { + Vector3 tt = Vector3Transform((Vector3){ tangents[3*k], tangents[3*k+1], tangents[3*k+2] }, worldMatrix); + tangents[3*k] = tt.x; + tangents[3*k+1] = tt.y; + tangents[3*k+2] = tt.z; + } } else TRACELOG(LOG_WARNING, "MODEL: [%s] Tangent attribute data format not supported, use vec4 float", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_n, vec2, float/u8n/u16n + else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) // TEXCOORD_n, vec2, float/u8n/u16n { // Support up to 2 texture coordinates attributes float *texcoordPtr = NULL; - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; if (attribute->type == cgltf_type_vec2) { @@ -5181,7 +5255,7 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Texcoords attribute data format not supported, use vec2 float", fileName); - int index = data->meshes[i].primitives[p].attributes[j].index; + int index = mesh->primitives[p].attributes[j].index; if (index == 0) model.meshes[meshIndex].texcoords = texcoordPtr; else if (index == 1) model.meshes[meshIndex].texcoords2 = texcoordPtr; else @@ -5190,9 +5264,9 @@ static Model LoadGLTF(const char *fileName) if (texcoordPtr != NULL) RL_FREE(texcoordPtr); } } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_n, vec3/vec4, float/u8n/u16n + else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_color) // COLOR_n, vec3/vec4, float/u8n/u16n { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; // WARNING: SPECS: All components of each COLOR_n accessor element MUST be clamped to [0.0, 1.0] range @@ -5309,9 +5383,9 @@ static Model LoadGLTF(const char *fileName) } // Load primitive indices data (if provided) - if (data->meshes[i].primitives[p].indices != NULL) + if (mesh->primitives[p].indices != NULL) { - cgltf_accessor *attribute = data->meshes[i].primitives[p].indices; + cgltf_accessor *attribute = mesh->primitives[p].indices; model.meshes[meshIndex].triangleCount = (int)attribute->count/3; @@ -5351,7 +5425,7 @@ static Model LoadGLTF(const char *fileName) // raylib instead assigns to the mesh the by its index, as loaded in model.materials array // To get the index, we check if material pointers match, and we assign the corresponding index, // skipping index 0, the default material - if (&data->materials[m] == data->meshes[i].primitives[p].material) + if (&data->materials[m] == mesh->primitives[p].material) { model.meshMaterial[meshIndex] = m + 1; break; @@ -5401,20 +5475,27 @@ static Model LoadGLTF(const char *fileName) TRACELOG(LOG_ERROR, "MODEL: [%s] can only load one skin (armature) per model, but gltf skins_count == %i", fileName, data->skins_count); } - for (unsigned int i = 0, meshIndex = 0; i < data->meshes_count; i++) + meshIndex = 0; + for (unsigned int i = 0; i < data->nodes_count; i++) { - for (unsigned int p = 0; p < data->meshes[i].primitives_count; p++) + cgltf_node *node = &(data->nodes[i]); + + cgltf_mesh *mesh = node->mesh; + if (!mesh) + continue; + + for (unsigned int p = 0; p < mesh->primitives_count; p++) { // NOTE: We only support primitives defined by triangles - if (data->meshes[i].primitives[p].type != cgltf_primitive_type_triangles) continue; + if (mesh->primitives[p].type != cgltf_primitive_type_triangles) continue; - for (unsigned int j = 0; j < data->meshes[i].primitives[p].attributes_count; j++) + for (unsigned int j = 0; j < mesh->primitives[p].attributes_count; j++) { // NOTE: JOINTS_1 + WEIGHT_1 will be used for +4 joints influencing a vertex -> Not supported by raylib - if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_joints) // JOINTS_n (vec4: 4 bones max per vertex / u8, u16) + if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_joints) // JOINTS_n (vec4: 4 bones max per vertex / u8, u16) { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; // NOTE: JOINTS_n can only be vec4 and u8/u16 // SPECS: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#meshes-overview @@ -5462,9 +5543,9 @@ static Model LoadGLTF(const char *fileName) } else TRACELOG(LOG_WARNING, "MODEL: [%s] Joint attribute data format not supported", fileName); } - else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_weights) // WEIGHTS_n (vec4, u8n/u16n/f32) + else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_weights) // WEIGHTS_n (vec4, u8n/u16n/f32) { - cgltf_accessor *attribute = data->meshes[i].primitives[p].attributes[j].data; + cgltf_accessor *attribute = mesh->primitives[p].attributes[j].data; if (attribute->type == cgltf_type_vec4) { From 77732540225eabb0ff659710167315265401c772 Mon Sep 17 00:00:00 2001 From: SuperUserNameMan <9801802+SuperUserNameMan@users.noreply.github.com> Date: Sun, 23 Jun 2024 21:14:03 +0200 Subject: [PATCH 415/790] LoadIQM() set model.meshMaterial[] (#4092) --- src/rmodels.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rmodels.c b/src/rmodels.c index e48ec9dfd..a169ec50d 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4326,6 +4326,8 @@ static Model LoadIQM(const char *fileName) model.materials[i] = LoadMaterialDefault(); model.materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture(TextFormat("%s/%s", basePath, material)); + model.meshMaterial[i] = i; + TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material); model.meshes[i].vertexCount = imesh[i].num_vertexes; From 7e50270d496762e7202b61e26ba1c42c47161c4e Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Sun, 23 Jun 2024 22:51:24 +0200 Subject: [PATCH 416/790] [rtextures] Adding triangle drawing function for images (#4094) * adding triangle drawing function for images * remove unnecessary check * fix an iteration mistake --- src/raylib.h | 5 ++ src/rtextures.c | 188 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index 9f06462fb..7195fd55f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1381,6 +1381,11 @@ RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int hei RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) diff --git a/src/rtextures.c b/src/rtextures.c index 2f02afece..39c0f78f2 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3627,6 +3627,194 @@ void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color) ImageDrawRectangle(dst, (int)rec.x, (int)(rec.y + rec.height - thick), (int)rec.width, thick, color); } +// Draw triangle within an image +void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color) +{ + // Calculate the 2D bounding box of the triangle + // Determine the minimum and maximum x and y coordinates of the triangle vertices + int xMin = (v1.x < v2.x)? ((v1.x < v3.x)? v1.x : v3.x) : ((v2.x < v3.x)? v2.x : v3.x); + int yMin = (v1.y < v2.y)? ((v1.y < v3.y)? v1.y : v3.y) : ((v2.y < v3.y)? v2.y : v3.y); + int xMax = (v1.x > v2.x)? ((v1.x > v3.x)? v1.x : v3.x) : ((v2.x > v3.x)? v2.x : v3.x); + int yMax = (v1.y > v2.y)? ((v1.y > v3.y)? v1.y : v3.y) : ((v2.y > v3.y)? v2.y : v3.y); + + // Clamp the bounding box to the image dimensions + if (xMin < 0) xMin = 0; + if (yMin < 0) yMin = 0; + if (xMax > dst->width) xMax = dst->width; + if (yMax > dst->height) yMax = dst->height; + + // Check the order of the vertices to determine if it's a front or back face + // NOTE: if signedArea is equal to 0, the face is degenerate + float signedArea = (v2.x - v1.x)*(v3.y - v1.y) - (v3.x - v1.x)*(v2.y - v1.y); + bool isBackFace = (signedArea > 0); + + // Barycentric interpolation setup + // Calculate the step increments for the barycentric coordinates + int w1XStep = v3.y - v2.y, w1YStep = v2.x - v3.x; + int w2XStep = v1.y - v3.y, w2YStep = v3.x - v1.x; + int w3XStep = v2.y - v1.y, w3YStep = v1.x - v2.x; + + // If the triangle is a back face, invert the steps + if (isBackFace) + { + w1XStep = -w1XStep, w1YStep = -w1YStep; + w2XStep = -w2XStep, w2YStep = -w2YStep; + w3XStep = -w3XStep, w3YStep = -w3YStep; + } + + // Calculate the initial barycentric coordinates for the top-left point of the bounding box + int w1Row = (xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y); + int w2Row = (xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y); + int w3Row = (xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y); + + // Rasterization loop + // Iterate through each pixel in the bounding box + for (int y = yMin; y <= yMax; y++) + { + int w1 = w1Row; + int w2 = w2Row; + int w3 = w3Row; + + for (int x = xMin; x <= xMax; x++) + { + // Check if the pixel is inside the triangle using barycentric coordinates + // If it is then we can draw the pixel with the given color + if ((w1 | w2 | w3) >= 0) ImageDrawPixel(dst, x, y, color); + + // Increment the barycentric coordinates for the next pixel + w1 += w1XStep; + w2 += w2XStep; + w3 += w3XStep; + } + + // Move to the next row in the bounding box + w1Row += w1YStep; + w2Row += w2YStep; + w3Row += w3YStep; + } +} + +// Draw triangle with interpolated colors within an image +void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3) +{ + // Calculate the 2D bounding box of the triangle + // Determine the minimum and maximum x and y coordinates of the triangle vertices + int xMin = (v1.x < v2.x)? ((v1.x < v3.x)? v1.x : v3.x) : ((v2.x < v3.x)? v2.x : v3.x); + int yMin = (v1.y < v2.y)? ((v1.y < v3.y)? v1.y : v3.y) : ((v2.y < v3.y)? v2.y : v3.y); + int xMax = (v1.x > v2.x)? ((v1.x > v3.x)? v1.x : v3.x) : ((v2.x > v3.x)? v2.x : v3.x); + int yMax = (v1.y > v2.y)? ((v1.y > v3.y)? v1.y : v3.y) : ((v2.y > v3.y)? v2.y : v3.y); + + // Clamp the bounding box to the image dimensions + if (xMin < 0) xMin = 0; + if (yMin < 0) yMin = 0; + if (xMax > dst->width) xMax = dst->width; + if (yMax > dst->height) yMax = dst->height; + + // Check the order of the vertices to determine if it's a front or back face + // NOTE: if signedArea is equal to 0, the face is degenerate + float signedArea = (v2.x - v1.x)*(v3.y - v1.y) - (v3.x - v1.x)*(v2.y - v1.y); + bool isBackFace = (signedArea > 0); + + // Barycentric interpolation setup + // Calculate the step increments for the barycentric coordinates + int w1XStep = v3.y - v2.y, w1YStep = v2.x - v3.x; + int w2XStep = v1.y - v3.y, w2YStep = v3.x - v1.x; + int w3XStep = v2.y - v1.y, w3YStep = v1.x - v2.x; + + // If the triangle is a back face, invert the steps + if (isBackFace) + { + w1XStep = -w1XStep, w1YStep = -w1YStep; + w2XStep = -w2XStep, w2YStep = -w2YStep; + w3XStep = -w3XStep, w3YStep = -w3YStep; + } + + // Calculate the initial barycentric coordinates for the top-left point of the bounding box + int w1Row = (xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y); + int w2Row = (xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y); + int w3Row = (xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y); + + // Calculate the inverse of the sum of the barycentric coordinates for normalization + // NOTE 1: Here, we act as if we multiply by 255 the reciprocal, which avoids additional + // calculations in the loop. This is acceptable because we are only interpolating colors. + // NOTE 2: This sum remains constant throughout the triangle + float wInvSum = 255.0f/(w1Row + w2Row + w3Row); + + // Rasterization loop + // Iterate through each pixel in the bounding box + for (int y = yMin; y <= yMax; y++) + { + int w1 = w1Row; + int w2 = w2Row; + int w3 = w3Row; + + for (int x = xMin; x <= xMax; x++) + { + // Check if the pixel is inside the triangle using barycentric coordinates + if ((w1 | w2 | w3) >= 0) + { + // Compute the normalized barycentric coordinates + unsigned char aW1 = (unsigned char)((float)w1*wInvSum); + unsigned char aW2 = (unsigned char)((float)w2*wInvSum); + unsigned char aW3 = (unsigned char)((float)w3*wInvSum); + + // Interpolate the color using the barycentric coordinates + Color finalColor = { 0 }; + finalColor.r = (c1.r*aW1 + c2.r*aW2 + c3.r*aW3)/255; + finalColor.g = (c1.g*aW1 + c2.g*aW2 + c3.g*aW3)/255; + finalColor.b = (c1.b*aW1 + c2.b*aW2 + c3.b*aW3)/255; + finalColor.a = (c1.a*aW1 + c2.a*aW2 + c3.a*aW3)/255; + + // Draw the pixel with the interpolated color + ImageDrawPixel(dst, x, y, finalColor); + } + + // Increment the barycentric coordinates for the next pixel + w1 += w1XStep; + w2 += w2XStep; + w3 += w3XStep; + } + + // Move to the next row in the bounding box + w1Row += w1YStep; + w2Row += w2YStep; + w3Row += w3YStep; + } +} + +// Draw triangle outline within an image +void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color) +{ + ImageDrawLine(dst, v1.x, v1.y, v2.x, v2.y, color); + ImageDrawLine(dst, v2.x, v2.y, v3.x, v3.y, color); + ImageDrawLine(dst, v3.x, v3.y, v1.x, v1.y, color); +} + +// Draw a triangle fan defined by points within an image (first vertex is the center) +void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color) +{ + if (pointCount >= 3) + { + for (int i = 1; i < pointCount - 1; i++) + { + ImageDrawTriangle(dst, points[0], points[i], points[i + 1], color); + } + } +} + +// Draw a triangle strip defined by points within an image +void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color) +{ + if (pointCount >= 3) + { + for (int i = 2; i < pointCount; i++) + { + if ((i%2) == 0) ImageDrawTriangle(dst, points[i], points[i - 2], points[i - 1], color); + else ImageDrawTriangle(dst, points[i], points[i - 1], points[i - 2], color); + } + } +} + // Draw an image (source) within an image (destination) // NOTE: Color tint is applied to source image void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint) From c7bda3d10fe27051ad41cdb30146a884ce6b35af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 23 Jun 2024 20:51:38 +0000 Subject: [PATCH 417/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 135 +++++++++ parser/output/raylib_api.lua | 60 ++++ parser/output/raylib_api.txt | 501 ++++++++++++++++++---------------- parser/output/raylib_api.xml | 37 ++- 4 files changed, 504 insertions(+), 229 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index ad49b64a5..c4577e68d 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -8013,6 +8013,141 @@ } ] }, + { + "name": "ImageDrawTriangle", + "description": "Draw triangle within an image", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2", + "name": "v1" + }, + { + "type": "Vector2", + "name": "v2" + }, + { + "type": "Vector2", + "name": "v3" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "ImageDrawTriangleEx", + "description": "Draw triangle with interpolated colors within an image", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2", + "name": "v1" + }, + { + "type": "Vector2", + "name": "v2" + }, + { + "type": "Vector2", + "name": "v3" + }, + { + "type": "Color", + "name": "c1" + }, + { + "type": "Color", + "name": "c2" + }, + { + "type": "Color", + "name": "c3" + } + ] + }, + { + "name": "ImageDrawTriangleLines", + "description": "Draw triangle outline within an image", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2", + "name": "v1" + }, + { + "type": "Vector2", + "name": "v2" + }, + { + "type": "Vector2", + "name": "v3" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "ImageDrawTriangleFan", + "description": "Draw a triangle fan defined by points within an image (first vertex is the center)", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "name": "ImageDrawTriangleStrip", + "description": "Draw a triangle strip defined by points within an image", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2 *", + "name": "points" + }, + { + "type": "int", + "name": "pointCount" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "ImageDraw", "description": "Draw a source image within a destination image (tint applied to source)", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 2918b934c..7cd1b5f20 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5970,6 +5970,66 @@ return { {type = "Color", name = "color"} } }, + { + name = "ImageDrawTriangle", + description = "Draw triangle within an image", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2", name = "v1"}, + {type = "Vector2", name = "v2"}, + {type = "Vector2", name = "v3"}, + {type = "Color", name = "color"} + } + }, + { + name = "ImageDrawTriangleEx", + description = "Draw triangle with interpolated colors within an image", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2", name = "v1"}, + {type = "Vector2", name = "v2"}, + {type = "Vector2", name = "v3"}, + {type = "Color", name = "c1"}, + {type = "Color", name = "c2"}, + {type = "Color", name = "c3"} + } + }, + { + name = "ImageDrawTriangleLines", + description = "Draw triangle outline within an image", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2", name = "v1"}, + {type = "Vector2", name = "v2"}, + {type = "Vector2", name = "v3"}, + {type = "Color", name = "color"} + } + }, + { + name = "ImageDrawTriangleFan", + description = "Draw a triangle fan defined by points within an image (first vertex is the center)", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "Color", name = "color"} + } + }, + { + name = "ImageDrawTriangleStrip", + description = "Draw a triangle strip defined by points within an image", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2 *", name = "points"}, + {type = "int", name = "pointCount"}, + {type = "Color", name = "color"} + } + }, { name = "ImageDraw", description = "Draw a source image within a destination image (tint applied to source)", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index ffcea1615..5b09bb972 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 566 +Functions found: 571 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -3084,7 +3084,52 @@ Function 339: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 340: ImageDraw() (5 input parameters) +Function 340: ImageDrawTriangle() (5 input parameters) + Name: ImageDrawTriangle + Return type: void + Description: Draw triangle within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: color (type: Color) +Function 341: ImageDrawTriangleEx() (7 input parameters) + Name: ImageDrawTriangleEx + Return type: void + Description: Draw triangle with interpolated colors within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: c1 (type: Color) + Param[6]: c2 (type: Color) + Param[7]: c3 (type: Color) +Function 342: ImageDrawTriangleLines() (5 input parameters) + Name: ImageDrawTriangleLines + Return type: void + Description: Draw triangle outline within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: color (type: Color) +Function 343: ImageDrawTriangleFan() (4 input parameters) + Name: ImageDrawTriangleFan + Return type: void + Description: Draw a triangle fan defined by points within an image (first vertex is the center) + Param[1]: dst (type: Image *) + Param[2]: points (type: Vector2 *) + Param[3]: pointCount (type: int) + Param[4]: color (type: Color) +Function 344: ImageDrawTriangleStrip() (4 input parameters) + Name: ImageDrawTriangleStrip + Return type: void + Description: Draw a triangle strip defined by points within an image + Param[1]: dst (type: Image *) + Param[2]: points (type: Vector2 *) + Param[3]: pointCount (type: int) + Param[4]: color (type: Color) +Function 345: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3093,7 +3138,7 @@ Function 340: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 341: ImageDrawText() (6 input parameters) +Function 346: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3103,7 +3148,7 @@ Function 341: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 342: ImageDrawTextEx() (7 input parameters) +Function 347: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3114,79 +3159,79 @@ Function 342: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 343: LoadTexture() (1 input parameters) +Function 348: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 344: LoadTextureFromImage() (1 input parameters) +Function 349: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 345: LoadTextureCubemap() (2 input parameters) +Function 350: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 346: LoadRenderTexture() (2 input parameters) +Function 351: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 347: IsTextureReady() (1 input parameters) +Function 352: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 348: UnloadTexture() (1 input parameters) +Function 353: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 349: IsRenderTextureReady() (1 input parameters) +Function 354: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 350: UnloadRenderTexture() (1 input parameters) +Function 355: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 351: UpdateTexture() (2 input parameters) +Function 356: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 352: UpdateTextureRec() (3 input parameters) +Function 357: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 353: GenTextureMipmaps() (1 input parameters) +Function 358: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 354: SetTextureFilter() (2 input parameters) +Function 359: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 355: SetTextureWrap() (2 input parameters) +Function 360: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 356: DrawTexture() (4 input parameters) +Function 361: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3194,14 +3239,14 @@ Function 356: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 357: DrawTextureV() (3 input parameters) +Function 362: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 358: DrawTextureEx() (5 input parameters) +Function 363: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3210,7 +3255,7 @@ Function 358: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 359: DrawTextureRec() (4 input parameters) +Function 364: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3218,7 +3263,7 @@ Function 359: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 360: DrawTexturePro() (6 input parameters) +Function 365: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3228,7 +3273,7 @@ Function 360: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 361: DrawTextureNPatch() (6 input parameters) +Function 366: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3238,112 +3283,112 @@ Function 361: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 362: ColorIsEqual() (2 input parameters) +Function 367: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 363: Fade() (2 input parameters) +Function 368: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 364: ColorToInt() (1 input parameters) +Function 369: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 365: ColorNormalize() (1 input parameters) +Function 370: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 366: ColorFromNormalized() (1 input parameters) +Function 371: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 367: ColorToHSV() (1 input parameters) +Function 372: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 368: ColorFromHSV() (3 input parameters) +Function 373: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 369: ColorTint() (2 input parameters) +Function 374: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 370: ColorBrightness() (2 input parameters) +Function 375: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 371: ColorContrast() (2 input parameters) +Function 376: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 372: ColorAlpha() (2 input parameters) +Function 377: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 373: ColorAlphaBlend() (3 input parameters) +Function 378: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 374: GetColor() (1 input parameters) +Function 379: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 375: GetPixelColor() (2 input parameters) +Function 380: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 376: SetPixelColor() (3 input parameters) +Function 381: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 377: GetPixelDataSize() (3 input parameters) +Function 382: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 378: GetFontDefault() (0 input parameters) +Function 383: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 379: LoadFont() (1 input parameters) +Function 384: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 380: LoadFontEx() (4 input parameters) +Function 385: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3351,14 +3396,14 @@ Function 380: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 381: LoadFontFromImage() (3 input parameters) +Function 386: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 382: LoadFontFromMemory() (6 input parameters) +Function 387: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3368,12 +3413,12 @@ Function 382: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 383: IsFontReady() (1 input parameters) +Function 388: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 384: LoadFontData() (6 input parameters) +Function 389: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3383,7 +3428,7 @@ Function 384: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 385: GenImageFontAtlas() (6 input parameters) +Function 390: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3393,30 +3438,30 @@ Function 385: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 386: UnloadFontData() (2 input parameters) +Function 391: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 387: UnloadFont() (1 input parameters) +Function 392: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 388: ExportFontAsCode() (2 input parameters) +Function 393: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 389: DrawFPS() (2 input parameters) +Function 394: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 390: DrawText() (5 input parameters) +Function 395: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3425,7 +3470,7 @@ Function 390: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 391: DrawTextEx() (6 input parameters) +Function 396: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3435,7 +3480,7 @@ Function 391: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 392: DrawTextPro() (8 input parameters) +Function 397: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3447,7 +3492,7 @@ Function 392: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 393: DrawTextCodepoint() (5 input parameters) +Function 398: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3456,7 +3501,7 @@ Function 393: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 394: DrawTextCodepoints() (7 input parameters) +Function 399: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3467,18 +3512,18 @@ Function 394: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 395: SetTextLineSpacing() (1 input parameters) +Function 400: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 396: MeasureText() (2 input parameters) +Function 401: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 397: MeasureTextEx() (4 input parameters) +Function 402: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3486,195 +3531,195 @@ Function 397: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 398: GetGlyphIndex() (2 input parameters) +Function 403: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 399: GetGlyphInfo() (2 input parameters) +Function 404: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 400: GetGlyphAtlasRec() (2 input parameters) +Function 405: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 401: LoadUTF8() (2 input parameters) +Function 406: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 402: UnloadUTF8() (1 input parameters) +Function 407: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 403: LoadCodepoints() (2 input parameters) +Function 408: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 404: UnloadCodepoints() (1 input parameters) +Function 409: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 405: GetCodepointCount() (1 input parameters) +Function 410: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 406: GetCodepoint() (2 input parameters) +Function 411: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 407: GetCodepointNext() (2 input parameters) +Function 412: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 408: GetCodepointPrevious() (2 input parameters) +Function 413: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 409: CodepointToUTF8() (2 input parameters) +Function 414: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 410: TextCopy() (2 input parameters) +Function 415: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 411: TextIsEqual() (2 input parameters) +Function 416: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 412: TextLength() (1 input parameters) +Function 417: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 413: TextFormat() (2 input parameters) +Function 418: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 414: TextSubtext() (3 input parameters) +Function 419: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 415: TextReplace() (3 input parameters) +Function 420: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 416: TextInsert() (3 input parameters) +Function 421: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 417: TextJoin() (3 input parameters) +Function 422: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 418: TextSplit() (3 input parameters) +Function 423: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 419: TextAppend() (3 input parameters) +Function 424: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 420: TextFindIndex() (2 input parameters) +Function 425: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 421: TextToUpper() (1 input parameters) +Function 426: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 422: TextToLower() (1 input parameters) +Function 427: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 423: TextToPascal() (1 input parameters) +Function 428: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 424: TextToSnake() (1 input parameters) +Function 429: TextToSnake() (1 input parameters) Name: TextToSnake Return type: const char * Description: Get Snake case notation version of provided string Param[1]: text (type: const char *) -Function 425: TextToCamel() (1 input parameters) +Function 430: TextToCamel() (1 input parameters) Name: TextToCamel Return type: const char * Description: Get Camel case notation version of provided string Param[1]: text (type: const char *) -Function 426: TextToInteger() (1 input parameters) +Function 431: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 427: TextToFloat() (1 input parameters) +Function 432: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 428: DrawLine3D() (3 input parameters) +Function 433: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 429: DrawPoint3D() (2 input parameters) +Function 434: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 430: DrawCircle3D() (5 input parameters) +Function 435: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3683,7 +3728,7 @@ Function 430: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 431: DrawTriangle3D() (4 input parameters) +Function 436: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3691,14 +3736,14 @@ Function 431: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 432: DrawTriangleStrip3D() (3 input parameters) +Function 437: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 433: DrawCube() (5 input parameters) +Function 438: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3707,14 +3752,14 @@ Function 433: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 434: DrawCubeV() (3 input parameters) +Function 439: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 435: DrawCubeWires() (5 input parameters) +Function 440: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3723,21 +3768,21 @@ Function 435: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 436: DrawCubeWiresV() (3 input parameters) +Function 441: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 437: DrawSphere() (3 input parameters) +Function 442: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 438: DrawSphereEx() (5 input parameters) +Function 443: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3746,7 +3791,7 @@ Function 438: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 439: DrawSphereWires() (5 input parameters) +Function 444: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3755,7 +3800,7 @@ Function 439: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 440: DrawCylinder() (6 input parameters) +Function 445: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3765,7 +3810,7 @@ Function 440: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 441: DrawCylinderEx() (6 input parameters) +Function 446: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3775,7 +3820,7 @@ Function 441: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 442: DrawCylinderWires() (6 input parameters) +Function 447: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3785,7 +3830,7 @@ Function 442: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 443: DrawCylinderWiresEx() (6 input parameters) +Function 448: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3795,7 +3840,7 @@ Function 443: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 444: DrawCapsule() (6 input parameters) +Function 449: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3805,7 +3850,7 @@ Function 444: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 445: DrawCapsuleWires() (6 input parameters) +Function 450: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3815,51 +3860,51 @@ Function 445: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 446: DrawPlane() (3 input parameters) +Function 451: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 447: DrawRay() (2 input parameters) +Function 452: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 448: DrawGrid() (2 input parameters) +Function 453: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 449: LoadModel() (1 input parameters) +Function 454: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 450: LoadModelFromMesh() (1 input parameters) +Function 455: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 451: IsModelReady() (1 input parameters) +Function 456: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 452: UnloadModel() (1 input parameters) +Function 457: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 453: GetModelBoundingBox() (1 input parameters) +Function 458: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 454: DrawModel() (4 input parameters) +Function 459: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3867,7 +3912,7 @@ Function 454: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 455: DrawModelEx() (6 input parameters) +Function 460: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3877,7 +3922,7 @@ Function 455: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 456: DrawModelWires() (4 input parameters) +Function 461: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3885,7 +3930,7 @@ Function 456: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 457: DrawModelWiresEx() (6 input parameters) +Function 462: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3895,13 +3940,13 @@ Function 457: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 458: DrawBoundingBox() (2 input parameters) +Function 463: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 459: DrawBillboard() (5 input parameters) +Function 464: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3910,7 +3955,7 @@ Function 459: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 460: DrawBillboardRec() (6 input parameters) +Function 465: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3920,7 +3965,7 @@ Function 460: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 461: DrawBillboardPro() (9 input parameters) +Function 466: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3933,13 +3978,13 @@ Function 461: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 462: UploadMesh() (2 input parameters) +Function 467: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 463: UpdateMeshBuffer() (5 input parameters) +Function 468: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3948,19 +3993,19 @@ Function 463: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 464: UnloadMesh() (1 input parameters) +Function 469: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 465: DrawMesh() (3 input parameters) +Function 470: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 466: DrawMeshInstanced() (4 input parameters) +Function 471: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -3968,35 +4013,35 @@ Function 466: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 467: GetMeshBoundingBox() (1 input parameters) +Function 472: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 468: GenMeshTangents() (1 input parameters) +Function 473: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 469: ExportMesh() (2 input parameters) +Function 474: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 470: ExportMeshAsCode() (2 input parameters) +Function 475: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 471: GenMeshPoly() (2 input parameters) +Function 476: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 472: GenMeshPlane() (4 input parameters) +Function 477: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -4004,42 +4049,42 @@ Function 472: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 473: GenMeshCube() (3 input parameters) +Function 478: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 474: GenMeshSphere() (3 input parameters) +Function 479: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 475: GenMeshHemiSphere() (3 input parameters) +Function 480: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 476: GenMeshCylinder() (3 input parameters) +Function 481: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 477: GenMeshCone() (3 input parameters) +Function 482: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 478: GenMeshTorus() (4 input parameters) +Function 483: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4047,7 +4092,7 @@ Function 478: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 479: GenMeshKnot() (4 input parameters) +Function 484: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4055,84 +4100,84 @@ Function 479: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 480: GenMeshHeightmap() (2 input parameters) +Function 485: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 481: GenMeshCubicmap() (2 input parameters) +Function 486: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 482: LoadMaterials() (2 input parameters) +Function 487: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 483: LoadMaterialDefault() (0 input parameters) +Function 488: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 484: IsMaterialReady() (1 input parameters) +Function 489: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 485: UnloadMaterial() (1 input parameters) +Function 490: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 486: SetMaterialTexture() (3 input parameters) +Function 491: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 487: SetModelMeshMaterial() (3 input parameters) +Function 492: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 488: LoadModelAnimations() (2 input parameters) +Function 493: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 489: UpdateModelAnimation() (3 input parameters) +Function 494: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 490: UnloadModelAnimation() (1 input parameters) +Function 495: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 491: UnloadModelAnimations() (2 input parameters) +Function 496: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 492: IsModelAnimationValid() (2 input parameters) +Function 497: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 493: CheckCollisionSpheres() (4 input parameters) +Function 498: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4140,40 +4185,40 @@ Function 493: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 494: CheckCollisionBoxes() (2 input parameters) +Function 499: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 495: CheckCollisionBoxSphere() (3 input parameters) +Function 500: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 496: GetRayCollisionSphere() (3 input parameters) +Function 501: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 497: GetRayCollisionBox() (2 input parameters) +Function 502: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 498: GetRayCollisionMesh() (3 input parameters) +Function 503: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 499: GetRayCollisionTriangle() (4 input parameters) +Function 504: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4181,7 +4226,7 @@ Function 499: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 500: GetRayCollisionQuad() (5 input parameters) +Function 505: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4190,158 +4235,158 @@ Function 500: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 501: InitAudioDevice() (0 input parameters) +Function 506: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 502: CloseAudioDevice() (0 input parameters) +Function 507: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 503: IsAudioDeviceReady() (0 input parameters) +Function 508: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 504: SetMasterVolume() (1 input parameters) +Function 509: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 505: GetMasterVolume() (0 input parameters) +Function 510: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 506: LoadWave() (1 input parameters) +Function 511: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 507: LoadWaveFromMemory() (3 input parameters) +Function 512: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 508: IsWaveReady() (1 input parameters) +Function 513: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 509: LoadSound() (1 input parameters) +Function 514: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 510: LoadSoundFromWave() (1 input parameters) +Function 515: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 511: LoadSoundAlias() (1 input parameters) +Function 516: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 512: IsSoundReady() (1 input parameters) +Function 517: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 513: UpdateSound() (3 input parameters) +Function 518: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 514: UnloadWave() (1 input parameters) +Function 519: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 515: UnloadSound() (1 input parameters) +Function 520: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 516: UnloadSoundAlias() (1 input parameters) +Function 521: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 517: ExportWave() (2 input parameters) +Function 522: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 518: ExportWaveAsCode() (2 input parameters) +Function 523: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 519: PlaySound() (1 input parameters) +Function 524: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 520: StopSound() (1 input parameters) +Function 525: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 521: PauseSound() (1 input parameters) +Function 526: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 522: ResumeSound() (1 input parameters) +Function 527: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 523: IsSoundPlaying() (1 input parameters) +Function 528: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 524: SetSoundVolume() (2 input parameters) +Function 529: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 525: SetSoundPitch() (2 input parameters) +Function 530: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 526: SetSoundPan() (2 input parameters) +Function 531: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 527: WaveCopy() (1 input parameters) +Function 532: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 528: WaveCrop() (3 input parameters) +Function 533: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 529: WaveFormat() (4 input parameters) +Function 534: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4349,203 +4394,203 @@ Function 529: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 530: LoadWaveSamples() (1 input parameters) +Function 535: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 531: UnloadWaveSamples() (1 input parameters) +Function 536: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 532: LoadMusicStream() (1 input parameters) +Function 537: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 533: LoadMusicStreamFromMemory() (3 input parameters) +Function 538: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 534: IsMusicReady() (1 input parameters) +Function 539: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 535: UnloadMusicStream() (1 input parameters) +Function 540: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 536: PlayMusicStream() (1 input parameters) +Function 541: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 537: IsMusicStreamPlaying() (1 input parameters) +Function 542: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 538: UpdateMusicStream() (1 input parameters) +Function 543: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 539: StopMusicStream() (1 input parameters) +Function 544: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 540: PauseMusicStream() (1 input parameters) +Function 545: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 541: ResumeMusicStream() (1 input parameters) +Function 546: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 542: SeekMusicStream() (2 input parameters) +Function 547: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 543: SetMusicVolume() (2 input parameters) +Function 548: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 544: SetMusicPitch() (2 input parameters) +Function 549: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 545: SetMusicPan() (2 input parameters) +Function 550: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 546: GetMusicTimeLength() (1 input parameters) +Function 551: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 547: GetMusicTimePlayed() (1 input parameters) +Function 552: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 548: LoadAudioStream() (3 input parameters) +Function 553: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 549: IsAudioStreamReady() (1 input parameters) +Function 554: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 550: UnloadAudioStream() (1 input parameters) +Function 555: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 551: UpdateAudioStream() (3 input parameters) +Function 556: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 552: IsAudioStreamProcessed() (1 input parameters) +Function 557: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 553: PlayAudioStream() (1 input parameters) +Function 558: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 554: PauseAudioStream() (1 input parameters) +Function 559: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 555: ResumeAudioStream() (1 input parameters) +Function 560: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 556: IsAudioStreamPlaying() (1 input parameters) +Function 561: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 557: StopAudioStream() (1 input parameters) +Function 562: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 558: SetAudioStreamVolume() (2 input parameters) +Function 563: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 559: SetAudioStreamPitch() (2 input parameters) +Function 564: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 560: SetAudioStreamPan() (2 input parameters) +Function 565: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 561: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 566: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 562: SetAudioStreamCallback() (2 input parameters) +Function 567: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 563: AttachAudioStreamProcessor() (2 input parameters) +Function 568: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 564: DetachAudioStreamProcessor() (2 input parameters) +Function 569: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 565: AttachAudioMixedProcessor() (1 input parameters) +Function 570: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 566: DetachAudioMixedProcessor() (1 input parameters) +Function 571: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 58f7df806..39e86c211 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -2017,6 +2017,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c2df1698473687a97e0f40562477921aee07b3e7 Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Mon, 24 Jun 2024 09:27:59 +0200 Subject: [PATCH 418/790] [rtextures] Adding `ImageDrawLineEx` function (#4097) * adding `ImageDrawLineEx` function also review other functions for drawing lines in images * fix `ImageDrawLineV` --- src/raylib.h | 1 + src/rtextures.c | 166 ++++++++++++++++++++++++++---------------------- 2 files changed, 91 insertions(+), 76 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 7195fd55f..8cd1d1ec0 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1373,6 +1373,7 @@ RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image diff --git a/src/rtextures.c b/src/rtextures.c index 39c0f78f2..df9ccbdf4 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3403,98 +3403,112 @@ void ImageDrawPixelV(Image *dst, Vector2 position, Color color) // Draw line within an image void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color) { - // Using Bresenham's algorithm as described in - // Drawing Lines with Pixels - Joshua Scott - March 2012 - // https://classic.csunplugged.org/wp-content/uploads/2014/12/Lines.pdf + // Calculate differences in coordinates + int shortLen = endPosY - startPosY; + int longLen = endPosX - startPosX; + bool yLonger = false; - int changeInX = (endPosX - startPosX); - int absChangeInX = (changeInX < 0)? -changeInX : changeInX; - int changeInY = (endPosY - startPosY); - int absChangeInY = (changeInY < 0)? -changeInY : changeInY; - - int startU, startV, endU, stepV; // Substitutions, either U = X, V = Y or vice versa. See loop at end of function - //int endV; // Not needed but left for better understanding, check code below - int A, B, P; // See linked paper above, explained down in the main loop - int reversedXY = (absChangeInY < absChangeInX); - - if (reversedXY) + // Determine if the line is more vertical than horizontal + if (abs(shortLen) > abs(longLen)) { - A = 2*absChangeInY; - B = A - 2*absChangeInX; - P = A - absChangeInX; + // Swap the lengths if the line is more vertical + int temp = shortLen; + shortLen = longLen; + longLen = temp; + yLonger = true; + } - if (changeInX > 0) + // Initialize variables for drawing loop + int endVal = longLen; + int sgnInc = 1; + + // Adjust direction increment based on longLen sign + if (longLen < 0) + { + longLen = -longLen; + sgnInc = -1; + } + + // Calculate fixed-point increment for shorter length + int decInc = (longLen == 0)? 0 : (shortLen<<16) / longLen; + + // Draw the line pixel by pixel + if (yLonger) + { + // If line is more vertical, iterate over y-axis + for (int i = 0, j = 0; i != endVal; i += sgnInc, j += decInc) { - startU = startPosX; - startV = startPosY; - endU = endPosX; - //endV = endPosY; + // Calculate pixel position and draw it + ImageDrawPixel(dst, startPosX + (j>>16), startPosY + i, color); } - else - { - startU = endPosX; - startV = endPosY; - endU = startPosX; - //endV = startPosY; - - // Since start and end are reversed - changeInX = -changeInX; - changeInY = -changeInY; - } - - stepV = (changeInY < 0)? -1 : 1; - - ImageDrawPixel(dst, startU, startV, color); // At this point they are correctly ordered... } else { - A = 2*absChangeInX; - B = A - 2*absChangeInY; - P = A - absChangeInY; - - if (changeInY > 0) + // If line is more horizontal, iterate over x-axis + for (int i = 0, j = 0; i != endVal; i += sgnInc, j += decInc) { - startU = startPosY; - startV = startPosX; - endU = endPosY; - //endV = endPosX; + // Calculate pixel position and draw it + ImageDrawPixel(dst, startPosX + i, startPosY + (j>>16), color); } - else - { - startU = endPosY; - startV = endPosX; - endU = startPosY; - //endV = startPosX; - - // Since start and end are reversed - changeInX = -changeInX; - changeInY = -changeInY; - } - - stepV = (changeInX < 0)? -1 : 1; - - ImageDrawPixel(dst, startV, startU, color); // ... but need to be reversed here. Repeated in the main loop below - } - - // We already drew the start point. If we started at startU + 0, the line would be crooked and too short - for (int u = startU + 1, v = startV; u <= endU; u++) - { - if (P >= 0) - { - v += stepV; // Adjusts whenever we stray too far from the direct line. Details in the linked paper above - P += B; // Remembers that we corrected our path - } - else P += A; // Remembers how far we are from the direct line - - if (reversedXY) ImageDrawPixel(dst, u, v, color); - else ImageDrawPixel(dst, v, u, color); } } // Draw line within an image (Vector version) void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color) { - ImageDrawLine(dst, (int)start.x, (int)start.y, (int)end.x, (int)end.y, color); + // Round start and end positions to nearest integer coordinates + int x1 = (int)(start.x + 0.5f); + int y1 = (int)(start.y + 0.5f); + int x2 = (int)(end.x + 0.5f); + int y2 = (int)(end.y + 0.5f); + + // Draw a vertical line using ImageDrawLine function + ImageDrawLine(dst, x1, y1, x2, y2, color); +} + +// Draw a line defining thickness within an image +void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color) +{ + // Round start and end positions to nearest integer coordinates + int x1 = (int)(start.x + 0.5f); + int y1 = (int)(start.y + 0.5f); + int x2 = (int)(end.x + 0.5f); + int y2 = (int)(end.y + 0.5f); + + // Calculate differences in x and y coordinates + int dx = x2 - x1; + int dy = y2 - y1; + + // Draw the main line between (x1, y1) and (x2, y2) + ImageDrawLine(dst, x1, y1, x2, y2, color); + + // Determine if the line is more horizontal or vertical + if (dx != 0 && abs(dy/dx) < 1) + { + // Line is more horizontal + // Calculate half the width of the line + int wy = (thick - 1)*sqrtf(dx*dx + dy*dy)/(2*abs(dx)); + + // Draw additional lines above and below the main line + for (int i = 1; i <= wy; i++) + { + ImageDrawLine(dst, x1, y1 - i, x2, y2 - i, color); // Draw above the main line + ImageDrawLine(dst, x1, y1 + i, x2, y2 + i, color); // Draw below the main line + } + } + else if (dy != 0) + { + // Line is more vertical or perfectly horizontal + // Calculate half the width of the line + int wx = (thick - 1)*sqrtf(dx*dx + dy*dy)/(2*abs(dy)); + + // Draw additional lines to the left and right of the main line + for (int i = 1; i <= wx; i++) + { + ImageDrawLine(dst, x1 - i, y1, x2 - i, y2, color); // Draw left of the main line + ImageDrawLine(dst, x1 + i, y1, x2 + i, y2, color); // Draw right of the main line + } + } } // Draw circle within an image From f947f890617fade5bdcaccaaeb812306dc7658de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Jun 2024 07:28:17 +0000 Subject: [PATCH 419/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 27 ++ parser/output/raylib_api.lua | 12 + parser/output/raylib_api.txt | 491 +++++++++++++++++----------------- parser/output/raylib_api.xml | 9 +- 4 files changed, 297 insertions(+), 242 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index c4577e68d..a75b94ed0 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -7817,6 +7817,33 @@ } ] }, + { + "name": "ImageDrawLineEx", + "description": "Draw a line defining thickness within an image", + "returnType": "void", + "params": [ + { + "type": "Image *", + "name": "dst" + }, + { + "type": "Vector2", + "name": "start" + }, + { + "type": "Vector2", + "name": "end" + }, + { + "type": "int", + "name": "thick" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "ImageDrawCircle", "description": "Draw a filled circle within an image", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 7cd1b5f20..7dcb1fa41 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5879,6 +5879,18 @@ return { {type = "Color", name = "color"} } }, + { + name = "ImageDrawLineEx", + description = "Draw a line defining thickness within an image", + returnType = "void", + params = { + {type = "Image *", name = "dst"}, + {type = "Vector2", name = "start"}, + {type = "Vector2", name = "end"}, + {type = "int", name = "thick"}, + {type = "Color", name = "color"} + } + }, { name = "ImageDrawCircle", description = "Draw a filled circle within an image", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 5b09bb972..fd082d074 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -984,7 +984,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 571 +Functions found: 572 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -3017,7 +3017,16 @@ Function 331: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 332: ImageDrawCircle() (5 input parameters) +Function 332: ImageDrawLineEx() (5 input parameters) + Name: ImageDrawLineEx + Return type: void + Description: Draw a line defining thickness within an image + Param[1]: dst (type: Image *) + Param[2]: start (type: Vector2) + Param[3]: end (type: Vector2) + Param[4]: thick (type: int) + Param[5]: color (type: Color) +Function 333: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3026,7 +3035,7 @@ Function 332: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 333: ImageDrawCircleV() (4 input parameters) +Function 334: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3034,7 +3043,7 @@ Function 333: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 334: ImageDrawCircleLines() (5 input parameters) +Function 335: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3043,7 +3052,7 @@ Function 334: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 335: ImageDrawCircleLinesV() (4 input parameters) +Function 336: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3051,7 +3060,7 @@ Function 335: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 336: ImageDrawRectangle() (6 input parameters) +Function 337: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3061,7 +3070,7 @@ Function 336: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 337: ImageDrawRectangleV() (4 input parameters) +Function 338: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3069,14 +3078,14 @@ Function 337: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 338: ImageDrawRectangleRec() (3 input parameters) +Function 339: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 339: ImageDrawRectangleLines() (4 input parameters) +Function 340: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3084,7 +3093,7 @@ Function 339: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 340: ImageDrawTriangle() (5 input parameters) +Function 341: ImageDrawTriangle() (5 input parameters) Name: ImageDrawTriangle Return type: void Description: Draw triangle within an image @@ -3093,7 +3102,7 @@ Function 340: ImageDrawTriangle() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 341: ImageDrawTriangleEx() (7 input parameters) +Function 342: ImageDrawTriangleEx() (7 input parameters) Name: ImageDrawTriangleEx Return type: void Description: Draw triangle with interpolated colors within an image @@ -3104,7 +3113,7 @@ Function 341: ImageDrawTriangleEx() (7 input parameters) Param[5]: c1 (type: Color) Param[6]: c2 (type: Color) Param[7]: c3 (type: Color) -Function 342: ImageDrawTriangleLines() (5 input parameters) +Function 343: ImageDrawTriangleLines() (5 input parameters) Name: ImageDrawTriangleLines Return type: void Description: Draw triangle outline within an image @@ -3113,7 +3122,7 @@ Function 342: ImageDrawTriangleLines() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 343: ImageDrawTriangleFan() (4 input parameters) +Function 344: ImageDrawTriangleFan() (4 input parameters) Name: ImageDrawTriangleFan Return type: void Description: Draw a triangle fan defined by points within an image (first vertex is the center) @@ -3121,7 +3130,7 @@ Function 343: ImageDrawTriangleFan() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 344: ImageDrawTriangleStrip() (4 input parameters) +Function 345: ImageDrawTriangleStrip() (4 input parameters) Name: ImageDrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points within an image @@ -3129,7 +3138,7 @@ Function 344: ImageDrawTriangleStrip() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 345: ImageDraw() (5 input parameters) +Function 346: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3138,7 +3147,7 @@ Function 345: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 346: ImageDrawText() (6 input parameters) +Function 347: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3148,7 +3157,7 @@ Function 346: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 347: ImageDrawTextEx() (7 input parameters) +Function 348: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3159,79 +3168,79 @@ Function 347: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 348: LoadTexture() (1 input parameters) +Function 349: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 349: LoadTextureFromImage() (1 input parameters) +Function 350: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 350: LoadTextureCubemap() (2 input parameters) +Function 351: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 351: LoadRenderTexture() (2 input parameters) +Function 352: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 352: IsTextureReady() (1 input parameters) +Function 353: IsTextureReady() (1 input parameters) Name: IsTextureReady Return type: bool Description: Check if a texture is ready Param[1]: texture (type: Texture2D) -Function 353: UnloadTexture() (1 input parameters) +Function 354: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 354: IsRenderTextureReady() (1 input parameters) +Function 355: IsRenderTextureReady() (1 input parameters) Name: IsRenderTextureReady Return type: bool Description: Check if a render texture is ready Param[1]: target (type: RenderTexture2D) -Function 355: UnloadRenderTexture() (1 input parameters) +Function 356: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 356: UpdateTexture() (2 input parameters) +Function 357: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 357: UpdateTextureRec() (3 input parameters) +Function 358: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 358: GenTextureMipmaps() (1 input parameters) +Function 359: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 359: SetTextureFilter() (2 input parameters) +Function 360: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 360: SetTextureWrap() (2 input parameters) +Function 361: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 361: DrawTexture() (4 input parameters) +Function 362: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3239,14 +3248,14 @@ Function 361: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 362: DrawTextureV() (3 input parameters) +Function 363: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 363: DrawTextureEx() (5 input parameters) +Function 364: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3255,7 +3264,7 @@ Function 363: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 364: DrawTextureRec() (4 input parameters) +Function 365: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3263,7 +3272,7 @@ Function 364: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 365: DrawTexturePro() (6 input parameters) +Function 366: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3273,7 +3282,7 @@ Function 365: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 366: DrawTextureNPatch() (6 input parameters) +Function 367: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3283,112 +3292,112 @@ Function 366: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 367: ColorIsEqual() (2 input parameters) +Function 368: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 368: Fade() (2 input parameters) +Function 369: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 369: ColorToInt() (1 input parameters) +Function 370: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 370: ColorNormalize() (1 input parameters) +Function 371: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 371: ColorFromNormalized() (1 input parameters) +Function 372: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 372: ColorToHSV() (1 input parameters) +Function 373: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 373: ColorFromHSV() (3 input parameters) +Function 374: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 374: ColorTint() (2 input parameters) +Function 375: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 375: ColorBrightness() (2 input parameters) +Function 376: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 376: ColorContrast() (2 input parameters) +Function 377: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 377: ColorAlpha() (2 input parameters) +Function 378: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 378: ColorAlphaBlend() (3 input parameters) +Function 379: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 379: GetColor() (1 input parameters) +Function 380: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 380: GetPixelColor() (2 input parameters) +Function 381: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 381: SetPixelColor() (3 input parameters) +Function 382: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 382: GetPixelDataSize() (3 input parameters) +Function 383: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 383: GetFontDefault() (0 input parameters) +Function 384: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 384: LoadFont() (1 input parameters) +Function 385: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 385: LoadFontEx() (4 input parameters) +Function 386: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont @@ -3396,14 +3405,14 @@ Function 385: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 386: LoadFontFromImage() (3 input parameters) +Function 387: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 387: LoadFontFromMemory() (6 input parameters) +Function 388: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3413,12 +3422,12 @@ Function 387: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 388: IsFontReady() (1 input parameters) +Function 389: IsFontReady() (1 input parameters) Name: IsFontReady Return type: bool Description: Check if a font is ready Param[1]: font (type: Font) -Function 389: LoadFontData() (6 input parameters) +Function 390: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3428,7 +3437,7 @@ Function 389: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 390: GenImageFontAtlas() (6 input parameters) +Function 391: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3438,30 +3447,30 @@ Function 390: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 391: UnloadFontData() (2 input parameters) +Function 392: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 392: UnloadFont() (1 input parameters) +Function 393: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 393: ExportFontAsCode() (2 input parameters) +Function 394: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 394: DrawFPS() (2 input parameters) +Function 395: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 395: DrawText() (5 input parameters) +Function 396: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3470,7 +3479,7 @@ Function 395: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 396: DrawTextEx() (6 input parameters) +Function 397: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3480,7 +3489,7 @@ Function 396: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 397: DrawTextPro() (8 input parameters) +Function 398: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3492,7 +3501,7 @@ Function 397: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 398: DrawTextCodepoint() (5 input parameters) +Function 399: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3501,7 +3510,7 @@ Function 398: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 399: DrawTextCodepoints() (7 input parameters) +Function 400: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3512,18 +3521,18 @@ Function 399: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 400: SetTextLineSpacing() (1 input parameters) +Function 401: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 401: MeasureText() (2 input parameters) +Function 402: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 402: MeasureTextEx() (4 input parameters) +Function 403: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3531,195 +3540,195 @@ Function 402: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 403: GetGlyphIndex() (2 input parameters) +Function 404: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 404: GetGlyphInfo() (2 input parameters) +Function 405: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 405: GetGlyphAtlasRec() (2 input parameters) +Function 406: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 406: LoadUTF8() (2 input parameters) +Function 407: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 407: UnloadUTF8() (1 input parameters) +Function 408: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 408: LoadCodepoints() (2 input parameters) +Function 409: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 409: UnloadCodepoints() (1 input parameters) +Function 410: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 410: GetCodepointCount() (1 input parameters) +Function 411: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 411: GetCodepoint() (2 input parameters) +Function 412: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 412: GetCodepointNext() (2 input parameters) +Function 413: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 413: GetCodepointPrevious() (2 input parameters) +Function 414: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 414: CodepointToUTF8() (2 input parameters) +Function 415: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 415: TextCopy() (2 input parameters) +Function 416: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 416: TextIsEqual() (2 input parameters) +Function 417: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 417: TextLength() (1 input parameters) +Function 418: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 418: TextFormat() (2 input parameters) +Function 419: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 419: TextSubtext() (3 input parameters) +Function 420: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 420: TextReplace() (3 input parameters) +Function 421: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 421: TextInsert() (3 input parameters) +Function 422: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 422: TextJoin() (3 input parameters) +Function 423: TextJoin() (3 input parameters) Name: TextJoin Return type: const char * Description: Join text strings with delimiter Param[1]: textList (type: const char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 423: TextSplit() (3 input parameters) +Function 424: TextSplit() (3 input parameters) Name: TextSplit Return type: const char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 424: TextAppend() (3 input parameters) +Function 425: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 425: TextFindIndex() (2 input parameters) +Function 426: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 426: TextToUpper() (1 input parameters) +Function 427: TextToUpper() (1 input parameters) Name: TextToUpper Return type: const char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 427: TextToLower() (1 input parameters) +Function 428: TextToLower() (1 input parameters) Name: TextToLower Return type: const char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 428: TextToPascal() (1 input parameters) +Function 429: TextToPascal() (1 input parameters) Name: TextToPascal Return type: const char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 429: TextToSnake() (1 input parameters) +Function 430: TextToSnake() (1 input parameters) Name: TextToSnake Return type: const char * Description: Get Snake case notation version of provided string Param[1]: text (type: const char *) -Function 430: TextToCamel() (1 input parameters) +Function 431: TextToCamel() (1 input parameters) Name: TextToCamel Return type: const char * Description: Get Camel case notation version of provided string Param[1]: text (type: const char *) -Function 431: TextToInteger() (1 input parameters) +Function 432: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text (negative values not supported) Param[1]: text (type: const char *) -Function 432: TextToFloat() (1 input parameters) +Function 433: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text (negative values not supported) Param[1]: text (type: const char *) -Function 433: DrawLine3D() (3 input parameters) +Function 434: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 434: DrawPoint3D() (2 input parameters) +Function 435: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 435: DrawCircle3D() (5 input parameters) +Function 436: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3728,7 +3737,7 @@ Function 435: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 436: DrawTriangle3D() (4 input parameters) +Function 437: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3736,14 +3745,14 @@ Function 436: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 437: DrawTriangleStrip3D() (3 input parameters) +Function 438: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 438: DrawCube() (5 input parameters) +Function 439: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3752,14 +3761,14 @@ Function 438: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 439: DrawCubeV() (3 input parameters) +Function 440: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 440: DrawCubeWires() (5 input parameters) +Function 441: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3768,21 +3777,21 @@ Function 440: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 441: DrawCubeWiresV() (3 input parameters) +Function 442: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 442: DrawSphere() (3 input parameters) +Function 443: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 443: DrawSphereEx() (5 input parameters) +Function 444: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3791,7 +3800,7 @@ Function 443: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 444: DrawSphereWires() (5 input parameters) +Function 445: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3800,7 +3809,7 @@ Function 444: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 445: DrawCylinder() (6 input parameters) +Function 446: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3810,7 +3819,7 @@ Function 445: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 446: DrawCylinderEx() (6 input parameters) +Function 447: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3820,7 +3829,7 @@ Function 446: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 447: DrawCylinderWires() (6 input parameters) +Function 448: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3830,7 +3839,7 @@ Function 447: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 448: DrawCylinderWiresEx() (6 input parameters) +Function 449: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3840,7 +3849,7 @@ Function 448: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 449: DrawCapsule() (6 input parameters) +Function 450: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3850,7 +3859,7 @@ Function 449: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 450: DrawCapsuleWires() (6 input parameters) +Function 451: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3860,51 +3869,51 @@ Function 450: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 451: DrawPlane() (3 input parameters) +Function 452: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 452: DrawRay() (2 input parameters) +Function 453: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 453: DrawGrid() (2 input parameters) +Function 454: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 454: LoadModel() (1 input parameters) +Function 455: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 455: LoadModelFromMesh() (1 input parameters) +Function 456: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 456: IsModelReady() (1 input parameters) +Function 457: IsModelReady() (1 input parameters) Name: IsModelReady Return type: bool Description: Check if a model is ready Param[1]: model (type: Model) -Function 457: UnloadModel() (1 input parameters) +Function 458: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 458: GetModelBoundingBox() (1 input parameters) +Function 459: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 459: DrawModel() (4 input parameters) +Function 460: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3912,7 +3921,7 @@ Function 459: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 460: DrawModelEx() (6 input parameters) +Function 461: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3922,7 +3931,7 @@ Function 460: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 461: DrawModelWires() (4 input parameters) +Function 462: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3930,7 +3939,7 @@ Function 461: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 462: DrawModelWiresEx() (6 input parameters) +Function 463: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3940,13 +3949,13 @@ Function 462: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 463: DrawBoundingBox() (2 input parameters) +Function 464: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 464: DrawBillboard() (5 input parameters) +Function 465: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -3955,7 +3964,7 @@ Function 464: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: size (type: float) Param[5]: tint (type: Color) -Function 465: DrawBillboardRec() (6 input parameters) +Function 466: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -3965,7 +3974,7 @@ Function 465: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 466: DrawBillboardPro() (9 input parameters) +Function 467: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -3978,13 +3987,13 @@ Function 466: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 467: UploadMesh() (2 input parameters) +Function 468: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 468: UpdateMeshBuffer() (5 input parameters) +Function 469: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -3993,19 +4002,19 @@ Function 468: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 469: UnloadMesh() (1 input parameters) +Function 470: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 470: DrawMesh() (3 input parameters) +Function 471: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 471: DrawMeshInstanced() (4 input parameters) +Function 472: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -4013,35 +4022,35 @@ Function 471: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 472: GetMeshBoundingBox() (1 input parameters) +Function 473: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 473: GenMeshTangents() (1 input parameters) +Function 474: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 474: ExportMesh() (2 input parameters) +Function 475: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 475: ExportMeshAsCode() (2 input parameters) +Function 476: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 476: GenMeshPoly() (2 input parameters) +Function 477: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 477: GenMeshPlane() (4 input parameters) +Function 478: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -4049,42 +4058,42 @@ Function 477: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 478: GenMeshCube() (3 input parameters) +Function 479: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 479: GenMeshSphere() (3 input parameters) +Function 480: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 480: GenMeshHemiSphere() (3 input parameters) +Function 481: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 481: GenMeshCylinder() (3 input parameters) +Function 482: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 482: GenMeshCone() (3 input parameters) +Function 483: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 483: GenMeshTorus() (4 input parameters) +Function 484: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4092,7 +4101,7 @@ Function 483: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 484: GenMeshKnot() (4 input parameters) +Function 485: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4100,84 +4109,84 @@ Function 484: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 485: GenMeshHeightmap() (2 input parameters) +Function 486: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 486: GenMeshCubicmap() (2 input parameters) +Function 487: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 487: LoadMaterials() (2 input parameters) +Function 488: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 488: LoadMaterialDefault() (0 input parameters) +Function 489: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 489: IsMaterialReady() (1 input parameters) +Function 490: IsMaterialReady() (1 input parameters) Name: IsMaterialReady Return type: bool Description: Check if a material is ready Param[1]: material (type: Material) -Function 490: UnloadMaterial() (1 input parameters) +Function 491: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 491: SetMaterialTexture() (3 input parameters) +Function 492: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 492: SetModelMeshMaterial() (3 input parameters) +Function 493: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 493: LoadModelAnimations() (2 input parameters) +Function 494: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 494: UpdateModelAnimation() (3 input parameters) +Function 495: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 495: UnloadModelAnimation() (1 input parameters) +Function 496: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 496: UnloadModelAnimations() (2 input parameters) +Function 497: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 497: IsModelAnimationValid() (2 input parameters) +Function 498: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 498: CheckCollisionSpheres() (4 input parameters) +Function 499: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4185,40 +4194,40 @@ Function 498: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 499: CheckCollisionBoxes() (2 input parameters) +Function 500: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 500: CheckCollisionBoxSphere() (3 input parameters) +Function 501: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 501: GetRayCollisionSphere() (3 input parameters) +Function 502: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 502: GetRayCollisionBox() (2 input parameters) +Function 503: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 503: GetRayCollisionMesh() (3 input parameters) +Function 504: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 504: GetRayCollisionTriangle() (4 input parameters) +Function 505: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4226,7 +4235,7 @@ Function 504: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 505: GetRayCollisionQuad() (5 input parameters) +Function 506: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4235,158 +4244,158 @@ Function 505: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 506: InitAudioDevice() (0 input parameters) +Function 507: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 507: CloseAudioDevice() (0 input parameters) +Function 508: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 508: IsAudioDeviceReady() (0 input parameters) +Function 509: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 509: SetMasterVolume() (1 input parameters) +Function 510: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 510: GetMasterVolume() (0 input parameters) +Function 511: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 511: LoadWave() (1 input parameters) +Function 512: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 512: LoadWaveFromMemory() (3 input parameters) +Function 513: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 513: IsWaveReady() (1 input parameters) +Function 514: IsWaveReady() (1 input parameters) Name: IsWaveReady Return type: bool Description: Checks if wave data is ready Param[1]: wave (type: Wave) -Function 514: LoadSound() (1 input parameters) +Function 515: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 515: LoadSoundFromWave() (1 input parameters) +Function 516: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 516: LoadSoundAlias() (1 input parameters) +Function 517: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 517: IsSoundReady() (1 input parameters) +Function 518: IsSoundReady() (1 input parameters) Name: IsSoundReady Return type: bool Description: Checks if a sound is ready Param[1]: sound (type: Sound) -Function 518: UpdateSound() (3 input parameters) +Function 519: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 519: UnloadWave() (1 input parameters) +Function 520: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 520: UnloadSound() (1 input parameters) +Function 521: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 521: UnloadSoundAlias() (1 input parameters) +Function 522: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 522: ExportWave() (2 input parameters) +Function 523: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 523: ExportWaveAsCode() (2 input parameters) +Function 524: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 524: PlaySound() (1 input parameters) +Function 525: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 525: StopSound() (1 input parameters) +Function 526: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 526: PauseSound() (1 input parameters) +Function 527: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 527: ResumeSound() (1 input parameters) +Function 528: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 528: IsSoundPlaying() (1 input parameters) +Function 529: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 529: SetSoundVolume() (2 input parameters) +Function 530: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 530: SetSoundPitch() (2 input parameters) +Function 531: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 531: SetSoundPan() (2 input parameters) +Function 532: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 532: WaveCopy() (1 input parameters) +Function 533: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 533: WaveCrop() (3 input parameters) +Function 534: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 534: WaveFormat() (4 input parameters) +Function 535: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4394,203 +4403,203 @@ Function 534: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 535: LoadWaveSamples() (1 input parameters) +Function 536: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 536: UnloadWaveSamples() (1 input parameters) +Function 537: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 537: LoadMusicStream() (1 input parameters) +Function 538: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 538: LoadMusicStreamFromMemory() (3 input parameters) +Function 539: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 539: IsMusicReady() (1 input parameters) +Function 540: IsMusicReady() (1 input parameters) Name: IsMusicReady Return type: bool Description: Checks if a music stream is ready Param[1]: music (type: Music) -Function 540: UnloadMusicStream() (1 input parameters) +Function 541: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 541: PlayMusicStream() (1 input parameters) +Function 542: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 542: IsMusicStreamPlaying() (1 input parameters) +Function 543: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 543: UpdateMusicStream() (1 input parameters) +Function 544: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 544: StopMusicStream() (1 input parameters) +Function 545: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 545: PauseMusicStream() (1 input parameters) +Function 546: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 546: ResumeMusicStream() (1 input parameters) +Function 547: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 547: SeekMusicStream() (2 input parameters) +Function 548: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 548: SetMusicVolume() (2 input parameters) +Function 549: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 549: SetMusicPitch() (2 input parameters) +Function 550: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 550: SetMusicPan() (2 input parameters) +Function 551: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 551: GetMusicTimeLength() (1 input parameters) +Function 552: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 552: GetMusicTimePlayed() (1 input parameters) +Function 553: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 553: LoadAudioStream() (3 input parameters) +Function 554: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 554: IsAudioStreamReady() (1 input parameters) +Function 555: IsAudioStreamReady() (1 input parameters) Name: IsAudioStreamReady Return type: bool Description: Checks if an audio stream is ready Param[1]: stream (type: AudioStream) -Function 555: UnloadAudioStream() (1 input parameters) +Function 556: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 556: UpdateAudioStream() (3 input parameters) +Function 557: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 557: IsAudioStreamProcessed() (1 input parameters) +Function 558: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 558: PlayAudioStream() (1 input parameters) +Function 559: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 559: PauseAudioStream() (1 input parameters) +Function 560: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 560: ResumeAudioStream() (1 input parameters) +Function 561: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 561: IsAudioStreamPlaying() (1 input parameters) +Function 562: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 562: StopAudioStream() (1 input parameters) +Function 563: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 563: SetAudioStreamVolume() (2 input parameters) +Function 564: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 564: SetAudioStreamPitch() (2 input parameters) +Function 565: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 565: SetAudioStreamPan() (2 input parameters) +Function 566: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 566: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 567: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 567: SetAudioStreamCallback() (2 input parameters) +Function 568: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 568: AttachAudioStreamProcessor() (2 input parameters) +Function 569: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives the samples as 'float' Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 569: DetachAudioStreamProcessor() (2 input parameters) +Function 570: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 570: AttachAudioMixedProcessor() (1 input parameters) +Function 571: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Param[1]: processor (type: AudioCallback) -Function 571: DetachAudioMixedProcessor() (1 input parameters) +Function 572: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 39e86c211..22f9b0ec7 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -670,7 +670,7 @@ - + @@ -1966,6 +1966,13 @@ + + + + + + + From 4311db5ba5eb23c8f1d71268010afb135f3e1e25 Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Mon, 24 Jun 2024 08:29:10 +0100 Subject: [PATCH 420/790] [rmodels] Fix -Wstringop-truncation warning (#4096) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rmodels.c: In function ‘LoadBoneInfoGLTF.isra’: rmodels.c:4874:32: warning: ‘strncpy’ specified bound 32 equals destination size [-Wstringop-truncation] 4874 | if (node.name != NULL) strncpy(bones[i].name, node.name, sizeof(bones[i].name)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --- src/rmodels.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rmodels.c b/src/rmodels.c index a169ec50d..a323292ca 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -4871,7 +4871,11 @@ static BoneInfo *LoadBoneInfoGLTF(cgltf_skin skin, int *boneCount) for (unsigned int i = 0; i < skin.joints_count; i++) { cgltf_node node = *skin.joints[i]; - if (node.name != NULL) strncpy(bones[i].name, node.name, sizeof(bones[i].name)); + if (node.name != NULL) + { + strncpy(bones[i].name, node.name, sizeof(bones[i].name)); + bones[i].name[sizeof(bones[i].name) - 1] = '\0'; + } // Find parent bone index unsigned int parentIndex = -1; From e96bab7ce63568d86fae4fd664fa06625f76f1ee Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Mon, 24 Jun 2024 08:47:32 -0700 Subject: [PATCH 421/790] [Build] Fix warnings when building in VS 2022 (#4095) * Update raylib_api.* by CI * Fix warnings when building examples in MSVC 2022 * fix auto-format that sneaked in there. --------- Co-authored-by: github-actions[bot] --- examples/audio/audio_mixed_processor.c | 2 +- examples/core/core_2d_camera_platformer.c | 4 +- examples/core/core_input_mouse_wheel.c | 2 +- examples/core/core_random_sequence.c | 16 +++---- examples/core/core_smooth_pixelperfect.c | 8 ++-- examples/core/core_storage_values.c | 2 +- examples/models/models_draw_cube_texture.c | 2 +- examples/shaders/shaders_deferred_render.c | 6 +-- examples/shapes/shapes_lines_bezier.c | 4 +- examples/shapes/shapes_splines_drawing.c | 2 +- .../examples/shapes_splines_drawing.vcxproj | 16 +++---- src/rcore.c | 2 +- src/rlgl.h | 4 +- src/rtext.c | 2 +- src/rtextures.c | 46 +++++++++---------- 15 files changed, 60 insertions(+), 58 deletions(-) diff --git a/examples/audio/audio_mixed_processor.c b/examples/audio/audio_mixed_processor.c index 3a008f3e2..fd970dd19 100644 --- a/examples/audio/audio_mixed_processor.c +++ b/examples/audio/audio_mixed_processor.c @@ -97,7 +97,7 @@ int main(void) DrawRectangle(199, 199, 402, 34, LIGHTGRAY); for (int i = 0; i < 400; i++) { - DrawLine(201 + i, 232 - averageVolume[i] * 32, 201 + i, 232, MAROON); + DrawLine(201 + i, 232 - (int)averageVolume[i] * 32, 201 + i, 232, MAROON); } DrawRectangleLines(199, 199, 402, 34, GRAY); diff --git a/examples/core/core_2d_camera_platformer.c b/examples/core/core_2d_camera_platformer.c index 75fd6cf6a..3743de80b 100644 --- a/examples/core/core_2d_camera_platformer.c +++ b/examples/core/core_2d_camera_platformer.c @@ -133,10 +133,10 @@ int main(void) for (int i = 0; i < envItemsLength; i++) DrawRectangleRec(envItems[i].rect, envItems[i].color); - Rectangle playerRect = { player.position.x - 20, player.position.y - 40, 40, 40 }; + Rectangle playerRect = { player.position.x - 20, player.position.y - 40, 40.0f, 40.0f }; DrawRectangleRec(playerRect, RED); - DrawCircle(player.position.x, player.position.y, 5, GOLD); + DrawCircleV(player.position, 5.0f, GOLD); EndMode2D(); diff --git a/examples/core/core_input_mouse_wheel.c b/examples/core/core_input_mouse_wheel.c index 54f33545e..d261e9348 100644 --- a/examples/core/core_input_mouse_wheel.c +++ b/examples/core/core_input_mouse_wheel.c @@ -36,7 +36,7 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - boxPositionY -= (GetMouseWheelMove()*scrollSpeed); + boxPositionY -= (int)(GetMouseWheelMove()*scrollSpeed); //---------------------------------------------------------------------------------- // Draw diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c index c946b64da..2f7c3be95 100644 --- a/examples/core/core_random_sequence.c +++ b/examples/core/core_random_sequence.c @@ -41,7 +41,7 @@ int main(void) { int rectCount = 20; float rectSize = (float)screenWidth/rectCount; - ColorRect* rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + ColorRect* rectangles = GenerateRandomColorRectSequence((float)rectCount, rectSize, (float)screenWidth, 0.75f * screenHeight); SetTargetFPS(60); //-------------------------------------------------------------------------------------- @@ -62,7 +62,7 @@ int main(void) { rectCount++; rectSize = (float)screenWidth/rectCount; free(rectangles); - rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + rectangles = GenerateRandomColorRectSequence((float)rectCount, rectSize, (float)screenWidth, 0.75f * screenHeight); } if(IsKeyPressed(KEY_DOWN)) @@ -71,7 +71,7 @@ int main(void) { rectCount--; rectSize = (float)screenWidth/rectCount; free(rectangles); - rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + rectangles = GenerateRandomColorRectSequence((float)rectCount, rectSize, (float)screenWidth, 0.75f * screenHeight); } } @@ -121,17 +121,17 @@ static Color GenerateRandomColor() } static ColorRect* GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight){ - int *seq = LoadRandomSequence(rectCount, 0, rectCount-1); - ColorRect* rectangles = (ColorRect *)malloc(rectCount*sizeof(ColorRect)); + int *seq = LoadRandomSequence((unsigned int)rectCount, 0, (unsigned int)rectCount-1); + ColorRect* rectangles = (ColorRect *)malloc((int)rectCount*sizeof(ColorRect)); float rectSeqWidth = rectCount * rectWidth; - int startX = (screenWidth - rectSeqWidth) * 0.5f; + float startX = (screenWidth - rectSeqWidth) * 0.5f; for(int x=0;x Level3 Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) CompileAsC $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) @@ -219,7 +219,7 @@ Level3 Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) CompileAsC $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) /FS %(AdditionalOptions) @@ -237,7 +237,7 @@ Level3 Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) CompileAsC $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) @@ -258,7 +258,7 @@ Level3 Disabled - WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) CompileAsC $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) @@ -281,7 +281,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) CompileAsC true @@ -303,7 +303,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) CompileAsC true @@ -325,7 +325,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) CompileAsC true @@ -353,7 +353,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) CompileAsC true diff --git a/src/rcore.c b/src/rcore.c index a4fc4d675..2c9af11d5 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -856,7 +856,7 @@ void EndDrawing(void) #ifndef GIF_RECORD_FRAMERATE #define GIF_RECORD_FRAMERATE 10 #endif - gifFrameCounter += GetFrameTime()*1000; + gifFrameCounter += (unsigned int)(GetFrameTime()*1000); // NOTE: We record one gif frame depending on the desired gif framerate if (gifFrameCounter > 1000/GIF_RECORD_FRAMERATE) diff --git a/src/rlgl.h b/src/rlgl.h index 530e44efc..bdf665a44 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3945,7 +3945,9 @@ void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool norma // Additional types (depends on OpenGL version or extensions): // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV - glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offset); + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); #endif } diff --git a/src/rtext.c b/src/rtext.c index 62d786eac..35e69420f 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -2297,7 +2297,7 @@ static Font LoadBMFont(const char *fileName) } else { - font.glyphs[i].image = GenImageColor(font.recs[i].width, font.recs[i].height, BLACK); + font.glyphs[i].image = GenImageColor((int)font.recs[i].width, (int)font.recs[i].height, BLACK); TRACELOG(LOG_WARNING, "FONT: [%s] Some characters data not correctly provided", fileName); } } diff --git a/src/rtextures.c b/src/rtextures.c index df9ccbdf4..783e9b7f9 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -3646,10 +3646,10 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col { // Calculate the 2D bounding box of the triangle // Determine the minimum and maximum x and y coordinates of the triangle vertices - int xMin = (v1.x < v2.x)? ((v1.x < v3.x)? v1.x : v3.x) : ((v2.x < v3.x)? v2.x : v3.x); - int yMin = (v1.y < v2.y)? ((v1.y < v3.y)? v1.y : v3.y) : ((v2.y < v3.y)? v2.y : v3.y); - int xMax = (v1.x > v2.x)? ((v1.x > v3.x)? v1.x : v3.x) : ((v2.x > v3.x)? v2.x : v3.x); - int yMax = (v1.y > v2.y)? ((v1.y > v3.y)? v1.y : v3.y) : ((v2.y > v3.y)? v2.y : v3.y); + int xMin = (int)((v1.x < v2.x)? ((v1.x < v3.x) ? v1.x : v3.x) : ((v2.x < v3.x) ? v2.x : v3.x)); + int yMin = (int)((v1.y < v2.y)? ((v1.y < v3.y) ? v1.y : v3.y) : ((v2.y < v3.y) ? v2.y : v3.y)); + int xMax = (int)((v1.x > v2.x)? ((v1.x > v3.x) ? v1.x : v3.x) : ((v2.x > v3.x) ? v2.x : v3.x)); + int yMax = (int)((v1.y > v2.y)? ((v1.y > v3.y) ? v1.y : v3.y) : ((v2.y > v3.y) ? v2.y : v3.y)); // Clamp the bounding box to the image dimensions if (xMin < 0) xMin = 0; @@ -3664,9 +3664,9 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col // Barycentric interpolation setup // Calculate the step increments for the barycentric coordinates - int w1XStep = v3.y - v2.y, w1YStep = v2.x - v3.x; - int w2XStep = v1.y - v3.y, w2YStep = v3.x - v1.x; - int w3XStep = v2.y - v1.y, w3YStep = v1.x - v2.x; + int w1XStep = (int)(v3.y - v2.y), w1YStep = (int)(v2.x - v3.x); + int w2XStep = (int)(v1.y - v3.y), w2YStep = (int)(v3.x - v1.x); + int w3XStep = (int)(v2.y - v1.y), w3YStep = (int)(v1.x - v2.x); // If the triangle is a back face, invert the steps if (isBackFace) @@ -3677,9 +3677,9 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col } // Calculate the initial barycentric coordinates for the top-left point of the bounding box - int w1Row = (xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y); - int w2Row = (xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y); - int w3Row = (xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y); + int w1Row = (int)((xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y)); + int w2Row = (int)((xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y)); + int w3Row = (int)((xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y)); // Rasterization loop // Iterate through each pixel in the bounding box @@ -3713,10 +3713,10 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c { // Calculate the 2D bounding box of the triangle // Determine the minimum and maximum x and y coordinates of the triangle vertices - int xMin = (v1.x < v2.x)? ((v1.x < v3.x)? v1.x : v3.x) : ((v2.x < v3.x)? v2.x : v3.x); - int yMin = (v1.y < v2.y)? ((v1.y < v3.y)? v1.y : v3.y) : ((v2.y < v3.y)? v2.y : v3.y); - int xMax = (v1.x > v2.x)? ((v1.x > v3.x)? v1.x : v3.x) : ((v2.x > v3.x)? v2.x : v3.x); - int yMax = (v1.y > v2.y)? ((v1.y > v3.y)? v1.y : v3.y) : ((v2.y > v3.y)? v2.y : v3.y); + int xMin = (int)((v1.x < v2.x)? ((v1.x < v3.x)? v1.x : v3.x) : ((v2.x < v3.x)? v2.x : v3.x)); + int yMin = (int)((v1.y < v2.y)? ((v1.y < v3.y)? v1.y : v3.y) : ((v2.y < v3.y)? v2.y : v3.y)); + int xMax = (int)((v1.x > v2.x)? ((v1.x > v3.x)? v1.x : v3.x) : ((v2.x > v3.x)? v2.x : v3.x)); + int yMax = (int)((v1.y > v2.y)? ((v1.y > v3.y)? v1.y : v3.y) : ((v2.y > v3.y)? v2.y : v3.y)); // Clamp the bounding box to the image dimensions if (xMin < 0) xMin = 0; @@ -3731,9 +3731,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c // Barycentric interpolation setup // Calculate the step increments for the barycentric coordinates - int w1XStep = v3.y - v2.y, w1YStep = v2.x - v3.x; - int w2XStep = v1.y - v3.y, w2YStep = v3.x - v1.x; - int w3XStep = v2.y - v1.y, w3YStep = v1.x - v2.x; + int w1XStep = (int)(v3.y - v2.y), w1YStep = (int)(v2.x - v3.x); + int w2XStep = (int)(v1.y - v3.y), w2YStep = (int)(v3.x - v1.x); + int w3XStep = (int)(v2.y - v1.y), w3YStep = (int)(v1.x - v2.x); // If the triangle is a back face, invert the steps if (isBackFace) @@ -3744,9 +3744,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c } // Calculate the initial barycentric coordinates for the top-left point of the bounding box - int w1Row = (xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y); - int w2Row = (xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y); - int w3Row = (xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y); + int w1Row = (int)((xMin - v2.x)*w1XStep + w1YStep*(yMin - v2.y)); + int w2Row = (int)((xMin - v3.x)*w2XStep + w2YStep*(yMin - v3.y)); + int w3Row = (int)((xMin - v1.x)*w3XStep + w3YStep*(yMin - v1.y)); // Calculate the inverse of the sum of the barycentric coordinates for normalization // NOTE 1: Here, we act as if we multiply by 255 the reciprocal, which avoids additional @@ -3799,9 +3799,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c // Draw triangle outline within an image void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color) { - ImageDrawLine(dst, v1.x, v1.y, v2.x, v2.y, color); - ImageDrawLine(dst, v2.x, v2.y, v3.x, v3.y, color); - ImageDrawLine(dst, v3.x, v3.y, v1.x, v1.y, color); + ImageDrawLine(dst, (int)v1.x, (int)v1.y, (int)v2.x, (int)v2.y, color); + ImageDrawLine(dst, (int)v2.x, (int)v2.y, (int)v3.x, (int)v3.y, color); + ImageDrawLine(dst, (int)v3.x, (int)v3.y, (int)v1.x, (int)v1.y, color); } // Draw a triangle fan defined by points within an image (first vertex is the center) From 385e60dd41d49d56ac1bf44b68549070d108e941 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 24 Jun 2024 18:41:33 +0200 Subject: [PATCH 422/790] Minor tweaks --- src/raylib.h | 2 +- src/rlgl.h | 2 +- src/rshapes.c | 2 +- src/rtextures.c | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 8cd1d1ec0..c3c546c36 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1342,7 +1342,7 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation -RLAPI void ImageKernelConvolution(Image *image, float *kernel, int kernelSize); // Apply Custom Square image convolution kernel +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to image RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color diff --git a/src/rlgl.h b/src/rlgl.h index bdf665a44..98d43ea57 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1406,7 +1406,7 @@ void rlBegin(int mode) } } -void rlEnd() { glEnd(); } +void rlEnd(void) { glEnd(); } void rlVertex2i(int x, int y) { glVertex2i(x, y); } void rlVertex2f(float x, float y) { glVertex2f(x, y); } void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } diff --git a/src/rshapes.c b/src/rshapes.c index 95c54770e..49970d7fb 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -126,7 +126,7 @@ Rectangle GetShapesTextureRectangle(void) // Draw a pixel void DrawPixel(int posX, int posY, Color color) { - DrawPixelV((Vector2){ (float)posX, (float)posY }, color); + DrawPixelV((Vector2){ (float)posX, (float)posY }, color); } // Draw a pixel (Vector version) diff --git a/src/rtextures.c b/src/rtextures.c index 783e9b7f9..e914db419 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -2156,8 +2156,9 @@ void ImageBlurGaussian(Image *image, int blurSize) ImageFormat(image, format); } -// The kernel matrix is assumed to be square. Only supply the width of the kernel -void ImageKernelConvolution(Image *image, float* kernel, int kernelSize) +// Apply custom square convolution kernel to image +// NOTE: The convolution kernel matrix is expected to be square +void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize) { if ((image->data == NULL) || (image->width == 0) || (image->height == 0) || kernel == NULL) return; From ec95ee85a386db29f059b9738cd5ec9329f1661e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Jun 2024 16:42:01 +0000 Subject: [PATCH 423/790] Update raylib_api.* by CI --- parser/output/raylib_api.json | 4 ++-- parser/output/raylib_api.lua | 4 ++-- parser/output/raylib_api.txt | 4 ++-- parser/output/raylib_api.xml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index a75b94ed0..2baa6c3f3 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -7351,7 +7351,7 @@ }, { "name": "ImageKernelConvolution", - "description": "Apply Custom Square image convolution kernel", + "description": "Apply custom square convolution kernel to image", "returnType": "void", "params": [ { @@ -7359,7 +7359,7 @@ "name": "image" }, { - "type": "float *", + "type": "const float *", "name": "kernel" }, { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 7dcb1fa41..a6d91cd6d 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5617,11 +5617,11 @@ return { }, { name = "ImageKernelConvolution", - description = "Apply Custom Square image convolution kernel", + description = "Apply custom square convolution kernel to image", returnType = "void", params = { {type = "Image *", name = "image"}, - {type = "float *", name = "kernel"}, + {type = "const float *", name = "kernel"}, {type = "int", name = "kernelSize"} } }, diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index fd082d074..f283ad795 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -2840,9 +2840,9 @@ Function 303: ImageBlurGaussian() (2 input parameters) Function 304: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void - Description: Apply Custom Square image convolution kernel + Description: Apply custom square convolution kernel to image Param[1]: image (type: Image *) - Param[2]: kernel (type: float *) + Param[2]: kernel (type: const float *) Param[3]: kernelSize (type: int) Function 305: ImageResize() (3 input parameters) Name: ImageResize diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 22f9b0ec7..fa953b626 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -1842,9 +1842,9 @@ - + - + From 3e441ae98b262c1f5a746d49491918c862137fef Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 25 Jun 2024 16:37:20 +0200 Subject: [PATCH 424/790] REVIEWED: `DrawLine()` #4075 --- src/rshapes.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index 49970d7fb..a08cb49e1 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -179,8 +179,8 @@ void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color colo rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); // WARNING: Adding 0.5f offset to "center" point on selected pixel - rlVertex2f((float)startPosX + 0.5f, (float)startPosY + 0.5f); - rlVertex2f((float)endPosX + 0.5f, (float)endPosY + 0.5f); + rlVertex2f((float)startPosX, (float)startPosY); + rlVertex2f((float)endPosX, (float)endPosY); rlEnd(); } @@ -190,8 +190,8 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); // WARNING: Adding 0.5f offset to "center" point on selected pixel - rlVertex2f(startPos.x + 0.5f, startPos.y + 0.5f); - rlVertex2f(endPos.x + 0.5f, endPos.y + 0.5f); + rlVertex2f(startPos.x, startPos.y); + rlVertex2f(endPos.x, endPos.y); rlEnd(); } From dfabbd8ba8342169247685c294ae09f882f48e2c Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Tue, 25 Jun 2024 20:38:55 +0100 Subject: [PATCH 425/790] [rtext] Don't return default font if LoadFontEx fails (#4077) It is currently impossible to check a font loaded successfully with IsFontReady because LoadFontEx will always return a valid font. DrawTextEx has this check: if (font.texture.id == 0) font = GetFontDefault(); // Security check in case of not valid font So anyone relying on the default font as a fallback for fonts failing to load should still be covered. --- src/rtext.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/rtext.c b/src/rtext.c index 35e69420f..55061a1bd 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -394,7 +394,6 @@ Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepoi UnloadFileData(fileData); } - else font = GetFontDefault(); return font; } From 4239e66c55cc36ac5fe4c764d786638b4cece312 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 25 Jun 2024 21:39:43 +0200 Subject: [PATCH 426/790] Update rshapes.c --- src/rshapes.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/rshapes.c b/src/rshapes.c index a08cb49e1..b119f50ec 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -178,7 +178,6 @@ void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color colo { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - // WARNING: Adding 0.5f offset to "center" point on selected pixel rlVertex2f((float)startPosX, (float)startPosY); rlVertex2f((float)endPosX, (float)endPosY); rlEnd(); @@ -189,7 +188,6 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) { rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - // WARNING: Adding 0.5f offset to "center" point on selected pixel rlVertex2f(startPos.x, startPos.y); rlVertex2f(endPos.x, endPos.y); rlEnd(); From 0979eafa84c7c5b330a99067411afbc9d5cd13b5 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 25 Jun 2024 21:40:41 +0200 Subject: [PATCH 427/790] WARNING: REMOVED: Default font fallback --- src/rtext.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/rtext.c b/src/rtext.c index 55061a1bd..8daf3a7bc 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -362,11 +362,7 @@ Font LoadFont(const char *fileName) UnloadImage(image); } - if (font.texture.id == 0) - { - TRACELOG(LOG_WARNING, "FONT: [%s] Failed to load font texture -> Using default font", fileName); - font = GetFontDefault(); - } + if (font.texture.id == 0) TRACELOG(LOG_WARNING, "FONT: [%s] Failed to load font texture -> Using default font", fileName); else { SetTextureFilter(font.texture, TEXTURE_FILTER_POINT); // By default, we set point filter (the best performance) From 37205bba84263c5168f7aaeef4da9c43c56a87e1 Mon Sep 17 00:00:00 2001 From: jspast <140563347+jspast@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:15:29 -0300 Subject: [PATCH 428/790] [web] Fix undesired scrollbars on shell files (#4104) --- src/minshell.html | 8 ++++++-- src/shell.html | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/minshell.html b/src/minshell.html index 38f3672b9..4068ca36c 100644 --- a/src/minshell.html +++ b/src/minshell.html @@ -34,8 +34,12 @@

  2. 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 z zL!|DpTUQsCKDCoOjNGsC>&|?AAxp>_{((@3K+?vdB6NHsw=v)nX1qx#xYHj#I$>6+ zSCOuY^lNv8nY*h9gbP)Crfc);k&bC9rNbJR!D8N26bqm##VNY3?v8q;s-T>VdzV^E zJD$t=^f1J$R3t!=;!vomLtMfXya>%mp3v_FhqH^Li;SxD_@Kc{cVY{`RMfn6_d{9K zeX*jE+wH@L0m_gZ^K*oYNKt8SKG5A&U{QI?GZszUY&1C>3LM+!b@MTtp<~h}IhdX9 zI&PXY)r|sJfp#~@*t`~>n%-8etJm&pmAcvxX|;HU3>J$S;R&s_u@79l4DagCHotz` zzV^7+vi_OM$N%mB!mkcHH<(Muz`@kC_JE}C-8qgn5UFFRVnBmIFn~V5qs~tQ0zfHh zu51eLqb3BI4}+s~Hg4nr&6zU|A4Nt^=h}UQ-~?3>5ff2}yPqX1h0`rA0U70ka(98K z2=xhw$WR!cg8|9nP#gCcvC3=Q#SOyI$>iplSl0xAmrf2FaM*6hhryhz9adx|Shu)w z#Q`GS9YwCp;c~B1HZLqe%E!cv@a6)vjgr6Fpt(jM+LW=>aFr%*WH~7!!4y#*A6Tg! zin@Tz+Pn)yWd)GHxWz=xyZbY#fB5bX{?pU{;rFh-V*dINeE9C4{^%cm_dopi{{3s| zo4RsJuPUO_;HAj2P*$uiT!3CA1GK`cSQ!0>U0by7xwyN^AwBVn2n zsgBdg5~++TrKcE;(9gqQ$|%j&U$qcC^!OC_1=as(3^* zLpLi@dZReli#U=+xg)<FEg6(jIzc;`6OTYG8?|kJu-@ZM)^ZReS{X4&W ze1UED0hZVrjx-!X-CfRo#uT#%CHl}2N(PG;?)^A1)4sGTEVgX!2maNT)wm71L6zW9vSx!;6%r%R<`M9S+;f0X0{V zO@=|XZZOi>ZeGPj9*W3n?O?iUt=g~EH^=i$78{d}?(JAnfQNx1ep9y9aX++)s)+BQ zTs|qPfD7mFNX*Xt@eivAe)cgQ-P^DK@AQ+e!EPXo>2z_M0F6r~c&8>3{aK|2@31G(9>Z1D)?7 zGLo#vq1UitpS*oL!@lqj-(tOJSEJ3OVsjTorQG5J)$#g=@&|v4t6%@d3&q?&sdD4A)2%rI7f9iHwZjS9hi zhku|n)zOM?j!O4?Zt0U(8A+WiQD-G93jw>@aADAAeSM)WsfMO9_Dai9pQm2t+PY#5 z6d)W0gThJ6s8sKWy4Rmwg4Tej7f~`dH|tlHwnwqngeNv-l*DBQaiXtqKgHT=g67@f z38mFL?@+W1v(yT-M1o2nw;k(MUk!y*dAuY3zT%?n=DZ-m7cElZD<9-AyH<3reWxc z{l>Q^@^_DY6&!k0m}W>Mem+EslzCNvrVqpyoY82)%3qUy!azw%Ie$QwW*AP%pfS^xtjbj7b=&VK61g zsmB1RMbt8h5#ut2@DUv<@JxjfX2%wuI-N1yKn~D>a*J_bwhf3y)6wSu7#$~=U=|dX zDQfR<3zpCmhPk^JS*iZj#&tX3&dvdvfykj@M=?X2!nJ+mROuCa42)!* zPR)`lNJuz9g&krTv9k7b?Sc$OLbTGk??(2PYW8r1HfMW46WefrD&2lM%d@2Etcj{?S4b;VFv z;&H)uLt}b5P*b#pp@9;M1!amAguM5q@+2Ai(lXc0;^DDsMpR+rkAu<-mX`0?-81xl zn8Q&iB8xe4bHtTHl{2$|%PMTta?cqwv*Z|)iF#N$8{ zp9{YI{L9}z&xd#KZGLz@UcdV86Wody0~;JZtt!IFMg_*iU^Im_zRQOr#kgTq|Hz`c zS;FsfEDWfIdGo4>ln_ka;Gv?J@8j-$IE05#A;lrheNyWd5dJ_taRyfv_pYLy+5+1H z_i79ZGkTQSM(CGS2$}{|MLb12rHG%+i{u*h&aA zlJQ{+$MGft{PsYIJ@_a0&+NE)!oF!n-O!(jw6#kp8%TL9E`wzLp+g#UfbtAv-6e?v zq22wpk6w9b~fRw^j&r%P^ds!QngY_okE6=y0^S9sl+P{DvU`I?YlGp%U!QfbN z#iHz%38(Wle(S%4z{{LW3PhKi7wmEjEVaXlBfO+Ze+oq1BK_MhEsC0 zBg&n)CRYxn?o)Ta3f+HXdTMScRALwZ9EE{D_qGRTa;N5xGJk|iHTYk$#pQsC35vK$>3L3qXdW`TvC|qSL(BUD(6_wf5U1*z}K_dgL=8K9K z(ZmdK^Hor)I7P-LP)^2C#FUBLM*yJbhel0YmO@1ZHmCWC zIcntY@U%wz2q~(rHchf!(Q?vVsq`1YXxPl3J^~)>Zn3%5`dU3a^@n@2Zoax+s~fcY z8E8kH9>KbA-50~5h{F3-kT0#WEvIX5?`!j? zC$wpxmr1K(U9B6oCakSVd0prs>HMrBles(2?zM?pWV4wEsMI!`&KyC-APcdh3=Tn^ zWc2`p>cgA)5G+-c5~mG6Q;cgA5*q11rFtefx$z6g@=@1gS`v!yp)AV$So(K+)c0RabnsVZAn zw#SmpbwGz7ns438RE{(WJQ#dZj;^CokcM*_xJkq;R)bJg;PALhNbe*7#ba6^U7xDNxhUlSP55UbN8Z| z8V>cnQl3if)P=Yng_GY)(MGS(BuL57h#SIiepe9IK7CXMMtoq#-EgK7;G$8H3X%Ii9W=p21DyraU&&s0Ho zMYtfu05r2GM{Raw!#YNqkc};BQrQ$y0p&Zs_K_6rXpipGUm`R!K}kpuKdLr}18#T@#(0U6084 zO`H)7+wPawWpKZ+G?i;K~qtD;A7h*9(@ z)B%8yHUKmQdssx}Os3nqJ5>l#A*v&$smNyA2dhjfkJ@Cm645v1K8Zem+N{Mkl{W_$T1aVQVgC-NmZDk7wHi*n)4H0WX~Bjl`K5zQMXVdxX2)23x|t3 z!jWJuMTiXOnwd*Qh@9iD3b+jRUmZpZy~4Z;c?U<^;3c(=0=U+r+`ZMlzu;Xa{s>A` ziWq}C<`CL<*rnp$g=&%o6q2}mgiZ7^YcC=Ag$liUpaWfgHn4 zr8E&o?Y_B}sZ7P!?lNgJh=&+FR6OfxZ0unT=wWvrG?6I7rw|M1Mz!!MX-A(#hFfy~ zq3BIvs4;?ARSHk_5bHB5FKxyFAC{6mc&Wo=;*=f`17dv!?75gYmpTT! zrE)+?WK(`bq2e&8#i|xJS5YtN3=)*D~QwyNuiS z-~8eIqld>|`0M{mV7&MD{`2c^eM4_b`Q8`0h!>Ld3>4ACf z_e*>K=h`Gl?O8G6IiE8c|6bhaQmM%DKK#@_QMj@j+lCnd|mO8dcM9??Uf;ljQ1;eXHBCPQ<-5?^hIy|Unb#E#r z=!DN~vsB8JkKKMW={Cs~FI*-)m^(WY9IxUc#ak!?lKBP*-M7PqJDZ->VS`A7z{-d;QdSEC8W!41x8Xf(v4v2zINRrBT@wYW!q= zAa95!4a0CRb?4>C7pcHALiE_-;%9N6wN`R0^IEk%ssmZO;0D7$2`K7Z!^q<)URW!2 zvr-jDKc7rguBdFCAYRDEilPDLIzW4^0Q3nI8ubSJP>OC{9gf!(S3ZBNFZ=+gree>D z+eAnTbT|%T7HLNk71mtSWa#c=*zk;Dpw_BIe0ZglmM&3u4;56y1xnSliI@*@2{knY zOjj7aRRS@NcuG6)!d4hi3sP(sN&MEWK=1uTV+#Lz8CyD zrCeJDMzn7gHyFG+b`7RVQ3(51m7^2M5t%HX3=EDaZJxeX0YZI*9L%FWqe@lb5`xf3 z6bXbX1x_yvRHKHw6%8r79~d%DH4xC7CC>SV}P%Zl*3p0zkIFMM~X%P~HGOdg^_0 zOd|JcI^Y$zD?Y~k|GoU}@%LZ+pT70p_0uGrD!efV1kJo)t>-SxVC|6O#ELi1&s zW=4v1*J$*1Kt@!0x-R&Rzg-N+j0MFVHs|8b0{q{9e_H;=w;%o5|M)9^`kz_H*4G_c<=CCPkw{QFXG9;Ox7+5dZCx3EGCM z!!>TMZQ;=omf*e9GLl#sQX-iqYx{Gd*wJlKc2{7mlZ^k#XJth$eMQ|f(=2b+ft3D3 zN|)W)R5ZXYO(4f;0Mg2(S#^l3h3v5NlVj5R{Ix;H~%6Ga^mvPAhaTQ7Fk>!i(={!hy7?=SPA@*%3h^5wG5y}0QdaS+7ZDCmY@aVkUshsXSv$s)*pa&x7MYt+R0P|Rb*wFS)o+w zaQAJ%Ix{_pL!U4!8HZ5BH#dWHy08r<-c-g$xoWZH-u0+qzB+qJRJaaQV*FBDB4u^h z=2{|J%t%tR#F!vB3Up)u-;!c_mYUWoNUhJ)7Uk}W$bnfzIu+y>ru-re&!6D1>M2;)Nw{@>_c~rNOhPAI|AM7*!uSLFp3(x3q=oWskg(+ z0Bl4+LO?N)0l04{BZxy-g$?S?Kw^_aogOvMNRP1uTuv*&oRmLvz}f#9%1NmKk^#dp ztj4v&v(>@&0BO<_!I=xW0ZrqLwwO3UqZE~rlkrp?Y)>IT+S$CJSM^HQ;!Muts0~1r ze|G)~*WKz+i$SkR7GNPmv@8N`NtGwz8b=1bc&0wDrhrhCR4R~THC53jUKq>HM@iO^ zSW6P^5ex}g3O%_2dsU;5O(2OTb5Zcfz~dFrY4FNvb-(Lg2Gkp!wzk2{@!DK(>M*wU zWCDyU1zkYBQYHbml`H3<07C^jWOzAp={1qfbaQ_?VG{4;=#Bc}{TPhNZ04?NDl#kF zM-d0Mqp0J^bde4G@MWMP^5YA}jU0%YZ)+w!ATsf$rnZ@`>>5#<#flW#6rd;_wmQ1a zS8}HAJFT{L-&96{9aSCG%#k?^-J#LBRPNBPWSOKcW+r`7Rrn+E;p<}Uy6C%QEKaWE zs)B*heLT@>@OvK z&=l)69GIeMs)%9>na2`Lc@Godk-ccH?s-7~_5$ii%ttj?Cpn-WU~I14TdTcE7{ie| zc?fsIB2d~q^nG()1B0TvnfC$EkH^)mUdFc3i7ef98-@q_>utO!_+te_wtOq_lm6gq z-ydIj4$#z>OZjj_4e>Etjf=*%sb?~r0i(O?@Iau^6|xR&Eo^W z20ae^t$*0c3NQ261WxVCk6-wA@$H|o_rF}hD45(r~3mX+^P9_=`wZ`B(Rj~ZajovBw4(SSe?&F25HSRPH=SG_!svg(^Mu$9fW2XX2No2j;ds1Mwzq9 zl#%5{Jds9%G@8H^2WQI-ezrwiZYnGKK(QH}_+oeX-?eOrgYdu2xMTmT%%wjU;S z#dUWv)K$gsKvGv{2k~3Xv1ueZLuC@Q_wU8bG$wMa_HA44mKVSAh1cGG^2vOBdztKa zKl=Fe!|THo7XVv{Rq1Jf55ShBt(S8#@bymw%_!VoBt&pa^$#0sH&2uJo*Lx9T&p;| zch8yL9X&+vSUdBMZ6BH^PhtVKPcIZ+mM9!JVXspbDW^Pg@Vp*b$A({Z*zFg4#RE?w zI}576BK_zf^k@M+nvuYrPR5^g18C(`H=LJc0Q1};3o`-ij;hT$yJ+R^0)Zl#_l!)Q z7OtRNk5@c$rmDyH;vuWnAOXYf&F5k7oNvEf|5p9Rb$h@Ef^l>G7yj_-{15+B9~S|P z?=@8*(|iLC7!b_-%TbGwebzUb=hvScql%!R-VF%GmG&Y%knd#Yo3{I%U0f4Tc<7!7 zCGONM7--Xqr0!?#?xArZ)2PhFSo*UKL>BiOB`Ib$7{`6M_4@tMm?l9!ALM;!=Bsz$SNbCqZnBs9>47a($n=6cA%# z^WYAsy_bj4=tIe~)kx?H&kJ~sT)DmR-Df}gwb%WZA3+aa|5khUyYC&ZMSDHTFbbWNie+#92--ND-oc5L^AVQ z1<+SjV4mHEoi>;2a&+L{3WGNNc?Yn*)*zy0o}R8Toa!jpOM+CeyM;f5XuAU9b_2f5 zBx7fVK<0$3rb3>HC(u3;84PQXcaJ%ftXj;-V+YCl8D>~-N2&7Km)naEHi&C2t*I8w zlZyRaoc~k$#FpwL2w{PA$4W`5@ms*|r+Nvk z-sb6N)qd|({~y0{{O)WInN{hlJiPsI{Pq5y{O&JL-@cjde(~_#AHDOB{ulDjVS4&o z=eOrWzb?}^w?lq&R^8j2RMDa`i~xl;GPQ(B72aWJR`9*AoOC?#?Z1Wp4(xvO*8rFQ zL0P~5^Z)bLe`@-VKmW>$5BqnI-_h$$=xn1W(+}+8d#Q>Eeo_gMQ6mniX-dh3KO`25 z$6$#-rl^<77$m%M>z^Z{T`Zx83!%vcRZ$@84N$mVhmZDmma+T%2n922!x%s)%WlDWgv)bKcsQ?^NZ~4TMw9;Rpx@^_0k_+V4 zcW=r?EwF2NhcL6{Gq)H47rMVb*EaG6wa|A`;8TpCi@;M~k^HISdcHZ|m>-%a5QYy^ zKntxuXAaq+3Q_~zD9;=!iSC0Bxe=kG}f>Z1+jzPQE3L`$&_@KHM&%$>I2%R8no97A`zD6Ak@gb9XCA z@f?oSDpXjLMxg3TM>mO6@Bvh{nIKzJ@w3Z1pz5^}`Huw0ob<|tLIzi00EWAJISmuo zRTHFuu?-RNtEM8}O)?vm!vh)|$E33XCI6**C8h0D3D}sPR#+LZ^Ev2O)Rf#osecUx$i< zOx_(pba7a=##sj7G%cv*cuGBukOGDN#w!@9xL_C#=lJ5q|0Q;3%=Wzlg$0elf{qK$73gb7%w{9j~7lFbY)5$*g z>ErKw>Cvy($1`LDB;`6KCu`Ezi{@y~)li zmAOsD1t10XFHY37Hn{jILeX&_pGOW2C3c9INNI(le1%JL`M~AaSu7rt++0mC;G@;dId6d__^1QBXv6IL|}YMN!lWRUBIS^Ql$|TzOj;IY7Qt9Ps<@OgYOSJh&_P z0)_Nrg+teoftq4-LoOa+&s&c*=zuo5P0 z-+uJJe&X}3e|gjS?W>>rFPC-I!wu#qWrF{s=Sl|O$AHCJAV^ro;xdOxuNp);`AeZ2 zR+f$?;|o{#_Pd2^>F>&a?ia7V`^MEDK_(o%UVZ$*-+5;Le17Mzob&*!m$CB|!gvY- zb^*4Z;xJzl7k1LW(M=;ojUu(7x-`N05oC?(0d0XRh5G?i^bOc#%Z?f-J7#%3@!E$AedwhvqyJ1L33d^AK^rSbUNQ{f>!o6JxAX540ogB zvaLYDD42Q#s4WWbgt=7o3aQ7V0iD+0g2M=01s8Vph`<0Zs9OY|btSLbFo0Ge8sE53 zHEf*FYS=3330SaQVcQrIlLc)~u0Rc$f!GmOt~2TT)u#W+!@YG@pbQ;oRHb&W1< zH^9dJ@4y17=m)G7hdY?yM1{Vzq$$q8JHr^5X4cmnSSM&fUm+vA4l%eWVeGs${PO9& zy4Bx*q`&w2AO45ezueAKPq0fi2(_VaaOFTN-?E|CA|z~h z2rfkOXe9`MNbHzEdCoacCRe%EJUsKcgxrQBk~V@ z`^rYF*yrW>^`q@C+{YpN0jt3{a}*ewUledUyirI-B&z&Q9mOv|6^rfsU?T-?9p>m^Yrk-Lmw~Rk z`^XWSIjXR!1Ddonw|&IjcZfzE@QiTnjpXGF&v~-VP@t_Cdpb&R7WY&+cEnFiDeDVz z@meC~u{}EswC+5tHF*ucH{ZSu9OO{mxUOVISSQpQxTBnL{WDd5?rQ09&Npf*F`vz_ zakUo5Rw2H>q&X;Fpj0fJhjpMVfJF<{qPdkFvNT%2=x4Z@K{PPvfJ{`~&k#YI6SYKe zT(Oc_R8N#!y5m8D?1SrwsMFO@HrNbRhRQg90#s0GKdNCIu~z6nMdW(cM(&2a^mqYG z18}*lSXTH9QHWqF@H2X2YnLq1qX2=MXJcOlhl6ie8`h^N75a>eiXM63VCs!Yv|K$fSudg%O$MVB3JywyMyH!3q`*o4l>b1gQ4+Rr2 zXK3IC-$*`g2aZy2s#GDk1ZB+w%BEN#_p6lU+Pq?XyZ(D$9Q~Kx`e&ucQjUwYpsBq^=wK&j1UI`A30#-eQ&mFU2-#A@k@|dEQeNxFFFSa1R z;o%qT(rKlcZ58l}YTgxlc{@bJ#B6>pV!~z*ES**@bpajh7d4 z0`CZ~@qE7Kf`?&b;>b92EO&qlc;*`HDirrevT8*tRUT6ciki1$4{E}QtI~wI(>Fjl z7Y*S#+F%1xF%e3itCi((74v;03rfNHA)?ov5x}xwvdFgc0d#@`R?6ItalklJzfU?S zQzl>_m|U;mK%%Z-5GtQMp`Hm(NfNAukXBR=hQgWdyel--Rir9p0VMK0BJpGnU^P(l zt_5=MFudq;HRI9ISI2r5J;7;ss|s6K?$lrdYr}kUmdNL5(##+O*MxXqC!v}FS+a)} z?x6s{FdeD2ZnWd>BLJ1*VyZSc831P&6VqA+Vf*nyPXK z8qdxWpKp#rF1r|%n%+wNWa0%9EHf%y^n}S*iMa~H+BoO=D~=)|FJeLEkv>AU?nZYZ zd4fvJA`@~`j$TR8a3B|p!NO+}#B`!yI@U1fS+ekId|-#pK%qo(M!Fsx3(&+$!WnHK ziDJv;(&l74QFKm{JFDKTs;3-j>UPud09f985$Wnd%FQDRzlXq)F^MBzlA?1l7{5Xi z32;NEe`$!1;6X(;Q+BptK|SKE3N%VF z71;+wC#$E7)K->Q0qsSfnxdj9F%g3LKC6K7M|)@X$Zi8 zn->+b;joyX!4&QpaA157ckDEwq7`a`H>1EePodBD(g=1cH6%gmoznP>9A9^hR*!51;+(CFP)bmvik<-m^Z5N5}Xk|gno2*LLf*6+LaU@>WGOw zZ8#g;0+%Do9a=!cqVhGV_G6?|X%9b%VqKlRfgP?OtW<%(B_S-zikdXj=@~ONPO5X# znu%-Y@-gOsuz$+QEuP^i*togt7GdcEL;$CHfao1m8r#5G753wPNAjx-1EfRL~3Se2a@SU*>hQNIG~@{!a||SaHjToq)EoFqPC$bmJU4y zlNb~FRUntCK{O++DYRV~WMJh!gc6%Y2`6!EY3rIQvnwsE`va&Qs_?*r=o8F1Gf|?ZkSw*f1$LHpmEh>)}dV zNv20|!Aj4GZ14g*V57)8E0&GDS}07D=)Q zP=q9?h^4uNxA0UHM00TTE&QJq)XzHyqF|Rw_)9q$yN|T&8mj_33Ui_WgQtW$nU{7^ zSJ;vE4ogITVB$_Um_al-S&pNZ07=`Eux!tk1CTKtF_%=~+<}I1H&4fND(PyU=$(i% ze0-Phv=m{HjYxMCOvZvI8Z0u~5=tftD$w%@sTGCBsoXCxH1TMs8=_%Ki1dZ>TrUy^ zJfoGJrb-1CzI396c%k%sq(AD+wJ8%O&~a+)7S5z$RKmsY7nF&S#|?*tiM%sF7Xd_c zf=pPMk8$L1qrp2?MbZ2^rz1Dj$j-6X4W)!nRk`X1pe4Qt2Dj|h9?248f~CukGms;m zYrIi9UpY*k^iTwAC#zyWLgT|$g;;2-rE|qqbVIXv5ek~Ri<|~$3$GMMGb~ZEBRd~7 zPI;84JkkzzIsp@^P~Xs?jmR)@lmvU3fRh{j^tUMCg zN7SXGQpWM>9lOm>f?2zU8O1o^WkDAZTNxW%M7+V>Y4Sjg#75d{D^VPKE?7trgGeXy zS0}`+vnjf3=P8I_gVjlGKup5;1sOs_DHStpx0;Gnh#UbV z%^DtMU8^|+2fo+D;ZQDf_++9Lb~GwRHWWWvl-9&Ci7k+^Y25&NVTNFXnBZV;kTHq6 z6@^uHoqDD4AdNM_8*DOLw5W?xC1(Fhffw0~OhMcQAm*_j$3W27N=;d^kvIYx!#DMjCxH;?zex;bq~qsZhH{>ax`u@T{g*fJMFJsid0 zmaIgA67F^6ntDm|V-eg`|7ZyQO>WgB3*ScbHlgroC>KVu17xax zU}!0N18ldVxg@U*il087G~@4^{MgB`ga2S;X(VJKMdy)n`HZqx7l4&4Zpv$tmR=-% zlA`W>bmZ-lJDTmR688x5ERR$oi+6GtqkPj2Sk@iHO13a!S%k-ig~_-tj;S%qg@`nT zra_;eLM9%6gHSeoG-ZKjdFW0_+{iDK94lE;8e8`S(n6&=C=7!6%9QoO2#cdH_V7?cc4 z;OO*S?muWAhiJa> zpB`~;0Vz!^Bh-WhXcVDrh676tLx6U+=Nh(Q8x(Zt5R-~F^V9}-c$Or6I6k7PzK#gP ztGZhOTz2s3BrfcwAa0W9FWshweR~;lEZ(v^2``EevNsGaanMSTixF=m(NHY5KScL- zpeN93>WPpG2_aQAL#8I7?28mV+anTHf}#!E)p68Ad#k2N#~=97~vU zc~w;#zO)SP=Qef&6H1Z}5%CxmpmK~X7mLR~-FFL|90V(jM9cxJ>2}CPvUMpMj(ex` zN@hpHa480)DauxoxC(eO$Qq(Kkc~&AXm66bT-ht`RbVMRC_xRjJrV|*yid}NpgUuV zMO_So0Z3(w9#hLwcNN=!Zh;@wr!1!}Shs}8l$bD)d^x~k6p(@K3S~oC=wt@4M#Q5k zEd7ncvP=8U>ziP!*c2t^R(8>Vc7OzM3@)q2)zXua4`?NjnnF6b01$$BX0jv^aHzON zZN5QLhFr5663(8GSVp+r=(UOEX1UVL*l#XeFX@-7V&;$?=|w!iZ>4BAXS`509*HCn zSZ%1Pyvak5g;Q^rgNqkAABP;e7cKoz6yw@qP$g^zTnHX2^pc?~PHfX`m`$rP3czEE z7oV$ZECZh=!%!KO20oWV_oZ;@yP7+7o(xq^9mzwWF4@~CsOnPDsTf%$_WI0Dr_`%1 z$QVB@fF_Kg!w}mb>G(;vV)#in`7tM6MO8lEmNXD4^=;4z<*D~oY(?K*{a$gF0=UM_ zGiZfL#2CX~4*Ji$(SNgBZGa9Gb#tla4NhJnE8vE%fs&r$b4biCm;6#-iF`@-5Q=zm zyAakB^pii|6Tjq@qw@KN*`k|vG^nge86;TJ{{^HRlhayAk}mUAcx6T`4BqP{{5b~L z2!;*cqmy_?aJUE-PbEY;qp=$b!um2+3OZDQz3leXwV)VnQHCp^72MA#8|nrza`Xve zFynLhOh4kPy1A^1e)M@rT_8*qSOk?JB_`ps?gOysSH+I4A(}9bj?J^itwJc57m~u2 zmz4+iCOgW_z-e_ku>$J`G^#H5C=1q~Sq@jLe)#D8Oymjb277=P97jYrj6y|a#i3(v z*xq>%tIyt>ykmX?ox*(^I5uY)3V6lMKt1E(?XAq4d~~(k6500vX&8>H1ZDhR#W8vseWZQ%L5&~}ctOYfpcpR7ptTD2PsScPa?NM$n z4y~bL6-w%*WZH>Bb@ckp5U`>3(k+nj^odq^VHVOIi+T_L3y~rM$IFNahmvSc zbqeeIjw_(>RKGJQG|5+P&Qnb>3RR=TJFnD~Ow&sfG%!6pxvmRfEz+wx4^AakiWodU za{{#CL=|^V3)x^d77OO&9>yw7s+^scAC;CDE8J&*91Q9_&R&8>iur*mcUL%9nYGAi z85u!a*?3Fc#wE@=cG@Ku0iqGx^8l5t%WyB~T!iA`Bch}jX2N(}L8B3IO-5% zwY*`f@CYT1zqLD~E~NotZdJ+w8_-vj73W!w1=nY6*QmsVJsGYyY@ks_LlRP;dWiDH zVF?23q`Gdg-#4~XV5Gyw5FJaCT=7(#JZc-aE!@tfV9k(d2&N5NWaXlA$*<|jH=1S- z6(^ALR1VyOi%5l!gKQF)4aZRd3*lZj_Z5AXarS0XoYTh9N*JS!LrLhE2qMDbEAz6Q zS9XOnSAnxLy>K20OMQbjV2TpEm66>-&F_s-b)8YnmMdMW$-udxCx))NFN$-M>rD=Q zKGks;J`@Ho9L;&d&1tBkm)6#DSSE83yLP#KmhOKa>^`L$rv2}QzTppPZ z(NzPXwz6(!H5|%#y6U@k_1RG#rt>5CT85YldNc8gF8%3n6H!^*+Z+y>;o($!WgUR+ z)0qGk86(q7hez^X#cr^3-k9|$!(HDjje&A$Xo0Kmz&mkVxo@x5AN(`+h1Xjb5llxo zg*R0n1p_3!g~OE430oEAmsi78_p^$TBj1@^t4BdBkHnVp`AYn5{447Ilc)_fg6MW! ze;>Q%!IcxFB>5sw)A#Zym^;LHye35wPYNWXu^{YSN+ap9m&v}};{8ID3J+);^Z z-kT6WDog*SBf@6L0y_g&m>x)&3e_;dOtH^uNS{bS=Wv4)0GIhp!+ga|TX+{L6`cLG zV{?*w$+$pIe;M1bIJ73A9I&i~yq;XEO#BRAuyASGhGJA4tMt{|Lgi%O(H)+@bNju& z@~yYtzB+8>i|0?u;n@fO$De=k{b_ofm`EA7T28Rh-}|NKcVAz=`sCqS%CFTI-}}FR z^#_0S+M~yqAKZ%AgH)EynjUcXrH3E=+Iz3PUMA~bKVQkm^B?@XZ=dgR-CQ08LC_f-MCP+$z`B%>vZY8OEt7@k2X9u9Z+_(1pkRlcT&CTVGDb41;1WWeHV0G%-2 z$ouJ`VuNE&E{|crVS{#@22dkEwWI>GSv;Q%Iajh}is68nn5n*GQP{~7;IS`~3E8sS z5cxMF1TIZ7#vbc@Z|xb0C#Zhm%dC2lW$XLj-GQHn;MrGrDZ5%y@sPd##%?DWaj78x zCGeE29qddVOwygMZT@^P1vcvg$N(~>OciE(7a^PK*t64iHOW&M^Gw%rSVrA2a)9%z zLyL?FYB>V9(74>wJdyq-j{M$rviDswR{$>$ahxsJn6I(E$n4cZeL!H9pSeIaYhNhe zl6*ngfYnjbr>zd6=A`6`nCe2_yK-7i4dsNweQbdCgB+276Zh_(vY8F5H-sS4hjFWTX3|Ya0&DXC~fwg>xMqjcJ{4{HuNH+ zKyz3f+_4<0=<pG{m4wteA*nOO zJNH7v#dH)tDYj^jy13+F1tbpEqI^8ROT?8@H96B*;n%KXk~cpXzy90H%?lm#!JasD z{pg)?K8OfTGtC3yYx9D#6gf3JY&iD56q|c9P}Uq!jCs{Z_cE;tZ__iKmZ^PG#OnJ$ z{o;52Qdz5%;Y%Gu%z>mWurUA2(d*MLkNZ~LH<30_TxWV*rs2KV(|dbz>d%j|*4C?^ z3MF#ETD%>kiyg+gNYQ#c(`%n@J?>nJ)Sr1g_y0{9#V>3O|I(X#qSDO{&lEw4&`>Fv zqh&~=I{AeH8FlX+MD5fn?gFFU zzZtK|x*G;D+bhZlJ1B)AtP@?^ z9>UgYk-&Oxm<(E}AojTUV5sEKE4)_0f=yr(Dn-(}B1Lg@)N@$x+L{$uDoyVeCJ^w$ z`v^WKiaJ8iE+o67du5qMThJ7}gduRfcWiPfcz7(v`6vg15#9OPF+CM6u(RJhlYjc} z`KLepjfZ!?{m%S%zEtkphi~7%_KVx!{EgrF+KyNzf3w33=M(Ax^!@tA z!{l02Pf*47n9=`+ng|8XRc8vhLg`E&2S)ck$t+Ndl*&CeI^(JKYCD`2U0}-NBS4xp z6G)m8siOy7NUWITUunIoX_Bm!44(W6f~7=MSnYAVWLfXbWJk{gJAFADA_v{sRG=V& zF>S+OgZHS3p5JJYPRB^RW~bjp!$hrMDvN}@Gmo)} zK+AIPaBPUmdJXAG5a1~HM?Z8a14Tkls6xwhx)jDp)EWn5kNMx6TqDteJU{Si43tq_ zWt*gUE0OZPisN3&5yv;Y4;c$l_UW$}gVejk_x8jjEgWL^mRSjo0-8mwYHJHx1AudpkLk^Iyaq~9HAj+)v(qX198id~5hx-KWW&jOpUHasD?Q$r( zsSWjaZ~a$)x1iko@n6(Ur}MS;GCjKym*OgPqqs>~N;%UX(R{;aIQg__a5`d;Gy-xR>i6`9r}8f&=Om++iNTmCuGuVbpWEd}dk|vlW+bKkP2*pJ1ymS=fW* ze)`Le-JL{S%ngE`6?-LP<%c5~$=O7etlH2;B7w;-Dxz(+D*z@yJSqk+FZP#V{}pm+ z?8EL)z&0R>)})r^d5@&4!2e<|R<=KrMPe94Q0cHTNeie3xM7hLu^c>`VWXY}1rtYn z(wLW|ZlKBp9av`>LT2gcNz;{jf&+sBlaxqj^s{eZL3PD8&_~c9y~7DO%yOWmzci9R zGU@@CL8#aW-)O1NjKsT!!x9nIvKaN)uq_UjL+D#rP39)X?>nx(~Lbc=v zu8;BBo&2L;{=+}`sUQ8V|KVT1`Jg>8h#%j%e(#@rqyOw%f9-Gm{U6@G_Q!wr#_`}L zXdAX-|Mai^@agy7{@U+77A1<@rvKs}{`B|W{Mz6APyN%n$lv?@uRLnrRyhm4^V1){ z_s02e{;z)i(Ff&JFeco-fAhP)d-F5D`Rw2Gm)`sBfAGcA(vGC)Myj|KmPwaD7n#y> zn~9a$L)1a14P}~O8%%bHl3{^Mg8@@o?pYkiPgpnj5xN6OQ6I>>Y8||h-P<*^f}%{n zUVTi00!?MWN=_SGP_6{3V?(o!m*;|Xvc0W`4CKff%!nU60<6svE&al}%rD*F3Cqe^ zRzo9Aeip(+2NlAN3#WqI3#R!H4N+2%3F01Exg_XV3-+ptlv6Q7l-h-{Dt3W#2nuI@ zHx!Sa@y<|Kpe3hEd#-_DNpZPQsv~tJ1$T+v>Ft~<${m2;-d2L(Oqbs&~!t2m}YvkZLjO; zC0?XRl_1}kE*f@SHZJaFXZitilYT}&!H38k03GXuX)vCO|5SE(Pb%%4oa#WuuxL!5 zu{F736w_vG-b&)KB{1CTRz<+oI%9d{V}{-fz(QavX5uBBiP?}LC9o3N3Fc>TF5_6X( zIyvseqA;$Ti8%je34bF9W?}D{ikn*pDnHF3IV0goL@IYZC%IC%9QSzT|84!N!~3Xp^UrJD~+0VBD}vg#bt2eT*yR3cq@cvb)216Gulb0n@6Vw1|Tyn=MUJc^V6$5f#;EJ1;!HvYrW{;)KpaUI# zq&;{+bDcIfidzO(joSZCZ7SC<}?-49VnJm3YIVPdfq@QR2u z6``n|S%ZkL3f^HmlMzY5MRr&35P$-lm{&o+MEy@SU_ZEv@*H%3U!8#O_(nmYy*=0 zK6qCVF(M`bFwzn45T`y@67bB=@z-`q0Opc1Huhz+tW zSk-Goh4|)R=eVS(Ns`)B*0cB3j}5ZoOo*}RKx6ZYWw_sB9;iibpV>G{y%v23>oY%Z zsE@bbf8*g-{`SBB=A(9c*Kx*lw%VjV#e0A9`2YI9`Rl*&7yeW}dHey|=6HI>|N3XY zOXnhs~5%b4hq+=%I!1#t^dU@|9gMqPk!)pJijl`2o~|3tNUO3?QcH)u-rXz z>zFq$Gs=y8>;L)m>%VgMH{bcA|Jfh>l0E_obaB#gQCiNLV(v7KDybx}PKOue>Q3&= z*24s>z#VWyJFz8%D0^}wR$A*24VnJ2`?>m$RIfR*#ysY&gyOzAN3(<_gw}AXI{i*dhSMxb)#HW6wq+>ZnB%_Jz=3Il1E;ULT#pw zN!q^^*p&Tj@uExOx1-{8W5YtcPEASUvWSNIEHxwA_L=^4*_mrRXY5=hbdRnmc?|`` zxU49O7?>6v`E(N2sb&2%eO~L2+3(id+TAj1ef~b_C7Ez-#UV1+9x1**eP_ZmUCBPi>RA zq8(wY+Zn2ui;pG`P53UruxtSHcChZ5(?XZKH`ss=Qf7^~&6SL}Il!+5xWvHLZWsrY z8)(P6(&wpxOVKx!zz(_0-S^b$Erk1lj6jp5@Q7%rRI@{pS&DlG%XNom;Qk78!{#mt z_1lL#S#$Oyy0Hl>M1rYyF(_s!UKoq-h%KP?y}M1W3RNnBv+EGM7dyRmU%vEkxI5f@ z=NIRb9v(#8%MxHm#Ewm5gNlWpQ+ifVWD%CDBuVQ?X~^5hxw0v)lar*h95v3futuv zYl@??DUth`mU0yrTnrldy~BJ^0vHZ1KNt65A>|iKvPGt){98Qi=w+a7UN^^H6><0D zTtvg(Y|7QP2;OA zXhfhH3=4KXco*3%ZyBM8r1|#nkF6`D(DAIYu zefM?safV&X6OnJ-+}^zRg?B!g9&SuNw&U$6>_cyI^DaJoIK24LlQ*tTLvXG5{?)?| z?ctl>`NDDly2)_AhE75+aDD0;%S)10X#Bii}2>WDn$bn8uukp|6Q1Bxq+p zJ~%3tgVtPUrA86*K&Vuzc^URl5;M^)%-)z2!iDHMVqpQT6`hi9T4d7#8gIf{)8als zXUIkd*&rGNR}cuTw5dh$Xtpcg4mMIT^7u|ElGIkuRd1I?lxe_Tdj`R$`t1nSWxi(Q zSjuWv!ep*o6h5G!Jg4vpWeyd6)PO^QL-(bcogncL14b@kH4LDRFdWW;+M_BQI$v~1 z|CMD^ae?ui{tZpqAH6MU;VxMlXviM2Yq&_8Nv$9{q$lct`=!-9b8NbxN~9s}4u{Lj zoT}qx$&(ACekS-rd|$%hqgRZbUS?;$Y}el@XwZPqOlZ4^8j{O{Ly_Dt#)w-cdgc2P zHZ--4bSn>$x}n}DnrbAy_q(M|U*a<^r5oEqW7GQ}Q z6s<(ULqWu(s=+gGwr$=9Z(D-zc&A&vK@5jG9PeYUR^Z_Zb|Vr%%g!RNXpQuR0V=q2 z>i|DMz`x;!^3IOx?q`n(5ChMK+e-OECd3y+uI=H7s_@kr`?n8SPh{%8&(fGJ!#J08 z_a&Y=-zu1OEilcLj4Z2iePaydLq|YU3`WmO77W=s1LpYNPq z9WYms(nU>lh_gw$NLk8hTAx3@o$n8?fA8tlCpz8Abcg9q#(>VWf>>{q zpn~b(<64%dz-y33ZM?GEZO@Rvkg-ML-KjAIpi5Vrs^7yO;Agj6x4UBZ#TM~J{J!|P z_)`3=-hmmU61X5cKhc(Oj<4AM|68r@%A|Iv8>OOJY^XZCcuM>#+lVNjNgO3bajxMh zlC-l%siA4$f(N0&UR769dT`st`&|FjlR88$8PSgHk<@ws8~ujBI$RQj3+Y2Ime0>h zftD8(i};u=WvXkE0&7uj;Z5ZeQcOS zjJPeJe5M1o`iSTXG6qAV6=ZEPSJc(V!1?4lp)ByTjY+qHqvQCNE}P>Hc<@?q?ehC~ zzyIj;g|{Z$4-Vpu4uenZ?e49KeCztw+bVcuKr8LN$B!OxZGKO?k*w~9Wq~X<-IV7a zm0w-&ZfHvX)B9&nKX`LC+*K(Z^9FC&REk4pJhSq__rF*PlPM?25zYrzB7YZRc)N(M zSRJp+dX41{^GTN1`qUTbHD-gaF+-HnoEuFPMNS&DzBtCU4B&yZyAp+SSzTu-1!Bnz zB&_3w<7EX0!>}l(qdeOLXjmi*w-xvXLx$xD6tS(GS_eP@XZX!3D8z)dBUZ<}K_=;Y z((qnb!+QdfdgSbG#^tGd9{;Wbq&;k3J`ICPioP(m44ku?_; zbweNFoq(a&m~3cp1SZT_G2G=!iiSMr9$7j=Gqu{YI&y_Nz%&5qw7@n|gLB}v2}N;0 z6pivMCUqp^JCH1VT(R`Ej2lptX(p!e;lhR4^Xqii$716%p|ZzYk3HEpd@q8aInE>1 z1FyY0Ohdrc8X2My#g2&3&@Clwz%K_#Le~mnqyx(FYJ$aKk@U%zvQ=Hk^|_<`qMejE zB)_X;Mq@q8Xum>LeU?|(1bkzSVgfNVG3QdWIj>Xq`*31FeiEpdRBwJ#KushyqgwiPPwe45!bWxNr;+9 z6paussJc8+|A7-gVu%}OqjJ2MB7(-Yi5wXwI^ZXh=?c?p?yHua9N935u6Xonp7lf& zKue>K^z?m=K*MuQn`uFUw?sATP0%Yo+OF-s{=!?|y}f(9tc zk{1uCq}t4-t+*&99)PWihD(4_J?ugvm!M(bDwCw375 z|EDS8rqceee@mCwE4S(qd&KjSP%sujDJ5#_GBn6S6_Y6Leep~kL3At&^_A`dSQU5z z5qfa4nsYLVSYkFIQE2qC>2hfn8++$!QudM2V^hKeA^CL45(F5Lu4h?4cn3NNU?WoJa3#7<+STM$RsIJhn zV{!WKMK`pQqm^~JiaHNxu`OY(n%IMBl|oJ`_ui^V?QWjQt#qpm!lQA3l+2@&dFwEN zb-*~(#O{E23Iu?U9S%R>F+03TN7}_FXmwjf2Yf;=Xvti+#sNaai1&(?{+3qY^csoo zu;pb?oE<4R`VL{gSEuqwrc_{3tVX$t0C|Vb5E?`^a!C`HYJlVnByK4ZjVJ5z$weex zcqAO*ypj?Z6hMT!ilB9hUyUCEh+H5-jvmZ@SLw-MdPOG+p>uLtmQ{B8Vtu2sG?6y4 zbCjJ94a0LfG4d@bG8(T`CVNcuk*WD8GP3YRow0E>?Qm!>W4mSkMp|1@!f?g+r)|hw%_;C&KF*1K_qLA4%spMGKwP^Xjjx-vf6_# z;Lse|BIrmIe211usws;3N;aB!2cRlCWi8e2B9z9=<15|W!+3>&y0t{DA$Ar*jRC2X zO47^@&u_0AMODFe_R<717D}jcq98&UBB)%6FB;bn_4+{5_&}MZv-rR9X)Y);x67Xk6X3h|qKHlMIcJTE7HxvCMX|aM|to zJUb-d9v1|WtN@tljwYAoA40C+&+a!09(0rGq6G2LZL_|A3~IOeT; zlAQAbL@ba?=+H?e!M{64z3iHd+-N+x42UGh$|@)BNdaS$?Ys>;z*%hGcXb22G2fr9 zNE{)IjQ8b^IEwA1K+G62)M4(bB1jE>aW6m>LFBX3S`%l>7Ik^!8+y=nBViMM+a{47 z0N+94lsQSuL>{K3tye_p*?gG=#063?0cZii+o_~cCiVqrR70s1tc{6C1Epd#ZG>I!q-0h>AU;;<;ys)F6LLArT)5??#CkMivGci zc5^eXaaNQuw(ouL{H?Fa8BE?qpR`oS>bO>{(q5E*di&19+qg1(zdKmZD<78$bMRedpSy>##1HF9-1n*ByA_+bpV>3L}h*U5(p2^M@5rRT)1{hB)Ccr4P>=13VB_zF*aQgaY2KF zt~7u-n1&em@h^vM%tE$G^=wR1c(fZ@!*<3t!H;M?Ky^BR5(+jPrGz)bIK18>XTWP{ z3p$!H`jqM<3}u+66v#w?@3&bamU*PkGWSih-v6XasXtZiiLEdBBUoxUw_;v~#vpV~Y<5m1+LxTy7x9qf0 zQ?Cd{6~ZWv&<=BS37yS)T+o4e&;hl>AII(dLmHy2TkJ^>KaGRO<52GFWo0xZeA%ZE z+NwZO&M<*qs4^*Wb~da;obHx%wK6Srjdi(| zqr#u}r)v?H4)aJVlhnSPwR;&~ge%u^T3nmd$~oy-US^|6%>n`gmeqMUDM^`cE9@MWbk@vae*r?IhN40RPGO z$#K_EO}aO?<1D7WnK)#D1n9FQ%0UlvY8M#-)QG38j;&+eAQdJqj%H#j)}xn$$O5N4 z<4QUfSYCVBC$$2=W1fs19~nJ^B>9oM-i!2Mj)eRdg&F-?nq?68kjP8)ZgCORe7hp& z>}Lt$J1fHH*~GFuRKZl7+86Wkt6ROyz|tsxX+RNoft%pp(iXMb#l%~OfQj~+{ilxDN6$7#y}=II1C8&VK^OU{QjM+WLz%-BD0ta{OqFX6T!%6&>WLg;qzcV z!UL^#hdtS`ToCq;k>hB|5+YVlxc{=5KVw5v0Tt(s2(QzE@Ua#H{lHRnulYU1b)>g# zIHio3(8D0M1If$CUIR+aSZyARD-fE1yIY5Dl3Er&Ov0?YlAek|sHB;*!&R2WYLi)I zGhp?!wMgWHM$yP%2G!gbnED`Lt&6*}&5uaQp4rVL8!$ZLbA?2x6}Z{YA7B4F-}(0M z`OPnU>5E%+D6~UYgUZ99{_Oi7-P}I^!!LYcs@P8c*5l)s4{!X@dw=q`e*PE6Ggu!R zRA<#$tjp5y_4j}Ht+(GX;KA{i4_|+8`RBj)(GULS&wTOjg|7;uB2^X?e&=ON*ozD`1$d?VF7=wz+3Eo4 zI1%cSOy^3h3|HL_5ChN<58}+~FHzG*_TeAt6YXk1G+2+R1e6 zkVH+Q3)4eq6!&|`c0sz+te!zlYQaCsh={v>8S2q zqQ~)X)uUrE6|-R2e69_f|y}m;skzKx#FW;>%L8 zZgK64D1svO znh||aG~)#DsJK!Eo92uK#3FXXZlW-yZkSKrV3T?8rF${f)~t&g)g-Sd2UjP7O@}!u zoTHu&$F-hnU-da*0&9 z4^NaZQ8JsA0)hk|66d)g(C*^l;xThgzL>H)r|$4lq-6eFGNj%0GDNh98f?vBN%YTj zZY3E*4!b!CrOQB3+1Pp2ykFL1+LOjK{;8h1!VdRc0`E!Md(%Kck~+E4|v)L&33#Dm)w`5tm;|5c&YRAu<{00cgtgnXsF1 zOeJ#1MNr8RSNeZS-62^zU8M!#K&N*o5zQIs)fJxEw@ss{aBsY~iC0W#$jG!1!_;s^ zW^i_9!e|z3a)_r{OCTCJDj2u|bi!C++_9u{GKFEXJ9I{M*kIdwCb|vALI~=55eL%P zlELT&c%pGPr2p-LJZ%PDP_Jb?!B|i>v}+j^>pjTHy*HFu3QhQPm6ZxA&2OPHRW6(d z6-+oNs-^lmLm-uXTMO@^gw#8HK?g>~m7|HBCM{v}TOFiV-M1!11CMglAjhllTQV>` z0XMULZBnq2^TCzP<8f2?CH|Q5x6nj7X%zKqa>29$GL?zRE;?!$j!;NTNY^BYiz|Y937WVc1^Wb(=P#5n;!i#lQ;`=nq&=iPujcZ z5JTl67a1X=Ctc?)PN&cf7=7wu4KN{V5$^$o;>`Y9Aj9yce>g-o0c#?41B{x64vIvw z=Vg{gYh}f9_WK41o)nY`C&v1h2dbkJhRJGBMLUQngn;OlzM8erOVF{1ERS)$p`0Z zC#?0p^HB+*KfQcG5TX>c1slBx?Es%C7C=U>u*G30v$%xK!W!xdH#~GW{58dglk_IC zB@&ck2GHRe7)pI$D`L&3B4v%3?EB)v*EqOMX(w2 zV>NP+1T8Le(6_@CG$bN>1rd%lNlXJI28Pu11EdTH5EexG&gLf|`(%_FFtF#VRH)?1r zJk~qVR18t&O;*_0&1xEN$f)TRX9YrY3-D;MtOl6S+lHvGAC5d>`!^Br6%rU-JGa90u3@xFYu*yQwK< zK~af(M@1pDXOAp+j%wgNdt^{_gTtGOq<3YYyXTv7#-%1uC()v|`Cx`IssykzJ&~!- zhFF7xsEMuKs&2!!!6i0{c4+sIVFOyvX>CGRAxMQ;lO|DlQM!B8y0Yr~LG;12Kq2kk z?utB2{`j>5LA}Sl`F-#-1>`(J$LEA8pklhebKAKgAJ=im92Z+!gP z&7+g`CRX8}*mZ4x`8R(3xBuR6|H=R5ciw#R_^o-K?$Oeahuz#~kwPACFyp8;4tgq+ z{Lk)m3O3W>k~N-78kjTmc7(AilF#f66H2$4ioSMCMmf8&{hl!V>78)px2&j@a;?Ef zBDG6`-WVjX6q&$BoS#}E9-~Y+Q)X4(rUu{PMAO&YLMp8x@TIt{k;dcEX=yp5FS&M} zrO8llU;I6B^ByD7kSTZ~vs5FERjqU>b)>ZrfIk{hxYi#fm z0KR+ePo`ZK%R1j0mDlQuwE-1jZ`)}|8nZpb<&lO`H9ipWGebqRu*8CnjL(JU(t>?6 zyRZy-;`*0QF&zi{rvq6{Rx_1TcQ?iEhyW5XNiXZx@p#)SOXL_`qA;-yJO0vYXnan# zhqFada#mxvXVps;^h{hf56&@?!tZ>buEOcb z`vBC0`0NFq!eSW|J*gTE#bPLl7unKsZiLoc&xIFUPI)3 zLlW5{$8^`Y9GVbPp4=_1pS0pns8<+^sG&*-@zMww1&oVSi1Z;_QRW4mommrZjS+d@_r|PJ?4CUG_SV}!kH^>LqcvHtwu{r=7Oes?^%Y45z7y$~AF=wclcc_ro?l*~Jd zD+`R&2@<(p*eJadZE#ayqy4u79iz(VQB9Qrt6=~YLG6-Bu_4vOrk+9@(t;}&6~XnD z(3TF9SC{w7Ow`?@oBjurR~YGkvQ3%yY#8!mZ@)bCvMWRIZ)dAMgc3S@lL0@Y%)^Sf z!yr=Bi@QR5B*XbCYJ#4`R|CP`MLDgr-NIwsaZQAr*uwSZkgPEuSS8}(myVEBGA>lH zU>>WZIVzFlHgZH$jKsBoeX6Tda2KRA>r-`bB*R-9Nd7Dt*gg+;zNMg`oZ*8?u5aBF z1cSKUT(Rhkv61Mp0T}&-lVKh1HG(%Auo;7j_@-#?=DtD-)Z8py9MimtaCKFW0unMD zi`T|-!tSN&W`=>{)Je<@XjMXY;RE}PDv{=JB>}|{i`@JDsK;_Ba^CD*;Z<<0W%Jp5 zyB{ClS$kA)5Np_8*jK*x=GULT@xy=cyAO6Q-(OzC`NfwXefw8`u1|P$=RV0MuD3Q6 zFNPhD0JGy|ET1SztS1450CP!vvsYib#ow>N+Cw z7+_LhYQNA6;PxzC&v?oSHRl@xCsLtsbcxj{4U@wP7K@}eu`m+%$^|mwvEuL+65GY9 zVl#-9PClXNz9cS=eFMtYp zL>Jadq3RIWwbIZw_IXKTzeGSVsR`y4p!1}c6q+Mo#YaP}Qh;?}syGyEt}`tc9Hogg ziGc@Pr)!JCw^E=p`@iq$`xYW88zbSl9vZi#$rfe+uPG7Z9)PfAP^mj$Vj}oTU9t0X zieu3TCPW6jmXT~OnvgJ4nkI7(ux&{SY{-43eljrjFiDuf3U5p%;}(jprSsE}W0aZ( z1S3&>gdM)6J|jsUF)(&JOX{&@4{mfGwG^-lV)R#qIU4pix}v1gy9uns%-Pr}R-qQg z3o(?$lTa>(YI20t-rj3(ZosMBpJdIZV({TL$IfDo;OMS5a=-d8-&Ax#ZGk9aTsYk^ z9k89DJ=RFs9mruXA8b#%XNNB!8ISymLAEzd9IO>hFb}FC4Kk=xU5R>V@1cH>B{gSJ z_DSfd!okBURe6~tdZr@bUp;nqjm|kCHB`mT_82U2^emP?CSJU9ebr3gXT_q*D|>}@ zObZM!(uZr73_BI{?%G6V%qvX!>x7g^_*4bzET-8lj@B_uWX7>O7U}|mrMs#O=M0|_ z-cP@T{TMN3qLQR50I!NBwix!sC?irzMk>p|UJ7O_fZ;&JY>-->hr5vYXWEZRKtiWc zCXq+f1(;k7-rY@nD<;*oi<^7FP&0DXh62h{SvAd-D^}GT%H-7r$5Dx$4^b&54z#r# zUi9OS{-pfqk8a=JmctW&{k2l-b~Ec?I$qBrz)_)&dz;=Y&+GF3`NOZSUs~x?;+&)u zL1F#Sb0s=_O|+cFzk2)PtG{;o-(9`?e8C$X-SFaF{r=BPU;4lO{r-)=)HX!7C`o7CRhh)aITaLI zT?2u4$8JmKPi~f=xi6KT@f{mlB0YDkNSa;M-NCDQqhtf52(<{& z1dCjj;RDlw*%%{Y4%l_sh|Rgm8Fsz5k5^Xl)wTr_5$j=**HzsIl{6VfsZM-2llfCh{e)&K0tGD;q z9{l^)Vh0=+Tx||Yld?J*qar)j?s_LrfAI_BFMi=ni}=FDf|5cS@OkW;p z!g!QSt5<9Y;7eAF<`1D^D(&1$f%Yg_H5|1;drXqa&@+=|^blw&MOemxQh-JTe5XZf zH)*UTv9vQ3XOPots???OU2M5ze5z7PumYs3q2wI4oU&71w<&sjKd)LY8T}jD+b7~oD7bW3`EX=byqAHQ7c)Gt9fGLm0_qAC5zjLX4os2hI7@s!}wQ9WFu&YmVl#S^&8=h*otTZ5Mu|; zi_xrt*g8fD-6qB>nC?ESv+^!KZA%=OG&EF0^_Xu1S$p0v&QJ}S(>APgXlREA*AAHk z0vj*_JkS)Iv(e#8)IBur7y8|N;{}=LBQ%h&hP9!&U=SvCN0PnB*No028k?0wbFvG7 zz#ZLE<9fSvppiS1nkgDEgqQ0@I#b;4vDUOCJ=AE`;CZ-rH4_=)rmh0-;($)rU~4ri zt_haNC!tvZ(SZQeQD>C-r~(XTksYis)=0L^u?f!o$%{XoWbJoi-sV4hTV=AVH}v{g zuMXm9$D=~*c$nUO^Z)kfcb=~w{N+D*_XEE>7mj})5YZ}vpz}Tq!>471`FR`W{<}ZI zJN4uL+Hd~5|J~(3`=03427QJ<`jxkT?i)Y#=Eom?QmfJBwnDZSE)IRM`Q4bBxM4ka znB(~(W)ATj3%G;t@}vu_`cm7m0WKX-EOXJ$&?(zWzL zxZWHj)JqxN>Q!pI7ksGi>;eMDT#L1fzykwA~?!)UFAjhj~xZ`mE!F8&xhQ~DCkG6 z;y6K8y8kNLBwck?lnpkEPAIF76*l5`a{>^?QLH{7lS)yTy9vfB{&7^->Q58sW?`n? z;%yQX=^Olvtw7wzDpJD_Q_Zc5qfEH|f!@AXp8cx7sUr$ms71*w>%lFS8Lp8z(3U9j zGD>9Pwh~~qPETtwYz-5_a99v1EAYs=>vR*3G(eUTkgqN~nxukPQdgNsmMlf;Vi20y zHjQHb6iPy=0PWwJIRM%*$etCUv~-2+!4>qIDcC0{8|`7drW>SWz>n+*22voJ05!;E zAR*r;cuuUiab{D<;1wJr3vp_*2s_>=F3%5?MXpKbSM*)Srw#xV#Y2M|aCWaEWzPog zNXUqemcgLrS(Nt-fL7!)N`gGJYIj`}xN0b(I;!_{-vh?Bf&I^}3oj5V3ZjC68Al`_ zoax*P*#F2Kr|lkWsS4)z)&X=ZHDFlE7LoK9 z0gfs8dfMP^@OF~dt)n0!uSk3mTP9Tly97D*Q?VnSRg*ltnqoLnwvJeQ?2H@ZCCrVK zs66cA9hBV@Sv7%lLt=I$NO2EHQFY9c3UJ3H)M184*aoa{c0n&w;SbGBk zFPyJ-WW4)^wg_W^P@M7l4&jcl;!-^W8xYgQ6+77%q|WMKY^2Wj6GpvFJF~4^^1g> zYMf581uhxaEUH5l!ddEB5SKIw#&QnQ;RZ8mpC4@fRk%Aq$DOWB# z1S7M+IUF+BR7Ig0!!rQ{<4CWgLPWH}Fec0*H>T@@vzicW_;&NCKmA2p&pJI-se&t!DwE1smKU37Sq$Rk z{J8zr{P7>Yn7{G8U;5$g3->-Im8!aSY^LmJuOykvCgx?^#BCz6dy4h^@y(Y%e(~QN z|J(n^;g=4okNtL&>F^tWW%{G{?+!Rg8R1rPIRp2GXWRL4l`3{WV6HFDFh20%3&xwqp6w$fn-AhVdDR0 zDAiNn3q7GL%u`m>U6=40*a2GLoeC0y!kj6m7v9rFYDWL>n|$s-AP4Tm9ddLr8C1u2 zWv0UtcA`lD-k8S2eZ2g}e>+> zTE+GnoSwizyWs?JO-Z={uY^}BvI`u_lY+eY!iiC`$X!7yTCzW|_>L#ldAiXxAJgn2 z@jtc^q&z5^ISK+dLvhLNUQ!-BG62O;73@oAkPZpAN@xz|8kjQ<*+bc+z|4ocib$cU zc=*I`_eqCBhN)qt>-o^Zd8B~rV(=Zj+|17>YfXJK2Po)cIId>h&ZBRDyPv(#qgb1i zllRqqmh!@^iak&3&e!qdR8t;jN%7Zsy|R-Q-X>IjE>K7+W%C_0Eaps9n4= z8}-h#2_2qtUoowW?k%VtnAj5wK=DEti{B?Kn>T}8v&feL4SsTS@2c7`16W9T4>Bt1 z8BTamX=qi9JP9e&BOx5g%||9-?`LbLK+JLR6Q^5?xl|BE`wtsPUm{#pCSYLGs6L}) zoC8s>$CG)JizM={Y|C@hzI6DKQx| zHDqA&3?kLU#x;x@xOgaN4J(29o1r2<6DX=22K&BTk>mf$%j;SieT9j>aE6AMh!(qFTWvA8FC9f52`V3o~}< z7^&Bp!?!>L*UTA^%iJo&{$&Vt){?jEG`b;!*kfeOUV-$>8U@*6+rKTq;x@r+e&>F? zm%}9o0Y;1tTh7gQw}#hnH7qkmMH`tWqNoqh4eJ%GMoQwUm`hYqph*{vLciTaq#P#_ z1gS7T5v-U5bw*EYt}Y3pO0;`CAOSD{gEmeu4=~M@%hrHVD6(gKf&-$-d=0q3n~Jrs zdvF(wGjN(Q*6^G=cnwdP0?y}WFue_I5^r?DSe&e%qbD*X$!5hc=n8TXLj73y8L&iN z%E|nSLpxRUg^>L!>ex1s*If*H7KXGzR%n6MnD9tQM;lRA)-%f=lE3gb=8*%irSg!Q zAVNTq2-@So2O0$X%yiA{^Sn)vcfln(hg_+S8L|v)WZfpNE>1eoq#UfAhk5te>Zo>b z_Km4J*?i`EU_iSNbU_MGvZ8=u9Nu`e{px?rUc5NegBA_H%%rZm)q*0+K^Q_gZu|Kw zckezqUw!h+*Vn6RgA|<~48u>#RW@^3uLh5GdNpb3GriFX^sGo9^_y$>OOYR{9zw!$WFyogUM#TBsF<;3z)mh zd1C3g23%b<5^a?u?-U4C5{~6xCD%4N{w2)k-k#j{2_~{1`G3n+MNuej;;1yfikt>k zUmm*M+IC&_Ui^{Pr$t4&U~OVWwkZ1RE*K_*@>b@?g(tevx@8lIUYgL&(V|pDN-Y-N zZD?FUI+Yb5_Thv8y{Q3{1$Za~3(*K#*<;eUQSVQzH$cK~e(C!Y^MoYIx|m52k>8SF z|2(dN@R*IwfZcFBr{l-?nHj(@fjuWyoTuUcFYf*VNV;uV6T`mD1$$RjcmHtsp3C$Y z2Q(v%V8pU4OR{BVhH#j}4o8^75T-CYj1ZQ?whXdNV$BFfGn&!xW4QNSKKw&>SJmEo zt(9r}i?yQqpY!gUku2L0uG6Rg-Mcm}$d&Nrm(^2{rasxI3FsX+{JCH;#pQo;T`Q2EIh3pv)o#$vs8g%)MCI zNiej{Tl0CZn?kH76^W25h5&kOsDw}KPsnGSqg%sy66|CukbBJTb&{>Y7SCBEVB3ob z(#F*y!3)Nm2Qv0$*;=}n+cVR6jh;{8PO+M_Wg z_G}8{MH;uI!Da+Sq8?Ue+K}|)Caz>KFsDE{nZQ@-#+&m`6%c2F#y*W5d-8zVqVW2p z(z0P%h>nnP>nJQ^9)cz~wW1m>nMFDzo}y=%MD3u#*p0N2)Qh1{dv}nx9ZJSj5H=Wr z6LA#3gpW|T@hwJ9un(%o2;MZ%cxHSffFIudQp=etcpV@^wZ6C-kcJIVQ`g8>!Tx|$ zVGW|A^S+I`QsgP}=z=Lswu$?To50U}7t+ zy+TtT`O;8`f!-Mr{7FtT)*Yh4R>aUb#4G}%V$60%N*p%e&;;4j9dQRx773rZNe`nn zWdyQxjmO%EJWGG0sHotRaE}{wBrRx0WBf`L3U>4e7uet%sNNaV)kZ!K7rqF{Ue1N7 zO#w=KE*RF#WWA#p{H$cLj7SMP=Y(3&5^^Hlpdr{qaUI>|WkI(|EFsV?;^%TT}%Rz`mq)4Y!?=K7(gDsG$A)DkVUa(bS zfG6aAxO#K;r@P7NK~sVTRpJz5P-~`%`3y1qsO)?;f8x^|HS--+il{aBfS@8#;E)8L zRm|0}?c~t#?9t68`mx@8U*DSj=uPf$wV56vzQ<{ks=Zo*Mxyp-wI(`~c2?Abmn{I$ ztfm|^4W&siw>j2oldD8og46_=JZ}JduBTh}bs^@Fecg2%lhQQ5O`~K`%T$`j=Ro zYmkFANrP?H#f@?`jv9g!UzvS6ydmg+M(=LHji-qJe-8*0Ll__~h3{x?9wMsCCq+(W zS*;lo#CIw?JyVORGmOh=rlOWz+C!s<@2t{OK$KSw71p?6?ik9D_TyLn)AeTv%=tXr z*{|C9J#0|X!Qe@tNY&9O7QzK1+kYBcQ-t2ZK?nALVLynFaY2TW;L#z2c48DgfQ{;U z(?g z6GP+GEHU!XupZEME*nj+1Hg26VZYnfi^3E@H@ZR(ARv{>jY709_D-;MOhfKC@E{{a z2fJuO=jutd+p8iJADk4eVO`PF!fD3%s3LqRR)CB1BRDww29!u3uK*T%fFc@lbs;@p zN-)|F$p#4^eegMSzMx_d?Ve7pXpuv16luQ{m3&CRF!PTMDfCy?jBupNxI+t=8uE;F zL*Ta1w{z;) z*bf6}0E9Zik{#91dkt*BD)6}@j>HH1s&PATzmb?I6Yx_XAeF;VM10)WhjU8CVV8nL z9o`xTup}=;{s^_w;U+g;U&FxhUxekTrDgp{T7yFcd5~(NBW&1wgr4kyQ&q;5N0I3v z+4}I{i}V$)4(6glt(wR^_^UBe^ZxKuo%?+=y4ZY}Uf|UwBEgG1AphVgp}JOw4^vI_ z3gwOR{EzQ`d{OEZqo*yPZ?++#`3#lqmTJ$Xio*PCaN^X#Diiy&1nJoQFf3lxF|-_N zJv=B6VhbgqDyBOs?uOcc#LM~xYAh9HMVm&co4}irgw(@udvzg?0Icjj^-Dy&IdJLp z(Ml2KJW^nn^|MPAm2R#l>&FKj1^DFxxi#zJC{exEAxOnW-vy*1Y4KuiS(HMlY-kM! zqa~jqGj@Vf8OA&#RNQ805&=qv1>jbs3$Br?+dU(f%`-p&|=r&V7-NTLD^dfE?Q*QLVydqXfS&C#`yF=kf4klAxri$@ zDX0{+Y(A-(2ewRrkhBVU67O+HC9u=)ci~_*m3BX;n$>Gts#$o{ARgR`zx*Da{#dgq zmNkUc8pv8hMH1nJ0!090$UT4qNu$zGKpG;_@Y z?PX_jm8nWqv|v>v(aLXhqO~YcPc9;z&!Z!wA)EUqrI5!dgD{feMHw}_2o5XPj{9(z7SEKE%qM>VM{i`}0s49(MWovGo(2(|k zAq}0tA#D~Ld6^bO8l<|q6QnWLSgIq4Dh5M$9142cgjF+@q!7NLR-?E#S z0-#5&T&cS6ig+Jk=_YTgOgf?YSZnq$JeplhGT!_Vqvn%VY5g ziJdeXn#f&pi$2r2;+e454OI!f;Ibi(Bpq1dgoRYcl|A3f38dJ)+QKY&=KjdUCd7!+ zU}xft7}JZzl z6k(v_5K6c(AmK9DGBtx*;XckXw9c|JxM<_0^iq?NjpyBCnkdP%bX&-x)S2p9VIYp3 zoQ#r`4CNfRJ#jfN4i%d^(9Xxq0w04I<=#HhU_*0s=`-Coc)*fI`P+sVFhv@=Ap1Ta zfVx!Y4m#_&&Tvj^0nj-;_R<~gLaQJT7QedDiAZ~CDsXhotR&{r6qri_!3zZ%HAx(W z^gAL`8&TI=N8Lp3hm0~P38@0+FK+z0s8;r)@-EsH3o~Aa?PdZW447`OM1V~nQf-c} z{8G1pNA^quX{f@6A_yA_Ww#nnL+CN<;s8%?Jix3=*XBL45da%1d*dkq7fh|#D{P6h z1V)8XuI8?n%D$$foY{pJfhU46?tsk38H*Wj9fko+b7ifVMy9VdUmJ3!+-fe{h^Y$7 z%F{DVYeQ&2b4RZ(&sHT*vCG@`(oH{1kGFt*z}pgUQPoM~CZ0{)doV(Ob z&EH97->^ITqL3&-C3X|WW7di5zA@lqwMQWksT+)}rb$B1oX{oA@XpQ|S(15{Knf`{ zM?^iy>qom5yqqCbXT%b)0!!355-?$U3|J@6dn-li3gzv#D0=X^X{x?e+}$9bknfP* z)|gQ5MI6Q@cn?^^a&n0%L84Hb3YbVxYG6B2RAw-(pB+6_*{@>oP4T|BeDE*57Q$qj zWWA3XEltH^bwQ(+8Wsf*DD_&SuA1Bj<87`~z9s`8n>etsty0l;v(+!X3?E)C73s;{ zTOZmcPk;2|Z#-H*HcQ{e7k=a2H)`BsONZy_GF;G zNMHa~AU(K@f0_eSM+J{@{{I)?K@p!uDbbNAlOiKb5`zd~YPC8N#pM72SOWR>0Pm`p zIKVyzknJK>FPYs#QQjcpTx$!E!2nS}uD|3+hoeAjOo*=Lq=EM}Y<$!#;1DCYe5TYW zkRsKgqpM7$1=z51(AO74dyo$xoR9{C6wYTE{(~B1(*d>~^-Xyhl#2myc_{}sydzH% z6^l)V+T@ZzfC`=co52Jqu7()J4b|L%(71AoxJXsNoIwC!H`wXL8E_w~aucrfh$Pq{ zV%0rJPxvzz?|eAUuiMu>$h9E54OHVrlag^6mDQi;K>SCe%XnUGQLkQc-VL=(#pacQzd z-$C?2^|@&Q1Z(UrLmW8vs2{5WR7Xt49hD@HM?y6wqEt0A#IKYsE1cif;S#oyx>J;f zlORPl1^w|ls4eM$93mqy_5;Ykj(Zr{4rQ=<12!WEZ0F&8HF#z;fHhMaD*^eazv~%L zc;TKQGlF&GkJl06<5LyhE;-S|d^-~a3L?>qt)lir@~PO_z=KYiP+QMmGH%FV(qU?Z zuXH#^gG{LA;==;Ncwhp(hJiGs5E~X3qR)p_u`X_7HC{{~loK}EZ`Kv!)*xfz^C7z& zYcja%9I+0Pb?dC>I*8Xq`(yCjR|#!^;m(8UC7eAVMk5F?vQyxA)h{-#=CtvK@gRO_ z88H~2unymvw(eC?TJdyp*99mPo0 z!oZ+a)IrE5f~k%|-GIzu&Rb(>>J`c(o50bT4O2jAmvRcAS}y^Ru^d#kDtj%Tg&O$) z$AdXABl)d0q%;O6V8vUK$b-FGo;>W*&XhAcNUJhk?C2!-juFQ33;Rt|ME2$idg}$o z23PMUVhyN)utSV=J|#^5#ActMiZ$|TXV?wGCZWJaSvLgtC!|_VVij!}p>?8DY{W_= za82LP==+;bTu*6cyLRYKsfb}vZ_Ds_j-kHAo_B6!VYaP%>jOoiKdc}j4~rqQO_Z{c z;nNl_CpJKAO#A|*Vc8B?)Vzu+WK^Aoxha(W7grB1CBiB)@d&YTZW_YcE51K+(win1 z!@P|d!gbVE|5jJlYnDqh(f7;cv^Qp=Q9vBIjy z9i{`;4b6Hk=6RAE;L!Y>WNA_rM-?@RBlf5fX8;K%Qn*;8wG-58l57YI${Um?CrC!z zjoLVOC;?^0{)8Y1uc4h#w-M1D$!{1C35k%_MPD{ttFV_H_nu6aEU>&Q5JKmEp@%`@tu?;+g$^vgf{gX@3UZ~Vy9H-GaKPXRhc$dK*7^QVuMaTwwyw2(qH~6yB(_p>B?&)V+B3g$$p~+>;Jd-*rh*QW=3o zz*9dSK;)4@Va85kJDG49Zew|FgQL|3|8%|7RBG`;#|EKr1TbWM9Z8my=C73Hzw`(# zgst!Qk@-ol6*_~8XkWcey!A|}S3@%aJ=Gw%G?|GkFAX3}js9)6@Cdx>Fb&1TF8r?& zyra6obhNlY7T};m;wJT@mk2FwM9nACvO+$zOc#YnD(vtiB1bnnyA7swz=Tv_;?$)dMW|}w$y#YFcgDV z?C6zWH&o$bZy-Sv&WbtFfV{>UNnr_8DjC6GIy5jUA}-y2FzEwKfxv$%lPrZ#F2h#@ zbn+Z-LUB>S17*g>)ov~Tbz!JVFcKu*I00; zZe(2{TLm#o6wg(f0}YX<^>rHvHmFy?PwP#pLxD~W#!E#W>FiV3rSMVJeu@k{5Bljn zO?GbBy6M;hfW=0zg}0W53Ya1fH>dJ0F?MPr_fhD2uyDc${sdh+M6YkvuV4m@Z0}0~ zvBJ9+HMHvCuWg2g;Ujm{(3N-_ujxDzHo)t`BIVU*gBP44H1MtKQ0g}CW6h!Fux{H# zqW^1**Iqt%`u?xneB~4n4ew>V_oM5(FWxL4p{nO5GwsHY2r^87HMG!!X{$n0PZCG9o3gyPr$V z2nywMx}tmI1a+9o!f8?sHq2?OgY|fW0kdLhFdb7PyvpWiz|`}AotOnL{lzyPlQ}XQ zfDwHykq_T4`6qjh%+k8KOQ9!mz>UO&C`7L3wfBgz!h-~?inQ@|(WOZ;SoEsMr1Yqa z^XycduY3}$Ce6GA#|Y!(Ak82X9{?^7hI|4Tmxv;~4B`Z@IP-Oq zp;l4Fa*!i2R5jtQN|QdpPZ23{9pU&dkLA>K26VwHaz4QCWd9+o;5^InhNXtM$?nE9 z`yEs$?Q!Tn-2D@uuH7n@=UPuV!LNdBi8VJGwje#QlR!@+_M1jv9ex%~`i<}2{^>vV zr|$p2{PvH$_oGklKKPZd{NNYA^f%vs^^FiUjT(yzjB1JSuC)dk`W|JtdyfnSg`-0N za7Md=1MfNhy77U8_?;bz=T?tQ+;U$Q5W8;T%@;HWW z3AfP6Jn{n$Q|0z>B4ZYA!!(h<781zvzy3Vi_g zDg7-VJ{sN7Kc#PLB_w93AYMl|`=ELljOh=v5t>4^JL*~j)OTE@Pm|cSP%9NwwpxZ$ zq4x@@=+C$DJ$U6{KpNg-Vvxk0iwCM;n>1FB8w}!9&ftzipsC|&^|*Rd3f8E4vL;x? z4lz`vujJfB#Se<+b|#(HP9VruWK<0xX+ z8;g{=!Yd;?Gq4R8IMMm7LJin=xTma)2w$_8S?m@WDEXaUC zG7Rpn0`XW-nrBFCZ1x2(@HqAekOm$)RA7Pc5GOivj1>Tw_ol?TW@^=`LcHe@Ho+Fz z9UPfP!@vSE^~*L&b#@p0t6WlH?1A@RMCxCds{33ZqB?9mCWDq=)|s&(3Gd^ST> z-cAvBs0-Y?su2q$jU-v661gF0Pf-ZY2QEm|%(Og6SWF`oxMHGXe%qYmUy`7XbSg8b z_WDODaPDU`2aebjDP6qKrS-JhMmYoCQCTHmb;JqC!#7_CaShcSVPAx8K4evhD zu+UGlHN>Gmz&eJu{9pJSs?>=eW}$x$Rya-MY-P}W;pQr{z`!ruP&kILTnrIjKqd& zZJaJ_q~>Cy+xnGVAg`_W1?dOV8_{uC@lSv8qi0WU|LPBZss!Xs6oe0rTFBJmQEVi} zIHog_V<7@?Z}g6je2;MUQ|MV|!mq%vstn?(X@>y6KZ_=$HVh|D=_U1+N)=Fc!La4# zl^d}GqQv2ajZxt}eX!G3^2QfV*jf>k5}@^@|I+$27a1>T5XHnBE$p)W29zEy=5mZ& zMkrf3`x_%J(o8`E*rf=GovLGVTivZq#X=Q0cFjM24WgFuu-f=0mbCeYwLP_OP4 zS){|L%8+!g^7@OwFNzhU(5Dtf1*=`ij^X^>URA^l*e)&)E|G*+Y3B}V4{BuxprF%0 zxdWr)w(No7`fgotFuRXya!=2bP93nPb#&+kcNFo!UQo(X2s8q{W_dTloBAq}6GD+l zmBWI^Mwh%IxJbkr9kmOAQQ}HWov})h3Vqon-hc$d$TKC2H-aJahQyUofjUV|oMO8^ z^?c^AnVgU$QTO-+Yt>z{xVPIZZgTU92Jt0gV`O`G5}%M~zZbEJutFk%jwj@dymM!u z0}kCGnh4;(9e2I}H>+eDx)~4Kd)!@zU$GbG+j;$H`SZVYjgQ~K+u!-ZP5R=CuRN<< z3-%0zHi(Smw@YH~C7{jN$iVEOuX-(YN7w=QmVN>4?<#oQzWsr?;q@oaKDe8|fx92O zu31Sb^OwW|)YM%Vd5}++^Bp19S1;qiU!juJ|DO>62|&FD5s{nPo6=M|6xc3IOhLJt zYhU(!;VA~+9ERwg=uLq_!zC(`vr`5`4O>JTuKM5?o@wI&B0Oj16-?lLqFMuc)S*~u zH^^vWp%(;#oltBU5+}K|&bwzrcfZusqyTFCieI8O?!}nxqa<4@R74o(mrJ>v;o_^G zs@Wies8KLhJ{MkU@Joq!_lyF_JZbAO7-|gLzzsv1bmm$-q(aJYBV+=C2<+&{S%Aft z#m!I@MZtOPbj~}HNJFU}vXrD~t}69f5lSx5cM^282wv)!z+n)&p+UrS8-1n1u zZF+`8Oi9tK&05WulZBn8tkygPWYO(xXZrqi4!)QLu}LIgDnRp7fHmJYNfTz3Qc%@3 zq7>AV#|W$*n0jkFF<@I=Cd?3P*jDcdmOakRvEl&1@UIIE#Z+LksC3{*7HpreOnUH^ z#rL|kaB{;|Nw9{pM}fb7ErEV+1UOx2+6Icl!K`2`0xy^qG1IF}Xw|`r;GcjKdt(A0+P{Y$xoznELY->38z|+}F8l@F zdK)&UohcoyUPq#{(RVJ={j6R*I*`PTZ73b|CGIIAnsfxbIpY|pUB@yeg3DmP_1H@{ z$WPvXXj|E#2EP(Zp8l>^+ls8!#b zg>J^OMjd=u8^YlK#l9NKI$=LZn6w9%)L3sM^c!4EQmQe-sOSLE8UaPzXjYBrJ?daV zT{|%`#?-*d#W!(JL74GP7>#i)5|Zr;*=Yzcx4bkCwdrH*aV+A@hh6) zctDKUu_xTHZ32M~tU-3?ngzL+Q_}Fd$w}rH@PPUn)I4oS&(xFa!Ou-g=#HoD8g7^h zuAa6qqdXToiYpa*E|I!I6w9td5|nCs5Xr5-1qQ?3?(A=0y>a!I|M>a-Prv+)`SAXx zum9ie*VixKz4^(L4{-ISUQ7JedpKO%lPj?v?~(=^tUb_+TxteYfWeSmU{7hcEgu7a zrhNIIiC=a{`Tn;bA7=l@zVYsF{UdMwtNvx@$A{_-y+Z$xy!h=Ba~0xj{*h}Jn^+(m zIw16@F2*qCKWuq^9{TxSMPcFrIRi$x!|*$O)bY>#(}3zyM;V_>#g<0sdG0kqE@9uM zqW;i8cP)ZSmAyD9GGLv$o17Tlt#Dv!7R=ie0=sJ9O6eJJI3zT8P>9f?ouUKuu{GHQ zJ{l`KkG2c><`Tr)sL){mCj&syuNON6z`}2*!6MZLHp2iIHggXmv>Am>zj3MSND6i& zBK(2r$M$^V3W~L39AW`^ktS*d=4N_6}vfoQt zeLFi`f_BKPGnSfW(Fv%o_h90trzo0W1#x23o+cUY+^-?mz}?Uu0JW}&gicEe5oo2N za4iyGN0AMWl{AiHzc-fqa@gNIj7i{!8M2OwLxWB@3W`jo*>Vg;$1+9eMHMn8F z!`+eY$qdf|;j>k2M`#3QK%s@t9}&4e`8||xS|U7+in-(ona*A&@^-@|i)=_U(-Io{ z1;a9Lh}lC#F$ob8fsK|7ZI$2o9vql!8?|cbnlt z-J=~#+T9{%jBE_(kr|Y(dNr!riDSdYBaPl{PQ``;C?8PIJ@_ENT7aQsI}r4eFbe8z zT%5Yy=&vICn|HTy}-q6X&%J)jU?(2S2{!-vYB zpkl?nfSPnK?hF1&A&;_QP6!mIJV4Yu!YwJaq4BoxMbcN!AHT7^_{SdqC?5cS^y}aA z5P$wVKPo=zyA58;v_maumCLiB4VIX)7ewqfXv3Lrt)N!1x+iH9!r5g|-=KB*pyCBM zpDE%-EiL${@UV55T!`?-)?i?ytsW^JEe#r32Wrox59S6bO0!&1Y1-+CVB1PJnE7fz z76qe!4jTfbV#I=^S0C9BF}o&r6Z&F+gq9&~X_i0l!tjL8z^C zq8@?;P@SE-K1f+CxJ1?Ml5kiyh<8rHiY_{ zCk!rcc@1Zj%^(P)FflY*&%0y?CT%W4*us^I#>jTk!=V>a!QVC4%$11NB{;*1!JHCeWA+L>*8TGRmsgY zNZOo~aPETSE)jkLq-O?SwFZny=|#k<=Gs$H2$}JeD(OP*dAzI(o$2{b7p0P)`}Xb&N!T2Ngq%`<2^bRN_a( zKxwoaZyyaqKy$k~S7K=jZLa3sO|>~hDBD~_pnYdM(N>B8BLgjP+6b_)^HwX zsyUK%PLIVA+lUg3tV9ESSM;%oBHSP@SSu|DB}bw3DgmBgga?>)P(C)O_Y|~cg6xrK zW6a5~9^tM?CN`<@vDFcG(!qGd_!{7$JKA+ZaxUtGVkhY!+FWH-S=osyk`}aptzr(G zcYH7m8$goC1lfi#+#?$sYLHHv%jB>NYH!S3>4uPNXLEN&uuIO;_<>5F$VCPRXt(a! zV#8Z6)Ga7dddC@WG&SD>)sMz^rzYe)KEk+y9q+aFf0E=!FF5VJ315UQ>T61@d1%ab_Wnd(WY;F`*r1s~%DdNT$1#Dz)@B(6p z;N`bYM?$3yUHgntkU56;lbM&c8Wd8!e4qphWIkqyM0td0%72PRjBMpfKE zuben4YV-m`m!2G`(xS%(8Reo85k%645>nBF7t? z7YX-LqO^g$Uma06bcH76jQ#9a*;>YX&qFoBLH*+I*kH;0i__JkyWjKpH}~z?Z=S#S zBlz+@heP^_9~TXBLb<*&bcC?9LB8CDq$&z#==&6msX{mk84`y;Borl?qhWbrJt(_}c5hsIwi|6{lIyItsp>e3y&4M-4l zJZ<{4ny&q~1VE6&D43}Js<8n#T;c$D@bQ0+96<(t##7ly!38(WA28D?&HY!gODZrM z#X*J>off-`xu^&wZcq+2H8q}IARPe1l^B=ez`Zp@-vu99o#&JpywmUA012C<9eS&<-BzwUA+1Pf0 z&tsRbhnEE-od6H0*$taOlt$4&ttl7PyqW{fb)^RB3WcJJGZo?TW8%>SfkC=PWzLB| zbHVCTux610@sWC;02MR9#0`0tU{dZ(%$B$1WpVjCh3P3Y&)#XaD@U3TU5t0V`@`|~@nBnIT2xNjc;hjjnVTc>rHMNlDwIV6U z3soYW;4A9tDbcCWy8jZ2n8a3Zq(>w<+F%5?PRw7Niy!UDSTUVZBBmLp!9*QawAc;Q zfV0T#X#r;1r3((;0Uj2*3f>Zr^x=v#`npEVT{mnKOo2Ao{dol;SWAF1SXlx_K4m9! z;^3rr(1_EJfF>Q59e5bCin}RW4XT5T#fDY6cHORqp3X&tK*vwJ4oh~Vuc$w)YS)|8 z4V<9}k#&wL@+b^k3S#PGUKwC%wR0f0fR*2}JaZ?hTvt)1`bkAj#H5vOeRZhA#uUcT zVeXM3lt_tbQ`b&x23T~NgY1&i4`vapwNJnfdgi&cQTwc@z&seBl`rLT!RX5?LYNKZ z&;iE+O$)K1sy<*7Hw-LYH);)y6NK*{HnIjI^uv@FR~ukmEIgtBKkQZBypybVj9jG zkZizJH0T@a{cP(mUVUlb@XL-&L zdfjoDOB62Nq$+Q+%?Kb3u45ghrdS_MYY_Ebt}8VTLpp6l*uR^%T^~gz#F{rjldZJS9;9 z7N9sHWCj4MkUK}fp25;1n4wev0GW>+MzL^E;1IS1F83ONql<$}lBD9IUFh*Gyw_5i zU4w+ih@1ihgb3SQXrEZoUdn)Bu5SV_?kX)f?S$@-yIdi54cJ=G#n%L7d&ue z{7x#8JHl8X8gS$WAOX9NO;mgmWI#!c&1-n=9TzsnA#V^@!98j~87vfqx|yk*DgDwO zGI=s*8koO+Z6DrgLvJW3&gLq365}UlhHQTK*QQ^4benI=U;gB^H-PuB-Xg^Aw=EQv z+2JGnH8p%cK3}(&KfZl-?d%I~j z(-OUD2Y;)_==pYZBvFe}CM{v2p1E$LO+Z_4N|MJyfuP%iV zO4%nU+K1yXQTqB<2Zheg9q7q4Er+~F?jCI!qHHs?GfFAcGK)IaY@=~BEl>9gK00kDfMqP-)Pc6-1-v^ z#~oX2Q;$40|*uxCR6Y?xK6M4{F&JoY_sp+F7J==T>RHoYo-6ULln=mipXPg>rhaJ65 z9mHED$`FgSSA%L!#Vh)qLsf1X^xP}jHbpD4E+m6vexvu$Q&efLt*x0|st#cSM)JVSdn^=igE+6p8Fa(}D!6gcm-sx^VMr|^Q}J~nm>b9gyVw*M3>E0G zs7@!}goYnm-V6ySAQsC9_F6_jREG9Hm~fT%QlQY5h(j3?fl|E-cFE3Ui|~6N`FU+* zU+}9lC2DAxtD|`vd>TPK6!)aFwN6F!+C2`Ys6xTT*V$#<^L15dPEgiKb|D1l1jK}}m#O#?yhRC&XeWndYI2n<6b;2( zg2aS{IkgJOK`NbCphv85W}%1;B6PZ$*q&6}6R-pBE4JoS=vws_*jdhwHit-M4Rr{# zdW(#mn)iVbf#PCFidu&|oGKof=x`=;w^~t_ZhzZcW`qZ9KVzYnO1P#ftiTfFa+l#E zxA3#mA1^=gc>g3?McaH5 z_RfH>IJ$BE`dR+LH@|WEhyK1V|H74vg<6BlK29fWzxG!@{cHc`U-+}%eD{9ZO^Vr_ zh7X>8-#_P+VVJQYjJjkpM#n~_ue+y3|SG?>4O*)&w%JFei>l=8N5li165zi z64mh!g1i23<^7Tz+>OHcDYpLl&zJ5;N6If8^65GNK1!2vs|St)P=YKBI|AKs=hWex zuRs|T<|@plcgi9OYH&ytuPzQQ6^Sg) zqcsUn)CTYKNQPDp;eX~s;z(cr9>Oh*zh#iUG+c-pgoo*<&x#Hix_Hr=T$W)_4UIg@ zstbmcX(Lo2$nH|P4YrlLM@6+QkWCfRQN{``!VD%+2Q8b0BoYReZ=@z91c$Db?J)uw$Z`ECKwI>>f!S85pZ0ca}MDLpdCgn=2Al`dXYx@8e zEw;>Zyw!J90rKNeH-8zK>)1pagvOgw3HFKcVwKiVi-!WwRFC%JhSSkCAkUmRXGcO) z_WqG_Y6cRRO@)>L#w$Z(nXmxtfwdFD^ogUe;ad#{n6bzATrA;N%juavUST)LGp!vA z7p$J(WDza9Q45ws7>;NIsN;ipGy_I4mod#~D}*AuMzny)Q@Uy?Bdq6x%{>725QTD) z|1n^4ECng@+d;@E+^Dg8FRCNRK>TOe)U%+-!8JVkkv{keXh(9#iSKKJCsY}b0iF7h zKJ3t0)go2uVqNpk3CDCmEQfS1ZE@^gE6lQZFB#E$2gm>W*Yk&9%fO%XH_aK2c zYEhK(vsi~`XmP1-B8}1cZBCEM%Qu&g{@K@mYF_cp&(uHmBft8!_ul>N$Jd4OA@b)O zffM%8+qGbG;_|U^GzxE+?s}53DK$BVb9krCjrMb-$(<|vDgpuX=H}uCZ4Z(6J@!%x zTOf-qbbBR{PE<|Wu>je;E;3~gd=lk+RQeRk<^rU_2Tt-&|hGq4TMrk62;F1d$ zA~qX;HaG}49Prc(th9xuG0a>8RNZgGk>Pk;cmv+Jhn(ijiV);Q}G)XZ1;i69)iEy|j~nC8rsg zdVYn0=MAJy4rpwR5FS9jxjhQpUZN1SFo2_gF^hLE=fxqt_GO$H|8%7l+)&|`1L--fNbtX z@VSEoeetVz>s5H|Fi9J9t||~LY`Te-*vlvRr{DYfcYiV5*N-Cr++cnbmfyNUd?`Qk zx$XQlzyJ1k=Ls9&YWU2DFAt~f?)Sd6K1!CYLgwHx`BC6}JlPvI*#`ZJcb)KeV(52D zG81`a51{z}{YQtT?7*iDkj`@J9O+UnzVKs|8i&7%F|xZP;!twSloe@nn23U66AOY6 z1|uRdPJPMSrI-posqun02zMzmqBI4!<8<~*uhYni(+?;(}}C{27}uyJL5afQ0CZ`#_rBU=+1qVwuX{1l}nAuGeboRe9pGl z%k3|OFW+zVF_H@0JQ`V+KhCg1U<`FNb}X$*(0+`h-3okw6-aRH!FmnQLoYvU75j=wadK1+?Qkoq zoOcgunVDe%ECS8fTk*$`=*6U3=gyllF|uXA;mA*Fdz?3qt3>+7+_6<&TrsT(2{m|H zx}858jsY$9a?4J%^pt>%yV#>8hOwgaO*MNeqGq0J5+t@KtSh^!lt%0q3^f%PP*H(g z2rLIPA#)kE^_-nlI-Z_s1E5|AR&{eB<2ZbylZ0Z*W|Yh-AESio;>0>eHn?46 zkN@~L_Uru9zxDZf>5)dp`u+OsXOYt+Va0xN zYrZ*(YHpMW1!Wc_Nenj(01rI(rg+!M+yyIJMzvid1Xr~pwEvO$?Zl|+voLMa}2IzzhE1%g$9Kicn*Xmr*rSny_{>mfeS-Rm{ zMzJM0F7RM>9KV?kVgmJk4iNnpj1Z|jZs1dEGOTQ zLaI@i3zwd{(Pn`_+|F z!fU5U(Zswd#avuWHiMrq1s8^P;i#Ogx`>NlhwWWo_VBBAxG_)7&aqXQqD%067hpst zY;tvr^%Gg1p@|_wvfPn*bZxD^3UOKfd|W zkN;a1FE?eAI3oo;zIa3PN3T8o6N|>rJbCRJvU0&U_@nEWkEZr!P&dY(aa4&WIazVp zOwhzL%urRj_U}C!L!k*bk>Ld{+W9R5*8+5i@2g~UfGAIF6oZ2T?byHeh>lDfQ;8eh zefa4(fc(X&E#wk^s5UZKe^@188PQu8{sz{>EY)6@v7Z_TgR%u|GteZh?kbzG0tlN1 zfVs5df`Rbk%M4YW(Ndz@&AP+h1VU0GSMh_7g&XdV{0U$FH#$URr7gz1F(Mzz_l4nuY+CdObm8CYQBbrJnc=5dno zTZ97hBqF%q+|$UCJGoClCG>QMwqUvS=}K}UHHty@s0pzEN)2Eee3$IgXl;|}R;~hC zaWhA98F>Y0l<9f$az_32@$^~o(Fy3kb;=SFXa;lfhtjpHZ6RmNBCZbkU8E}rF zohk+>Utt^X9y`-^;!-C@;TRbEnXwk?l#v!uyHwMw4Q{=PYMUq=GZ2}j;IPtp@w}j+ zyT;8R)JtlCMnn);e|Bw1JAsT~cl4lWn}kfDOXG91RjZ;>BdiT2a%Z>aQH9Fl4yTVj zKP6Upfn-#J8kg0;T4@bP9WR?BykINviL#JaON&^9FTL_^DDW8`A+>A9ts=)Uc>}J_ zBU?j&#C5UuqPaQ)+whM6FeIhJFPlB;B14SIkjM?a*n$nZ)ix+iB*2G`XmX(;4m_X< zFftxDAQw!VNa-nqq*A15_aHdQWPt%R5}03NlFk3ZSaC3{LsM5lW2VGJAeO@yA@qPv z=RPbNzl1jx!vwNdTZQi~1|LpSGw^7hILKr%+Dab!VoL{Gi#z)Qs^UZo1h*y(>9{jw z3K!l=h-xdYjaC_Ntv#vAS78eSSTZOW9zx|a?se*MI^u~ z0`C<>Lc>x_1d~WhGS)H%Sd8FWD$rY|R0J%Daw6-*IpQMCS9Snv6$9uJEE|eYiv_%Z z^(7gDr9vF4uO@-hd7Tj)v4Re;o_`w?Dwh>05Mi#x>J@BH4ry(+iI{X=ERE9I2!_Ia zxJ5XyJ_UVKQ2t6s%v2x2dcOeo+zXx7fT%G+Hi$d#&WYxJ2?bm(4sO`UE*%6`E+bGD zMu8C^Pg2aib$USS#wv6|D?JK571)DW)`}qZW|m9wkl!9n&dsq>tiaT3w@-rWN!GPz zeK>mM=A@uG37SP^B(Z=-ln7A<^CF=_jJbk_%BiP&_k{JiPCL)Dw@M@5aSu6h z3g&?QHI@^xNCERfR62F3o4dhhcX8c^puvybvBH^4gLWjVNJTm#y{psbzT}Q{rpQtt z<9Wgd-YHPyQ=kP+F2H7cF`_+8Dqxw&36ls!^#WjE|NPP+zazH(FByXGpV}#x@XxSIh_DtN>dXgk`Oez#%9CH)#$tbzpXb zzzKRm1%1pe?nQ)VH0IKlA~uB>oR@X?o+%)Eoy<$&G*+&ZQ6?od5b?ES5*k@Y6dOU@ zbVT;#^3H;R*Owk4O&7EwHwICi8jR{M4=22&k$%B^hRb5*ZVOvW=PfMTb}Sy%Z}x4U z+SSA`w8z57yH+NvAP>w({-+Drp^`Wsfu|{Bqw@*%WEf7L_A z&|I=2h*fXs1r|=PN1q^f@}l}-A4ueH-XKwsbSdt$gezs=`E-Zf$z7!gOhE!87-gP3 zQQUiSgqeIG#!^KcF>dS z09`aNU)CvzokB1{fV2>IyN6eL)E=Zo623o(;RI*$;_nsQ&GGq^w%Nkt>EU)d=IMq9 zMy1bIkqR4U>vZ6zP zKG^H@fkxqk?i7>+2yE2$5@6+%Y<$PipzL=jjhx!+4jXTzqhcii!Tqw;5S-?pbQl7J z#~2;q%76(QLHT$<_eskI{=n|z4Bbfho#>%AA#V6Anbu*bo&9Wf7#JucgxW{CFmS0R z#;zXL!nnRvVCuyL8b`QtuzBszpk)xo=>WD-#aA|Is|e;w;JEQsf_XAGpfYnho3pVX zHh`207XdF)4Rtd$oDcck+x162{;gkr{G)5wf8)*er$7H&?|$_5PkiUi&@h`vI+(Vz z$E59`sdzZL1rU*lSx z=Bg^O7jh_Mkb4&XYmMO|CMVYh(fZ%Sb{x6oK2x3qcWJu6i_JZ59qj~_{PZ2noQ3*ms0lfIk zRZ9RJc4~5J_7T;3e<@Y%NW)`Rp!h;-M5=STIp0v4dE7W2lEkP><66%^N=i_mFmpm> z0QmqeJQtWNRFDT1?Ab)61&-1JOd^mjCTNGSF10)Hv@Oz-S{=>Hq&_f*G~h0k)Ug{&+!OZQ6s7c@|B**EY6`|1tD@D1XQ& zP8lKqTzkL+1ruYlXG0e3Clp7EE&)xk06XFdy&#@}>Us5WbZ=N@J-_AaV_VRi=vQ^%%mnz5XM&_Ix^ge|q+vB;R!${pHTnTN)I0 zkKJ=<^e}a|X%G)V8ik&}l%P0FgtG^)CU+)l&>)^1rQput8T*17WKs7jE4kq?b)!xk z*qJ+Q6r~k94-f%^3p*`fJpc{@Pq1Ba7AMC46I?7CbTZ0MWOa;jz?3O*V*`{|+P zjO6yGefFGLKg?Db6!i?4Ny97j5*44m+W6E8SU*nvQe|WKrg&SqAnk0J2WeCy6amGB zrvz_&NrQw-HOQvyG#hZF2+si(+HWa?R8{y29#jgabPxKpUb0?okcPp9Ah}R^fR775 z2ph`SHg03w9D^8mR8I9lbm+mH@JG?DY4v!w&BsNmO{Yz_VpD2U(zka$$K`sqsG>j| zD>KDIRwBiV)hPQY62(^Y<}s?yLJESxFcRa)V~EqJY8~Dv__uq@N8Ve`d+hJ3BnxWc*nBzpFa#wJ21ZQ==f58W_tSSOBk=bn*Y4Dm5>!^@*COscek1k66V}Z8~OkyG}RA&S7Xp;*7Gvc&--; z0qw{!Wn0}JSZDMsEdu5iA)!|zE(+N1Tm@iwudP>WijDW`GLLeZ0ACy0tpX*&q$kC~ z_%P_iP`&tZXG)-)1P>U!X6PXT`W@IBJa_~axXl$}&L|suIS!(f2i_RxPaLTNQ-;-U zPI&B;DMC8{M?kp0#JrPPF1)T5Ry95oFwv;waaxO*Qxl^b;4!iPQP7m71Ew@WELhxl;+6QkQvK|SGw zkEQ4zyW}2RXuhpSWf3|snEgI#j0&t52e`~h8L(lLfv0Ma3DO7)h^SLfO$NHFQ4|jD zc}QhcdT79+EAgu;yd%(Rj|H8%%0%S?7djc5ugrcqlCO62>E6pu@4kTN@0RkoNp!&D znG0O$sW(tK72LypN=txx&CUhU6+VA=R}T%*s1qLwuDe6x!D$s z3!;o9Y`LWQQqIFwhGP9YFC}BG|MbUP(0v+^Pv`wQ6qiqsPA=zvQBS{rdOsiZLc{qN ziC{$VPRlxu9`afq-aug9y;+qF)kL<4G|&hMXvV>(4#(y)s|B7yJ9iWxA%8i2#_-i8 zVwVhL_ovqtCOno18jE40_>hf_X4KI|ltzZB%yir?A|lAaiL$-$_{RsWWDl47Zoyx6 z2|zR|p+^ugm&J5#dRO$k$!X*4ly)`MH?IJ7H@W2~ zbIgvI)abQX8+^v~DgmIR@O2Lh61m3s;t-nLXG{(4Ahy95Z;5RrqQy(~FbTyOP!UaZ z_0tYlO{Cz3T3TgFD1utt17?~8cW*O?gc>0-L;S2s?8VMUM5VDz#dj0QdmxFNJyj}# zOb!k~LO{F`tdPYe$zran91L=Yb97^&sAM8%>=VivHUW1?n0AL{kgp;(0HX&5ZOLt0%kvY^D)twm_34|j$YUIQzs0peR zsj=6k-eyjRmA9tGsg5(XXPXJicchtdIYtjG4#SwbZ)r$J=!%7w#^gluoI&m&Uv}cD zr}4!CS77#dFXw`JMou_YtS{Xr*UlV6o&?)a4Pp2D1HVEiC3WY+XXO+_B5y2JM66oLK4GYqdX!Eb!fUq)IkB-f}9}% zT1Lb`2e+W|_m0D+^djgEJ}sLQ^jiI)d3N(^x31HKXa;j4 zGu^iMmFFKkUXOq7?Vr4z@kf8;_S2Dcer8?1QQ>7=5Dd^9MWqA`ky$bG=RxD?;qLlA)98aM)2W{V;Fwpnv; zL0hK7d+|~AjYeIf`d&PlH`30uomg{u;i|%9G+#C^JM6D@yLBzzq7cN$(^cByP-J3G z2%F&xHV3Vgz4#Kv2dQ1;GU1y^^W*CIDjard$986-F%8J&fbAr z^XgP0#jB0rVHj~JbFQ{P@s2S9VFlGffpxo1VE(Xdzmc)D1MI3JUQ{7UuHmr5Si3JY zM8o+)EI^7P*0ID&e{<^^#l>7lfIpxaYz2`zXsZBweA$uCUws~SvMbmgJvNw%U;vsH zao&%$Wg<~?hN^@D6wG9s*lZAiRUA0>Vs$A93t+IOFW}!}diMg8FR3$vI@CAGQ3-mxNOB3B#;du=Lt}`QfYe2trnd|dZ;biIBm^<`bWU<6_`w21 z#~e0{&nu*-ainvpKcr}4N)ud2d8R--ReiC_)(GxLyP9l{cC&*5lVZpXx{nprM1`mE zci`7Ss)z;ZqYh7=EOOh7pW}C6S38}z4D-QL^7UzV|9bO)G zr$^!b`hNGP-}}aEsgCtH)3i+$&Ai6T+gn>jz44*TdqjARxYt#fs>%p6~G zeQH2E!8g|+awXf2%kUX;jll9BM*X!$coW^Mhrj9h%NxS6+2ep2_0$(9*>z^OdXSRX z+#=Hn%|RfLhk!>+MAry_%~d!Q4VJJ@K5x)09t8n$mHN_DWPQ}V zFZzM!m!K7(whoEXa_J+U-XDX7aX*WH`llK8aLn z+hFVQHwJA~5kllEj9^v*(EBK@WMGg8jbrp;)LSKK51q=~DX@x?dp4m?a05;VwfmXM z1dp&nL=0`^^%~&>Yd*b(^&Z~Hc(|cvl6w{^tc}EQKsq691c3x77;qO-*Lg2>N4%_X z@S<8zGKx%MZra7uI-xP;G4U)M+z1OXftOx^0fKG99FVSE?!+oU+=VDAfmleOfOg5y zP4py;6*yi(uh5PVUTSlw_gp#=RA4$2%j?KnSI|KboL7j^T5yEO4q6~IfoyoWAwS%0 z^Uw?sgvKim)P5ZLZMCj}Xhj191{e744R5a9yaoDv4HcvV29BvqrD z+t9~HRz8)13s(|sk*+f)Iq2$!US~wusmlquSZb_iOh~GlcWi^g;4lO>V2f*2hv2f^TiU4}0-6Vca8S&N-Z|~n1=$IOJ#o=VLhf*P^V&S9DlG;{ z?v1?wxT5ogW1u2{c(zo$1@IZ1#x#99+Bs*Hp#Py|(}*u)P+ls9J%nI8XS;xoe;?fZ zbrAexi2aAB4lyypVx-|P8`S_50B>F(!6k}|>&TnR_6n6G2B@zUG=Vfx2PPES45^Ls zkqxP$?ufcPBJD732n^opi4caW&%V^2f1$2ZRYNK=ih{WaED8-;Iee7U%cy6#VJiTT z4KTl(BwpG4*y6s0EX9K4W~Pi)nG5POy-w|me_0E!<=gLtg&;b+(&!$m*C4(^XGl*t zgiqK^taYY@HKL8OA)!Jy*`h8x!t@LTYkJLc`uzLlNB&%By2q75aej=Z?R0HxN=t$X zP6;N>6eiQnV)wbM5xbg$DPX}I$k%6`i%g3IQ>l_R%`ZjjlW;!$>hF@%n=Lo18iH*m z*t!rGhoduJIfgUChp}gJ>3bi)h7K$gAPBEGdf*r`x?e{w1P_-##kiEn!%`FfTtB1A z!5|)Nfc(YM1fo@UK@5KRlCwr}d5xyR{qWqeK%P2pCisn3&*X2B2r1r7EkV7hz=F!= zv@(#A1K2h}Ly77@4oXM5fQyY0gB8eT2}X4Te2ePNS(zjlWsP$^Hnf0z0IcU8bZ#qq zP^`h6rLd{3_u#c(rd$OBpbm#`2y5FvKgHv==Ct0-^>r1%Lx6(j3b_lx_?ZskerOjW zK`u3lR7^*0KSxsuf=Xr4R6;+OKXmF>U`q_|uC`7{uSqajf^R?mT)%j`J5I0P9@O>m z)rX&*zVqb|zWXP>_VPEs_P1R9@t->X0AZE%R<@1QqPyH)p6ko=>F#v=fh>;?^BY%T z4sO0h;aVz1B^6lnTj2UycROG&tHJ4Lloi-ROy+{BxL3zs(5N^Xno{RWl7pnPFRoT> zYSL6nkcozY8Wy;$xLUL^tP>K>#RZ7hY8Bf{-)E^AD7+^1JY9S{A@4-4Va*kyhDAJ{ zphQxV&jL3AHOnW_o67EtSY;nNx1A@PcCJl!(PhG}!dH&c;6;RMpB%leh&!Ljk|72F zgeN6pNJKlPY8P;d#Exsz_A$ggk6($hqVHafeo}6uq}uN-53NPP{;(H zRjH2>0+hs!-ZeLzS?$%zNaM@oWozR8stgQ38xpzqV?Tu^C|2#2Q`<=MnCYiq2X>2c zhG#33XKf?91KKtFCOo(+!Gpbk5Tnwd+HnPzXvP#Ircn2KwCKTTbu{Bf7-h5gtp>{8 zQJGk|-=)8TPpGYjU1Q|wf*OYUu3f*6==MV-o@WJuA_ApyjG=>`C*Err)(OimIR3;?26G$fJt3lY-=7_VTNsfz2 z_3VuI8Z6QGZr+?8ih_{U0t6l#w&E6;P!T0EUKdA64lwwS~WT_MF|R62Hn1aaS2)F??DS6U~@i|5r??-2r^@SoMHOW11*BAfRC zX9%^K%fczVBaiAQ!%ZBIu2B_^V&b44k9l=D+PYIOuFY$d5(sCaK9B_P-f>c0rRPyN zu&kbsR+8kN94tL=T_rO2cjH1X6dk@3?4q5`L`)Di_xoNU+0e`NYe$PoYowIu1&}+l zhm$HQIimYw4j~1Fz_i1%O?nq6^ICh+u_&NX0qLpgoYI0zOsYNL)GmPVQpuY`S2{i- z!zR*A+<;!FTdYrk3$R)s)~Uc_f;OBMc%rxyOfI%zBkkU;kV16u4nWXGKtKdDEt4rr zK4S$|@~Ap#6_A)xJjxbDWrExtwiBAVX3UFwljoCs{I&Mt3rjLYk}fq6c5`Kb?yBaG zBz!v_e$ez@h1#jwS4j@=T=I{Y^!ym-fv#$2&;+~4JMSFGOxqgp@2#1 znF%n5o6tOPj%!919T|WF+#Yld@F)ckkvaH8y*eiBm6EkHJv29v3IUA^QWF4UoC6p1 zzkG_-qKFC3;C2|Ol5t>taJ)h=KGDZEt=O^ss;wXcF7JgZ5rg2`^ON{z5I66v*pqm@ z_}<-}hxPeG{u?pXjc_4RHxp;$&?M+-1k^h^1vmyZhYKWLsver62I+g&2jmqGpuLTo z>fA9R`&=nq9Q;AtObXK7`Re(xxoo?8FVwNi_YpX@F!C$}J>uLrmA8R4-6L%Vf}QYT+F znIiG=8B)-U8etW$5T0np#vkfgqQWD5M@tCYTO*|PbwL`!BEiuD(nRmOKuTwEkwMTN zIC4@VaDVI7f_#JSAWz-5!Thp80WC04=~pUGG&xe~>5{s#6#B>Cs!T43Uuz3!yGQk|NH8ehCrsbeK-q8&k8(1SB;ZPH((6U1B9T|ZU@k^pGzs4nn zI&cIUr8S2-65#0HJ1~4P(ZFE%1(Ye&DI4I6g)B+E3d&*@Ixb(b;!LheiC_BUdx!1* zm*4rxUBN&8(yVPNcEXyfwt6BGwiMaWW3C zK>{F3?5bnoYV3fqI*L<|6p==5(2j2MQ8!&NMcE95?>oXshU4pNbyuu{b+IsOGc3hJ zmLP1?;t}&Z-qSucy$RP2})TF@5{Ic zNwZWIKoB5QYcxiwGEsm4ZB`%AA@KFxymNF$xnwO`k5+FHk+u1^0a~b;qSDY76J>xa zkOR;~W+}8Yb1_ehI^3HA*r|`yURpNpQJX=8txAK<$LQj^(VGZ;OiDAKf>dEK7Kl{x zk4A7U5~J-~iv@*5xuoDYP(S+7K@F5-s6>|w!b zhy}6A-9g^}Qn`I&!@aa7k$N(d1oZj`@$duPe}L%|*O%2b99dv&_JVrewnYNvT$)s( z#B{Q}-dU}Vxqk2aX@2aFzGzoZ+SH_G%8qAwO>Mr}e(Xp5mw#nqSsB)|$ zV$(DIywHw}m7*_rTcwdl=#@w+j$muF?ez) z8stbgiJ2SRf{S|3N>v5er_{4;82kjkbOccgaL#UUT6IAn52&2gJ-A0mP|4Wu5odX8 ze->}~WYXlQxiwwHwxEkk8v;`w*6t0XT-~dm5=Mq0hUm6Y!`NR5d)wt=h;iZ<4L+XL z>ScNq8S3=l)v0{XqJ4e_3J#^Mj0p?_@HNea4TE|~0xN7DO*9i6rLjJg_8Ha%O^_9m zDZdLwc3N|T5CBarTHOSdr{&FSL!%sLGJ&gOrLgnjk|YnK=~9gndb#G8 z$9!7L_3rL7kGDB^M~aJ6V;-LV?%xlJ+8cHR;uXLM+j|cY^j36H>A|B&MQYPtSF&WR ziVF8Y6;^FMSn#kp-hcG*{tbWqyN{;Zor+6?NPP2s{9nHI@*nwK-~9|8wQ&CMwNG^S z4jRk_C!cdL^({M8(sT%qcTeY3o-faT@LX2eeeeF>&0pUkip^0b)rNYmZ3?ZDA03#8 zq7lkXG{lJMTFMbhno|=Y<$}k8w0UE~O}&w%n2wkhcf+>1M46IoNy_3Wqh-SP$&1(E zRuK1M;zgxB65S9R0+A${VCcmi8zL3iT@_69andPnd)&`{m9aa@w38)zpa@uDR~>RF{US`4Lj`Dg36KX0Ybif3{%qtwlHPZks{S`>h~st@uPGIVxwUo ziV~^P8BBl*nUI6y9>rm^1PV+h3ipcoUVw$@3xO^$090iCzE{Q-LV#+5Ixp^>ms%?C zLc2l&w%OMk$R=T>bn;%l=eqhG*`N`j1&I<+*}SW;!4-vXWE--e&R~iaYM`L2I2#Dr z1Ogk%k)1Q09g4$(NNA9>xUmz(#483|5X%9WT}*a> ztT?amGqwK-X@M?Y57Hy=8x(Gd=0B5_ozT)`n4b8t$g}{$mmNHA?(9>6z;m;U@1Iz9 zufWbxI)=t$uQu4dk+sVTIF1pAim74aS3T%o>Dh`YvRl>0js zN#o9V;eIx|I4NY{inPMC8wN>0YBDqqQMJxv+Z3?DHxsFDQfiKg|e7-ZX$J8t~8qs-o^KN)u4*L#01IRlQfzDgd~-8YVcK zk>o{G1P@^9QP#QOw3&&_iemB6?TgR&wBFz|=a7>#c%9&YV%B(dJnam5N0hr>r zR`(a?%|n(NWi7^7`A1SOE=Ikao+)VKr2t4LSKXongSVcjfMW}@0 zy(8cG^7`^>+ug^oX$@AQ=Mru{&X0e9*M6h=;;j>=miWns@ms&;r#mlb%S*JC4yT5= z-@I71`u3OP@!R38*L9tn+3~rb-q%O(#`>lD=!wrKELUX>g0o&-l^^{v{L-&a$0M>> zNV06Wnb9UGN9+`Og|tH4>j74=nTP>wXNz5mB*%UWx2b;g_Vf1I-8;YbBUkS~+Pw_v z1Q|-STgT7%*3E#h3O&x;S*dbokBbDLpA;@$^7UR35ub(AH{aOyxO@EWXWxGR&E1PT zd;Pwob+!hSs!PDFw5G^=(0>U5II)b*#g2K*x6uc0TdtJ!=9XMd@f4sT>iRYio#}ulk0&#i$IsWX= z{>I<;xBX9kT;(+cJKgxQ@8xMJca((6q>4jmn&+4&jd6GT`eZEcULTS<|7pV;NMFNB4 zs)pg6y_4zQO^F?E1VN??UwEfi=WD`HGJF7R$^-?{1~rtSCYFS0?FjE=5Ux@PumYQr zPtaSUnI}kwuaL^dh=4I9!j&}_gbn8%Fu0-zJy{2Ycte>;8dFDcs0|^Ex+6*s3JSkf zdKLlh;0-$QcR4;%6?2tAo3*3+ep~#WVG|xZ)ReVPQigXzJBDnSxWW589(4*^4 z>LbyDU?^0V?Lhbc8PYniQaQOYsU%wRWFoD1B6y0A$Xw+auumlb=pZ^%Ob+lt#GnGd z2n{$;t{9ctAZ&`n9&duo!5}`+I6kNp23%Mj5FRrypz0`R!l)Pn#KJK+1u?p>P;sls zt$zO52j6@2g=be!?ym4p|Je6W`TVor{PNSgxJ67Gdi70m|8GGIm?^BxA&W`t!DQhb zo%()=e3Ax_BaLtB^(E)UT2`3TcPRO2n#7X$$*Lj;0Z-`NspGfzpWf)>-wl8wB$eX6 zd5EIgt1cpIS`2`Q$L4DiBZwsc&79suY|Z1OZFLt{fr#VVeFak}M8-V~MDRU7j zE!t++Bu2j@33eKyw0Cd@CN(1!)ikwYdv&ftYV1h16uKLJWq`NCpBosx{iT z2Nn)GvP0Pj0Qr%Ej>XysSQFhr*+al0sBmVtbgB@Nc`&@wCx|xCl6T|C5e0OxW(8MV z@?<6qx+5SfZE32XdJl^u8Wv#Oum)QMhT3zRxt<15P*Cq(0z&O5VyUPEbMEf($oxLY z(FxH^5b?yUCof31J|FS%8~WWZZ|h{!DFoA&Y~9tpO>ciUKlz^TpH*vcm;J}z-F@#{ ze*auveDE^8RvtZ;H{VG5g*8rq&k(C+S&!xXyuSDS_JePof4RmtzmUK3BZqh13;{2` z*FJd>-}$0`>8I~=fqs;O``PqrUw``R_{CqJULJ8c^h)+pdMpJirq!1nZQw?UU9p>e zH~aHNokiJdfL1a17VG@})#GnJomPb49$Z%CRXQtds95RAnkXb|>ybu}OfzfL4FpR? z5G1^+kFD5NgbZ1*y{{j>c>C!acW)kEM7w_9=CyHtB(H*B`{d=1eKtIb`xi^h`%^<$ zUtHZ3XvTb1#9gl7^P1Et1I2(%IH=apt~BQc$I7RsjgHxcnhY#8Ke$ZG>39E8eRTUw z>?Iy;{>|y*ANlov_9wPb@+0~4UrDj(U-su-*7^E;Gj;BuQOXMAQv+3r)+5>W;5+}} zIl?re;h!QE9jD2IQ#p3Cx;wIx+&~0^#UvQ+eb5y-5P9$lV(+?gw23I)fi=h)g`_f2 z>Or;9o-=}IA_Hwrs$&=1B)(P=D)eS3laj#18)1t=^`D+c5s>!{SP2Hp?u-=*InF#e zD(AM23T1+{4!LU5V%I@cczu*YlG{cdtD<-ps~4GGUX5ke(jG?e6HJNM ztMwhmVt~;o-9R$_ROP#SrwEdOEp*m)1HcQOgO%W?RDSd7*S~x7jh}h>d*1xyCRM6~ zz?--D(_i@3|M{=^AO7_@egQYYx)0}ieb%dM+oYP5ismW_vtun@BBoh(fM*F=;n+Xf zVK=?h)`HmGcK^xAqvj{`xgl(jY8pk8w9R#lI|iO;)|ZsaYVbr8?M8n9p36h&4|Yviki2E#j~eRJzB!07Qe#70$r7(UK01 znAu7dxc9(5m6`3yK>)#7eM*ETRVpsms0%9ZJEhK0PP5ZP@Ks7_b;<}L%4iJkVa@Fz zQv&gPy;8*C%AViK*<7wAX8~nOGn$k{*T64~oZ{UWZ@^V`zmYQ+hxE+LJ!}?)QA*FS z3N(X&N@VL^4JN#TqNMAEJipU!dZI1iTq+WL&z8KCSpB5133G;493nj6q;vo`Yzx{1 zHzHCd>LbP1$hHz7K`5hTFrZ7ti3~-^!wb$w73(b5?#Kl=!v!cPSI`9EE3}MIAq6Rb zaTsd(dtgBUkg=x~Vdoy%utj!_IRh_YGfp$)EK~Fy$6#nl?9=K8iZ3y{`Jii-B&h5^DJQJ_Wkj#9&BT3)5Q zT69#XRWu?Zl>J_qgq;^u7D*K4^+&o$8x%v00wgJx$om2^cpIp8@ zyNs-CVRARcO5;-j8#Yw)$m<)Bio11{xK{eSdNBol?WBS*w+5qiRU9#Es$N!xi-n75 zb3glTmNe_`Ski*8ee`S3A3grncRzog@MnJP{=Fw3zy9LUkADC0VPiBn^mkczbj)rp zm5;PRCcz|?~jEd009RV^`(yV07uDA>SNiMT`=EMCq5|oNg)Tt*|4=bX;Vb=64cz)5oox?AQq5} z*74>^#R6iG`v^De7oTRC0`4~7h&N7A)XBi+ZdpS>3VMCElQ7O4$dZ=@#o-W8!l*FD{ajC++1Q*wLIbmks=1vhU-?pkpJiC{zmC=W#@NsG1W{wQh|tRBu*1Qs9+6!fwh zjzJzObRc>$z*rz6z`MF6m%J`@);AOz*}^%ZRPW2ZBUagx0|gbsM*s-=9mm!r9{*l_>rU(kGwSGm*N3QJSC*f zukP@Tck!!VU4mP>*J*;xZBwY`Fa7ECncv!cX&%yRFF$_tD}MyO%4e?LK9&Y)IfyeKMlreQ*~9r%UcAuLN2l8lzxAj7!Sv|ylb`tgyPMbYw*A%% zX}9|?eZHmat4TJL6_4iaXTR=$=2zzPy-xwfJ!gY6Co>bEN@ z-EFJj+gEqrfAq;0fAIQeUS6epRG|;YRUH)3Q12+^5J2O$?}T${aNsDNkJX3!=v64j756+Li{N~Hg?7n;V{L8nPB~{YO>+3%Kx&NE#m%j6vKkzH>|K``D zrXTr(e+qSxAN&Y@?X%dMBj8(av;VL@fRat@=uIN~R2)zzR)uEXT z?*D7;ANZ;D`F|(;6~ECQXT#$Y@}Ksf{Nvwk2!f@bZZvYH3gZO#`1HIQK zjr*$yM_gMxmg)I@zCS_z_~h~FwVU;7I?ZbEy-+ggs15-X0q?;}1_|c!ptV$}&=0E# z`id>)9XUp5pu!9UfI4Ue0_QM(efma-zF$_NBqK%{N~^DH~f#k zvJ3CxvE!7WX?|%>K8bHWwiNw7=xZq7K{+C4S&Bhro>Vt%ies{?6*+3%3l0%Ub~!H3 zm*rfxk5AYp-K7-8v-nN);4C=~WiCf{*%*t5q86WKk!xWuASKu>-}g#nexJyGuwbH+vzp{02Wo%|)R9)5l-hk*NA zQA4VpRxX>?-4rex}!bhfr?Zq|+&HhSoB>DMQ56&F`hq-TlaaUMoa@&}$4gy|K}!rP=m-b? z)(WruRys)C1Rm)d`-NeAF&fMdL-BntEU)$H9vXx3piXjP*Cd$l^7& zEh_(#K5kheNY({LNgJA16EBzvV(}3Z4b_A34&$1UqCtiemSun)oVnfI8|b;L4yS4d zk3oWTQaCi&sg)FxVXn=PKmY94*A)N!m%cb{_@%F%e&s9g?br0hkKVjm;Of1lcp~Az z$Wcq9@V*iY@TA)f!V0-J-wRYkJJ8(Jwea~JIqSB$?KB*uE1$F`Ml?SJ&J(;AdlCnDJKc?fmu<;Bv zQ(P44n#Gd}s}!gNPz;Lh^uoShO(s!gNKi-EnyFkth3XL!2eHn)OZ8rxoYrH?x)p=M zvjXnbVwMejn_0ZT+(lt3EX(Rr`Bbe(=7V-7bM>B69Twq~_r+C-}hn}Onswj~DWzdHC{LNZcBm-@iVX+8`O#=}&^ zyY$N#K{J7cPF&U?Xx*6i=%SDj8HRB`=9ciGI93&M&RH_uH$nD$m?RQtN9-3M(G%b)U`jy{|U;d@@X*ZeT z&0qR+uYLc|Z-@Q&e(&G*@~zL|Q7muBx*$AX&ucv&66ii$qBK=3mZHn!tcN#}e&$Lf zKl}cB-}p1X_9y9*M*zB@G(b2PAyQ5maQQ{>5D=GEf z42ra3X>fvUo4(?b^91ou&E#B9gQM+T8J&3Vqu2BavRY<%Mgwf|>AZWPAH3MVfA`J( z^N+UATJ-O2{@Nt*zP|IG#2PL8H$Nk11%u(Sf@2Rd94_8*4}D-%^eT2jCDjA!vO5E> zZTQ{x=dd11c>MGV6YJK$`={<6pY-{UJt|ZbC3xo@>)ytpGX^)8D()B~I&{rmey5Vc zpN0U*D}?!%k6wNo1qcH!C}fh-)C+c!MbY6s;I+~UnW(L8VEXJ}KB}86F~sQ6O&y!6 zavnN-qc^M>9Ai#K0NvqKwJ$ktSVe<%8C_>7j>K{1DkTgm3|4@bLM5hJbVM?#RrlSg z9G=}z$5T7E<+bbO=~bPgDFSR#CE~_2yl4mcL}2hb4#d9-WhKT3#{VzGNjy4nyFf%3 zcHx3230&upRjL8z8n7|Md5~~Ysaw_a{>}9ZZ{6MGil#noa?0D^`}2R#)y?*^H#fKV z-eZK%{9pgg?dP_uyZObl==WNV2#`3TZhmaO8TPX#KF>Kz4&kx+6kvOmz2xeWb^rPv zt*y_OnCa^{? z1s^__!<#rf^6gG^^LpiG)ZwjDxHtw4qQOQsI1(4ch9;O7v54|WrUE;oY+jPYJtD&w z#i;oyOi_8+d7_J#%AYSBehC#gH>5-eD_|4yg1~&YP0%u~45t+hIPCynUJz&aS2mhf*!8XaV&edTlN6RoY-%V4!8;>Rjy%T4#SKo7l<>aI2aH)e zl|Fzvb@*j9CITuDQK#MuuCEXx%Shhc1XCt;`ZjR+2I1*0P?A|;L5zM%GBew!s6_F? z=}fSYr%IMVMpeWjx_T9~Nn-H50FkRLIg1&0XEe+(MdSwWS!B|gCE#=paZlo9H}5gB zNnE57c9K;bz>dGo!&66oyA`Y~e~I;lB0q)3|^M42$KB}UE_ZXA<9OQ9Cm)l{%u ztIRSx%GpgNPRJX<8vqnB2)Io{!i`O`?L%fMhBIhjH#U71CzP6=Tv4+cB<{3rhGCjc z?$WRXM#UN8!v0Ze8~kxAej~woP)0 zpZ{L?%C{E1%1`f~fA*jKM~mhk{PDF5?Yxg35u)1C&H^M& zL1eW8M@GeBF8e2Mef2N<+vJ;n>IdKXg|mJ9<)8d(rmOkm#eV%e`LkbW2Ps5t!`xrn z*Sjb2qZg9Qw+$i5Y91E3qIs`Zt`yPFUWU6W1q4SaHuJNY-Rbr1Rje@cE2IA(5DZsZ z>-E=Q-Cs5Vwf6afjcvYz(}@E>N5CttAme^d`h49-!?ZO{xECd;X%%yI?@gnKxCB0;0RV5Ua$DzoCK-E zGp@+9EhV(-S&Z7h8z4M{kqieI?+fBIebiwS->y6`aoht>GezmT2WuE*#AI}qj7Wn4~H~|0V*wio+%e%}{6QE!M}AULv0NbL8Dw0XMq@)CGcRV3YdOgLRZVn;J;uOWxHAljIR zymKRlA)l~`1W1By-b5i&ccvCH?U?mKfKq!RW|)9VihVMBR+=AifeY_-Df=?S3Qx@1 z9ik;57TzUvZ@13uoekv{VaB$j@l3g9!&xf}0F)8qk^w5-R(F?u!sF6 z?`OGdSfW2#BvhO#b`wb_7>5C2mq>`M58ADDVi|<)y~dvJRFE98!05ThJssGb#qkaz zOx<3f5jrD96duV@iZ~+_Y-eVd#vU7y1SRQHJImf+(LD`P0h%{u?McZ#QL{fmxhiOa z8l;V2{Tb~FnH<;~!wAvYwhAlkvQcUZc7Z@%Hpb?lpfsh_8m-)0BT8r5QGsYD&k3bx ziMV$_KWjga#hd3EfH2sN*mu|fMT$I^;xSrR5qx+A1wi7TMz<@NBsVe@bv&L8addeF z=YAT2y>>ODNuJPbgr_cNaf6pNuA0^a(luCO;&~#FSKvWu>h#FV$Ko4W_K*=`kA3Ch zp~8Z6nHPlheFg(fcfrDO@rPx8?@YNAc94zG58?U0)u|>{SOZ3^FQ^w zzJA=}*;kfd{fQ4nxBcnxh3Aiw0FN9Hi$Hel%mrJ5PaaF3eOfUE#}(|T2#~ph`T=n0 zAn?cqaP_Dz$-`M}ll8GXKzB5fIJ3}3VExtl`{3;3YH?}hi_xXtd8^zJMkpqGx^~-8 zjv@^?fb-uC1Gi=ZC49CqVPO`Z$4I^uUlTE~-Dp}gR4%f~1fbi?qy&nl12jpF(u!}Y z4rB^CYgDkJ7*Gq5HU!B97ghEi8Od@Z-dE)$9J-L{5iz0yVW~DS#aCQj|El=MrX=gWEik4Hi*yKjh7w zDE3t4n{T!E_GP!J&|~F$e|j6={UChi{jE&%lTY6J>Yw_*esKN8Z~nwzetzpJAJ@28 zDt7fj^EEubQhh^ZuoTPVsLssq9KxDj0O8Qk+zquAspZ|T{LJCCcYpa8|K4YR^u3?@ zEB>|D*ZIBY4vjzd#TJ;zZti<6Z#)j~9TSX=HZo*TfD^ODW_+?}tw?N^r}jybA6G8qdI}IgiYe?QrsgJ z*SgMAw!HT>xVmaU{;N)(|KjW4{!<^VRsWqI{lV|-`_i$%?b>s}iIE%APJFO*tS4 zv9H3U`weq*F43Z;rN#EA_3C)iR?bha?yj#+hYaV86iDV>UH0bpNsCKXj=3Q*nu^&2 zj!}7FAQ@CT_wd8dCeq{HK2A)?(xC^=37ypw4lOoI8fvOS>5klsNUIgZn8bS+`QDOTpSFQj)g7{{kXihFwHJR)Vt8SN~dFe~E~fN$OsTzVn;NjjWH2?J|G z5P*qvsq|vQPQ-ag2oo*33R`e6Y(R`XOY}W$cLtGsFWbU>O-mH@==mp{Z*( z$UMOt&J_;q4Cz2_R!5y7FDMZYvQeRr%!fm!S_w#E`Kk;jQ&T;4y3#p9h+i)Y5=}HW zoHm(>l4uQgdrwuSE4NBTGZ6sCWRkW+BK~0o+zE>^AOHg@vxtOVJk(E3n^0VY>RR@O zyM~&OMr;HP8$};+C6wUO2?HyaAJvW*+7!u<46BSNC3QIA~u{7G|7_AxanKZ3rK5+mvuNq0tm_Qxw&+JJA@u_ zWh<$B+^kkul#odFurYpQ?p0+sf98AdrBnOIfA817^p4;TYa=9!{~~=j`5uGgrGwtpxNz<9ir zODL{Y$Dr+wS-d$KEXYY{S62(I3tmjpplSF;LAq6)6-jKdb+x<;Ijb2WN23-u6-i=B zvS+81C)zxUIEKun#!l1+b z7llL2q1}d86YsDoX>6RdU|NKQ9g&lZQXCcL1j45c_Y;2YvkM&FLW;6hzj_(J^j>)M zyiTTH_~4hm^h-sL5~q)wcfl`R9LAKlq@kD%IE-4d~pjXbJrWB7gI=^r7U zY&zBbi~Hl%)$~q0agFvrc#qGXUjNOT-;dw>@&{l3)*t!Jul+S&`aDkYfB%2-&wbtA zeoaqAVGRYmD&twTN7N(8k{3~>$BRC2{Cm^21v_91i1+y1 zhcW)h&uu?4zkIWXY?I*SO-oJOgvfQLnISH;%K%YtCZ-5O!uRsXzg;Gi~&MO7nvW- zU7YB98ci@2GjBnR;bsIR20>gi zy{Rf9Zj+W?e-5t95oADT<6H3J1Iy)ZA};LUS6f#G=I5fpg$}p%;dtvGg*f*+bw1t& z1O_020gpP{w68mLrAgLR1T+2ocYgm*{mSpDC9SXFlWb>+Z!D+d%XB>DRwNUisT`Cw z$*%dtPFWam*wZ+omZHGG`9p>IU@ku$n_L3Ph>-CJ~hz^TkJ-@&mu=^7{nUQ z?8SPP8Zc3br?NZz7jp-NdmId43^N)o9}h6?y>M~R%0;Y0`Q+Mz`xKx<>l1EEhwjjk z1C2ulQ!0X|pjW~g859HDANjH}%z!jB{u+=t*e+G29L+in>&Pz}T>eUV2yA>)LQyF{ z>E+sbJ`3k8dT~=FirpzF5P1>DbmC*D9{Nz}oV@BVM{@f6Gmv}rmDW&_WOXT>fUgCl zQ7J{;n>}!pP>e@IT$@#IyC7L(Z62j@lm-Q#4B`rFC4_h0fB*H5@BYZ|`;lM&2|WMW z56;*3T79mEFWfzTx@6s4tAZf9>pMY1WAfi5uB)GwwWZxrWmAy|s0-7h5eD2<1dJoO zU}}RK9`FeeQCfAL03BuYc}{P>%aY0yt>>g^4NP@0)J3sM?A52HMm>1Cs*ll zMS7wJSNgz?dt=)$dsrED*$8>}DBwg8hI5@gB_ht}43tfow_c+-A!lL~vxbclV=5jZ z;v}*{NY@YuR)HaHkSJw>F*@qIj-%KX%+`w^f#Eo3GlmKub$%cWpMtjNgzA?9MrXGF zm5B&SgVjFs7RsDdgvdHz^(1`L;)GJT7D#7k5ewqR#Zt93ui~M2n1gZXPJ107j<+a#$_*>1MQF2mZSkPD8VqaT3iaQ9m$AL6VWCcX1%TXYtif(`e-Q7llWAF^gt z9_xw?DW{pK0yC@_$_(I?axQS*Q7IE*MLYIk>CvYmht(C>A6-qq^Vo{xs!B-S1Qzt| zPx9*@l~vM{`}e;1-XH(g*Z#mazWDp|vWc}-wTY<6d2i3ZnjYWH`#0|A>w3D+n%o9t zC7Rs7R%@J7#nYSe-p4Uzt!9XndF{O0?SAs7|JFbEi+|s*{PI8e<3I5?ZAc@ZIkW$AD8dG|H)^9eeU%~ zuZ4P#Jb{#1fFLXN8CrVClIegh&6A2IfM~`H_MUt9QaeR^>pV@liU*t(xnNgevwZk@ z`NFTQpZll&m`9v`@9(YqtSI$K^P4UGU=ItghY)`B-DmHezw=KY-~IW0_}l*W^5)a9 zp`Q6*K&41%je-!WV9|KbB6jOP;cdxw=K3NKqAq9^cG)vUNI+rm$I>OC!Z$PKF4m zSVb{`G8za8!CMldG9(IJT#Q>!n=5>0V}gNVF@P?;p@<7S@fjSG5qVBT>h4_UtsL5t z>Uy82^Yz}NgxD$18|fEhV5)>?omDEGyJ=MUh$A-cT%?IJc?gv1d+LKQOq7edfN)tj z>cAK@CC9LMQ1RdmmWYbdmL6}r+`1<+37*vtKKIXj=Bw@X`!`$}t8Gb9VfP_8U|n1~ z=v7TJi)ittI494BeUtM6>#lRTm`V$n3PFRf#l$G^IeL@$#+Tpp)Ap_RKRSK%v7T$b z*|oyLmlzXu9+)Vc1V-94Ol$7_!Y@X z3QFoq&nC!c>O)stcnFf-HcHhjwgM5$4o$FMBv%oKXB?s!a|UEXTv>*UH6YUgG2?C# zYkob;<|qpn=|z?sd9**ibK1P9AruhX9cU2&8gMMogh<`d8iMu=%Sb1d8sMU!LmnM5Kh<*IM7&W}CK?oc=2FM=1C-z36pyGb*qLMe%Bj!DuH=uz8|C^`)5k|GoqdV&!WX33LRFYE4 z5pP_c6XLyujGQ0^>#ZPw`2&1Aqn-_%XJ{a1nj5N&X>6FtinBC$#*|?VX+>J$)O||? zhc1?vo*zkk%N02ViR89yD#5c7ZG&vLKCd?`vO$!aj6a5)kumLH8koaal&fY z14i?*8j2tT^c^7b7Ruq&crAeHFD*0~iQvu+34l^HRJIJMLfcc6Dyg_;QhVJ&URsy{ zm5C_LQc0KN^Q0RR~q-)fw7>^$?! z`lLKU;qX#OY(oRlM5K8ZUQoro^Eef*yph)4CJta4Oz0XU3WLM$0y(c16ToU^Iw{Pz z=AuY}YP7jFk4fBot)7xdRseRk=7>85h>VAmX#-9{SEv)`ic^LyP(vk|n1Y;jY{&zL z)}ruk#GyDJQHg#s8eoZGxbk2H%mAl=2tpj*cL!+3WP$EwWz(WcsMu}d&25J6#8kX7 zvZ^S6yG$m@eG}FRE*=gc&T6aq=D~fM6u_xDiWgQtz;$q?YB4wwyP2MQuhI%Z=*(Sx zx>e;^;s9{*8u<)hGK0ejnAC+cl=^50B7w(;juhP{s-EZ0;-!uoN~=oQ+xCM?fb&%O zXc%PcSTUbu?=BIC#dZbXy_RoZH@UM@Mwo+(yz?@D@y_N+UOT<`sbBrSz4!W$fAdFw zzi#IMu^famz3oETJpa#+>CRq0*7B8Kz$zS@v|G5wTnXi5Bul!i+)0lQUq-#%$ht2no&R=f&YvhfE$$n0`S0kBjh~wXV2t=Kh{3_-iz;jUEh2+gkY~<#}wx4odiU6N+%(Y z1#YFtT~OB*kOh016U&C`J`-2A8362^uT{mVhV4JF!)x|3MHGY+(jM=9HGlJuJ^#|L z{pPj*^n1JAV%Ff(DYmLQ*QjmxW8u-;Up@Yl$KQJY{N*>FK7P?12Rma#cksBh(km(+ zBJP_1`9JcHKYj08Klbf!Y&`H0@J+p`|LU*)6+it){;}`;-X-n#Tqc?m#P^B)$ge-I zZ{!buVy}lLkDEqcCSRh3qFH>|x43C@u@MPG$88Ny9~-j|XQ!_k!+(K?xc>|HH`E^* z02gZ&53A!-69Vn^8pQ`ZuF>T6=(O5N5ZNddBRSdwL=iK*c7Q32TqQ0cII^^Ywu;8? z_VCQNX;RO?G{}`Ph`dWzfg7j=cW0yxK(^W7iZY(y?t)k>Z!OlAY7xP5vo8~2 zfhr*UNEDzW0f3Fd{=0@F0j~+{-G`X~iU%3M538)b3jG)H(Oa>BvCB>ZuzL6Ksf`ru z0By3VsL30;|44Q=(kehyk9yT&6303XkY!ajs8LQ;g>%EuOGl}Rm>&}!EeMX&4CnH! zjuxRnE*9qCL11111WAhhKGbP`>(OWKKfEn3H>j>{+w1;125)Gy#0qI%C(hUtY9!Sr zeP+5s$RL?FYzyw)aV@PNPaF)-*}Mj+J?&K-a`v>i0zQeZ9;v}ZrCQ@$n@d-bRTbx;i$@Np2gKjV*tM0xtue#VorvyY78%aE9jyd#D^jGxCgb zMpzIV3WMNDpg_t{#d7N+l4%GE1wSI6t?`YFDo&uOP@xK;p{R_8S*5~Sp}@N9CBy0! zIng3yhq9uxQcfTR2fX$Ak*f}@VWG-MtJ?y?gm#1_Xy^mffD@I)1e`aV1L8GmgEZ=? zJiymJfNhmbSGrKst?0}@#utI20r3P6y*f_|z5Z^cP0Ym)McDjDNE0|hqDG{MjT1XPN!H}z|`2r0>cc5c&h%rX!D06!E`|rQ`!Tmq{xBciJ|Ld0R(R+{@ zw)yJr=F7kE`1S8=JiDut^VoHDH#gFTx|40F0Y{V7IeMYyVgtXyF6bE#BL!C6!B>U| z?i$}ygo0EqXDy(qd3tTbx zD#E;VGY4uGF>&Tc2HKrrWE@FtP-(?tR8e?wV@$cSW_GK-Q-}D*cMlP8iPePYDvyFd z|C-UQELf^;5`i@nK`sJ=51NfC2rIn#jw8*YxO8rlWiu5q1I%Ya0GJwvt$DA8 ziBSWtxs2SoRp7%zcH&st^Dqy>cnBm@i*SLtZrI>-pu>(p9vP4h1!d6&PqJ3eLKF9F z!pe`{uq92S7>EZ^qiUpM)iy`RLCGi@fXb2xA@u9p1KV4@a}0Xodc+pnR!>QS(PrR$ z2aUIeL5INUgNSGsCu7u$6pHNGQ}oL95fSQa|1+F}Rx0QX$jrL5DGfAnjA@E4!`Qy<>{=A3_Q|4DuObE%%nyc$b2 z*poxqPw}>iUU>zibkgKdp$S4#J7OO$CK#$oEn)kv+B6z|&Sy{rs{%#j}6M-~NC4 zhxY%9|NHqz4+bwdJqh?5|K-=e_CG7rCbOlpsc`w**9yd0V)Gnv^Vc5ke{KHGKl$GM zKECtLV-v5!_?!5vY9P+gm#>BS`SW*v<4>>H2?{z%{`sH&N7G;ZQ$P5F^FRB)`qp3l zmTZX-@vE2Tx4!j!`RS*h{Oq+{SIlOUAsKz>?VOBQMAXS(5Oh^pyo(xzS4DI&4CXh% z5BdC1cA%JRcU=oQA&Cyl0K|){``|r9bA})Z72Q?r8k$LCfKq0Lm1#X!D)(>+h(;!i`8C=NdlbjJ#i)h9i(N?UHS$(Ut1iuCgo)gW=YPjxN}{%t*!ThH#vhQlX{P>xj&+Ma0C|5NdWj2(5Mhs>Q4#N zjWnuIo-qp`IORS^Sijac!StG>3>;C4*FCbzY=G0`19kw>x;PSg&Uh$rMvhQ=FFau> z2t^WeMNF_#u~Q>Y6p)n6KY&IK`5oEK;8%%1|~&)%}+->KFSVQ6otY`4a%W7 zIU|)+qi2UDl#w-28`gr5iL2RgVwyzGa6mFyN(l$T9=_6U8GcXfIiR<}hPH=SoOYh7 ztoH+Vw7ExYDtd>y!*-49d!Hux(6Qdj67|`DLe`F3(1I3`6IO#Zz`L(83MlZqn_C#80F7-itW8vVoxZua zLC!AI(P#6fD4QI_5O9KsVXt12Zc)Mk`RJjzDW>3RW-Sn?;!0AQwt8r$?pq2TC5mW( zuabhsrKRct_PO79Pmkg6{nvl(pZS}=n{cmN^p;-##%I3#%kvxWp(I1I&=Agz=A}cB zo2@pq%%l*7z*Wq>Hcz0ompMjPM{$e~yb~6kxpSvfQ)xM5p=JmXMGFe)RN{>;u;dud z2}pB`vPC2cC2=>f`;r1cb#@<&k3=%7Zm&ia`uhpRY91XPP&gQZit{3|IH#Rd1z}b| zl%4Z&Xth{#Z8%f$n4*;8DvX0I=5X5gzFrOazLOeXkKXvq)|nbO^D5D4Hbxc zH2|`hd62+oFaURC4a%}(&rW=#vf2ht@F>MSWX)W)H38{>-QD&5Tyh9fjTrNC}*VubnzJf49fSRJzVzm;GE$G zi^CKIpxv);3XeURz9%|LXCGb+!7*{>*5E~8RZzkDdhRT{d2{DdU_owYd~#JSR53uY zRQB2= z`Xg7bw-QsCR9v3i%;*2qA6UPNz1-ETC6TD!;cDg*Pcq-sv-tdD)4Y4_^iRDk=Ngj= z?KXxH;Q^h!M)0E6^@I5M<GUIy zp8b{ANEWY}2iMpzQ7BM<8+9ZxmIQ$?5M@1VjE0I%N=UOrVsPLg$NVd}|4)Bnf=BeV zL}&oGQ49@lcT*Wm6sRNRIU95GfE0-Bc0!y5h5BgNTq044Owv_a#;tOJ*S;`2Ac6YL zCXw}h?C8aiq_fCF#{3(~G@q(-`?#X7nH3$?4fxg%7sFvK$t+l%&&%=Z>O9X5)TpNF zdckuJUKjq*RUqa&$EHkcb_Y;L$i6*j!vV_u9Y4~+6&TTAQ` zQ9({$6k5sFAep@|1PvVCI{V~0)1jNGP8Cc_Bn9a;YmmNSxVi-@&U@q}?G}2buVF!* z32Ry4ijagAod%9tdbX}d^vdvWz@5gMiB?!d|L{owXc?2WNAoWSAPgdx3gmGX7xg$} zVLSw#2)_p+Q^Ps}sR01j@)-nlQSVO<^$QxjIm|C5@R}k_1dj=dk#5p@LLpkGBr$~* zBwk#H;{eigAxzP92p_>(5S3s^Dv9$-@Z72yViMQ=+uwZabHAQnd*4cFzF201Zd8#u$2lOC z4FPc#P8mU#2&tQwV&*bYVt-)Fx631_GF?X-WK~rfe+1Nk*idZYNRf7=7E}}3DT8>8H zowTX2I!Di85=f&tgpOeMnzSZ9yo-mfvvL*d>|uUt4%rUO6%gNCbQ_rpjuN_LsON^I zM;?@vFlFsL9U3K8)aK|l1yPDa#$O<1CpkRS#NCT|>_zdNPmIVqyHXwSPQ6tlouVPT`C9G%XrF`|>wGe)Re8K6yRa zrUfM^O$zh}OtJx5ED-qGRK>ZFF}UgroQ|zvm

    _Ig_8m17G-g(@!90-}pKoCKNGq?`>kYNdD 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

    QDH6|I-Y1V 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

    R;32}gaYo#2)uiw^k&@%`)I}(jbU2CP5 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�|m&_krrWhX%vuGXNCjks_|Cf1irN7V!`@= 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

i`a+(^6L@RP>PaHvW_?p(TCf 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